New C API for Scilab gateways (once again ...) 25/17425/23
Antoine ELIAS [Tue, 3 Nov 2015 22:55:30 +0000 (23:55 +0100)]
2 modes:
  - "safe" version, good for development phase
  - "unsafe" version, remove checks in API for better performance and nice
    crashes

Standard calls use "safe" version, to use "unsafe" version
define __API_SCILAB_UNSAFE__ before include of "api_scilab.h"

Done:
  - common, double, string, int, struct, cell, polynomial,
    boolean, (_/t/m)list, graphic handle, optional.
  - update dynamic_link gateway builder to link the new interface
  - add overload and call function capability.
  - add somes tests in api_scilab
  - add some help pages ( double, string, interger, struct, boolean, poly,
    cell, list, tlist, mlist, pointer )
    .
Not done yet:
  - sparse.
  - lot of tests in both mode.
  - help pages ( sparse )
  - add some helpers on configvariable for exemple ( getMode,
    getScilabMode, getOS, getWarningMode, getSCI, getTMPDIR, getSCIHOME, ...
    )

Change-Id: I15b9912842326b41353bd002b8876cf7246a4884

352 files changed:
scilab/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror6.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csub6.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csum6.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_foo6.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_multiplybypi6.c [new file with mode: 0644]
scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.dia.ref
scilab/contrib/toolbox_skeleton/tests/unit_tests/c_sum.tst
scilab/modules/api_scilab/Makefile.am
scilab/modules/api_scilab/Makefile.in
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/api_scilab.vcxproj.filters
scilab/modules/api_scilab/help/en_US/A_api_scilab.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/B_getting_started.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/CC_common.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/C_double.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/D_string.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/E_boolean.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/F_integer.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/G_list.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/H_polynomial.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/I_pointer.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/J_cell.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/K_struct.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/L_handle.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/Y_optional.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/api_types.xml [new file with mode: 0644]
scilab/modules/api_scilab/help/en_US/getting_started.xml [deleted file]
scilab/modules/api_scilab/help/en_US/legacy/api_scilab.xml [moved from scilab/modules/api_scilab/help/en_US/api_scilab.xml with 99% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean/A_isBooleanType.xml [moved from scilab/modules/api_scilab/help/en_US/boolean/A_isBooleanType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean/B_getScalarBoolean.xml [moved from scilab/modules/api_scilab/help/en_US/boolean/B_getScalarBoolean.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean/C_createScalarBoolean.xml [moved from scilab/modules/api_scilab/help/en_US/boolean/C_createScalarBoolean.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean/D_booleanExample.xml [moved from scilab/modules/api_scilab/help/en_US/boolean/D_booleanExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean_sparse/A_isBooleanSparseType.xml [moved from scilab/modules/api_scilab/help/en_US/boolean_sparse/A_isBooleanSparseType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean_sparse/B_getAllocatedBooleanSparseMatrix.xml [moved from scilab/modules/api_scilab/help/en_US/boolean_sparse/B_getAllocatedBooleanSparseMatrix.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean_sparse/CHAPTER [moved from scilab/modules/api_scilab/help/en_US/boolean_sparse/CHAPTER with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean_sparse/C_freeAllocatedBooleanSparse.xml [moved from scilab/modules/api_scilab/help/en_US/boolean_sparse/C_freeAllocatedBooleanSparse.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/boolean_sparse/D_booleanSparseExample.xml [moved from scilab/modules/api_scilab/help/en_US/boolean_sparse/D_booleanSparseExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/CHAPTER [moved from scilab/modules/api_scilab/help/en_US/capi/CHAPTER with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/CheckLhs.xml [moved from scilab/modules/api_scilab/help/en_US/capi/CheckLhs.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/CheckRhs.xml [moved from scilab/modules/api_scilab/help/en_US/capi/CheckRhs.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/Lhs.xml [moved from scilab/modules/api_scilab/help/en_US/capi/Lhs.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/LhsVar.xml [moved from scilab/modules/api_scilab/help/en_US/capi/LhsVar.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/Rhs.xml [moved from scilab/modules/api_scilab/help/en_US/capi/Rhs.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/Scierror.xml [moved from scilab/modules/api_scilab/help/en_US/capi/Scierror.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/howto/CHAPTER [moved from scilab/modules/api_scilab/help/en_US/capi/howto/CHAPTER with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/howto/CallingAScilabFunctionFromACInterface.xml [moved from scilab/modules/api_scilab/help/en_US/capi/howto/CallingAScilabFunctionFromACInterface.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/sci_types.xml [moved from scilab/modules/api_scilab/help/en_US/capi/sci_types.xml with 94% similarity]
scilab/modules/api_scilab/help/en_US/legacy/capi/sciprint.xml [moved from scilab/modules/api_scilab/help/en_US/capi/sciprint.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/A_isDoubleType.xml [moved from scilab/modules/api_scilab/help/en_US/double/A_isDoubleType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/B_getScalarDouble.xml [moved from scilab/modules/api_scilab/help/en_US/double/B_getScalarDouble.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/C_getScalarComplexDouble.xml [moved from scilab/modules/api_scilab/help/en_US/double/C_getScalarComplexDouble.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/D_createScalarDouble.xml [moved from scilab/modules/api_scilab/help/en_US/double/D_createScalarDouble.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/E_createScalarComplexDouble.xml [moved from scilab/modules/api_scilab/help/en_US/double/E_createScalarComplexDouble.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/double/F_doubleExample.xml [moved from scilab/modules/api_scilab/help/en_US/double/F_doubleExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/handle/A_isHandleType.xml [moved from scilab/modules/api_scilab/help/en_US/handle/A_isHandleType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/handle/B_getScalarHandle.xml [moved from scilab/modules/api_scilab/help/en_US/handle/B_getScalarHandle.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/handle/C_createScalarHandle.xml [moved from scilab/modules/api_scilab/help/en_US/handle/C_createScalarHandle.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/handle/D_handleExample.xml [moved from scilab/modules/api_scilab/help/en_US/handle/D_handleExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/hypermat/A_isHypermatType.xml [moved from scilab/modules/api_scilab/help/en_US/hypermat/A_isHypermatType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/hypermat/B_getHypermatOfDouble.xml [moved from scilab/modules/api_scilab/help/en_US/hypermat/B_getHypermatOfDouble.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/hypermat/C_getHypermatOfInt.xml [moved from scilab/modules/api_scilab/help/en_US/hypermat/C_getHypermatOfInt.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/integer/A_isIntegerType.xml [moved from scilab/modules/api_scilab/help/en_US/integer/A_isIntegerType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/integer/B_getScalarInteger.xml [moved from scilab/modules/api_scilab/help/en_US/integer/B_getScalarInteger.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/integer/C_createScalarInteger.xml [moved from scilab/modules/api_scilab/help/en_US/integer/C_createScalarInteger.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/integer/D_integerExample.xml [moved from scilab/modules/api_scilab/help/en_US/integer/D_integerExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/CHAPTER [moved from scilab/modules/api_scilab/help/en_US/list_management/CHAPTER with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/isListType.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/isListType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_boolean_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_boolean_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_boolean_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_boolean_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_bsparse_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_bsparse_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_bsparse_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_bsparse_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_createlist_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_createlist_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_double_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_double_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_double_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_double_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_getlistitemaddress_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_getlistitemaddress_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_getlistitemnumber_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_getlistitemnumber_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_integer_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_integer_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_integer_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_integer_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_pointer_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_pointer_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_pointer_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_pointer_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_poly_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_poly_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_poly_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_poly_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_sparse_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_sparse_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_sparse_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_sparse_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_string_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_string_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/list_management/list_string_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/list_management/list_string_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/AssignOutputVariable.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/AssignOutputVariable.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/CHAPTER [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/CHAPTER with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/CallOverloadFunction.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/CallOverloadFunction.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/CheckInputArgument.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/CheckInputArgument.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/CheckOutputArgument.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/CheckOutputArgument.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/ReturnArguments.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/ReturnArguments.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/UpdateStack.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/UpdateStack.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/boolean_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/boolean_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/boolean_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/boolean_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/bsparse_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/bsparse_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/bsparse_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/bsparse_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/check_matrix_dimension.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/check_matrix_dimension.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/common_getvaraddr_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/common_getvaraddr_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/common_getvardimension_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/common_getvardimension_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/common_getvartype_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/common_getvartype_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/common_iscomplex_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/common_iscomplex_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/common_isvarmatrixtype_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/common_isvarmatrixtype_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/deleteNamedVariable.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/deleteNamedVariable.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/double_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/double_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/double_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/double_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/getNbInputArgument.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/getNbInputArgument.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/getNbOutputArgument.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/getNbOutputArgument.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/handle_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/handle_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/handle_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/handle_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/int_getmatrixofintegerprecision_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/int_getmatrixofintegerprecision_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/integer_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/integer_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/integer_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/integer_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/nbInputArgument.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/nbInputArgument.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/pointer_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/pointer_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/pointer_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/pointer_writing_api.xml with 98% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/poly_getpolyvariablename_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/poly_getpolyvariablename_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/poly_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/poly_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/poly_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/poly_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/sparse_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/sparse_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/sparse_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/sparse_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/string_reading_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/string_reading_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/low_level_functions/string_writing_api.xml [moved from scilab/modules/api_scilab/help/en_US/low_level_functions/string_writing_api.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/optionals/getOptionals.xml [moved from scilab/modules/api_scilab/help/en_US/optionals/getOptionals.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/A_isPolyType.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/A_isPolyType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/B_getAllocatedSinglePoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/B_getAllocatedSinglePoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/C_getAllocatedSingleComplexPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/C_getAllocatedSingleComplexPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/D_getAllocatedMatrixOfPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/D_getAllocatedMatrixOfPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/E_getAllocatedMatrixOfComplexPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/E_getAllocatedMatrixOfComplexPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/F_freeAllocatedSinglePoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/F_freeAllocatedSinglePoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/G_freeAllocatedSingleComplexPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/G_freeAllocatedSingleComplexPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/H_freeAllocatedMatrixOfPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/H_freeAllocatedMatrixOfPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/I_freeAllocatedMatrixOfComplexPoly.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/I_freeAllocatedMatrixOfComplexPoly.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/polynomial/J_polyExample.xml [moved from scilab/modules/api_scilab/help/en_US/polynomial/J_polyExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/A_isSparseType.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/A_isSparseType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/B_getAllocatedSparseMatrix.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/B_getAllocatedSparseMatrix.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/C_getAllocatedComplexSparseMatrix.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/C_getAllocatedComplexSparseMatrix.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/D_freeAllocatedSparseMatrix.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/D_freeAllocatedSparseMatrix.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/E_freeAllocatedComplexSparseMatrix.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/E_freeAllocatedComplexSparseMatrix.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/sparse/F_sparseExample.xml [moved from scilab/modules/api_scilab/help/en_US/sparse/F_sparseExample.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/A_isStringType.xml [moved from scilab/modules/api_scilab/help/en_US/string/A_isStringType.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/B_getAllocatedSingleString.xml [moved from scilab/modules/api_scilab/help/en_US/string/B_getAllocatedSingleString.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/C_getAllocatedMatrixOfString.xml [moved from scilab/modules/api_scilab/help/en_US/string/C_getAllocatedMatrixOfString.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/D_createSingleString.xml [moved from scilab/modules/api_scilab/help/en_US/string/D_createSingleString.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/E_freeAllocatedSingleString.xml [moved from scilab/modules/api_scilab/help/en_US/string/E_freeAllocatedSingleString.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/F_freeAllocatedMatrixOfString.xml [moved from scilab/modules/api_scilab/help/en_US/string/F_freeAllocatedMatrixOfString.xml with 100% similarity]
scilab/modules/api_scilab/help/en_US/legacy/string/G_stringExample.xml [moved from scilab/modules/api_scilab/help/en_US/string/G_stringExample.xml with 100% similarity]
scilab/modules/api_scilab/help/ja_JP/api_scilab.xml
scilab/modules/api_scilab/help/ja_JP/getting_started.xml
scilab/modules/api_scilab/help/ja_JP/low_level_functions/pointer_writing_api.xml
scilab/modules/api_scilab/includes/api_boolean.h
scilab/modules/api_scilab/includes/api_cell.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_common.h
scilab/modules/api_scilab/includes/api_double.h
scilab/modules/api_scilab/includes/api_error.h
scilab/modules/api_scilab/includes/api_handle.h
scilab/modules/api_scilab/includes/api_int.h
scilab/modules/api_scilab/includes/api_list.h
scilab/modules/api_scilab/includes/api_optional.h
scilab/modules/api_scilab/includes/api_pointer.h
scilab/modules/api_scilab/includes/api_pointer.hxx
scilab/modules/api_scilab/includes/api_poly.h
scilab/modules/api_scilab/includes/api_scilab.h
scilab/modules/api_scilab/includes/api_stack_boolean.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_boolean_sparse.h [moved from scilab/modules/api_scilab/includes/api_boolean_sparse.h with 96% similarity]
scilab/modules/api_scilab/includes/api_stack_common.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_double.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_error.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_handle.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_hypermat.h [moved from scilab/modules/api_scilab/includes/api_hypermat.h with 98% similarity]
scilab/modules/api_scilab/includes/api_stack_int.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_list.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_optional.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_pointer.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_poly.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_stack_sparse.h [moved from scilab/modules/api_scilab/includes/api_sparse.h with 98% similarity]
scilab/modules/api_scilab/includes/api_stack_string.h [new file with mode: 0644]
scilab/modules/api_scilab/includes/api_string.h
scilab/modules/api_scilab/includes/api_struct.h [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_error.cpp
scilab/modules/api_scilab/src/cpp/api_internal_error.hxx [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_pointer_cpp.cpp
scilab/modules/api_scilab/src/cpp/api_stack_boolean.cpp [moved from scilab/modules/api_scilab/src/cpp/api_boolean.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_boolean_sparse.cpp [moved from scilab/modules/api_scilab/src/cpp/api_boolean_sparse.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_common.cpp [moved from scilab/modules/api_scilab/src/cpp/api_common.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_double.cpp [moved from scilab/modules/api_scilab/src/cpp/api_double.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_error.cpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_stack_handle.cpp [moved from scilab/modules/api_scilab/src/cpp/api_handle.cpp with 100% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_hypermat.cpp [moved from scilab/modules/api_scilab/src/cpp/api_hypermat.cpp with 100% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_int.cpp [moved from scilab/modules/api_scilab/src/cpp/api_int.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_list.cpp [moved from scilab/modules/api_scilab/src/cpp/api_list.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_optional.cpp [moved from scilab/modules/api_scilab/src/cpp/api_optional.cpp with 95% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_pointer.cpp [moved from scilab/modules/api_scilab/src/cpp/api_pointer.cpp with 94% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_poly.cpp [moved from scilab/modules/api_scilab/src/cpp/api_poly.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_sparse.cpp [moved from scilab/modules/api_scilab/src/cpp/api_sparse.cpp with 100% similarity]
scilab/modules/api_scilab/src/cpp/api_stack_string.cpp [moved from scilab/modules/api_scilab/src/cpp/api_string.cpp with 99% similarity]
scilab/modules/api_scilab/src/cpp/api_template_safe.cpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/api_template_unsafe.cpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_boolean.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_cell.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_common.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_double.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_handle.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_int.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_list.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_optional.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_pointer.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_poly.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_string.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_struct.hpp [new file with mode: 0644]
scilab/modules/api_scilab/src/cpp/template/api_template.h [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/boolean_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/boolean_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/boolean_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/cell_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/cell_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/cell_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/double_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/double_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/double_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/int_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/int_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/int_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/list_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/list_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/list_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/overload_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/overload_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/overload_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/polynomial_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/polynomial_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/polynomial_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/string_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/string_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/string_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/struct_test.c [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/struct_test.dia.ref [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/api_c/struct_test.tst [new file with mode: 0644]
scilab/modules/api_scilab/tests/unit_tests/deleteNamedVariable.dia.ref
scilab/modules/api_scilab/tests/unit_tests/deleteNamedVariable.tst
scilab/modules/api_scilab/tests/unit_tests/string_writing_api.dia.ref
scilab/modules/ast/ast.vcxproj
scilab/modules/ast/ast.vcxproj.filters
scilab/modules/ast/includes/symbol/libraries.hxx
scilab/modules/ast/includes/symbol/variables.hxx
scilab/modules/ast/includes/types/addfunction.h
scilab/modules/ast/includes/types/arrayof.hxx
scilab/modules/ast/includes/types/bool.hxx
scilab/modules/ast/includes/types/c_gateway_prototype.h
scilab/modules/ast/includes/types/cell.hxx
scilab/modules/ast/includes/types/double.hxx
scilab/modules/ast/includes/types/function.hxx
scilab/modules/ast/includes/types/gatewaystruct.hxx
scilab/modules/ast/includes/types/graphichandle.hxx
scilab/modules/ast/includes/types/int.hxx
scilab/modules/ast/includes/types/internal.hxx
scilab/modules/ast/includes/types/pointer.hxx
scilab/modules/ast/includes/types/polynom.hxx
scilab/modules/ast/includes/types/singlepoly.hxx
scilab/modules/ast/includes/types/string.hxx
scilab/modules/ast/includes/types/struct.hxx
scilab/modules/ast/includes/types/tlist.hxx
scilab/modules/ast/includes/types/types_tools.hxx
scilab/modules/ast/src/cpp/ast/run_CallExp.hpp
scilab/modules/ast/src/cpp/types/addfunction.cpp
scilab/modules/ast/src/cpp/types/bool.cpp
scilab/modules/ast/src/cpp/types/cell.cpp
scilab/modules/ast/src/cpp/types/double.cpp
scilab/modules/ast/src/cpp/types/function.cpp
scilab/modules/ast/src/cpp/types/graphichandle.cpp
scilab/modules/ast/src/cpp/types/polynom.cpp
scilab/modules/ast/src/cpp/types/string.cpp
scilab/modules/ast/src/cpp/types/struct.cpp
scilab/modules/ast/src/cpp/types/types_tools.cpp
scilab/modules/boolean/includes/gw_boolean.h
scilab/modules/cacsd/includes/gw_cacsd.h
scilab/modules/call_scilab/help/en_US/BooleanManagement.xml
scilab/modules/call_scilab/help/en_US/ComplexManagement.xml
scilab/modules/call_scilab/help/en_US/DisableInteractiveMode.xml
scilab/modules/call_scilab/help/en_US/DoubleManagement.xml
scilab/modules/call_scilab/help/en_US/GetLastJob.xml
scilab/modules/call_scilab/help/en_US/ScilabHaveAGraph.xml
scilab/modules/call_scilab/help/en_US/SendScilabJob.xml
scilab/modules/call_scilab/help/en_US/SendScilabJobs.xml
scilab/modules/call_scilab/help/en_US/StartScilab.xml
scilab/modules/call_scilab/help/en_US/StringManagement.xml
scilab/modules/call_scilab/help/en_US/TerminateScilab.xml
scilab/modules/call_scilab/help/en_US/compile_and_run_call_scilab.xml
scilab/modules/call_scilab/help/en_US/fromc.xml
scilab/modules/call_scilab/help/en_US/fromjava.xml
scilab/modules/call_scilab/help/ja_JP/call_scilab.xml
scilab/modules/core/includes/core_gw.hxx
scilab/modules/core/includes/gw_core.h
scilab/modules/core/includes/sci_types.h
scilab/modules/core/sci_gateway/cpp/core_gw.cpp
scilab/modules/core/sci_gateway/cpp/sci_cell.cpp
scilab/modules/core/sci_gateway/cpp/sci_struct.cpp
scilab/modules/dynamic_link/help/en_US/G_make.xml
scilab/modules/dynamic_link/help/en_US/addinter.xml
scilab/modules/dynamic_link/help/en_US/c_link.xml
scilab/modules/dynamic_link/help/en_US/call.xml
scilab/modules/dynamic_link/help/en_US/fort.xml
scilab/modules/dynamic_link/help/en_US/ilib_build.xml
scilab/modules/dynamic_link/help/en_US/ilib_compile.xml
scilab/modules/dynamic_link/help/en_US/ilib_for_link.xml
scilab/modules/dynamic_link/help/en_US/ilib_gen_Make.xml
scilab/modules/dynamic_link/help/en_US/ilib_gen_cleaner.xml
scilab/modules/dynamic_link/help/en_US/ilib_gen_gateway.xml
scilab/modules/dynamic_link/help/en_US/ilib_gen_loader.xml
scilab/modules/dynamic_link/help/en_US/ilib_mex_build.xml
scilab/modules/dynamic_link/help/en_US/ilib_verbose.xml
scilab/modules/dynamic_link/help/en_US/link.xml
scilab/modules/dynamic_link/macros/ilib_gen_gateway.sci
scilab/modules/elementary_functions/Makefile.am
scilab/modules/elementary_functions/Makefile.in
scilab/modules/elementary_functions/includes/gw_elementary_functions.h
scilab/modules/elementary_functions/macros/issquare.sci [deleted file]
scilab/modules/elementary_functions/macros/isvector.sci [deleted file]
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elem_func_gw.vcxproj
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elem_func_gw.vcxproj.filters
scilab/modules/elementary_functions/sci_gateway/cpp/sci_issquare.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/sci_gateway/cpp/sci_isvector.cpp [new file with mode: 0644]
scilab/modules/elementary_functions/tests/unit_tests/issquare.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/issquare.tst
scilab/modules/fileio/includes/gw_fileio.h
scilab/modules/functions/Makefile.am
scilab/modules/functions/includes/gw_functions.h
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj.filters
scilab/modules/functions_manager/includes/dynamic_modules.hxx
scilab/modules/graphics/includes/gw_graphics.h
scilab/modules/graphics/sci_gateway/c/sci_light.c
scilab/modules/graphics/sci_gateway/cpp/sci_matplot.cpp
scilab/modules/graphics/src/nographics/nographics.c
scilab/modules/helptools/src/java/org/scilab/modules/helptools/DocbookTagConverter.java
scilab/modules/helptools/src/java/org/scilab/modules/helptools/HTMLDocbookTagConverter.java
scilab/modules/localization/includes/gw_localization.h
scilab/modules/mpi/includes/gw_mpi.h
scilab/modules/optimization/sci_gateway/cpp/sci_optim.cpp
scilab/modules/output_stream/includes/gw_output_stream.h
scilab/modules/preferences/includes/preferences_gw.hxx
scilab/modules/signal_processing/includes/gw_signal.h
scilab/modules/sparse/sci_gateway/cpp/sci_ludel.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_luget.cpp
scilab/modules/sparse/sci_gateway/cpp/sci_lusolve.cpp
scilab/modules/spreadsheet/includes/gw_spreadsheet.h
scilab/modules/statistics/includes/gw_statistics.h
scilab/modules/tclsci/includes/gw_tclsci.h
scilab/modules/ui_data/includes/ui_data_gw.hxx
scilab/modules/xml/includes/gw_xml.h

index 31121fe..55b8a83 100644 (file)
@@ -10,8 +10,18 @@ function builder_gw_c()
     WITHOUT_AUTO_PUTLHSVAR = %t;
 
     tbx_build_gateway("skeleton_c", ..
-    ["c_sum","sci_csum";"c_sub","sci_csub";"c_multiplybypi","sci_multiplybypi";"foo","sci_foo";"c_error","sci_cerror"], ..
-    ["sci_csum.c","sci_csub.c","sci_multiplybypi.c","sci_foo.c","sci_cerror.c"], ..
+    ["c_sum","sci_csum", "csci"; ...
+    "c_sub","sci_csub", "csci"; ...
+    "c_multiplybypi","sci_multiplybypi", "csci"; ...
+    "foo","sci_foo", "csci"; ...
+    "c_error","sci_cerror", "csci"; 
+    "c_sum6","sci_csum6", "csci6"; ...
+    "c_sub6","sci_csub6", "csci6"; ...
+    "c_multiplybypi6","sci_multiplybypi6", "csci6"; ...
+    "foo6","sci_foo6", "csci6"; ...
+    "c_error6","sci_cerror6", "csci6"], ..
+    ["sci_csum.c","sci_csub.c","sci_multiplybypi.c","sci_foo.c","sci_cerror.c", ...
+    "sci_csum6.c","sci_csub6.c","sci_multiplybypi6.c","sci_foo6.c","sci_cerror6.c"], ..
     get_absolute_file_path("builder_gateway_c.sce"), ..
     ["../../src/c/libcsum"], ..
     "", ..
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror6.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_cerror6.c
new file mode 100644 (file)
index 0000000..5a58f36
--- /dev/null
@@ -0,0 +1,25 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "sci_malloc.h"
+#include <localization.h>
+
+static const char fname[] = "cerror6";
+/* ==================================================================== */
+int sci_cerror6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    if (nin != 1)
+    {
+        Scierror(999, _d("toolbox_skeleton", "%s: I'm waiting for only one argument.\n"), fname);
+        return STATUS_ERROR;
+    }
+    else
+    {
+        Scierror(999, _d("toolbox_skeleton", "%s: Yeah! %d is a good number of arguments but I prefer fail, sorry.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+}
+/* ==================================================================== */
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csub6.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csub6.c
new file mode 100644 (file)
index 0000000..62ceab4
--- /dev/null
@@ -0,0 +1,52 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "csub.h"
+#include <localization.h>
+
+static const char fname[] = "csub6";
+/* ==================================================================== */
+int sci_csub6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    double in1 = 0;
+    double in2 = 0;
+    double out1 = 0;
+    /* --> result = csub(3,8)
+    /* check that we have only 2 input arguments */
+    /* check that we have only 1 output argument */
+    if (nin > 2)
+    {
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 2);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isScalar(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 2);
+        return 1;
+    }
+
+    //get value of input 1
+    scilab_getDouble(env, in[0], &in1);
+    //get value of input 2
+    scilab_getDouble(env, in[1], &in2);
+
+    /* call c function csub */
+    csub(&in1, &in2, &out1);
+
+    //create output var and assign it to first output
+    out[0] = scilab_createDouble(env, out1);
+    //return without error
+    return 0;
+}
+/* ==================================================================== */
+
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csum6.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_csum6.c
new file mode 100644 (file)
index 0000000..56afdc3
--- /dev/null
@@ -0,0 +1,53 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "sci_malloc.h"
+#include "csum.h"
+#include <localization.h>
+
+static const char fname[] = "csum6";
+/* ==================================================================== */
+int sci_csum6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    double in1 = 0;
+    double in2 = 0;
+    double out1 = 0;
+    /* --> result = csum(3,8)
+    /* check that we have only 2 input arguments */
+    /* check that we have only 1 output argument */
+    if (nin > 2)
+    {
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 2);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isScalar(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 2);
+        return 1;
+    }
+
+    //get value of input 1
+    scilab_getDouble(env, in[0], &in1);
+    //get value of input 2
+    scilab_getDouble(env, in[1], &in2);
+
+    /* call c function csub */
+    csum(&in1, &in2, &out1);
+
+    //create output var and assign it to first output
+    out[0] = scilab_createDouble(env, out1);
+    //return without error
+    return 0;
+}
+/* ==================================================================== */
+
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_foo6.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_foo6.c
new file mode 100644 (file)
index 0000000..99f137d
--- /dev/null
@@ -0,0 +1,82 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* Example detail in "API_scilab getting started" help page */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "BOOL.h"
+#include <localization.h>
+
+static const char fname[] = "foo6";
+/* ==================================================================== */
+int sci_foo6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    int row1 = 0;
+    int col1 = 0;
+    int size1 = 0;
+    double* in1 = NULL;
+    double* out1 = NULL;
+
+    int row2 = 0;
+    int col2 = 0;
+    int size2 = 0;
+    int* in2 = NULL;
+    int* out2 = NULL;
+
+    /* --> [a,b] = foo(d[i,j], b[i,j])
+    /* check that we have only 2 input arguments */
+    /* check that we have only 1 output argument */
+    if (nin > 2)
+    {
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 2);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isMatrix2d(env, in[0]) == 0 || scilab_isComplex(env, in[0]) == 1)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
+        return 1;
+    }
+
+    if (scilab_isBoolean(env, in[1]) == 0 || scilab_isMatrix2d(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, 2);
+        return 1;
+    }
+
+    size1 = scilab_getDim2d(env, in[0], &row1, &col1);
+    size2 = scilab_getDim2d(env, in[1], &row2, &col2);
+
+    if (row1 != row2 || col1 != col2)
+    {
+        Scierror(999, _("%s: Wrong size for input arguments: Same size expected.\n"), fname);
+        return 1;
+    }
+
+    scilab_getDoubleArray(env, in[0], &in1);
+    scilab_getBooleanArray(env, in[1], &in2);
+
+    out[0] = scilab_createDoubleMatrix2d(env, row1, col1, 0);
+    out[1] = scilab_createBooleanMatrix2d(env, row2, col2);
+
+    scilab_getDoubleArray(env, out[0], &out1);
+    scilab_getBooleanArray(env, out[1], &out2);
+
+    for (i = 0; i < size1; ++i)
+    {
+        //For each element of the matrix, multiply by 2 
+        out1[i] = in1[i] * 2;
+    }
+
+    for (i = 0; i < size2; ++i)
+    {
+        //For each element of the matrix, invert the value 
+        out2[i] = in2[i] == TRUE ? FALSE : TRUE;
+    }
+
+    return 0;
+}
+/* ==================================================================== */
+
diff --git a/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_multiplybypi6.c b/scilab/contrib/toolbox_skeleton/sci_gateway/c/sci_multiplybypi6.c
new file mode 100644 (file)
index 0000000..fa97bd1
--- /dev/null
@@ -0,0 +1,52 @@
+/* ==================================================================== */
+/* Template toolbox_skeleton */
+/* This file is released under the 3-clause BSD license. See COPYING-BSD. */
+/* ==================================================================== */
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "sci_malloc.h"
+#include "multiplybypi.h"
+#include <localization.h>
+
+static const char fname[] = "multiplybypi6";
+/* ==================================================================== */
+int sci_multiplybypi6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    double* in1 = 0;
+    double* out1 = 0;
+    int row = 0;
+    int col = 0;
+    int size = 0;
+    /* --> result = csum(3,8)
+    /* check that we have only 2 input arguments */
+    /* check that we have only 1 output argument */
+    if (nin > 2)
+    {
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 2);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isMatrix2d(env, in[0]) == 0)
+    {
+        Scierror(999, "%s: Wrong type for input argument #%d: A double matrix expected.\n", fname, 1);
+        return 1;
+    }
+
+    size = scilab_getDim2d(env, in[0], &row, &col);
+    out[0] = scilab_createDoubleMatrix2d(env, row, col, 0);
+
+    scilab_getDoubleArray(env, in[0], &in1);
+    scilab_getDoubleArray(env, out[0], &out1);
+    /* The difference with the csum & csub is that we give the argument as copy
+     * and not as reference */
+    for (i = 0; i < size; ++i)
+    {
+        /* For each element of the matrix, multiply by pi */
+        out1[i] = multiplybypi(in1[i]);
+    }
+
+    return 0;
+}
+/* ==================================================================== */
+
index badd2ef..023d2d4 100644 (file)
@@ -1,4 +1,5 @@
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 //=================================
 assert_checkequal(c_sum(3,5), 8);
+assert_checkequal(c_sum6(3,5), 8);
 //=================================
index badd2ef..023d2d4 100644 (file)
@@ -1,4 +1,5 @@
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 //=================================
 assert_checkequal(c_sum(3,5), 8);
+assert_checkequal(c_sum6(3,5), 8);
 //=================================
index 376f1fe..d1b216f 100644 (file)
@@ -6,22 +6,22 @@
 ### SOURCES ###
 
 API_SCILAB_CXX_SOURCES = \
-    src/cpp/api_boolean.cpp \
-    src/cpp/api_boolean_sparse.cpp \
-    src/cpp/api_common.cpp \
-    src/cpp/api_double.cpp \
-    src/cpp/api_int.cpp \
-    src/cpp/api_list.cpp \
-    src/cpp/api_poly.cpp \
-    src/cpp/api_sparse.cpp \
-    src/cpp/api_string.cpp \
-    src/cpp/api_pointer.cpp \
-    src/cpp/api_handle.cpp \
-    src/cpp/api_error.cpp \
-    src/cpp/api_hypermat.cpp \
+    src/cpp/api_stack_boolean.cpp \
+    src/cpp/api_stack_boolean_sparse.cpp \
+    src/cpp/api_stack_common.cpp \
+    src/cpp/api_stack_double.cpp \
+    src/cpp/api_stack_int.cpp \
+    src/cpp/api_stack_list.cpp \
+    src/cpp/api_stack_poly.cpp \
+    src/cpp/api_stack_sparse.cpp \
+    src/cpp/api_stack_string.cpp \
+    src/cpp/api_stack_pointer.cpp \
+    src/cpp/api_stack_handle.cpp \
+    src/cpp/api_stack_error.cpp \
+    src/cpp/api_stack_hypermat.cpp \
+    src/cpp/api_stack_optional.cpp \
     src/cpp/returnProperty.cpp \
     src/cpp/returnPropertyList.cpp \
-    src/cpp/api_optional.cpp \
     src/cpp/api_boolean_cpp.cpp \
     src/cpp/api_common_cpp.cpp \
     src/cpp/api_double_cpp.cpp \
@@ -30,7 +30,10 @@ API_SCILAB_CXX_SOURCES = \
     src/cpp/api_sparse_cpp.cpp \
     src/cpp/api_string_cpp.cpp \
     src/cpp/api_pointer_cpp.cpp \
-    src/cpp/api_handle_cpp.cpp
+    src/cpp/api_handle_cpp.cpp \
+    src/cpp/api_template_safe.cpp \
+    src/cpp/api_template_unsafe.cpp \
+    src/cpp/api_error.cpp
 
 libsciapi_scilab_la_CPPFLAGS= \
     -I$(srcdir)/includes/ \
@@ -91,20 +94,20 @@ libsciapi_scilab_la_etc_DATA = \
 #### api_scilab : include files ####
 libsciapi_scilab_la_includedir=$(pkgincludedir)
 libsciapi_scilab_la_include_HEADERS = \
-includes/api_boolean.h \
-includes/api_boolean_sparse.h \
-includes/api_common.h \
-includes/api_error.h \
-includes/api_double.h \
-includes/api_hypermat.h \
-includes/api_int.h \
-includes/api_list.h \
-includes/api_pointer.h \
-includes/api_poly.h \
-includes/api_sparse.h \
-includes/api_string.h \
-includes/api_handle.h \
-includes/api_optional.h \
+includes/api_stack_boolean.h \
+includes/api_stack_boolean_sparse.h \
+includes/api_stack_common.h \
+includes/api_stack_error.h \
+includes/api_stack_double.h \
+includes/api_stack_hypermat.h \
+includes/api_stack_int.h \
+includes/api_stack_list.h \
+includes/api_stack_pointer.h \
+includes/api_stack_poly.h \
+includes/api_stack_sparse.h \
+includes/api_stack_string.h \
+includes/api_stack_handle.h \
+includes/api_stack_optional.h \
 includes/api_scilab.h \
 includes/dynlib_api_scilab.h \
 includes/api_boolean.hxx \
@@ -117,6 +120,16 @@ includes/api_pointer.hxx \
 includes/api_scilab.hxx \
 includes/api_sparse.hxx \
 includes/api_string.hxx \
-includes/api_variable.hxx
+includes/api_variable.hxx \
+includes/api_boolean.h \
+includes/api_cell.h \
+includes/api_common.h \
+includes/api_double.h \
+includes/api_error.h \
+includes/api_int.h \
+includes/api_list.h \
+includes/api_poly.h
+
+
 
 include $(top_srcdir)/Makefile.incl.am
index ffd304c..69111b8 100644 (file)
@@ -176,22 +176,22 @@ am__installdirs = "$(DESTDIR)$(pkglibdir)" \
 LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
 libsciapi_scilab_la_DEPENDENCIES =
 am__dirstamp = $(am__leading_dot)dirstamp
-am__objects_1 = src/cpp/libsciapi_scilab_la-api_boolean.lo \
-       src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo \
-       src/cpp/libsciapi_scilab_la-api_common.lo \
-       src/cpp/libsciapi_scilab_la-api_double.lo \
-       src/cpp/libsciapi_scilab_la-api_int.lo \
-       src/cpp/libsciapi_scilab_la-api_list.lo \
-       src/cpp/libsciapi_scilab_la-api_poly.lo \
-       src/cpp/libsciapi_scilab_la-api_sparse.lo \
-       src/cpp/libsciapi_scilab_la-api_string.lo \
-       src/cpp/libsciapi_scilab_la-api_pointer.lo \
-       src/cpp/libsciapi_scilab_la-api_handle.lo \
-       src/cpp/libsciapi_scilab_la-api_error.lo \
-       src/cpp/libsciapi_scilab_la-api_hypermat.lo \
+am__objects_1 = src/cpp/libsciapi_scilab_la-api_stack_boolean.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_common.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_double.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_int.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_list.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_poly.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_sparse.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_string.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_pointer.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_handle.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_error.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo \
+       src/cpp/libsciapi_scilab_la-api_stack_optional.lo \
        src/cpp/libsciapi_scilab_la-returnProperty.lo \
        src/cpp/libsciapi_scilab_la-returnPropertyList.lo \
-       src/cpp/libsciapi_scilab_la-api_optional.lo \
        src/cpp/libsciapi_scilab_la-api_boolean_cpp.lo \
        src/cpp/libsciapi_scilab_la-api_common_cpp.lo \
        src/cpp/libsciapi_scilab_la-api_double_cpp.lo \
@@ -200,7 +200,10 @@ am__objects_1 = src/cpp/libsciapi_scilab_la-api_boolean.lo \
        src/cpp/libsciapi_scilab_la-api_sparse_cpp.lo \
        src/cpp/libsciapi_scilab_la-api_string_cpp.lo \
        src/cpp/libsciapi_scilab_la-api_pointer_cpp.lo \
-       src/cpp/libsciapi_scilab_la-api_handle_cpp.lo
+       src/cpp/libsciapi_scilab_la-api_handle_cpp.lo \
+       src/cpp/libsciapi_scilab_la-api_template_safe.lo \
+       src/cpp/libsciapi_scilab_la-api_template_unsafe.lo \
+       src/cpp/libsciapi_scilab_la-api_error.lo
 am_libsciapi_scilab_la_OBJECTS = $(am__objects_1)
 libsciapi_scilab_la_OBJECTS = $(am_libsciapi_scilab_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -570,22 +573,22 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 yacc_present = @yacc_present@
 API_SCILAB_CXX_SOURCES = \
-    src/cpp/api_boolean.cpp \
-    src/cpp/api_boolean_sparse.cpp \
-    src/cpp/api_common.cpp \
-    src/cpp/api_double.cpp \
-    src/cpp/api_int.cpp \
-    src/cpp/api_list.cpp \
-    src/cpp/api_poly.cpp \
-    src/cpp/api_sparse.cpp \
-    src/cpp/api_string.cpp \
-    src/cpp/api_pointer.cpp \
-    src/cpp/api_handle.cpp \
-    src/cpp/api_error.cpp \
-    src/cpp/api_hypermat.cpp \
+    src/cpp/api_stack_boolean.cpp \
+    src/cpp/api_stack_boolean_sparse.cpp \
+    src/cpp/api_stack_common.cpp \
+    src/cpp/api_stack_double.cpp \
+    src/cpp/api_stack_int.cpp \
+    src/cpp/api_stack_list.cpp \
+    src/cpp/api_stack_poly.cpp \
+    src/cpp/api_stack_sparse.cpp \
+    src/cpp/api_stack_string.cpp \
+    src/cpp/api_stack_pointer.cpp \
+    src/cpp/api_stack_handle.cpp \
+    src/cpp/api_stack_error.cpp \
+    src/cpp/api_stack_hypermat.cpp \
+    src/cpp/api_stack_optional.cpp \
     src/cpp/returnProperty.cpp \
     src/cpp/returnPropertyList.cpp \
-    src/cpp/api_optional.cpp \
     src/cpp/api_boolean_cpp.cpp \
     src/cpp/api_common_cpp.cpp \
     src/cpp/api_double_cpp.cpp \
@@ -594,7 +597,10 @@ API_SCILAB_CXX_SOURCES = \
     src/cpp/api_sparse_cpp.cpp \
     src/cpp/api_string_cpp.cpp \
     src/cpp/api_pointer_cpp.cpp \
-    src/cpp/api_handle_cpp.cpp
+    src/cpp/api_handle_cpp.cpp \
+    src/cpp/api_template_safe.cpp \
+    src/cpp/api_template_unsafe.cpp \
+    src/cpp/api_error.cpp
 
 libsciapi_scilab_la_CPPFLAGS = \
     -I$(srcdir)/includes/ \
@@ -646,20 +652,20 @@ libsciapi_scilab_la_etc_DATA = \
 #### api_scilab : include files ####
 libsciapi_scilab_la_includedir = $(pkgincludedir)
 libsciapi_scilab_la_include_HEADERS = \
-includes/api_boolean.h \
-includes/api_boolean_sparse.h \
-includes/api_common.h \
-includes/api_error.h \
-includes/api_double.h \
-includes/api_hypermat.h \
-includes/api_int.h \
-includes/api_list.h \
-includes/api_pointer.h \
-includes/api_poly.h \
-includes/api_sparse.h \
-includes/api_string.h \
-includes/api_handle.h \
-includes/api_optional.h \
+includes/api_stack_boolean.h \
+includes/api_stack_boolean_sparse.h \
+includes/api_stack_common.h \
+includes/api_stack_error.h \
+includes/api_stack_double.h \
+includes/api_stack_hypermat.h \
+includes/api_stack_int.h \
+includes/api_stack_list.h \
+includes/api_stack_pointer.h \
+includes/api_stack_poly.h \
+includes/api_stack_sparse.h \
+includes/api_stack_string.h \
+includes/api_stack_handle.h \
+includes/api_stack_optional.h \
 includes/api_scilab.h \
 includes/dynlib_api_scilab.h \
 includes/api_boolean.hxx \
@@ -672,7 +678,15 @@ includes/api_pointer.hxx \
 includes/api_scilab.hxx \
 includes/api_sparse.hxx \
 includes/api_string.hxx \
-includes/api_variable.hxx
+includes/api_variable.hxx \
+includes/api_boolean.h \
+includes/api_cell.h \
+includes/api_common.h \
+includes/api_double.h \
+includes/api_error.h \
+includes/api_int.h \
+includes/api_list.h \
+includes/api_poly.h
 
 
 # Where all the Scilab stuff is installed (macros, help, ...)
@@ -833,38 +847,38 @@ src/cpp/$(am__dirstamp):
 src/cpp/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) src/cpp/$(DEPDIR)
        @: > src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_boolean.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo:  \
+src/cpp/libsciapi_scilab_la-api_stack_boolean.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_common.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_double.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_int.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_list.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_poly.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_sparse.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_string.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_pointer.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_handle.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_error.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_hypermat.lo: src/cpp/$(am__dirstamp) \
+src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_common.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_double.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_int.lo: src/cpp/$(am__dirstamp) \
        src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_list.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_poly.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_sparse.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_string.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_pointer.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_handle.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_error.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_stack_optional.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciapi_scilab_la-returnProperty.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciapi_scilab_la-returnPropertyList.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciapi_scilab_la-api_optional.lo: src/cpp/$(am__dirstamp) \
-       src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciapi_scilab_la-api_boolean_cpp.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciapi_scilab_la-api_common_cpp.lo:  \
@@ -883,6 +897,12 @@ src/cpp/libsciapi_scilab_la-api_pointer_cpp.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciapi_scilab_la-api_handle_cpp.lo:  \
        src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_template_safe.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_template_unsafe.lo:  \
+       src/cpp/$(am__dirstamp) src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciapi_scilab_la-api_error.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
 
 libsciapi_scilab.la: $(libsciapi_scilab_la_OBJECTS) $(libsciapi_scilab_la_DEPENDENCIES) $(EXTRA_libsciapi_scilab_la_DEPENDENCIES) 
        $(AM_V_CXXLD)$(libsciapi_scilab_la_LINK) $(am_libsciapi_scilab_la_rpath) $(libsciapi_scilab_la_OBJECTS) $(libsciapi_scilab_la_LIBADD) $(LIBS)
@@ -895,29 +915,32 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_sparse.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_common.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_common_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_double.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_double_cpp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_handle.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_handle_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_hypermat.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_int.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_int_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_list.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_list_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_optional.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_pointer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_pointer_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_poly.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_sparse.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_sparse_cpp.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_string.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean_sparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_common.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_double.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_error.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_handle.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_hypermat.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_int.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_list.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_optional.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_pointer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_poly.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_sparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_string.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_string_cpp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_safe.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_unsafe.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-returnProperty.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciapi_scilab_la-returnPropertyList.Plo@am__quote@
 
@@ -945,96 +968,103 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
-src/cpp/libsciapi_scilab_la-api_boolean.lo: src/cpp/api_boolean.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_boolean.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean.Tpo -c -o src/cpp/libsciapi_scilab_la-api_boolean.lo `test -f 'src/cpp/api_boolean.cpp' || echo '$(srcdir)/'`src/cpp/api_boolean.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_boolean.cpp' object='src/cpp/libsciapi_scilab_la-api_boolean.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_boolean.lo: src/cpp/api_stack_boolean.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_boolean.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_boolean.lo `test -f 'src/cpp/api_stack_boolean.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_boolean.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_boolean.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_boolean.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_boolean.lo `test -f 'src/cpp/api_boolean.cpp' || echo '$(srcdir)/'`src/cpp/api_boolean.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_boolean.lo `test -f 'src/cpp/api_stack_boolean.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_boolean.cpp
 
-src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo: src/cpp/api_boolean_sparse.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_sparse.Tpo -c -o src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo `test -f 'src/cpp/api_boolean_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_boolean_sparse.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_sparse.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_sparse.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_boolean_sparse.cpp' object='src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo: src/cpp/api_stack_boolean_sparse.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean_sparse.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo `test -f 'src/cpp/api_stack_boolean_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_boolean_sparse.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean_sparse.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_boolean_sparse.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_boolean_sparse.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_boolean_sparse.lo `test -f 'src/cpp/api_boolean_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_boolean_sparse.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_boolean_sparse.lo `test -f 'src/cpp/api_stack_boolean_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_boolean_sparse.cpp
 
-src/cpp/libsciapi_scilab_la-api_common.lo: src/cpp/api_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_common.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_common.Tpo -c -o src/cpp/libsciapi_scilab_la-api_common.lo `test -f 'src/cpp/api_common.cpp' || echo '$(srcdir)/'`src/cpp/api_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_common.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_common.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_common.cpp' object='src/cpp/libsciapi_scilab_la-api_common.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_common.lo: src/cpp/api_stack_common.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_common.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_common.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_common.lo `test -f 'src/cpp/api_stack_common.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_common.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_common.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_common.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_common.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_common.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_common.lo `test -f 'src/cpp/api_common.cpp' || echo '$(srcdir)/'`src/cpp/api_common.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_common.lo `test -f 'src/cpp/api_stack_common.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_common.cpp
 
-src/cpp/libsciapi_scilab_la-api_double.lo: src/cpp/api_double.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_double.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_double.Tpo -c -o src/cpp/libsciapi_scilab_la-api_double.lo `test -f 'src/cpp/api_double.cpp' || echo '$(srcdir)/'`src/cpp/api_double.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_double.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_double.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_double.cpp' object='src/cpp/libsciapi_scilab_la-api_double.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_double.lo: src/cpp/api_stack_double.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_double.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_double.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_double.lo `test -f 'src/cpp/api_stack_double.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_double.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_double.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_double.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_double.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_double.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_double.lo `test -f 'src/cpp/api_double.cpp' || echo '$(srcdir)/'`src/cpp/api_double.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_double.lo `test -f 'src/cpp/api_stack_double.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_double.cpp
 
-src/cpp/libsciapi_scilab_la-api_int.lo: src/cpp/api_int.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_int.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_int.Tpo -c -o src/cpp/libsciapi_scilab_la-api_int.lo `test -f 'src/cpp/api_int.cpp' || echo '$(srcdir)/'`src/cpp/api_int.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_int.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_int.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_int.cpp' object='src/cpp/libsciapi_scilab_la-api_int.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_int.lo: src/cpp/api_stack_int.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_int.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_int.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_int.lo `test -f 'src/cpp/api_stack_int.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_int.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_int.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_int.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_int.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_int.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_int.lo `test -f 'src/cpp/api_int.cpp' || echo '$(srcdir)/'`src/cpp/api_int.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_int.lo `test -f 'src/cpp/api_stack_int.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_int.cpp
 
-src/cpp/libsciapi_scilab_la-api_list.lo: src/cpp/api_list.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_list.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_list.Tpo -c -o src/cpp/libsciapi_scilab_la-api_list.lo `test -f 'src/cpp/api_list.cpp' || echo '$(srcdir)/'`src/cpp/api_list.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_list.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_list.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_list.cpp' object='src/cpp/libsciapi_scilab_la-api_list.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_list.lo: src/cpp/api_stack_list.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_list.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_list.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_list.lo `test -f 'src/cpp/api_stack_list.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_list.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_list.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_list.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_list.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_list.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_list.lo `test -f 'src/cpp/api_list.cpp' || echo '$(srcdir)/'`src/cpp/api_list.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_list.lo `test -f 'src/cpp/api_stack_list.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_list.cpp
 
-src/cpp/libsciapi_scilab_la-api_poly.lo: src/cpp/api_poly.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_poly.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_poly.Tpo -c -o src/cpp/libsciapi_scilab_la-api_poly.lo `test -f 'src/cpp/api_poly.cpp' || echo '$(srcdir)/'`src/cpp/api_poly.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_poly.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_poly.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_poly.cpp' object='src/cpp/libsciapi_scilab_la-api_poly.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_poly.lo: src/cpp/api_stack_poly.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_poly.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_poly.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_poly.lo `test -f 'src/cpp/api_stack_poly.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_poly.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_poly.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_poly.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_poly.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_poly.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_poly.lo `test -f 'src/cpp/api_poly.cpp' || echo '$(srcdir)/'`src/cpp/api_poly.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_poly.lo `test -f 'src/cpp/api_stack_poly.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_poly.cpp
 
-src/cpp/libsciapi_scilab_la-api_sparse.lo: src/cpp/api_sparse.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_sparse.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_sparse.Tpo -c -o src/cpp/libsciapi_scilab_la-api_sparse.lo `test -f 'src/cpp/api_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_sparse.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_sparse.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_sparse.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_sparse.cpp' object='src/cpp/libsciapi_scilab_la-api_sparse.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_sparse.lo: src/cpp/api_stack_sparse.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_sparse.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_sparse.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_sparse.lo `test -f 'src/cpp/api_stack_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_sparse.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_sparse.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_sparse.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_sparse.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_sparse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_sparse.lo `test -f 'src/cpp/api_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_sparse.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_sparse.lo `test -f 'src/cpp/api_stack_sparse.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_sparse.cpp
 
-src/cpp/libsciapi_scilab_la-api_string.lo: src/cpp/api_string.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_string.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_string.Tpo -c -o src/cpp/libsciapi_scilab_la-api_string.lo `test -f 'src/cpp/api_string.cpp' || echo '$(srcdir)/'`src/cpp/api_string.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_string.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_string.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_string.cpp' object='src/cpp/libsciapi_scilab_la-api_string.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_string.lo: src/cpp/api_stack_string.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_string.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_string.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_string.lo `test -f 'src/cpp/api_stack_string.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_string.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_string.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_string.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_string.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_string.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_string.lo `test -f 'src/cpp/api_string.cpp' || echo '$(srcdir)/'`src/cpp/api_string.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_string.lo `test -f 'src/cpp/api_stack_string.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_string.cpp
 
-src/cpp/libsciapi_scilab_la-api_pointer.lo: src/cpp/api_pointer.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_pointer.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_pointer.Tpo -c -o src/cpp/libsciapi_scilab_la-api_pointer.lo `test -f 'src/cpp/api_pointer.cpp' || echo '$(srcdir)/'`src/cpp/api_pointer.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_pointer.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_pointer.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_pointer.cpp' object='src/cpp/libsciapi_scilab_la-api_pointer.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_pointer.lo: src/cpp/api_stack_pointer.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_pointer.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_pointer.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_pointer.lo `test -f 'src/cpp/api_stack_pointer.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_pointer.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_pointer.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_pointer.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_pointer.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_pointer.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_pointer.lo `test -f 'src/cpp/api_pointer.cpp' || echo '$(srcdir)/'`src/cpp/api_pointer.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_pointer.lo `test -f 'src/cpp/api_stack_pointer.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_pointer.cpp
 
-src/cpp/libsciapi_scilab_la-api_handle.lo: src/cpp/api_handle.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_handle.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_handle.Tpo -c -o src/cpp/libsciapi_scilab_la-api_handle.lo `test -f 'src/cpp/api_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_handle.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_handle.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_handle.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_handle.cpp' object='src/cpp/libsciapi_scilab_la-api_handle.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_handle.lo: src/cpp/api_stack_handle.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_handle.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_handle.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_handle.lo `test -f 'src/cpp/api_stack_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_handle.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_handle.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_handle.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_handle.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_handle.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_handle.lo `test -f 'src/cpp/api_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_handle.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_handle.lo `test -f 'src/cpp/api_stack_handle.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_handle.cpp
 
-src/cpp/libsciapi_scilab_la-api_error.lo: src/cpp/api_error.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_error.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Tpo -c -o src/cpp/libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_error.cpp' object='src/cpp/libsciapi_scilab_la-api_error.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_error.lo: src/cpp/api_stack_error.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_error.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_error.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_error.lo `test -f 'src/cpp/api_stack_error.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_error.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_error.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_error.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_error.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_error.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_error.lo `test -f 'src/cpp/api_stack_error.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_error.cpp
 
-src/cpp/libsciapi_scilab_la-api_hypermat.lo: src/cpp/api_hypermat.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_hypermat.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_hypermat.Tpo -c -o src/cpp/libsciapi_scilab_la-api_hypermat.lo `test -f 'src/cpp/api_hypermat.cpp' || echo '$(srcdir)/'`src/cpp/api_hypermat.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_hypermat.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_hypermat.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_hypermat.cpp' object='src/cpp/libsciapi_scilab_la-api_hypermat.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo: src/cpp/api_stack_hypermat.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_hypermat.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo `test -f 'src/cpp/api_stack_hypermat.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_hypermat.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_hypermat.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_hypermat.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_hypermat.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_hypermat.lo `test -f 'src/cpp/api_hypermat.cpp' || echo '$(srcdir)/'`src/cpp/api_hypermat.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_hypermat.lo `test -f 'src/cpp/api_stack_hypermat.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_hypermat.cpp
+
+src/cpp/libsciapi_scilab_la-api_stack_optional.lo: src/cpp/api_stack_optional.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_stack_optional.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_optional.Tpo -c -o src/cpp/libsciapi_scilab_la-api_stack_optional.lo `test -f 'src/cpp/api_stack_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_optional.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_optional.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_stack_optional.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_stack_optional.cpp' object='src/cpp/libsciapi_scilab_la-api_stack_optional.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_stack_optional.lo `test -f 'src/cpp/api_stack_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_stack_optional.cpp
 
 src/cpp/libsciapi_scilab_la-returnProperty.lo: src/cpp/returnProperty.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-returnProperty.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-returnProperty.Tpo -c -o src/cpp/libsciapi_scilab_la-returnProperty.lo `test -f 'src/cpp/returnProperty.cpp' || echo '$(srcdir)/'`src/cpp/returnProperty.cpp
@@ -1050,13 +1080,6 @@ src/cpp/libsciapi_scilab_la-returnPropertyList.lo: src/cpp/returnPropertyList.cp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-returnPropertyList.lo `test -f 'src/cpp/returnPropertyList.cpp' || echo '$(srcdir)/'`src/cpp/returnPropertyList.cpp
 
-src/cpp/libsciapi_scilab_la-api_optional.lo: src/cpp/api_optional.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_optional.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_optional.Tpo -c -o src/cpp/libsciapi_scilab_la-api_optional.lo `test -f 'src/cpp/api_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_optional.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_optional.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_optional.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_optional.cpp' object='src/cpp/libsciapi_scilab_la-api_optional.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_optional.lo `test -f 'src/cpp/api_optional.cpp' || echo '$(srcdir)/'`src/cpp/api_optional.cpp
-
 src/cpp/libsciapi_scilab_la-api_boolean_cpp.lo: src/cpp/api_boolean_cpp.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_boolean_cpp.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_cpp.Tpo -c -o src/cpp/libsciapi_scilab_la-api_boolean_cpp.lo `test -f 'src/cpp/api_boolean_cpp.cpp' || echo '$(srcdir)/'`src/cpp/api_boolean_cpp.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_cpp.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_boolean_cpp.Plo
@@ -1120,6 +1143,27 @@ src/cpp/libsciapi_scilab_la-api_handle_cpp.lo: src/cpp/api_handle_cpp.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_handle_cpp.lo `test -f 'src/cpp/api_handle_cpp.cpp' || echo '$(srcdir)/'`src/cpp/api_handle_cpp.cpp
 
+src/cpp/libsciapi_scilab_la-api_template_safe.lo: src/cpp/api_template_safe.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_template_safe.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_safe.Tpo -c -o src/cpp/libsciapi_scilab_la-api_template_safe.lo `test -f 'src/cpp/api_template_safe.cpp' || echo '$(srcdir)/'`src/cpp/api_template_safe.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_safe.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_safe.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_template_safe.cpp' object='src/cpp/libsciapi_scilab_la-api_template_safe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_template_safe.lo `test -f 'src/cpp/api_template_safe.cpp' || echo '$(srcdir)/'`src/cpp/api_template_safe.cpp
+
+src/cpp/libsciapi_scilab_la-api_template_unsafe.lo: src/cpp/api_template_unsafe.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_template_unsafe.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_unsafe.Tpo -c -o src/cpp/libsciapi_scilab_la-api_template_unsafe.lo `test -f 'src/cpp/api_template_unsafe.cpp' || echo '$(srcdir)/'`src/cpp/api_template_unsafe.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_unsafe.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_template_unsafe.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_template_unsafe.cpp' object='src/cpp/libsciapi_scilab_la-api_template_unsafe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_template_unsafe.lo `test -f 'src/cpp/api_template_unsafe.cpp' || echo '$(srcdir)/'`src/cpp/api_template_unsafe.cpp
+
+src/cpp/libsciapi_scilab_la-api_error.lo: src/cpp/api_error.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciapi_scilab_la-api_error.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Tpo -c -o src/cpp/libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Tpo src/cpp/$(DEPDIR)/libsciapi_scilab_la-api_error.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/api_error.cpp' object='src/cpp/libsciapi_scilab_la-api_error.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciapi_scilab_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciapi_scilab_la-api_error.lo `test -f 'src/cpp/api_error.cpp' || echo '$(srcdir)/'`src/cpp/api_error.cpp
+
 mostlyclean-libtool:
        -rm -f *.lo
 
index 57e87c3..07ca77c 100644 (file)
@@ -81,7 +81,7 @@
     <ClCompile>
       <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;src/cpp;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -132,7 +132,7 @@ cd .. &gt;nul
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;src/cpp;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -184,7 +184,7 @@ cd .. &gt;nul
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;src/cpp;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -245,7 +245,7 @@ cd .. &gt;nul
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;src/cpp;../core/includes;../call_scilab/includes;../string/includes;../output_stream/includes;../localization/includes;../../libs/intl;../elementary_functions/includes;../threads/includes;../console/includes;../dynamic_link/includes;../ast/includes/types;../ast/includes/ast;../ast/includes/analysis;../ast/includes/exps;../ast/includes/operations;../ast/includes/symbol;../ast/includes/system_env</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -298,70 +298,100 @@ cd .. &gt;nul
     </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="src\cpp\api_boolean.cpp" />
+    <ClCompile Include="src\cpp\api_stack_boolean.cpp" />
     <ClCompile Include="src\cpp\api_boolean_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_boolean_sparse.cpp" />
-    <ClCompile Include="src\cpp\api_common.cpp" />
+    <ClCompile Include="src\cpp\api_stack_boolean_sparse.cpp" />
+    <ClCompile Include="src\cpp\api_template_safe.cpp" />
+    <ClCompile Include="src\cpp\api_stack_common.cpp" />
     <ClCompile Include="src\cpp\api_common_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_double.cpp" />
-    <ClCompile Include="src\cpp\api_double_cpp.cpp" />
     <ClCompile Include="src\cpp\api_error.cpp" />
-    <ClCompile Include="src\cpp\api_handle.cpp" />
+    <ClCompile Include="src\cpp\api_stack_double.cpp" />
+    <ClCompile Include="src\cpp\api_double_cpp.cpp" />
+    <ClCompile Include="src\cpp\api_stack_error.cpp" />
+    <ClCompile Include="src\cpp\api_stack_handle.cpp" />
     <ClCompile Include="src\cpp\api_handle_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_hypermat.cpp" />
-    <ClCompile Include="src\cpp\api_int.cpp" />
+    <ClCompile Include="src\cpp\api_stack_hypermat.cpp" />
+    <ClCompile Include="src\cpp\api_stack_int.cpp" />
     <ClCompile Include="src\cpp\api_int_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_list.cpp" />
+    <ClCompile Include="src\cpp\api_stack_list.cpp" />
     <ClCompile Include="src\cpp\api_list_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_optional.cpp" />
-    <ClCompile Include="src\cpp\api_pointer.cpp" />
+    <ClCompile Include="src\cpp\api_stack_optional.cpp" />
+    <ClCompile Include="src\cpp\api_stack_pointer.cpp" />
     <ClCompile Include="src\cpp\api_pointer_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_poly.cpp" />
-    <ClCompile Include="src\cpp\api_sparse.cpp" />
+    <ClCompile Include="src\cpp\api_stack_poly.cpp" />
+    <ClCompile Include="src\cpp\api_stack_sparse.cpp" />
     <ClCompile Include="src\cpp\api_sparse_cpp.cpp" />
-    <ClCompile Include="src\cpp\api_string.cpp" />
+    <ClCompile Include="src\cpp\api_stack_string.cpp" />
     <ClCompile Include="src\cpp\api_string_cpp.cpp" />
+    <ClCompile Include="src\cpp\api_template_unsafe.cpp" />
     <ClCompile Include="src\cpp\returnProperty.cpp" />
     <ClCompile Include="src\cpp\returnPropertyList.cpp" />
     <ClCompile Include="src\c\DllmainApi_scilab.c" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="includes\api_boolean.h" />
-    <ClInclude Include="includes\api_boolean.hxx" />
-    <ClInclude Include="includes\api_boolean_sparse.h" />
     <ClInclude Include="includes\api_common.h" />
+    <ClInclude Include="includes\api_handle.h" />
+    <ClInclude Include="includes\api_int.h" />
+    <ClInclude Include="includes\api_list.h" />
+    <ClInclude Include="includes\api_optional.h" />
+    <ClInclude Include="includes\api_poly.h" />
+    <ClInclude Include="includes\api_stack_boolean.h" />
+    <ClInclude Include="includes\api_boolean.hxx" />
+    <ClInclude Include="includes\api_stack_boolean_sparse.h" />
+    <ClInclude Include="includes\api_cell.h" />
+    <ClInclude Include="includes\api_stack_common.h" />
     <ClInclude Include="includes\api_common.hxx" />
     <ClInclude Include="includes\api_double.h" />
-    <ClInclude Include="includes\api_double.hxx" />
     <ClInclude Include="includes\api_error.h" />
-    <ClInclude Include="includes\api_handle.h" />
+    <ClInclude Include="includes\api_stack_double.h" />
+    <ClInclude Include="includes\api_double.hxx" />
+    <ClInclude Include="includes\api_stack_error.h" />
+    <ClInclude Include="includes\api_stack_handle.h" />
     <ClInclude Include="includes\api_handle.hxx" />
-    <ClInclude Include="includes\api_hypermat.h" />
-    <ClInclude Include="includes\api_int.h" />
+    <ClInclude Include="includes\api_stack_hypermat.h" />
+    <ClInclude Include="includes\api_stack_int.h" />
     <ClInclude Include="includes\api_int.hxx" />
     <ClInclude Include="includes\api_list.hxx" />
-    <ClInclude Include="includes\api_optional.h" />
+    <ClInclude Include="includes\api_stack_optional.h" />
     <ClInclude Include="includes\api_pointer.hxx" />
     <ClInclude Include="includes\api_scilab.hxx" />
     <ClInclude Include="includes\api_sparse.hxx" />
+    <ClInclude Include="includes\api_string.h" />
     <ClInclude Include="includes\api_string.hxx" />
+    <ClInclude Include="includes\api_struct.h" />
+    <ClInclude Include="includes\api_pointer.h" />
     <ClInclude Include="includes\api_variable.hxx" />
     <ClInclude Include="includes\returnProperty.h" />
     <ClInclude Include="includes\returnPropertyList.h" />
     <ClInclude Include="src\cpp\api_internal_boolean_sparse.h" />
     <ClInclude Include="src\cpp\api_internal_common.h" />
     <ClInclude Include="src\cpp\api_internal_double.h" />
+    <ClInclude Include="src\cpp\api_internal_error.hxx" />
     <ClInclude Include="src\cpp\api_internal_int.h" />
     <ClInclude Include="src\cpp\api_internal_pointer.h" />
     <ClInclude Include="src\cpp\api_internal_poly.h" />
     <ClInclude Include="src\cpp\api_internal_sparse.h" />
-    <ClInclude Include="includes\api_list.h" />
-    <ClInclude Include="includes\api_pointer.h" />
-    <ClInclude Include="includes\api_poly.h" />
+    <ClInclude Include="includes\api_stack_list.h" />
+    <ClInclude Include="includes\api_stack_pointer.h" />
+    <ClInclude Include="includes\api_stack_poly.h" />
     <ClInclude Include="includes\api_scilab.h" />
-    <ClInclude Include="includes\api_sparse.h" />
-    <ClInclude Include="includes\api_string.h" />
+    <ClInclude Include="includes\api_stack_sparse.h" />
+    <ClInclude Include="includes\api_stack_string.h" />
     <ClInclude Include="includes\dynlib_api_scilab.h" />
+    <ClInclude Include="src\cpp\template\api_cell.hpp" />
+    <ClInclude Include="src\cpp\template\api_common.hpp" />
+    <ClInclude Include="src\cpp\template\api_double.hpp" />
+    <ClInclude Include="src\cpp\template\api_handle.hpp" />
+    <ClInclude Include="src\cpp\template\api_int.hpp" />
+    <ClInclude Include="src\cpp\template\api_list.hpp" />
+    <ClInclude Include="src\cpp\template\api_optional.hpp" />
+    <ClInclude Include="src\cpp\template\api_poly.hpp" />
+    <ClInclude Include="src\cpp\template\api_string.hpp" />
+    <ClInclude Include="src\cpp\template\api_struct.hpp" />
+    <ClInclude Include="src\cpp\template\api_template.h" />
+    <ClInclude Include="src\cpp\template\api_boolean.hpp" />
+    <ClInclude Include="src\cpp\template\api_pointer.hpp" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="src\c\api_scilab.rc" />
index 2a5599b..ed6b0c2 100644 (file)
     <Filter Include="Libraries Dependencies\Export">
       <UniqueIdentifier>{a5fd53b0-ac0c-4220-9487-7028c8cbe485}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Header Files\template">
+      <UniqueIdentifier>{4d2f026a-8f75-4bce-bfd9-5e27b1088b5d}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="src\cpp\api_boolean.cpp">
+    <ClCompile Include="src\c\DllmainApi_scilab.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_boolean_sparse.cpp">
+    <ClCompile Include="src\cpp\returnProperty.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_common.cpp">
+    <ClCompile Include="src\cpp\returnPropertyList.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_double.cpp">
+    <ClCompile Include="src\cpp\api_double_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_error.cpp">
+    <ClCompile Include="src\cpp\api_common_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_int.cpp">
+    <ClCompile Include="src\cpp\api_string_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_list.cpp">
+    <ClCompile Include="src\cpp\api_int_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_pointer.cpp">
+    <ClCompile Include="src\cpp\api_boolean_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_poly.cpp">
+    <ClCompile Include="src\cpp\api_sparse_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_sparse.cpp">
+    <ClCompile Include="src\cpp\api_handle_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_string.cpp">
+    <ClCompile Include="src\cpp\api_pointer_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\c\DllmainApi_scilab.c">
+    <ClCompile Include="src\cpp\api_list_cpp.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_handle.cpp">
+    <ClCompile Include="src\cpp\api_stack_double.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_optional.cpp">
+    <ClCompile Include="src\cpp\api_stack_error.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\returnProperty.cpp">
+    <ClCompile Include="src\cpp\api_error.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\returnPropertyList.cpp">
+    <ClCompile Include="src\cpp\api_stack_boolean.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_double_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_boolean_sparse.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_common_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_common.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_string_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_handle.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_int_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_hypermat.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_boolean_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_int.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_sparse_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_list.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_handle_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_optional.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_pointer_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_pointer.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_list_cpp.cpp">
+    <ClCompile Include="src\cpp\api_stack_poly.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\api_hypermat.cpp">
+    <ClCompile Include="src\cpp\api_stack_sparse.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\api_stack_string.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\api_template_safe.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\api_template_unsafe.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="includes\api_boolean.h">
+    <ClInclude Include="src\cpp\api_internal_boolean_sparse.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_boolean_sparse.h">
+    <ClInclude Include="src\cpp\api_internal_common.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_common.h">
+    <ClInclude Include="src\cpp\api_internal_int.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_double.h">
+    <ClInclude Include="src\cpp\api_internal_pointer.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_error.h">
+    <ClInclude Include="src\cpp\api_internal_poly.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_int.h">
+    <ClInclude Include="src\cpp\api_internal_sparse.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_boolean_sparse.h">
+    <ClInclude Include="includes\api_scilab.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_common.h">
+    <ClInclude Include="includes\dynlib_api_scilab.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_double.h">
+    <ClInclude Include="includes\returnProperty.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_int.h">
+    <ClInclude Include="includes\returnPropertyList.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_pointer.h">
+    <ClInclude Include="includes\api_scilab.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_poly.h">
+    <ClInclude Include="includes\api_double.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\api_internal_sparse.h">
+    <ClInclude Include="includes\api_common.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_list.h">
+    <ClInclude Include="includes\api_string.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_pointer.h">
+    <ClInclude Include="includes\api_variable.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_poly.h">
+    <ClInclude Include="includes\api_int.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_scilab.h">
+    <ClInclude Include="includes\api_boolean.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_sparse.h">
+    <ClInclude Include="includes\api_sparse.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_string.h">
+    <ClInclude Include="includes\api_handle.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\dynlib_api_scilab.h">
+    <ClInclude Include="includes\api_pointer.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_handle.h">
+    <ClInclude Include="includes\api_list.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_optional.h">
+    <ClInclude Include="includes\api_struct.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\returnProperty.h">
+    <ClInclude Include="src\cpp\template\api_double.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_stack_double.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\returnPropertyList.h">
+    <ClInclude Include="includes\api_stack_error.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_scilab.hxx">
+    <ClInclude Include="includes\api_error.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_double.hxx">
+    <ClInclude Include="includes\api_double.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_common.hxx">
+    <ClInclude Include="includes\api_stack_boolean.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_string.hxx">
+    <ClInclude Include="includes\api_stack_boolean_sparse.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_variable.hxx">
+    <ClInclude Include="includes\api_stack_common.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_int.hxx">
+    <ClInclude Include="includes\api_stack_handle.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_boolean.hxx">
+    <ClInclude Include="includes\api_stack_hypermat.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_sparse.hxx">
+    <ClInclude Include="includes\api_stack_int.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_handle.hxx">
+    <ClInclude Include="includes\api_stack_list.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_pointer.hxx">
+    <ClInclude Include="includes\api_stack_optional.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_list.hxx">
+    <ClInclude Include="includes\api_stack_pointer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_stack_poly.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_stack_sparse.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_stack_string.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_boolean.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\api_internal_double.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_template.h">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_boolean.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_cell.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_cell.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_common.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_common.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_int.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\api_hypermat.h">
+    <ClInclude Include="src\cpp\template\api_int.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_list.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_list.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_poly.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_poly.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_struct.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_string.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_string.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_handle.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_handle.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_optional.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_optional.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\api_internal_error.hxx">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="src\cpp\template\api_pointer.hpp">
+      <Filter>Header Files\template</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\api_pointer.h">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
diff --git a/scilab/modules/api_scilab/help/en_US/A_api_scilab.xml b/scilab/modules/api_scilab/help/en_US/A_api_scilab.xml
new file mode 100644 (file)
index 0000000..60a042d
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_scilab" scilab:needs-examples="no" xml:lang="en">
+    <refnamediv>
+        <refname>API Scilab</refname>
+        <refpurpose>api_scilab is the Scilab 6 interface to acces Scilab variables.</refpurpose>
+    </refnamediv>
+    <refsection>
+        <title>Description</title>
+        <para>The API for Scilab 6 is a new set of C APIs in Scilab 6 to write C or C++ extensions (toolboxes) to Scilab. It allows defining native functions (commonly called “gateways”), getting input parameters for such functions, setting return parameters, accessing local variables, using common helper functions for accessing environment information (such as warning level), generate errors... It also includes ways to overload existing Scilab functions to support additional parameter types (see scilab_overload). Finally, you can call back Scilab functions (macros and built-in functions) from your gateway (see scilab_call).</para>
+        <para>The API for Scilab 6.0 can also be used to access data in Scilab from another application. A specific set of functions is provided for calling scilab (see call_scilab), but then the API is the same to access data - for example, to access the variables by name.</para>
+        <para>The previous API is still available for backward compatibility. But the new API is the only one that will be maintained in the long term. The old API will be deprecated in a soon-to-come release (most likely in Scilab 6.1), and will likely be removed entirely in the subsequent release (most likely in Scilab 6.2).</para>
+        <para>This new API has better performance than the old one, because it accesses the internal types directly. The API is also simpler, because it does not rely on the “stack” object that was at the core of earlier versions of Scilab, and which has been removed from Scilab 6. The API naming convention should also be clearer than the old version, and even simpler than comparable APIs in similar products.</para>
+        <para>Thus, new gateways should only use this new API.</para>
+        <para>To use the API, only “api_scilab.h” needs to be included in your C code; all API functions are then available. If you write C++ code, you can use the API the same way. You only need to wrap the <literal>#include “api_scilab.h”</literal> in an <literal>extern “C” { … }</literal> block. More information are provided in <link linkend="api_scilab_getting_started">API Scilab getting started</link>.</para>
+        <title>Code optimization</title>
+        <para>If your code does an important amount of access of variables, in particular in loops, then you may want to compile with the <literal>__API_SCILAB_UNSAFE__</literal> flag defined (through a “#define” positioned before the “#include “api_scilab.h”, or -D in the compiler options). It does not change the API’s behavior but reduces the amount of input and output parameters checked done when you call the APIs, thus may improve the performance.</para>
+    </refsection>
+    <refsection>
+        <title>See Also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="api_common">API common functions</link>
+            </member>
+            <member>
+                <link linkend="api_double">API double functions</link>
+            </member>
+            <member>
+                <link linkend="api_string">API string functions</link>
+            </member>
+            <member>
+                <link linkend="api_boolean">API boolean functions</link>
+            </member>
+            <member>
+                <link linkend="api_integer">API integers functions</link>
+            </member>
+            <member>
+                <link linkend="api_poly">API polynomial functions</link>
+            </member>
+            <member>
+                <link linkend="api_handle">API graphic handle functions</link>
+            </member>
+            <member>
+                <link linkend="api_pointer">API pointer functions</link>
+            </member>
+            <member>
+                <link linkend="api_list">API list, tlist, mlist functions</link>
+            </member>
+            <member>
+                <link linkend="api_struct">API struct functions</link>
+            </member>
+            <member>
+                <link linkend="api_cell">API cell functions</link>
+            </member>
+        </simplelist>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/B_getting_started.xml b/scilab/modules/api_scilab/help/en_US/B_getting_started.xml
new file mode 100644 (file)
index 0000000..3ccbc6d
--- /dev/null
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2012 - Scilab Enterprises - Sylvestre LEDRU
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution.  The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_scilab_getting_started" xml:lang="en">
+    <refnamediv>
+        <refname>Getting started with API_Scilab</refname>
+        <refpurpose>How to load a C, C++ or fortran code in the Scilab engine as a new function</refpurpose>
+    </refnamediv>
+    <refsection>
+        <title>Description</title>
+        <para>
+            As described in the <link linkend="api_scilab">api_scilab presentation</link>, Scilab offers an API to extend the language with C, C++ or Fortran code (sources or libraries).
+        </para>
+        <para>
+            The link between the Scilab engine and the application code is called <literal>gateway</literal> and have this prototype:
+            <refsection id="api_scilab_entrypoint">
+                <para></para>
+                <literallayout>
+            int <varname>your_new_gateway</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int nin, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* in, int nopt, <link linkend="api_types_scilabOpt"><command>scilabOpt</command></link> opt, int nout, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* out)
+                </literallayout>
+            <itemizedlist>
+                 <listitem>
+                    <para><varname>env</varname>: <literal><link linkend="api_types_scilabEnv"><command>scilabEnv</command></link></literal> variable provided by kernel. You must forward it to API functions.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>nin</varname>: number of input arguments.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>in</varname>: array of <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link></literal> containing input parameters.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>nopt</varname>: number of optional paramters.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>opt</varname>: <literal><link linkend="api_types_scilabOpt"><command>scilabOpt</command></link></literal> containing optional parameters. Use <link linkend="api_optional_scilab_getOptional"><varname>scilab_getOptional</varname></link> to get optional information.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>nout</varname>: number of expected output paramters.</para>
+                </listitem>
+                 <listitem>
+                    <para><varname>out</varname>: preallocated array of <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link></literal> with a size of <varname>nout</varname>.</para>
+                </listitem>
+            </itemizedlist>
+            <para>Return 0 or STATUS_OK for OK and other value or STATUS_ERROR to trigger an error.</para>
+            </refsection>
+        </para>
+        <para>
+            Most of the time, the process is always the same:
+            <orderedlist>
+                <listitem>
+                    <para>Check the number of arguments (both input and output) provided by the user.</para>
+                    <para>
+                        For example, if the function <literal>foo(x)</literal> is called with <literal>foo()</literal> or <literal>foo(2,3)</literal>, the user must get an answer.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>Manage input arguments</para>
+                    <para>
+                        Several tasks are performed:
+                        <orderedlist inheritnum="inherit">
+                            <listitem>
+                                <para>Check the type of the variable: matrix of double (complex or not), string, etc with <link linkend="api_common_scilab_getType"><varname>scilab_getType</varname></link></para>
+                                <para>
+                                    Other functions are also provided:
+                                    <itemizedlist>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isDouble</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isBoolean</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isString</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isInt</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isPoly</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isList</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isTList</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isMList</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isHandle</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isStruct</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isCell</varname></link>
+                                            </para>
+                                        </listitem>
+                                        <listitem>
+                                            <para>
+                                                <link linkend="api_common_scilab_getType"><varname>scilab_isPointer</varname></link>
+                                            </para>
+                                        </listitem>
+                                    </itemizedlist>
+                                </para>
+                            </listitem>
+                            <listitem>
+                                <para>If it is relevant, check if the input argument is complex or not with <link linkend="api_common_scilab_isComplex">scilab_isComplex</link></para>
+                            </listitem>
+                            <listitem>
+                                <para>Dealing with integer, further checks should be done on the precision of the integer with <link linkend="api_integer_scilab_getIntegerPrecision">scilab_getIntegerPrecision</link></para>
+                            </listitem>
+                            <listitem>
+                                <para>Check the dimensions of the variable: square matrix, scalar, etc</para>
+                                <itemizedlist>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_getDim</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_getDim2d</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_getDimArray</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_getSize</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isEmpty</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isMatrix2d</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isScalar</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isSquare</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isVector</varname></link>,
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isNVector</varname></link>,
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isRowVector</varname></link>,
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isColVector</varname></link>
+                                        </para>
+                                    </listitem>
+                                    <listitem>
+                                        <para>
+                                            <link linkend="api_common_scilab_getDim"><varname>scilab_isHypermat</varname></link>
+                                        </para>
+                                    </listitem>
+                                </itemizedlist>
+                                <para>Almost all Scilab datatypes have an equivalent C function to perform such task.</para>
+                            </listitem>
+                            <listitem>
+                                <para>Other checks can be done like specific values expected, consistency between the first and second input arguments, etc.</para>
+                            </listitem>
+                            <listitem>
+                                <para>Data transformation (optional).</para>
+                                <para>Depending on the code or library targeted, some transformations can be applied to the data. A classical example is changing the storage of a matrix from column-stored to line-stored.</para>
+                                <para>Please note that it is usually a performance killer.</para>
+                            </listitem>
+                        </orderedlist>
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>Application code</para>
+                    <para>Once all the checks and data retrieval have been performed, the actual core code can be called. The actual intelligence (processes, data transformations, etc) will be performed here.</para>
+                    <para>
+                        This can be done through a thirdparty code stored and built in <literal>src/c</literal>, <literal>src/cpp</literal> or <literal>src/fortran</literal> but also under the form of a library. Virtually, any library could be linked to Scilab.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>Create the output arguments for the Scilab engine</para>
+                    <para>Once the application code has been executed, usually, some data will be returned to the Scilab interpreter.</para>
+                    <para>
+                        For example, to create in the Scilab engine memory a matrix of double, the C function <literal><link linkend="api_double_scilab_createDoubleMatrix">scilab_createDoubleMatrix</link></literal>
+                        should be called.
+                    </para>
+                </listitem>
+            </orderedlist>
+        </para>
+        <para>
+            By default, Scilab numerical values are stored with the C type <literal>double</literal>.
+        </para>
+        <para>
+            As convention, gateways are stored in <literal>sci_gateway/c/</literal> (or <literal>/cpp/</literal>) and are called <literal>sci_functionName.c</literal>.
+        </para>
+    </refsection>
+    <refsection>
+        <title>Real life example</title>
+        <para>Taking the sample Scilab function:</para>
+        <para>
+            <literal>[c,d] = foo(a,b)</literal>
+        </para>
+        <para>
+            with <literal>a</literal> being a matrix of double and <literal>b</literal> a matrix of boolean with the same size of <literal>a</literal>, foo will multiply each element of <literal>a</literal> by 2 and return it as <literal>c</literal> and transform each element of element of b to its opposite.
+        </para>
+        <para>
+            The example is available in the toolbox skeleton provided with the Scilab binary. The path is <literal>contrib/toolbox_skeleton/sci_gateway/c/sci_foo6.c</literal>
+        </para>
+        <para>Detailed explanations are provided under the form of C comment in the following example.</para>
+        <programlisting role="code_gateway">
+            <![CDATA[ 
+// Full source can be found in the sci_gateway/c/ directory of the
+// toolbox skeleton
+
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "BOOL.h"
+#include "localization.h"
+
+static const char fname[] = "foo6";
+/* ==================================================================== */
+int sci_foo6(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt* opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    int row1 = 0;
+    int col1 = 0;
+    int size1 = 0;
+    double* in1 = NULL;
+    double* out1 = NULL;
+
+    int row2 = 0;
+    int col2 = 0;
+    int size2 = 0;
+    int* in2 = NULL;
+    int* out2 = NULL;
+
+    /* --> [a,b] = foo(d[i,j], b[i,j])
+    /* check that we have only 2 input arguments */
+    /* check that we have only 1 output argument */
+    if (nin > 2)
+    {
+        Scierror(77, _("%s: Wrong number of input argument(s): %d expected.\n"), fname, 2);
+        return 1;
+    }
+
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isMatrix2d(env, in[0]) == 0 || scilab_isComplex(env, in[0]) == 1)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), fname, 1);
+        return 1;
+    }
+
+    if (scilab_isBoolean(env, in[1]) == 0 || scilab_isMatrix2d(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, 2);
+        return 1;
+    }
+
+    size1 = scilab_getDim2d(env, in[0], &row1, &col1);
+    size2 = scilab_getDim2d(env, in[1], &row2, &col2);
+
+    if (row1 != row2 || col1 != col2)
+    {
+        Scierror(999, _("%s: Wrong size for input arguments: Same size expected.\n"), fname);
+        return 1;
+    }
+
+    scilab_getDoubleArray(env, in[0], &in1);
+    scilab_getBooleanArray(env, in[1], &in2);
+
+    out[0] = scilab_createDoubleMatrix2d(env, row1, col1, 0);
+    out[1] = scilab_createBooleanMatrix2d(env, row2, col2);
+
+    scilab_getDoubleArray(env, out[0], &out1);
+    scilab_getBooleanArray(env, out[1], &out2);
+
+    for (i = 0; i < size1; ++i)
+    {
+        //For each element of the matrix, multiply by 2 
+        out1[i] = in1[i] * 2;
+    }
+
+    for (i = 0; i < size2; ++i)
+    {
+        //For each element of the matrix, invert the value 
+        out2[i] = in2[i] == TRUE ? FALSE : TRUE;
+    }
+
+    return 0;
+}
+      ]]>
+        </programlisting>
+        <para>
+            To build this code and load it to Scilab, we use the dynamic link capabilities of Scilab. Delegating the build process to Scilab, this code is multiplaform.
+            <programlisting role="no-scilab-exec">
+                <![CDATA[
+      files=["sci_foo6.c"];
+      ilib_build('build_lib',['foo6','sci_foo6'],files,[]);
+      exec loader.sce
+      [c, d] = foo6([2,%pi], [%t, %f])
+      ]]>
+            </programlisting>
+        </para>
+        <para>
+            Various checks can be performed:
+            <programlisting role="no-scilab-exec">
+                <![CDATA[
+--> [c, d] = foo6(2, 2)
+
+foo6: Wrong type for input argument #2: A boolean matrix expected.
+      ]]>
+            </programlisting>
+            <programlisting role="no-scilab-exec">
+                <![CDATA[
+-->[c, d] = foo6([2,2], %t)
+                        !--error 999
+foo6: Wrong size for input arguments: Same size expected.
+      ]]>
+            </programlisting>
+            <programlisting role="no-scilab-exec">
+                <![CDATA[
+-->[a,b]=foo6(2+%i,%t)
+                   !--error 999
+foo6: Wrong type for input argument #1: A real matrix expected.
+      ]]>
+            </programlisting>
+            <programlisting role="no-scilab-exec">
+                <![CDATA[
+-->[c, d] = foo6([2,%pi], [%t, %f])
+ d  =
+
+  F T
+ c  =
+
+    4.    6.2831853
+      ]]>
+            </programlisting>
+        </para>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/CC_common.xml b/scilab/modules/api_scilab/help/en_US/CC_common.xml
new file mode 100644 (file)
index 0000000..c2c15c3
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_common" xml:lang="en">
+    <refnamediv>
+        <refname>API common functions</refname>
+        <para>This page lists all the functions to get information about Scilab native objects.</para>
+    </refnamediv>
+    <refsection id="api_common_scilab_getVar">
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getVar</varname>(const wchar_t* name)</literal>
+        <para>Return variable called <varname>name</varname>, NULL if variable does not exist.</para>
+    </refsection>
+    <refsection id="api_common_scilab_getClone">
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getClone</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return a copie of <varname>var</varname>.</para>
+    </refsection>
+    <refsection id="api_common_scilab_getType">
+        <literal>int <varname>scilab_getType</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Get type of <varname>var</varname>. see <link linkend="sci_types"><command>types</command></link> help page.</para>
+    </refsection>
+    <refsection>
+        <literallayout>
+int <varname>scilab_isDouble</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isBoolean</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isString</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isInt</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isPoly</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isTList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isMList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isHandle</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isStruct</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isCell</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isPointer</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+        </literallayout>
+        <para>Return 1 if variable <varname>var</varname> has the right type.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isComplex">
+        <literal>int <varname>scilab_isComplex</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 if variable <varname>var</varname> is complex.</para>
+    </refsection>
+    <refsection id="api_common_scilab_getDim">
+        <literal>int <varname>scilab_getDim</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return the number of dimension of <varname>var</varname>. Note that scalar variables are 2d matrix of dimension (1, 1)</para>
+    </refsection>
+    <refsection id="api_common_scilab_getDim2d">
+        <literal>int <varname>scilab_getDim2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* row, int* col)</literal>
+        <para>Return dimensions of a 2d variable <varname>var</varname> in <varname>row</varname> and <varname>col</varname>.</para>
+    </refsection>
+    <refsection id="api_common_scilab_getDimArray">
+        <literal>int <varname>scilab_getDimArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int** dims)</literal>
+        <para>Return pointer on array of dimensions of a variable <varname>var</varname> in <varname>dims</varname>.</para>
+    </refsection>
+    <refsection id="api_common_scilab_getSize">
+        <literal>int <varname>scilab_getSize</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return size of variable <varname>var</varname>.</para>
+        <para>For matrix type is the result of product of dimension and for others like list is the item count.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isEmpty">
+        <literal>int <varname>scilab_isEmpty</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 for empty matrix and empty list.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isMatrix2d">
+        <literal>int <varname>scilab_isMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 for matrix with 2 dimensions and scalar.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isScalar">
+        <literal>int <varname>scilab_isScalar</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 for scalar value.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isSquare">
+        <literal>int <varname>scilab_isSquare</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 for matrix with 2 dimensions and dimensions have the same same.</para>
+    </refsection>
+    <refsection id="api_common_scilab_isVector">
+        <literallayout>
+int <varname>scilab_isVector</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isNVector</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int n)
+int <varname>scilab_isRowVector</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isColVector</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+        </literallayout>
+        <para>Use to check if variable <varname>var</varname> is a vector. <varname>n</varname> is the dimension to check, <code>scilab_isRowVector</code> is equivalente to <code>scilab_isNVector(env, var, 1)</code></para>
+    </refsection>
+    <refsection id="api_common_scilab_isHypermat">
+        <literal>int <varname>scilab_isHypermat</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+        <para>Return 1 for matrix with dimensions count is up to 2.</para>
+    </refsection>
+    <refsection id="api_common_scilab_overload">
+        <literal>int <varname>scilab_overload</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int nin, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* in, int nout, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* out)</literal>
+        <para>Call an overload function following type of <varname>var</varname>.</para>
+        <para><varname>nin</varname>, <varname>in</varname>, <varname>nout</varname>, <varname>out</varname> must be used like in gateway prototype.</para>
+    </refsection>
+    <refsection id="api_common_scilab_call">
+        <literal>int <varname>scilab_call</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* name, int nin, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* in, int nout, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* out)</literal>
+        <para>Call function <varname>name</varname>.</para>
+        <para><varname>nin</varname>, <varname>in</varname>, <varname>nout</varname>, <varname>out</varname> must be used like in gateway prototype.</para>
+    </refsection>
+    <refsection>
+    <title>Examples</title>
+    <programlisting role="code_gateway">
+        <![CDATA[
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+
+const char fname[] = "overload_test";
+
+int sci_overload_test(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out)
+{
+    if (nin < 1 || nin > 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d to %d expected.\n"), fname, 1, 2);
+        return STATUS_ERROR;
+    }
+
+    //call overload function
+    if (nin == 1)
+    {
+        return scilab_overload(env, in[0], nin, in, nout, out);
+    }
+    else // call function in[0] with in[1] as argument
+    {
+        wchar_t* name = NULL;
+        if (scilab_isString(env, in[0]) == 0 || scilab_isVector(env, in[0]) == 0)
+        {
+            Scierror(999, _("%s: Wrong type for input argument #%d: string expected.\n"), fname, 1);
+            return STATUS_ERROR;
+        }
+
+        scilab_getString(env, in[0], &name);
+
+        return scilab_call(env, name, nin - 1, in + 1, nout, out);
+    }
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/overload_test.c",pathconvert(TMPDIR+"/api_c/overload_test.c",%F));
+
+ilib_build("liboverload",["overload_test","sci_overload_test", "csci6"],"overload_test.c",[],"","","");
+exec("loader.sce");
+
+a = rand(10, 10);
+x = overload_test("cos", a);
+assert_checkequal(x, cos(a));
+
+function x = %s_overload_test(a)
+    x = cos(a);
+endfunction
+
+x = overload_test(a);
+assert_checkequal(x, cos(a));
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection role="see also">
+        <title>See Also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="api_double">API double</link>
+            </member>
+            <member>
+                <link linkend="api_string">API string</link>
+            </member>
+            <member>
+                <link linkend="api_string">API boolean</link>
+            </member>
+            <member>
+                <link linkend="api_string">API int</link>
+            </member>
+            <member>
+                <link linkend="api_string">API poly</link>
+            </member>
+            <member>
+                <link linkend="api_string">API handle</link>
+            </member>
+            <member>
+                <link linkend="api_string">API list</link>
+            </member>
+            <member>
+                <link linkend="api_string">API struct</link>
+            </member>
+            <member>
+                <link linkend="api_string">API cell</link>
+            </member>
+        </simplelist>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/C_double.xml b/scilab/modules/api_scilab/help/en_US/C_double.xml
new file mode 100644 (file)
index 0000000..f439864
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_double" xml:lang="en">
+    <refnamediv>
+        <refname>API double functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing doubles.</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_double_scilab_createEmptyMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createEmptyMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env)</literal>
+            <para>Create an empty matrix.</para>
+        </refsection>
+        <refsection id="api_double_scilab_createDoubleMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createDoubleMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims, int complex)</literal>
+            <para>Create a double matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+            <para><varname>complex</varname>: 0 to real matrix or 1 to complex matrix</para>
+        </refsection>
+        <refsection id="api_double_scilab_createDoubleMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createDoubleMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col, int complex)</literal>
+            <para>Create a double matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+            <para><varname>complex</varname>: 0 to real matrix or 1 to complex matrix</para>
+        </refsection>
+        <refsection id="api_double_scilab_createDouble">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createDouble</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, double real)</literal>
+            <para>Create a scalar double.</para>
+        </refsection>
+        <refsection id="api_double_scilab_createDoubleComplex">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createDoubleComplex</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, double real, double img)</literal>
+            <para>Create a scalar complex double.</para>
+        </refsection>
+        <refsection id="api_double_scilab_getDoubleArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getDoubleArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const double** real)</literal>
+            <para>Get pointer on internal array of double of <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_double_scilab_getDoubleComplexArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getDoubleComplexArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const double** real, const double** img)</literal>
+            <para>Get pointers on internal arrays of double of <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_double_scilab_getDouble">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getDouble</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, double* real)</literal>
+            <para>Get double value from an scalar double variable.</para>
+        </refsection>
+        <refsection id="api_double_scilab_getDoubleComplex">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getDoubleComplex</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, double* real, double* img)</literal>
+            <para>Get double values from an scalar double variable.</para>
+        </refsection>
+        <refsection id="api_double_scilab_setDoubleArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setDoubleArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const double* real)</literal>
+            <para>Set values of double variable <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_double_scilab_setDoubleComplexArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setDoubleComplexArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const double* real, const double* img)</literal>
+            <para>Set values of complex double variable <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_double_scilab_setDouble">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setDouble</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, double real)</literal>
+            <para>Set value of a scalar double variable <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_double_scilab_setDoubleComplex">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setDoubleComplex</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, double real, double img)</literal>
+            <para>Set values of a scalar complex double variable <literal>var</literal>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+
+const char fname[] = "double_test";
+
+int sci_double_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;
+    double* in1 = NULL;
+
+    double in2 = 0;
+
+    double* out1 = NULL;
+
+    int* out2dims = NULL;
+    double* out2 = NULL;
+
+    double 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 double
+    if (scilab_isDouble(env, in[0]) == 0 || scilab_isMatrix(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A double matrix expected.\n"), fname, 1);
+        return SCILAB_ERROR;
+    }
+
+    size1 = scilab_getDim2d(env, in[0], &inr1, &inc1);
+    scilab_getDoubleArray(env, in[0], &in1);
+
+    //in[1] : double
+    if (scilab_isDouble(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A double expected.\n"), fname, 2);
+        return SCILAB_ERROR;
+    }
+
+    scilab_getDouble(env, in[1], &in2);
+
+    //out1 : matrix 2d of double with same size of in[0]
+    out[0] = scilab_createDoubleMatrix2d(env, inr1, inc1, 0);
+    scilab_getDoubleArray(env, out[0], &out1);
+
+    for (i = 0; i < size1; ++i)
+    {
+        out1[i] = in1[i] * 10;
+    }
+
+    //out2 : 3d matrix of double
+    out2dims = (int*)MALLOC(3 * sizeof(int));
+    out2dims[0] = inr1;
+    out2dims[1] = inc1;
+    out2dims[2] = 2;
+
+    out[1] = scilab_createDoubleMatrix(env, 3, out2dims, 0);
+    scilab_getDoubleArray(env, out[1], &out2);
+
+    for (i = 0; i < size1; ++i)
+    {
+        out2[i] = in1[i] * 10;
+        out2[i + size1] = in1[i] * 100;
+    }
+
+    //out3 : double
+    out[2] = scilab_createDouble(env, in2 * 1000);
+    return SCILAB_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/double_test.c",pathconvert(TMPDIR+"/api_c/double_test.c",%F));
+
+ilib_build("libdouble", ["double_test","sci_double_test", "csci6"],"double_test.c",[],"","","");
+exec("loader.sce");
+
+in1 = rand(3,4);
+in2 = rand();
+
+[out1, out2, out3] = double_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");
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/D_string.xml b/scilab/modules/api_scilab/help/en_US/D_string.xml
new file mode 100644 (file)
index 0000000..8a0f75d
--- /dev/null
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_string" xml:lang="en">
+    <refnamediv>
+        <refname>API string functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing strings</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_string_scilab_createStringMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createStringMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims)</literal>
+            <para>Create a string matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+        </refsection>
+        <refsection id="api_string_scilab_createStringMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createStringMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)</literal>
+            <para>Create an string matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+        </refsection>
+        <refsection id="api_string_scilab_createString">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createString</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* val)</literal>
+            <para>Create a scalar string.</para>
+        </refsection>
+        <refsection id="api_string_scilab_getStringArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getStringArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, wchar_t*** strs)</literal>
+            <para>Get pointer on internal array of string of <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_string_scilab_getString">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getString</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, wchar_t** str)</literal>
+            <para>Get string value from an scalar string variable.</para>
+        </refsection>
+        <refsection id="api_string_scilab_setStringArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setStringArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* const* strs)</literal>
+            <para>Set values of string variable <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_string_scilab_setString">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setString</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* str)</literal>
+            <para>Set value of a scalar string variable <literal>var</literal>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include <ctype.h>
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+#include "os_string.h"
+
+const char fname[] = "string_test";
+
+int sci_string_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;
+    wchar_t** in1 = NULL;
+
+    wchar_t* in2 = 0;
+
+    int dim1 = 3;
+    int dims1[] = {0, 0, 2};
+    wchar_t** out1 = NULL;
+
+    wchar_t* out2;
+    int len2 = 0;
+    int diff = L'a' - L'A';
+
+    if (nin != 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    if (nout != 2)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 3);
+        return STATUS_ERROR;
+    }
+
+    //in[0] : matrix 2d of string
+    if (scilab_isString(env, in[0]) == 0 || scilab_isMatrix(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A string matrix expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    size1 = scilab_getDim2d(env, in[0], &inr1, &inc1);
+    scilab_getStringArray(env, in[0], &in1);
+
+    //in[1] : string
+    if (scilab_isString(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A double expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    scilab_getString(env, in[1], &in2);
+
+    //out1 : matrix 2d of string with same size of in[0]
+    dims1[0] = inr1;
+    dims1[1] = inc1;
+    out[0] = scilab_createStringMatrix(env, dim1, dims1);
+    scilab_getStringArray(env, out[0], &out1);
+
+    for (i = 0; i < size1; ++i)
+    {
+        wchar_t temp[128];
+        wcscpy(temp, in1[i]);
+        wcscat(temp, L".one");
+        out1[i] = os_wcsdup(temp);
+
+        wcscpy(temp, in1[i]);
+        wcscat(temp, L".two");
+        out1[i + size1] = os_wcsdup(temp);
+    }
+
+    //out2 : string
+    out2 = os_wcsdup(in2);
+    len2 = wcslen(out2);
+    for (i = 0; i < len2; ++i)
+    {
+        if (out2[i] >= L'a' && out2[i] <= L'z')
+        {
+            out2[i] = (out2[i] - 'a' + 26 - 1) % 26) + 'a';
+        }
+        else if (out2[i] >= L'A' && out2[i] <= L'Z')
+        {
+            out2[i] = (out2[i] - 'A' + 26 - 1) % 26) + 'A';
+        }
+        else
+        {
+            //no change
+        }
+    }
+
+    out[1] = scilab_createString(env, out2);
+    FREE(out2);
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/string_test.c",pathconvert(TMPDIR+"/api_c/string_test.c",%F));
+
+ilib_build("libstring",["string_test","sci_string_test", "csci6"],"string_test.c",[],"","","");
+exec("loader.sce");
+
+in1 = ["one.one", "one.two", "one.three", "one.four"; "two.one", "two.two", "two.three", "two.four"; "three.one", "three.two", "three.three", "three.four"];
+in2 = "IBM™";
+
+[out1, out2] = string_test(in1, in2);
+ref(:,:,1) = in1 + ".one";
+ref(:,:,2) = in1 + ".two";
+assert_checkequal(out1, ref);
+assert_checkequal(out2, "HAL™");
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/E_boolean.xml b/scilab/modules/api_scilab/help/en_US/E_boolean.xml
new file mode 100644 (file)
index 0000000..fc49e9f
--- /dev/null
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_boolean" xml:lang="en">
+    <refnamediv>
+        <refname>API boolean functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing booleans</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createBooleanMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims)</literal>
+        <para>Create a boolean matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createBooleanMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)</literal>
+        <para>Create an boolean matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createBoolean</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int val)</literal>
+        <para>Create a scalar boolean.</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getBooleanArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int** vals)</literal>
+        <para>Get pointer on internal array of boolean of <varname>var</varname>.</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getBoolean</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* val)</literal>
+        <para>Get boolean value from an scalar boolean variable.</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setBooleanArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int* vals)</literal>
+        <para>Set values of boolean variable <literal>var</literal>.</para>
+        <para></para>
+        <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setBoolean</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int val)</literal>
+        <para>Set value of a scalar boolean variable <literal>var</literal>.</para>
+        <para></para>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+
+const char fname[] = "boolean_test";
+
+int sci_boolean_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 API_ERROR;
+    }
+
+    if (nout != 3)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 3);
+        return API_ERROR;
+    }
+
+    //in[0] : matrix 2d of boolean
+    if (scilab_isBoolean(env, in[0]) == 0 || scilab_isMatrix(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A boolean matrix expected.\n"), fname, 1);
+        return API_ERROR;
+    }
+
+    size1 = scilab_getDim2d(env, in[0], &inr1, &inc1);
+    scilab_getBooleanArray(env, in[0], &in1);
+
+    //in[1] : bool
+    if (scilab_isBoolean(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A boolean expected.\n"), fname, 2);
+        return API_ERROR;
+    }
+
+    scilab_getBoolean(env, in[1], &in2);
+
+    //out1 : matrix 2d of boolean with same size of in[0]
+    out[0] = scilab_createBooleanMatrix2d(env, inr1, inc1);
+    if (scilab_getBooleanArray(env, out[0], &out1) != <link linkend="api_types_scilabStatus"><command>scilabStatus</command></link>::API_OK)
+    {
+        Scierror(999, "blabla\n");
+        return 1;
+    }
+
+    for (i = 0; i < size1; ++i)
+    {
+        out1[i] = in1[i] == 1 ? 0 : 1;
+    }
+
+    //out2 : 3d matrix of boolean
+    out2dims = (int*)MALLOC(3 * sizeof(int));
+    out2dims[0] = inr1;
+    out2dims[1] = inc1;
+    out2dims[2] = 2;
+
+    out[1] = scilab_createBooleanMatrix(env, 3, out2dims);
+    scilab_getBooleanArray(env, out[1], &out2);
+
+    for (i = 0; i < size1; ++i)
+    {
+        out2[i] = in1[i];
+        out2[i + size1] = in1[i] ? 0 : 1;
+    }
+
+    //out3 : bool
+    out[2] = scilab_createBoolean(env, in2 ? 0 : 1);
+    return API_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/boolean_test.c",pathconvert(TMPDIR+"/api_c/boolean_test.c",%F));
+
+ilib_build("libboolean",["boolean_test","sci_boolean_test", "csci6"],"boolean_test.c",[],"","","");
+exec("loader.sce");
+
+in1 = rand(3,4) > 0.5;
+in2 = rand() > 0.5;
+
+[out1, out2, out3] = boolean_test(in1, in2);
+
+assert_checkequal(out1, ~in1);
+ref(:,:, 1) = in1;
+ref(:,:, 2) = out1;
+assert_checkequal(out2, ref);
+assert_checkequal(out3, ~in2);
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/F_integer.xml b/scilab/modules/api_scilab/help/en_US/F_integer.xml
new file mode 100644 (file)
index 0000000..e060fb1
--- /dev/null
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_integer" xml:lang="en">
+    <refnamediv>
+        <refname>API integer functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing integers</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_integer_scilab_getIntegerPrecision">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getIntegerPrecision</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)</literal>
+            <para>Return precision of an integer variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_isInt">
+            <literallayout>
+int <varname>scilab_isInt8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isInt16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isInt32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isInt64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isUnsignedInt8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isUnsignedInt16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isUnsignedInt32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+int <varname>scilab_isUnsignedInt64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var)
+            </literallayout>
+            <para>Return 1 if variable <varname>val</varname> is an integer otherwise 0. Precision is specified in function name.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_createInteger">
+            <literallayout>
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, char val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, short val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, long long val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, unsigned char val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, unsigned short val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, unsigned int val)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, unsigned long long val)
+            </literallayout>
+            <para>Create a scalar integer from <varname>val</varname>. Precision is specified in function name.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_createIntegerMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createIntegerMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)</literal>
+            <para>Create an integer matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+            <para><varname>prec</varname> parameter give precision of integer :</para>
+            <variablelist>
+                <varlistentry>
+                    <term>SCI_INT8</term>
+                    <listitem><para>integer 8-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_INT16</term>
+                    <listitem><para>Integer 16-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_INT32</term>
+                     <listitem><para>Integer 32-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_INT64</term>
+                     <listitem><para>Integer 64-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_UINT8</term>
+                    <listitem><para>Unsigned integer 8-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_UINT16</term>
+                    <listitem><para>Unsigned integer 16-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_UINT32</term>
+                    <listitem><para>Unsigned integer 32-bits</para></listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term>SCI_UINT64</term>
+                    <listitem><para>Unsigned integer 64-bits</para></listitem>
+                </varlistentry>
+            </variablelist>
+        </refsection>
+        <refsection id="api_integer_scilab_createIntegerMatrix">
+            <literallayout>
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger8Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger16Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger32Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger64Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger8Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger16Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger32Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger64Matrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)
+            </literallayout>
+            <para>Create an integer matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]). Precision is specified in function name.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_createIntegerMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createIntegerMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int prec, int dim, const int* dims)</literal>
+            <para>Create an integer matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+            <para><varname>prec</varname> parameter give precision.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_createIntegerMatrix2d">
+            <literallayout>
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger8Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger16Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger32Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createInteger64Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger8Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger16Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger32Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+<link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createUnsignedInteger64Matrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)
+            </literallayout>
+            <para>Create an integer matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>). Precision is specified in function name.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_getInteger">
+            <literallayout>
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, char* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, short* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, long long* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger8</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, unsigned char* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger16</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, unsigned short* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger32</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, unsigned int* vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger64</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, unsigned long long* vals)
+            </literallayout>
+            <para>Get integer value from an scalar integer variable. Precision is specified in function name.</para>
+            <para>precision of output must match with precision of <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_getIntegerArray">
+            <literallayout>
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getIntegerArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const void** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger8Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const char** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger16Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const short** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger32Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getInteger64Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const long long** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger8Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned char** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger16Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned short** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger32Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned int** vals)
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getUnsignedInteger64Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned long long** vals)
+            </literallayout>
+            <para>Get pointer on internal array of integer of <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_integer_scilab_setIntegerArray">
+            <literallayout>
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setIntegerArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const void* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setInteger8Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const char* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setInteger16Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const short* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setInteger32Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setInteger64Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const long long* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setUnsignedInteger8Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned char* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setUnsignedInteger16Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned short* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setUnsignedInteger32Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned int* vals);
+<link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setUnsignedInteger64Array</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const unsigned long long* vals);
+            </literallayout>
+            <para>Set values of integer variable <varname>var</varname>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#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 SCIALB_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+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");
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/G_list.xml b/scilab/modules/api_scilab/help/en_US/G_list.xml
new file mode 100644 (file)
index 0000000..897e754
--- /dev/null
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_list" xml:lang="en">
+    <refnamediv>
+        <refname>API list-type functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native lists.</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_list_scilab_createList">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env)</literal>
+            <para>Create a list.</para>
+        </refsection>
+        <refsection id="api_list_scilab_createTList">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createTList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env)</literal>
+            <para>Create a tlist.</para>
+        </refsection>
+        <refsection id="api_list_scilab_createMList">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createMList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env)</literal>
+            <para>Create a mlist.</para>
+        </refsection>
+        <refsection id="api_list_scilab_getListItem">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getListItem</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index)</literal>
+            <para>Get item at position <varname>index</varname> from list-type variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_setListItem">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setListItem</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>set item <varname>val</varname> at position <varname>index</varname> in list-type variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_getTListFieldNames">
+            <literal>int <varname>scilab_getTListFieldNames</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, wchar_t const* const** fieldnames)</literal>
+            <para>Get fields names of tlist variable <varname>var</varname> and return size.</para>
+        </refsection>
+        <refsection id="api_list_scilab_getTListField">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getTListField</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field)</literal>
+            <para>Get <varname>field</varname> value of tlist variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_setTListField">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setTListField</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>Set <varname>field</varname> value of tlist variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_getTMistFieldNames">
+            <literal>int <varname>scilab_getTMistFieldNames</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, wchar_t const* const** fieldnames)</literal>
+            <para>Get fields names of mlist variable <varname>var</varname> and return size.</para>
+        </refsection>
+        <refsection id="api_list_scilab_getMListField">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getMListField</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field)</literal>
+            <para>Get <varname>field</varname> value of mlist variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_setMListField">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setMListField</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>Set <varname>field</varname> value of mlist variable <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_appendToList">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_appendToList</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>Add <varname>val</varname> at the end of list-type <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_list_scilab_isDefined">
+            <literal>int <varname>scilab_isDefined</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index)</literal>
+            <para>Return 1 is item at position <varname>index</varname> is defined.</para>
+        </refsection>
+        <refsection id="api_list_scilab_isUndefined">
+            <literal>int <varname>scilab_isUndefined</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index)</literal>
+            <para>Return 1 is item at position <varname>index</varname> is undefined.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+
+const char fname[] = "list_test";
+
+int sci_list_test(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    //input
+    scilabVar in1 = NULL;
+    int size1 = 0;
+    wchar_t** fields = NULL;
+    scilabVar in2 = NULL;
+    int size2 = 0;
+    //output
+    scilabVar out1 = NULL;
+
+    //goal is to take string vector and list from intput to
+    //create a tlist of type "mylist" with fields names from string and
+    //fields data from list.
+
+    if (nin != 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    if (nout != 1)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    //in1
+    in1 = in[0];
+    if (scilab_isString(env, in1) == 0 || scilab_isVector(env, in1) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A string vector expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    size1 = scilab_getSize(env, in1);
+    scilab_getStringArray(env, in1, &fields);
+
+    //in2
+    in2 = in[1];
+    if (scilab_isList(env, in2) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A list expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    size2 = scilab_getSize(env, in2);
+
+    if (size1 != size2)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: arg1 and arg2 must have same size.\n"), fname);
+        return STATUS_ERROR;
+    }
+
+    out1 = scilab_createTList(env, L"mytlist");
+
+    for (i = 0; i < size1; ++i)
+    {
+        scilab_setTListField(env, out1, fields[i], scilab_getListItem(env, in2, i));
+    }
+
+    out[0] = out1;
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/list_test.c",pathconvert(TMPDIR+"/api_c/list_test.c",%F));
+
+ilib_build("liblist",["list_test","sci_list_test", "csci6"],"list_test.c",[],"","","");
+exec("loader.sce");
+
+fields = ["double","string","boolean","poly","list","cell"];
+data = list(1, "2", %t, %s, list(1,2,3), {1,2;3,4});
+t = list_test(fields, data);
+
+assert_checkequal(typeof(t), "mytlist");
+assert_checkequal(t.double, 1);
+assert_checkequal(t.string, "2");
+assert_checkequal(t.boolean, %t);
+assert_checkequal(t.poly, %s);
+assert_checkequal(t.list, list(1,2,3));
+assert_checkequal(t.cell, {1,2;3,4});
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/H_polynomial.xml b/scilab/modules/api_scilab/help/en_US/H_polynomial.xml
new file mode 100644 (file)
index 0000000..d7f243f
--- /dev/null
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_poly" xml:lang="en">
+    <refnamediv>
+        <refname>API polynomial functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing polynomials</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_poly_scilab_createPolyMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createPolyMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* varname, int dim, const int* dims, int complex)</literal>
+            <para>Create a polynomial matrix in <varname>varname</varname> with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+            <para><varname>complex</varname>: 0 to real matrix or 1 to complex matrix</para>
+        </refsection>
+        <refsection id="api_poly_scilab_createPolyMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createPolyMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* varname, int row, int col, int complex)</literal>
+            <para>Create a matrix of polynomial in <varname>varname</varname> with <literal>2</literal> dimensions <literal>M(row, col)</literal>.</para>
+            <para><varname>complex</varname>: 0 to real matrix or 1 to complex matrix</para>
+        </refsection>
+        <refsection id="api_poly_scilab_createPoly">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createPoly</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* varname, int val, int complex)</literal>
+            <para>Create a scalar polynomial in <varname>varname</varname>.</para>
+            <para><varname>complex</varname>: 0 to real matrix or 1 to complex matrix</para>
+        </refsection>
+        <refsection id="api_poly_scilab_getPolyVarname">
+            <literal>int <varname>scilab_getPolyVarname</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t** varname)</literal>
+            <para>Fill <varname>varname</varname> with polynomial symbol.</para>
+        </refsection>
+        <refsection id="api_poly_scilab_getPolyArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getPolyArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index, const double** real)</literal>
+            <para>Get pointer on internal array of polynomial of <varname>var</varname> at position <varname>index</varname>.</para>
+        </refsection>
+        <refsection id="api_poly_scilab_getComplexPolyArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getComplexPolyArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index, const double** real, const double** img)</literal>
+            <para>Get pointers on internal array of polynomial of <varname>var</varname> at position <varname>index</varname>.</para>
+        </refsection>
+        <refsection id="api_poly_scilab_setPolyArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setPolyArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index, int rank, const double* real)</literal>
+            <para>Set values of polynomial variable <literal>var</literal> at position <varname>index</varname>.</para>
+        </refsection>
+        <refsection id="api_poly_scilab_setComplexPolyArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setComplexPolyArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int index, int rank, const double* real, const double* img)</literal>
+            <para>Set values of complex polynomial variable <literal>var</literal> at position <varname>index</varname>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+
+const char fname[] = "polynomial_test";
+
+int sci_polynomial_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;
+    double* in1 = NULL;
+    int rank1 = 0;
+    wchar_t* name1 = NULL;
+
+    double* in2 = 0;
+    int rank2 = 0;
+    wchar_t* name2 = NULL;
+
+    double* out1 = NULL;
+
+    double* out2 = 0;
+
+    if (nin != 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    if (nout != 2)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    //in[0] : matrix 2d of polynomial
+    if (scilab_isPoly(env, in[0]) == 0 || scilab_isMatrix(env, in[0]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A polynomial matrix expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    //scilab_getPolyVarname(env, in[0], &name1);
+    size1 = scilab_getDim2d(env, in[0], &inr1, &inc1);
+
+    //in[1] : polynomial
+    if (scilab_isPoly(env, in[1]) == 0 || scilab_isScalar(env, in[1]) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A polynomial expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    //scilab_getPolyVarname(env, in[1], &name2);
+    rank2 = scilab_getPolyArray(env, in[1], 0, &in2);
+
+    //out1 : matrix 2d of polynomial with same size of in[0]
+    out[0] = scilab_createPolyMatrix2d(env, L"s", inr1, inc1, 0);
+
+    for (i = 0; i < size1; ++i)
+    {
+        int j = 0;
+        rank1 = scilab_getPolyArray(env, in[0], i, &in1);
+        out1 = (double*)MALLOC((rank1 + 2) * sizeof(double));//+1 to grow and +1 because rank is (size - 1)
+        out1[0] = 0;
+
+        for (j = 0; j < rank1 + 1; ++j)
+        {
+            out1[j + 1] = in1[j];
+        }
+
+        scilab_setPolyArray(env, out[0], i, rank1 + 1, out1);
+        FREE(out1);
+    }
+
+    //out2 : polynomial -in2
+    out[1] = scilab_createPoly(env, L"s", 0);
+    out2 = (double*)MALLOC((rank2 + 1) * sizeof(double));
+    for (i = 0; i < rank2 + 1; ++i)
+    {
+        out2[i] = -in2[i];
+    }
+
+    scilab_setPolyArray(env, out[1], 0, rank2, out2);
+    FREE(out2);
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/polynomial_test.c",pathconvert(TMPDIR+"/api_c/polynomial_test.c",%F));
+
+ilib_build("libpolynomial",["polynomial_test","sci_polynomial_test", "csci6"],"polynomial_test.c",[],"","","");
+exec("loader.sce");
+
+in1 = [10, 4*%s + 8, -5 + 6*%s - 7*%s**2;10, 4*%s + 8, -5 + 6*%s - 7*%s**2],
+in2 = 1-%s**2;
+
+[out1, out2] = polynomial_test(in1, in2);
+assert_checkequal(out1, in1 *%s);
+assert_checkequal(out2, -in2);
+disp("OK");
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/I_pointer.xml b/scilab/modules/api_scilab/help/en_US/I_pointer.xml
new file mode 100644 (file)
index 0000000..330fdb1
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_pointer" xml:lang="en">
+    <refnamediv>
+        <refname>API pointer functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing pointers</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_pointer_scilab_createPointer">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createPointer</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const void* val)</literal>
+            <para>Create a pointer variable from <varname>val</varname>.</para>
+        </refsection>
+        <refsection id="api_pointer_scilab_getPointer">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getPointer</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, void const** val)</literal>
+            <para>Get pointer value <varname>val</varname> from pointer variable.</para>
+        </refsection>
+        <refsection id="api_pointer_scilab_setPointer">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setPointer</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const void* val)</literal>
+            <para>Set value <varname>val</varname> of a pointer variable <literal>var</literal>.</para>
+        </refsection>
+    </refsynopsisdiv>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/J_cell.xml b/scilab/modules/api_scilab/help/en_US/J_cell.xml
new file mode 100644 (file)
index 0000000..2e57c47
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_cell" xml:lang="en">
+    <refnamediv>
+        <refname>API cell functions</refname>
+        <para>This page lists all the functions to manipulate Cell objects.</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_cell_scilab_createCellMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createCellMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims)</literal>
+            <para>Create a cell matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+        </refsection>
+        <refsection id="api_cell_scilab_createCellMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createCellMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)</literal>
+            <para>Create a cell matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+        </refsection>
+        <refsection id="api_cell_scilab_getCellValue">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getCellValue</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* index, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* const val)</literal>
+            <para>Get data at position (<varname>index</varname>[0], <varname>index</varname>[1], ..., <varname>index</varname>[dims-1]) from <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_cell_scilab_getCell2dValue">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getCell2dValue</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int row, int col, <link linkend="api_types_scilabVar"><command>scilabVar</command></link>* const val)</literal>
+            <para>Get data at position (<varname>row</varname>, <varname>col</varname>) from <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_cell_scilab_setCellValue">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setCellValue</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* index, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>Set data at position (<varname>index</varname>[0], <varname>index</varname>[1], ..., <varname>index</varname>[dims-1]) in <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_cell_scilab_setCell2dValue">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setCell2dValue</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int row, int col, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> val)</literal>
+            <para>Set data at position (<varname>row</varname>, <varname>col</varname>) in <varname>var</varname>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include <ctype.h>
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+#include "os_string.h"
+
+const char fname[] = "cell_test";
+
+int sci_cell_test(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    //input
+    int size1 = 0;
+    scilabVar in1 = NULL;
+    double* dims = NULL;
+    scilabVar in2 = NULL;
+    int size2 = 0;
+    //output
+    int outSize = 1;
+    scilabVar out1 = NULL;
+    scilabVar* vars = NULL;
+
+    if (nin != 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    if (nout != 1)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    //in1
+    in1 = in[0];
+    if (scilab_isDouble(env, in1) == 0 || scilab_getSize(env, in1) != 2)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: double vector of size 2 expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    size1 = scilab_getSize(env, in1);
+    scilab_getDoubleArray(env, in1, &dims);
+
+    outSize = (int)dims[0] * (int)dims[1];
+
+    //in2
+    in2 = in[1];
+    if (scilab_isList(env, in2) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A list expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    size2 = scilab_getSize(env, in2);
+
+
+    if (outSize != size2)
+    {
+        Scierror(999, _("%s: Wrong size for input argument #%d.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    out1 = scilab_createCellMatrix2d(env, (int)dims[0], (int)dims[1]);
+    for (i = 0; i < outSize; ++i)
+    {
+        scilab_setCell2dValue(env, out1, i, 0, scilab_getListItem(env, in2, i));
+    }
+
+    out[0] = out1;
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/cell_test.c",pathconvert(TMPDIR+"/api_c/cell_test.c",%F));
+
+ilib_build("libcell",["cell_test","sci_cell_test", "csci6"],"cell_test.c",[],"","","");
+exec("loader.sce");
+
+data = list(1, "2", %t, %s, list(1,2,3), {1,2;3,4});
+c = cell_test([2 3], data);
+
+assert_checkequal(typeof(c), "ce");
+assert_checkequal(c{1, 1}, 1);
+assert_checkequal(c{2, 1}, "2");
+assert_checkequal(c{1, 2}, %t);
+assert_checkequal(c{2, 2}, %s);
+assert_checkequal(c{1, 3}, list(1,2,3));
+assert_checkequal(c{2, 3}, {1,2;3,4});
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/K_struct.xml b/scilab/modules/api_scilab/help/en_US/K_struct.xml
new file mode 100644 (file)
index 0000000..fcb82d0
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_struct" xml:lang="en">
+    <refnamediv>
+        <refname>API struct functions</refname>
+        <para>This page lists all the functions to manipulate functions to manipulate Struct objects.</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_struct_scilab_createStructMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createStructMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims)</literal>
+            <para>Create a struct matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+        </refsection>
+        <refsection id="api_struct_scilab_createStructMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createStructMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)</literal>
+            <para>Create an struct matrix with 2 dimensions (<varname>row</varname>, <varname>col</varname>).</para>
+        </refsection>
+        <refsection id="api_struct_scilab_createStruct">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createStruct</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env)</literal>
+            <para>Create a scalar struct.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_addFields">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_addFields</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int count, const wchar_t* const* fields)</literal>
+            <para>Add <varname>count</varname> fields <varname>fields</varname> in struct <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_addField">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_addField</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field)</literal>
+            <para>Add field <varname>field</varname> in struct <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_getFields">
+            <literal>int <varname>scilab_getFields</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* const** fields)</literal>
+            <para>Get field names <varname>fields</varname> from struct <varname>var</varname> and returns count of fields.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_getStructMatrixData">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getStructMatrixData</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* field, const int* dims)</literal>
+            <para>Get field value at position (<varname>index</varname>[0], <varname>index</varname>[1], ..., <varname>index</varname>[dims-1]) from <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_getStructMatrixData2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getStructMatrixData2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, const wchar_t* field, int row, int col)</literal>
+            <para>Get field value at position (<varname>row</varname>, <varname>col</varname>) from <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_setStructMatrixData">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setStructMatrixData</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field, const int* index, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> data)</literal>
+            <para>Set field value at position (<varname>index</varname>[0], <varname>index</varname>[1], ..., <varname>index</varname>[dims-1]) in <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_struct_scilab_setStructMatrixData2d">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setStructMatrixData2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const wchar_t* field, int row, int col, const <link linkend="api_types_scilabVar"><command>scilabVar</command></link> data)</literal>
+            <para>Set field value at position (<varname>row</varname>, <varname>col</varname>) in <varname>var</varname>.</para>
+        </refsection>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Examples</title>
+        <programlisting role="code_gateway">
+            <![CDATA[
+#include <ctype.h>
+#include "api_scilab.h"
+#include "Scierror.h"
+#include "localization.h"
+#include "sciprint.h"
+#include "sci_malloc.h"
+#include "os_string.h"
+
+const char fname[] = "struct_test";
+
+int sci_struct_test(scilabEnv env, int nin, scilabVar* in, int nopt, scilabOpt opt, int nout, scilabVar* out)
+{
+    int i = 0;
+    //input
+    scilabVar in1 = NULL;
+    int size1 = 0;
+    wchar_t** fields = NULL;
+    scilabVar in2 = NULL;
+    int size2 = 0;
+    //output
+    scilabVar out1 = NULL;
+
+    //goal is to take string vector and list from intput to
+    //create a struct with fields names from string and
+    //fields data from list.
+
+    if (nin != 2)
+    {
+        Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    if (nout != 1)
+    {
+        Scierror(999, _("%s: Wrong number of output arguments: %d expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    //in1
+    in1 = in[0];
+    if (scilab_isString(env, in1) == 0 || scilab_isVector(env, in1) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A string vector expected.\n"), fname, 1);
+        return STATUS_ERROR;
+    }
+
+    size1 = scilab_getSize(env, in1);
+    scilab_getStringArray(env, in1, &fields);
+
+    //in2
+    in2 = in[1];
+    if (scilab_isList(env, in2) == 0)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: A list expected.\n"), fname, 2);
+        return STATUS_ERROR;
+    }
+
+    size2 = scilab_getSize(env, in2);
+
+    if (size1 != size2)
+    {
+        Scierror(999, _("%s: Wrong type for input argument #%d: arg1 and arg2 must have same size.\n"), fname);
+        return STATUS_ERROR;
+    }
+
+    out1 = scilab_createStruct(env);
+
+    for (i = 0; i < size1; ++i)
+    {
+        scilab_addField(env, out1, fields[i]);
+        scilab_setStruct2dData(env, out1, fields[i], 0, 0, scilab_getListItem(env, in2, i));
+    }
+
+    out[0] = out1;
+    return STATUS_OK;
+}
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection>
+        <title>Scilab test script</title>
+        <programlisting role="code_scilab">
+            <![CDATA[
+mkdir(pathconvert(TMPDIR+"/api_c/"));
+cd(pathconvert(TMPDIR+"/api_c/"));
+copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/struct_test.c",pathconvert(TMPDIR+"/api_c/struct_test.c",%F));
+
+ilib_build("libstruct",["struct_test","sci_struct_test", "csci6"],"struct_test.c",[],"","","");
+exec("loader.sce");
+
+fields = ["double","string","boolean","poly","list","cell"];
+data = list(1, "2", %t, %s, list(1,2,3), {1,2;3,4});
+t = struct_test(fields, data);
+
+assert_checkequal(typeof(t), "st");
+assert_checkequal(t.double, 1);
+assert_checkequal(t.string, "2");
+assert_checkequal(t.boolean, %t);
+assert_checkequal(t.poly, %s);
+assert_checkequal(t.list, list(1,2,3));
+assert_checkequal(t.cell, {1,2;3,4});
+            ]]>
+        </programlisting>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/L_handle.xml b/scilab/modules/api_scilab/help/en_US/L_handle.xml
new file mode 100644 (file)
index 0000000..c171d10
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_handle" xml:lang="en">
+    <refnamediv>
+        <refname>API handle functions</refname>
+        <para>This page lists all the functions to manipulate Scilab native objects containing graphic handles</para>
+        <para></para>
+    </refnamediv>
+    <refsynopsisdiv>
+        <refsection id="api_handle_scilab_createHandleMatrix">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createHandleMatrix</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int dim, const int* dims)</literal>
+            <para>Create a handle matrix with <varname>dim</varname> dimensions (<varname>dims</varname>[0], <varname>dims</varname>[1], ..., <varname>dims</varname>[<varname>dim</varname>-1]).</para>
+        </refsection>
+        <refsection id="api_handle_scilab_createHandleMatrix2d">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createHandleMatrix2d</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int row, int col)</literal>
+            <para>Create a matrix of handle with <literal>2</literal> dimensions <literal>M(row, col)</literal>.</para>
+        </refsection>
+        <refsection id="api_handle_scilab_createHandle">
+            <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_createHandle</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, int val)</literal>
+            <para>Create a scalar handle.</para>
+        </refsection>
+        <refsection id="api_handle_scilab_getHandleArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getHandleArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int** vals)</literal>
+            <para>Get pointer on internal array of handle of <varname>var</varname>.</para>
+        </refsection>
+        <refsection id="api_handle_scilab_getHandle">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_getHandle</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int* val)</literal>
+            <para>Get handle value from an scalar handle variable.</para>
+        </refsection>
+        <refsection id="api_handle_scilab_setHandleArray">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setHandleArray</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, const int* vals)</literal>
+            <para>Set values of handle variable <literal>var</literal>.</para>
+        </refsection>
+        <refsection id="api_handle_scilab_setHandle">
+            <literal><link linkend="api_types_scilabStatus"><command>scilabStatus</command></link> <varname>scilab_setHandle</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabVar"><command>scilabVar</command></link> var, int val)</literal>
+            <para>Set value of a scalar handle variable <literal>var</literal>.</para>
+        </refsection>
+    </refsynopsisdiv>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/Y_optional.xml b/scilab/modules/api_scilab/help/en_US/Y_optional.xml
new file mode 100644 (file)
index 0000000..9cd27c8
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015  - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_optional" xml:lang="en">
+    <refnamediv>
+        <refname>API optional functions</refname>
+        <para>This page lists all the functions to get information about optional parameters.</para>
+    </refnamediv>
+    <refsection id="api_optional_scilab_getOptional">
+        <literal><link linkend="api_types_scilabVar"><command>scilabVar</command></link> <varname>scilab_getOptional</varname>(<link linkend="api_types_scilabEnv"><command>scilabEnv</command></link> env, <link linkend="api_types_scilabOpt"><command>scilabOpt</command></link> opt, const wchar_t* varname)</literal>
+        <para>Return optional paramter value associated to variable called <varname>varname</varname>, NULL if variable does not exist.</para>
+    </refsection>
+    <refsection role="see also">
+        <title>See Also</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="api_scilab_getting_started">API Scilab getting started</link>
+            </member>
+        </simplelist>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/api_scilab/help/en_US/api_types.xml b/scilab/modules/api_scilab/help/en_US/api_types.xml
new file mode 100644 (file)
index 0000000..51e3cf5
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_types" xml:lang="en">
+    <refname>API types</refname>
+    <para>This page lists all types used by API Scilab.</para>
+    <refsection id="api_types_scilabEnv">
+        <refname>scilabEnv</refname>
+        <refpurpose>This a pointer of internal information provided by Scilab engine, you just have to forwarding it to API function.</refpurpose>
+        <para>Like pvApiCtx before, please to do use it. You may have to chance its structure at any moment.</para>
+    </refsection>
+    <refsection id="api_types_scilabVar">
+        <refname>scilabVar</refname>
+        <refpurpose>It is the type of Scilab variable in API Scilab.</refpurpose>
+        <para>Each API Scilab that read or write in Scilab varaible use it to reference a variable.</para>
+    </refsection>
+    <refsection id="api_types_scilabStatus">
+        <refname>scilabStatus</refname>
+        <refpurpose>scilabStatus is used by API Scilab to provide a status of execution.</refpurpose>
+        <para>It is a enum type: </para>
+        <programlisting role="code_gateway">
+            <![CDATA[
+typedef enum __SCILAB_STATUS__
+{
+    STATUS_OK = 0,
+    STATUS_ERROR = 1
+}scilabStatus;
+            ]]>
+        </programlisting>
+    </refsection>
+    <refsection id="api_types_scilabOpt">
+        <refname>scilabOpt</refname>
+        <refpurpose>It is a list of optional arguments given in the call.</refpurpose>
+        <para>You may use <link linkend="api_optional_scilab_getOptional"><varname>scilab_getOptional</varname></link> to retrieve optional values.</para>
+    </refsection>
+</refentry>
\ No newline at end of file
diff --git a/scilab/modules/api_scilab/help/en_US/getting_started.xml b/scilab/modules/api_scilab/help/en_US/getting_started.xml
deleted file mode 100644 (file)
index 7eb11f8..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-* Copyright (C) 2012 - Scilab Enterprises - Sylvestre LEDRU
-*
-* This file must be used under the terms of the CeCILL.
-* This source file is licensed as described in the file COPYING, which
-* you should have received as part of this distribution.  The terms
-* are also available at
-* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
-*
--->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_scilab_getting_started" xml:lang="en">
-    <refnamediv>
-        <refname>Getting started with API_Scilab</refname>
-        <refpurpose>How to load a C, C++ or fortran code in the Scilab engine as a new function</refpurpose>
-    </refnamediv>
-    <refsection>
-        <title>Description</title>
-        <para>
-            As described in the <link linkend="api_scilab">api_scilab presentation</link>, Scilab offers an API to extend the language with C, C++ or Fortran code (sources or libraries).
-        </para>
-        <para>
-            The link between the Scilab engine and the application code is called <literal>gateway</literal>.
-        </para>
-        <para>
-            Most of the time, the process is always the same:
-            <orderedlist>
-                <listitem>
-                    <para>Check the number of arguments (both input and output) provided by the user.</para>
-                    <para>
-                        For example, if the function <literal>foo(x)</literal> is called with <literal>foo()</literal> or <literal>foo(2,3)</literal>, the user must get an answer.
-                    </para>
-                    <para>
-                        More: <link linkend="CheckInputArgument">CheckInputArgument</link> and <link linkend="CheckOutputArgument">CheckOutputArgument</link>
-                    </para>
-                </listitem>
-                <listitem>
-                    <para>Manage input arguments</para>
-                    <para>
-                        Several tasks are performed:
-                        <orderedlist inheritnum="inherit">
-                            <listitem>
-                                <para>Get the address to the variable for input argument X</para>
-                                <para>
-                                    Function
-                                    <literal>
-                                        SciErr <link linkend="Common_getvaraddr_API">getVarAddressFromPosition</link>(void* context, int positionOfTheVariable, int** address)
-                                    </literal>
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>Check the type of the variable: matrix of double (complex or not), string, etc</para>
-                                <para>
-                                    <literal>
-                                        SciErr <link linkend="Common_getvartype_API">getVarType</link>(void* context, int* positionOfTheVariable, int* Type)
-                                    </literal>
-                                </para>
-                                <para>
-                                    Other functions are also provided:
-                                    <itemizedlist>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isBooleanType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isBooleanSparseType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isDoubleType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isIntegerType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isPointerType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isPolyType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isSparseType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isStringType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isListType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isTListType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                        <listitem>
-                                            <para>
-                                                <literal>int isMListType(void* context, int* address)</literal>
-                                            </para>
-                                        </listitem>
-                                    </itemizedlist>
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>If it is relevant, check if the input argument is complex or not.</para>
-                                <para>
-                                    <literal>
-                                        int <link linkend="Common_iscomplex_API">isVarComplex</link>(void* context, int* address)
-                                    </literal>
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>Dealing with integer, further checks should be done on the precision of the integer</para>
-                                <para>
-                                    <literal>
-                                        SciErr <link linkend="int_getmatrixofintegerprecision_API">getMatrixOfIntegerPrecision</link>(void* context, int* address, int* precision)
-                                    </literal>
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>Check the size of the variable: square matrix, scalar, etc</para>
-                                <para>
-                                    The retrieval of the size information will be done with the same functions used to retrieve the actual data. For example, for a matrix of double, the function call
-                                    <literal>
-                                        SciErr <link linkend="Double_management_reading_API">getMatrixOfDouble</link>(void* context, int* address, int* nbRows, int* nbCols, double** theActualData)
-                                    </literal>
-                                    will provide the dimension of the matrix.
-                                </para>
-                                <para>Almost all Scilab datatypes have an equivalent C function to perform such task.</para>
-                            </listitem>
-                            <listitem>
-                                <para>Other checks can be done like specific values expected, consistency between the first and second input arguments, etc.</para>
-                            </listitem>
-                            <listitem>
-                                <para>Data transformation (optional).</para>
-                                <para>Depending on the code or library targeted, some transformations can be applied to the data. A classical example is changing the storage of a matrix from column-stored to line-stored.</para>
-                                <para>Please note that it is usually a performance killer.</para>
-                            </listitem>
-                        </orderedlist>
-                    </para>
-                </listitem>
-                <listitem>
-                    <para>Application code</para>
-                    <para>Once all the checks and data retrieval have been performed, the actual core code can be called. The actual intelligence (processes, data transformations, etc) will be performed here.</para>
-                    <para>
-                        This can be done through a thirdparty code stored and built in <literal>src/c</literal>, <literal>src/cpp</literal> or <literal>src/fortran</literal> but also under the form of a library. Virtually, any library could be linked to Scilab.
-                    </para>
-                </listitem>
-                <listitem>
-                    <para>Create the output arguments for the Scilab engine</para>
-                    <para>Once the application code has been executed, usually, some data will be returned to the Scilab interpreter.</para>
-                    <para>
-                        For example, to create in the Scilab engine memory a matrix of double, the C function <literal>
-                            SciErr <link linkend="Double_management_writing_API">createMatrixOfDouble</link>(void* context, int position, int nbRows, int nbCols, const double* matrixOfDouble)
-                        </literal>
-                        should be called.
-                    </para>
-                    <para>
-                        The position is usually provided by <literal>nbInputArgument(pvApiCtx) + X</literal>. <literal>X</literal> being the position of the returned output argument. For example, with the function profile <literal>[a, b, c] = foo();</literal> the <literal>nbInputArgument(pvApiCtx) + 3</literal> will be the variable <literal>c</literal>.
-                    </para>
-                    <para>Note that the order of creation must be respected in the gateway.</para>
-                    <para>Almost all Scilab datatypes have an equivalent C function to perform such task.</para>
-                </listitem>
-                <listitem>
-                    <para>Return the output arguments to the Scilab engine</para>
-                    <para>Following, the task 4, the created variable will be returned.</para>
-                    <para>
-                        Taking the previous example <literal>[a, b, c] = foo();</literal>, to return <literal>a</literal>, the following declaration must be done: <literal>AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;</literal>
-                    </para>
-                    <para>
-                        To commit the new variable to the Scilab engine, the function <link linkend="ReturnArguments">ReturnArguments(pvApiCtx)</link> must be called.
-                    </para>
-                </listitem>
-            </orderedlist>
-            
-        </para>
-        <para>Note that almost all the API_Scilab functions returns a C structure called SciErr which contains many information about the error.</para>
-        <para>
-            By default, Scilab numerical values are stored with the C type <literal>double</literal>.
-        </para>
-        <para>
-            As convention, gateways are stored in <literal>sci_gateway/c/</literal> (or <literal>/cpp/</literal>) and are called <literal>sci_functionName.c</literal>.
-        </para>
-        <para>
-            <literal>pvApiCtx</literal> is the global context variable. Useless in the 5 family, it has been introduced to manage multithread aspects coming with the version 6 of Scilab.
-        </para>
-    </refsection>
-    <refsection>
-        <title>Real life example</title>
-        <para>Taking the sample Scilab function:</para>
-        <para>
-            <literal>[c,d] = foo(a,b)</literal>
-        </para>
-        <para>
-            with <literal>a</literal> being a matrix of double and <literal>b</literal> a matrix of boolean with the same size of <literal>a</literal>, foo will multiply each element of <literal>a</literal> by 2 and return it as <literal>c</literal> and transform each element of element of b to its opposite.
-        </para>
-        <para>
-            The example is available in the toolbox skeleton provided with the Scilab binary. The path is <literal>contrib/toolbox_skeleton/sci_gateway/c/sci_foo.c</literal>
-        </para>
-        <para>Detailed explanations are provided under the form of C comment in the following example.</para>
-        <programlisting role="code_gateway">
-            <![CDATA[ 
-// Full source can be found in the sci_gateway/c/ directory of the
-// toolbox skeleton
-
-// Standard header
-#include "api_scilab.h"
-#include "BOOL.h"
-
-// Function declaration
-int sci_foo(char *fname, void* pvApiCtx)
-{
-    // Error management variable
-    SciErr sciErr;
-
-    ////////// Variables declaration //////////
-    int m1 = 0, n1 = 0;
-    int *piAddressVarOne = NULL;
-    double *matrixOfDouble = NULL;
-    double *newMatrixOfDouble = NULL;
-
-    int m2 = 0, n2 = 0;
-    int *piAddressVarTwo = NULL;
-    int *matrixOfBoolean = NULL;
-    int *newMatrixOfBoolean = NULL;
-    int i = 0;
-
-
-    ////////// Check the number of input and output arguments //////////
-    /* --> [c, d] = foo(a, b) */
-    /* check that we have only 2 input arguments */
-    /* check that we have only 2 output argument */
-    CheckInputArgument(pvApiCtx, 2, 2) ;
-    CheckOutputArgument(pvApiCtx, 2, 2) ;
-
-
-    ////////// Manage the first input argument (double) //////////
-    /* get Address of inputs */
-    sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
-    if (sciErr.iErr)
-    {
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-    /* Check that the first input argument is a real matrix (and not complex) */
-    if ( !isDoubleType(pvApiCtx, piAddressVarOne) ||  isVarComplex(pvApiCtx, piAddressVarOne) )
-    {
-        Scierror(999, "%s: Wrong type for input argument #%d: A real matrix expected.\n", fname, 1);
-        return 0;
-    }
-
-    /* get matrix */
-    sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarOne, &m1, &n1, &matrixOfDouble);
-    if (sciErr.iErr)
-    {
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-    ////////// Manage the second input argument (boolean) //////////
-
-    /* get Address of inputs */
-    sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddressVarTwo);
-    if (sciErr.iErr)
-    {
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-    if ( !isBooleanType(pvApiCtx, piAddressVarTwo) )
-    {
-        Scierror(999, "%s: Wrong type for input argument #%d: A boolean matrix expected.\n", fname, 2);
-        return 0;
-    }
-
-    /* get matrix */
-    sciErr = getMatrixOfBoolean(pvApiCtx, piAddressVarTwo, &m2, &n2, &matrixOfBoolean);
-    if (sciErr.iErr)
-    {
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-    ////////// Check the consistency of the two input arguments //////////
-
-    if ((m1 != m2) || (n1 != n2))
-    {
-        Scierror(999, "%s: Wrong size for input arguments: Same size expected.\n", fname, 1);
-        return 0;
-    }
-
-
-    newMatrixOfDouble = (double*)malloc(sizeof(double) * m1 * n1);
-    ////////// Application code //////////
-    // Could be replaced by a call to a library
-
-    for (i = 0; i < m1 * n1; i++)
-    {
-        /* For each element of the matrix, multiply by 2 */
-        newMatrixOfDouble[i] = matrixOfDouble[i] * 2;
-    }
-
-    newMatrixOfBoolean = (int*)malloc(sizeof(BOOL) * m2 * n2);
-    for (i = 0; i < m2 * n2; i++)
-    {
-        /* For each element of the matrix, invert the value */
-        newMatrixOfBoolean[i] = ((matrixOfBoolean[i] == TRUE) ? FALSE : TRUE);
-    }
-
-    ////////// Create the output arguments //////////
-
-    /* Create the matrix as return of the function */
-    sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, m1, n1, newMatrixOfDouble);
-    free(newMatrixOfDouble); // Data have been copied into Scilab memory
-    if (sciErr.iErr)
-    {
-        free(newMatrixOfBoolean); // Make sure everything is cleanup in case of error
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-    /* Create the matrix as return of the function */
-    sciErr = createMatrixOfBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 2, m2, n2, newMatrixOfBoolean);
-    free(newMatrixOfBoolean); // Data have been copied into Scilab memory
-    if (sciErr.iErr)
-    {
-        printError(&sciErr, 0);
-        return 0;
-    }
-
-
-    ////////// Return the output arguments to the Scilab engine //////////
-
-    AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
-    AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
-
-    return 0;
-}
-      ]]>
-        </programlisting>
-        <para>
-            To build this code and load it to Scilab, we use the dynamic link capabilities of Scilab. Delegating the build process to Scilab, this code is multiplaform.
-            <programlisting role="scilab">
-                <![CDATA[
-      files=["sci_foo.c"];
-      // TODO: WTF ?
-      WITHOUT_AUTO_PUTLHSVAR = %t;
-      ilib_build('build_lib',['foo','sci_foo'],files,[]);
-      exec loader.sce
-      [c, d] = foo([2,%pi], [%t, %f])
-      ]]>
-            </programlisting>
-        </para>
-        <para>
-            Various checks can be performed:
-            <programlisting role="no-scilab-exec">
-                <![CDATA[
--->[c, d] = foo(2, 2)
-                   !--error 999
-foo: Wrong type for input argument #2: A boolean matrix expected.
-      ]]>
-            </programlisting>
-            <programlisting role="no-scilab-exec">
-                <![CDATA[
--->[c, d] = foo([2,2], %t)
-                        !--error 999
-foo: Wrong size for input arguments: Same size expected.
-      ]]>
-            </programlisting>
-            <programlisting role="no-scilab-exec">
-                <![CDATA[
--->[a,b]=foo(2+%i,%t)
-                   !--error 999
-foo: Wrong type for input argument #1: A real matrix expected.
-      ]]>
-            </programlisting>
-            <programlisting role="no-scilab-exec">
-                <![CDATA[
--->[c, d] = foo([2,%pi], [%t, %f])
- d  =
-
-  F T
- c  =
-
-    4.    6.2831853
-      ]]>
-            </programlisting>
-        </para>
-    </refsection>
-</refentry>
@@ -10,7 +10,7 @@
  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_scilab" scilab:needs-examples="no" xml:lang="en">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="api_scilab_legacy" scilab:needs-examples="no" xml:lang="en">
     <refnamediv>
         <refname>api_scilab</refname>
         <refpurpose>api_scilab is the Scilab interface to read/write data from/to Scilab memory </refpurpose>
             </listitem>
             <listitem>
                 <para>
+                    18 - <emphasis>sci_struct</emphasis>: a Scilab struct
+                </para>
+            </listitem>
+            <listitem>
+                <para>
+                    19 - <emphasis>sci_cell</emphasis>: a Scilab cell
+                </para>
+            </listitem>
+            <listitem>
+                <para>
                     128 - <emphasis>sci_pointer (was: sci_lufact_pointer before Scilab 5.2)</emphasis>: a pointer
                 </para>
             </listitem>
@@ -198,7 +208,7 @@ int sci_mysci_typesrhs(char * fname, void* pvApiCtx)
         <title>See Also</title>
         <simplelist type="inline">
             <member>
-                <link linkend="sciprint">sciprint</link>
+                <link linkend="api_common">getType</link>
             </member>
         </simplelist>
     </refsection>