Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Функции для совместимости > mtlb_int64

mtlb_int64

Matlab int64 emulation function

Description

Matlab and Scilab int64 behave differently :

  • Beyong the main interval bounds, Scilab's int64() wraps, while Matlab's mtlb_int64() saturates.
  • For non integer values, Scilab's int64() truncates the fractional part, while Matlab's mtlb_int64() rounds to the nearest integer.

Let imin = -(2^32) = -9223372036854775808 and imax = 2^32 - 1 = 9223372036854775807.

xint64(x)mtlb_int64(x)
%nan00
-%infiminimin
imin-2imax-1imin
imin-1imaximin
iminiminimin
-80.7-80-81
-80.5-80-81
-80.4-80-80
10.21010
10.51011
10.511011
imaximaximax
imax+1iminimax
imax+2imin+1imax
imax+3imin+2imax
%infimaximax

mtlb_int64 has not to be used for hand coded functions.

The function mtlb_int64(A) is used by mfile2sci to replace int64(A) when it is not possible to know what is the input while porting Matlab code to Scilab. This function then determines the correct semantic at run time.

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:05:27 CET 2019