API integer functions
This page lists all the functions to manipulate Scilab native objects containing integers
scilabVar
scilab_getIntegerPrecision(
scilabEnv
env,
scilabVar
var)
Return precision of an integer variable var.
int scilab_isInt8(
scilabEnv
env,
scilabVar
var)
int scilab_isInt16(
scilabEnv
env,
scilabVar
var)
int scilab_isInt32(
scilabEnv
env,
scilabVar
var)
int scilab_isInt64(
scilabEnv
env,
scilabVar
var)
int scilab_isUnsignedInt8(
scilabEnv
env,
scilabVar
var)
int scilab_isUnsignedInt16(
scilabEnv
env,
scilabVar
var)
int scilab_isUnsignedInt32(
scilabEnv
env,
scilabVar
var)
int scilab_isUnsignedInt64(
scilabEnv
env,
scilabVar
var)
Return 1 if variable val is an integer otherwise 0. Precision is specified in function name.
scilabVar
scilab_createInteger8(
scilabEnv
env, char val)
scilabVar
scilab_createInteger16(
scilabEnv
env, short val)
scilabVar
scilab_createInteger32(
scilabEnv
env, int val)
scilabVar
scilab_createInteger64(
scilabEnv
env, long long val)
scilabVar
scilab_createUnsignedInteger8(
scilabEnv
env, unsigned char val)
scilabVar
scilab_createUnsignedInteger16(
scilabEnv
env, unsigned short val)
scilabVar
scilab_createUnsignedInteger32(
scilabEnv
env, unsigned int val)
scilabVar
scilab_createUnsignedInteger64(
scilabEnv
env, unsigned long long val)
Create a scalar integer from val. Precision is specified in function name.
scilabVar
scilab_createIntegerMatrix(
scilabEnv
env, int prec, int dim, const int* dims)
Create an integer matrix with dim dimensions (dims[0], dims[1], ..., dims[dim-1]).
The prec parameter specifies the integer precision :
|
|
scilabVar
scilab_createInteger8Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createInteger16Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createInteger32Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createInteger64Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createUnsignedInteger8Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createUnsignedInteger16Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createUnsignedInteger32Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
scilabVar
scilab_createUnsignedInteger64Matrix(
scilabEnv
env, int prec, int dim, const int* dims)
Create an integer matrix with dim dimensions (dims[0], dims[1], ..., dims[dim-1]). Precision is specified in function name.
scilabVar
scilab_createIntegerMatrix2d(
scilabEnv
env, int prec, int row, int col)
Create an integer matrix with 2 dimensions (row, col).
prec parameter give precision.
scilabVar
scilab_createInteger8Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createInteger16Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createInteger32Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createInteger64Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createUnsignedInteger8Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createUnsignedInteger16Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createUnsignedInteger32Matrix2d(
scilabEnv
env, int row, int col)
scilabVar
scilab_createUnsignedInteger64Matrix2d(
scilabEnv
env, int row, int col)
Create an integer matrix with 2 dimensions (row, col). Precision is specified in function name.
scilabStatus
scilab_getInteger8(
scilabEnv
env,
scilabVar
var, char* vals)
scilabStatus
scilab_getInteger16(
scilabEnv
env,
scilabVar
var, short* vals)
scilabStatus
scilab_getInteger32(
scilabEnv
env,
scilabVar
var, int* vals)
scilabStatus
scilab_getInteger64(
scilabEnv
env,
scilabVar
var, long long* vals)
scilabStatus
scilab_getUnsignedInteger8(
scilabEnv
env,
scilabVar
var, unsigned char* vals)
scilabStatus
scilab_getUnsignedInteger16(
scilabEnv
env,
scilabVar
var, unsigned short* vals)
scilabStatus
scilab_getUnsignedInteger32(
scilabEnv
env,
scilabVar
var, unsigned int* vals)
scilabStatus
scilab_getUnsignedInteger64(
scilabEnv
env,
scilabVar
var, unsigned long long* vals)
Get integer value from an scalar integer variable. Precision is specified in function name.
precision of output must match with precision of var.
scilabStatus
scilab_getIntegerArray(
scilabEnv
env,
scilabVar
var, void** vals)
scilabStatus
scilab_getInteger8Array(
scilabEnv
env,
scilabVar
var, char** vals)
scilabStatus
scilab_getInteger16Array(
scilabEnv
env,
scilabVar
var, short** vals)
scilabStatus
scilab_getInteger32Array(
scilabEnv
env,
scilabVar
var, int** vals)
scilabStatus
scilab_getInteger64Array(
scilabEnv
env,
scilabVar
var, long long** vals)
scilabStatus
scilab_getUnsignedInteger8Array(
scilabEnv
env,
scilabVar
var, unsigned char** vals)
scilabStatus
scilab_getUnsignedInteger16Array(
scilabEnv
env,
scilabVar
var, unsigned short** vals)
scilabStatus
scilab_getUnsignedInteger32Array(
scilabEnv
env,
scilabVar
var, unsigned int** vals)
scilabStatus
scilab_getUnsignedInteger64Array(
scilabEnv
env,
scilabVar
var, unsigned long long** vals)
Get pointer on internal array of integer of var.
scilabStatus
scilab_setIntegerArray(
scilabEnv
env,
scilabVar
var, const void* vals);
scilabStatus
scilab_setInteger8Array(
scilabEnv
env,
scilabVar
var, const char* vals);
scilabStatus
scilab_setInteger16Array(
scilabEnv
env,
scilabVar
var, const short* vals);
scilabStatus
scilab_setInteger32Array(
scilabEnv
env,
scilabVar
var, const int* vals);
scilabStatus
scilab_setInteger64Array(
scilabEnv
env,
scilabVar
var, const long long* vals);
scilabStatus
scilab_setUnsignedInteger8Array(
scilabEnv
env,
scilabVar
var, const unsigned char* vals);
scilabStatus
scilab_setUnsignedInteger16Array(
scilabEnv
env,
scilabVar
var, const unsigned short* vals);
scilabStatus
scilab_setUnsignedInteger32Array(
scilabEnv
env,
scilabVar
var, const unsigned int* vals);
scilabStatus
scilab_setUnsignedInteger64Array(
scilabEnv
env,
scilabVar
var, const unsigned long long* vals);
Set values of integer variable var.
Examples
#include "api_scilab.h" #include "Scierror.h" #include "localization.h" #include "sciprint.h" #include "sci_malloc.h" const char fname[] = "int_test"; int sci_int_test(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out) { int i = 0; int inr1 = 0; int inc1 = 0; int size1 = 0; int* in1 = NULL; int in2 = 0; int* out1 = NULL; int* out2dims = NULL; int* out2 = NULL; int out3 = 0; if (nin != 2) { Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2); return SCILAB_ERROR; } if (nout != 3) { Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 3); return SCILAB_ERROR; } //in[0] : matrix 2d of int32 if (scilab_isInt32(env, in[0]) == 0 || scilab_isMatrix(env, in[0]) == 0) { Scierror(999, _("%s: Wrong type for input argument #%d: A int32 matrix expected.\n"), fname, 1); return SCILAB_ERROR; } size1 = scilab_getDim2d(env, in[0], &inr1, &inc1); scilab_getInteger32Array(env, in[0], &in1); //in[1] : int if (scilab_isInt32(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0) { Scierror(999, _("%s: Wrong type for input argument #%d: A int expected.\n"), fname, 2); return SCILAB_ERROR; } scilab_getInteger32(env, in[1], &in2); //out1 : matrix 2d of int with same size of in[0] out[0] = scilab_createIntegerMatrix2d32(env, inr1, inc1); scilab_getInteger32Array(env, out[0], &out1); for (i = 0; i < size1; ++i) { out1[i] = in1[i] * 10; } //out2 : 3d matrix of int out2dims = (int*)MALLOC(3 * sizeof(int)); out2dims[0] = inr1; out2dims[1] = inc1; out2dims[2] = 2; out[1] = scilab_createIntegerMatrix32(env, 3, out2dims, 0); scilab_getInteger32Array(env, out[1], &out2); for (i = 0; i < size1; ++i) { out2[i] = in1[i] * 10; out2[i + size1] = in1[i] * 100; } //out3 : int out[2] = scilab_createInteger32(env, in2 * 1000); return SCILAB_OK; }
Scilab test script
mkdir(pathconvert(TMPDIR+"/api_c/")); cd(pathconvert(TMPDIR+"/api_c/")); copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/int_test.c",pathconvert(TMPDIR+"/api_c/int_test.c",%F)); ilib_build("libint",["int_test","sci_int_test", "csci6"],"int_test.c",[],"","",""); exec("loader.sce"); in1 = int32(rand(3,4) *1000); in2 = int32(rand() * 1000); [out1, out2, out3] = int_test(in1, in2); assert_checkequal(out1, in1 * 10); ref(:,:, 1) = in1 * 10; ref(:,:, 2) = in1 * 100; assert_checkequal(out2, ref); assert_checkequal(out3, in2 * 1000); disp("OK");
| Report an issue | ||
| << API boolean functions | API Scilab | API list-type functions >> |