本文整理汇总了C++中AssignOutputVariable函数的典型用法代码示例。如果您正苦于以下问题:C++ AssignOutputVariable函数的具体用法?C++ AssignOutputVariable怎么用?C++ AssignOutputVariable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AssignOutputVariable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: sci_fftw_forget_wisdom
/*--------------------------------------------------------------------------*/
int sci_fftw_forget_wisdom(char *fname, void* pvApiCtx)
{
CheckInputArgument(pvApiCtx, 0, 0);
FreeFFTWPlan(getSci_Backward_Plan());
FreeFFTWPlan(getSci_Forward_Plan());
call_fftw_forget_wisdom();
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:lucianofreitas,项目名称:scilab,代码行数:15,代码来源:sci_fftw_forget_wisdom.c
示例2: sci_sym_getRowActivity
int sci_sym_getRowActivity(char *fname){
//error management variable
SciErr sciErr;
int iRet;
//data declarations
int numConstr;
double *rowAct;
//ensure that environment is active
if(global_sym_env==NULL){
sciprint("Error: Symphony environment not initialized. Please run 'sym_open()' first.\n");
return 1;
}
//code to check arguments and get them
CheckInputArgument(pvApiCtx,0,0) ;
CheckOutputArgument(pvApiCtx,1,1) ;
//code to process input
iRet=sym_get_num_rows(global_sym_env,&numConstr);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured. Has the problem been solved? Is the problem feasible?\n");
return 1;
}
rowAct=new double[numConstr];
iRet=sym_get_row_activity(global_sym_env,rowAct);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured. Has the problem been solved? Is the problem feasible?\n");
delete[] rowAct;
return 1;
}
//code to give output
sciErr=createMatrixOfDouble(pvApiCtx,nbInputArgument(pvApiCtx)+1,numConstr,1,rowAct);
if (sciErr.iErr)
{
printError(&sciErr, 0);
delete[] rowAct;
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx)+1;
//ReturnArguments(pvApiCtx);
delete[] rowAct;
return 0;
}
开发者ID:akshaymiterani,项目名称:symphony,代码行数:49,代码来源:sci_sym_getrowact.cpp
示例3: returnIntegerMatrixToScilab
int returnIntegerMatrixToScilab(int itemPos, int rows, int cols, int *dest)
{
SciErr sciErr;
//same steps as above
sciErr = createMatrixOfInteger32(pvApiCtx, nbInputArgument(pvApiCtx) + itemPos, rows, cols, dest);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
AssignOutputVariable(pvApiCtx, itemPos) = nbInputArgument(pvApiCtx)+itemPos;
return 0;
}
开发者ID:Gurupradeep,项目名称:Compiler-Project,代码行数:15,代码来源:sci_iofunc.cpp
示例4: sci_mpi_init
int sci_mpi_init(char *fname, void* pvApiCtx)
{
int flag;
CheckInputArgument(pvApiCtx, 0, 0);
CheckOutputArgument(pvApiCtx, 1, 1);
mpi_init_internal();
MPI_Initialized(&flag);
if (!flag)
{
/* MPI Not yet initialized */
MPI_Init(NULL, NULL);
MPI_Comm_create_errhandler(MPIErrHandler, &errhdl);
}
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:ScilabOrg,项目名称:scilab,代码行数:18,代码来源:sci_mpi_init.c
示例5: write_sparse
int write_sparse(char *fname, void* pvApiCtx)
{
SciErr sciErr;
int piNbItemRow[] = {1, 2, 1};
int piColPos[] = {8, 4, 7, 2};
double pdblSReal[] = {1, 2, 3, 4};
double pdblSImg[] = {4, 3, 2, 1};
int iNbItem = 4;
sciErr = createComplexSparseMatrix(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 3, 10, iNbItem, piNbItemRow, piColPos, pdblSReal, pdblSImg);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
return 0;
}
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:19,代码来源:sparse_writing_api.c
示例6: common_read
int common_read(char *fname, void* pvApiCtx)
{
SciErr sciErr;
int iItem = 0;
int iRet = 0;
int *piAddr = NULL;
CheckInputArgument(pvApiCtx, 1, 1);
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
get_info(pvApiCtx, 1, NULL, piAddr, 0);
AssignOutputVariable(pvApiCtx, 1) = 0;
return 0;
}
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:20,代码来源:common_read_api.c
示例7: C2F
/*--------------------------------------------------------------------------*/
int C2F(sci_getscilabmode)(char *fname, unsigned long fname_len)
{
int n1 = 0, m1 = 0;
char *output = NULL ;
int iRet = 0;
SciErr sciErr;
CheckInputArgument(pvApiCtx, 0, 0) ;
CheckOutputArgument(pvApiCtx, 1, 1) ;
switch (getScilabMode())
{
case SCILAB_API:
default :
output = strdup("API");
break;
case SCILAB_STD:
output = strdup("STD");
break;
case SCILAB_NW:
output = strdup("NW");
break;
case SCILAB_NWNI:
output = strdup("NWNI");
break;
}
/* Create the string matrix as return of the function */
iRet = createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, output);
free(output); // Data have been copied into Scilab memory
if (iRet)
{
freeAllocatedSingleString(output);
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:rushboy52,项目名称:scilab,代码行数:41,代码来源:sci_getscilabmode.c
示例8: sci_drawlater
/*--------------------------------------------------------------------------*/
int sci_drawlater(char * fname, void* pvApiCtx)
{
int iFalse = (int)FALSE;
int iParentFigureUID = 0;
int* piParentFigureUID = &iParentFigureUID;
int iSubwinUID = 0;
int iCurChildUID = 0;
int iType = -1;
int *piType = &iType;
CheckInputArgument(pvApiCtx, 0, 0);
CheckOutputArgument(pvApiCtx, 0, 1);
if (nbInputArgument(pvApiCtx) <= 0)
{
iSubwinUID = getOrCreateDefaultSubwin();
if (iSubwinUID != 0)
{
// Look for top level figure
iCurChildUID = iSubwinUID;
do
{
iParentFigureUID = getParentObject(iCurChildUID);
getGraphicObjectProperty(iParentFigureUID, __GO_TYPE__, jni_int, (void **)&piType);
iCurChildUID = iParentFigureUID;
}
while (iParentFigureUID != 0 && iType != __GO_FIGURE__);
if (iParentFigureUID != 0)
{
setGraphicObjectProperty(iParentFigureUID, __GO_IMMEDIATE_DRAWING__, &iFalse, jni_bool, 1);
}
}
}
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:40,代码来源:sci_drawlater.c
示例9: sci_mpi_finalize
int sci_mpi_finalize(char *fname, void* pvApiCtx)
{
int iRet = 0;
CheckInputArgument(pvApiCtx, 0, 0);
CheckOutputArgument(pvApiCtx, 1, 1);
mpi_finalize_internal();
iRet = MPI_Finalize();
if (iRet != MPI_SUCCESS)
{
char error_string[MPI_MAX_ERROR_STRING];
int length_of_error_string;
MPI_Error_string(iRet, error_string, &length_of_error_string);
Scierror(999, _("%s: Could not finalize the MPI instance: %s\n"), fname, error_string);
return 0;
}
// TODO: catch les erreurs
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:22,代码来源:sci_mpi_finalize.c
示例10: write_poly
int write_poly(char *fname, void* pvApiCtx)
{
SciErr sciErr;
//output variable info : polynomial matrix 2 x 4
//[ x + 2 x^2 - 4x + 5 4x^3 - 14x^2 + 18 ;
// 2x^3 - 12x^2 + 64 1 8x^5 + 32x^3]
int iRows = 2;
int iCols = 3;
//varname "x"
char pstVarName[2] = {"x"};
//coeficient array
int piNbCoef[6] = {2, 4, 3, 1, 4, 6};
//data array
double *pdblReal[6] = {0};
double pdblPoly0[2] = {2, 1};
double pdblPoly1[4] = {64, 0, -12, 2};
double pdblPoly2[3] = {5, -4, 1};
double pdblPoly3[1] = {1};
double pdblPoly4[4] = {18, 0, -14, 4};
double pdblPoly5[6] = {0, 0, 0, 32, 0, 8};
pdblReal[0] = pdblPoly0;
pdblReal[1] = pdblPoly1;
pdblReal[2] = pdblPoly2;
pdblReal[3] = pdblPoly3;
pdblReal[4] = pdblPoly4;
pdblReal[5] = pdblPoly5;
sciErr = createMatrixOfPoly(pvApiCtx, nbInputArgument(pvApiCtx) + 1, pstVarName, iRows, iCols, piNbCoef, pdblReal);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
//assign allocated variables to Lhs position
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
return 0;
}
开发者ID:Bitiquinho,项目名称:Scilab-Jupyter-Kernel,代码行数:38,代码来源:poly_writing_api.c
示例11: xlfont_no_rhs
/*--------------------------------------------------------------------------*/
static int xlfont_no_rhs(char * fname)
{
SciErr sciErr;
int m1 = 0, n1 = 0;
int nbElements = 0;
char **fontsname = getInstalledFontsName(&nbElements);
m1 = 1;
n1 = nbElements;
sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, m1, n1, (const char * const*)fontsname);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
freeArrayOfString(fontsname, nbElements);
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:quanpan302,项目名称:scilab,代码行数:24,代码来源:sci_xlfont.c
示例12: sci_fftwlibraryisloaded
/*--------------------------------------------------------------------------*/
int sci_fftwlibraryisloaded(char *fname, void* pvApiCtx)
{
int iErr;
if ( IsLoadedFFTW() )
{
iErr = createScalarBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 1); // true
}
else
{
iErr = createScalarBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 0); // false
}
if (iErr)
{
Scierror(999, _("%s: Memory allocation error.\n"), fname);
return iErr;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:25,代码来源:sci_fftwlibraryisloaded.c
示例13: write_boolean
int write_boolean(char *fname, unsigned long fname_len)
{
SciErr sciErr;
int i, j;
//first variable info : boolean matrix of boolean 3 x 4
int iRows1 = 3;
int iCols1 = 4;
int* pboolOutput1 = NULL;
//second variable info : boolean matrix of boolean 4 x 6
int iRows2 = 4;
int iCols2 = 6;
int* pboolOutput2 = NULL;
/************************
* First variable *
************************/
//alloc array of data in OS memory
pboolOutput1 = (int*)malloc(sizeof(int) * iRows1 * iCols1);
//fill array with incremental values
//[ %t %f %t %f
// %t %f %t %f
// %t %f %t %f ]
for (i = 0 ; i < iRows1 ; i++)
{
for (j = 0 ; j < iCols1 ; j++)
{
pboolOutput1[i + iRows1 * j] = (i * iCols1 + j) % 2 == FALSE;
}
}
//can be written in a single loop
//for(i = 0 ; i < iRows1 * iCols1; i++)
//{
// pboolOutput1[i] = i % 2 == FALSE;
//}
//create a variable from a existing data array
sciErr = createMatrixOfBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows1, iCols1, pboolOutput1);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
//after creation, we can free memory.
free(pboolOutput1);
/*************************
* Second variable *
*************************/
//reserve space in scilab memory and fill it
sciErr = allocMatrixOfBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 2, iRows2, iCols2, &pboolOutput2);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
//fill array with incremental values
//[ %f %t %f %t %f %t
// %f %t %f %t %f %t
// %f %t %f %t %f %t
// %f %t %f %t %f %t ]
for (i = 0 ; i < iRows2 ; i++)
{
for (j = 0 ; j < iCols2 ; j++)
{
pboolOutput2[i + iRows2 * j] = (i * iCols2 + j) % 2 == TRUE;
}
}
//can be written in a single loop
//for(i = 0 ; i < iRows2 * iCols2; i++)
//{
// pboolOutput2[i] = i % 2 == TRUE;
//}
// /!\ DO NOT FREE MEMORY, in this case, it's the Scilab memory
//assign allocated variables to Lhs position
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
return 0;
}
开发者ID:ZhanlinWang,项目名称:scilab,代码行数:86,代码来源:boolean_writing_api.c
示例14: sci_getinstalledlookandfeels
/*--------------------------------------------------------------------------*/
int sci_getinstalledlookandfeels(char *fname, unsigned long fname_len)
{
SciErr sciErr;
CheckInputArgument(pvApiCtx, 0, 0);
CheckOutputArgument(pvApiCtx, 1, 1);
org_scilab_modules_gui_utils::LookAndFeelManager * lnf = 0;
try
{
lnf = new org_scilab_modules_gui_utils::LookAndFeelManager(getScilabJavaVM());
}
catch (const GiwsException::JniException & e)
{
Scierror(999, _("%s: A Java exception arisen:\n%s"), fname, e.whatStr().c_str());
return 1;
}
if (lnf)
{
char **lookandfeels = NULL;
int nbElems = 0;
int nbCol = 0;
lookandfeels = lnf->getInstalledLookAndFeels();
nbElems = lnf->numbersOfInstalledLookAndFeels();
nbCol = 1;
sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, nbElems, nbCol, lookandfeels);
if (sciErr.iErr)
{
printError(&sciErr, 0);
Scierror(999, _("%s: Memory allocation error.\n"), fname);
return 1;
}
if (lookandfeels)
{
int i = 0;
for (i = 0; i < nbElems; i++)
{
if (lookandfeels[i])
{
delete[]lookandfeels[i];
}
}
delete[]lookandfeels;
lookandfeels = NULL;
}
delete lnf;
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
returnArguments(pvApiCtx);
}
else
{
Scierror(999, _("%s: No more memory.\n"), fname);
}
return 0;
}
开发者ID:ZhanlinWang,项目名称:scilab,代码行数:62,代码来源:sci_getinstalledlookandfeels.cpp
示例15: sci_hdf5_listvar_v2
//.........这里部分代码省略.........
}
iNbItem = getVariableNames(iFile, pstVarNameList);
for (int i = 0; i < iNbItem; i++)
{
int iDataSetId = getDataSetIdFromName(iFile, pstVarNameList[i]);
if (iDataSetId == 0)
{
break;
}
strncpy(pInfo[i].varName, pstVarNameList[i], sizeof(pInfo[i].varName) - 1);
pInfo[i].iSize = 0;
b = read_data(iDataSetId, 0, NULL, &pInfo[i]) == false;
if (b)
{
break;
}
if (Lhs == 1)
{
sciprint("%s\n", pInfo[i].pstInfo);
}
}
freeArrayOfString(pstVarNameList, iNbItem);
}
else
{
//no variable returms [] for each Lhs
for (int i = 0 ; i < Lhs ; i++)
{
createEmptyMatrix(pvApiCtx, nbIn + i + 1);
AssignOutputVariable(pvApiCtx, i + 1) = nbIn + i + 1;
}
ReturnArguments(pvApiCtx);
return 0;
}
closeHDF5File(iFile);
//1st Lhs
char** pstVarName = (char**)MALLOC(sizeof(char*) * iNbItem);
for (int i = 0 ; i < iNbItem ; i++)
{
pstVarName[i] = pInfo[i].varName;
}
sciErr = createMatrixOfString(pvApiCtx, nbIn + 1, iNbItem, 1, pstVarName);
FREE(pstVarName);
if (sciErr.iErr)
{
FREE(pInfo);
printError(&sciErr, 0);
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbIn + 1;
if (Lhs > 1)
{
//2nd Lhs
double* pdblType;
sciErr = allocMatrixOfDouble(pvApiCtx, nbIn + 2, iNbItem, 1, &pdblType);
if (sciErr.iErr)
开发者ID:scitao,项目名称:scilab,代码行数:67,代码来源:sci_hdf5_listvar_v2.cpp
示例16: sci_plot2d
//.........这里部分代码省略.........
}
if (rect[0] <= 0. && logFlags[1] == 'l') /* xmin */
{
if (freeStrf)
{
freeAllocatedSingleString(strf);
}
Scierror(999, _("%s: Bounds on x axis must be strictly positive to use logarithmic mode.\n"), fname);
return -1;
}
if (rect[1] <= 0. && logFlags[2] == 'l') /* ymin */
{
if (freeStrf)
{
freeAllocatedSingleString(strf);
}
Scierror(999, _("%s: Bounds on y axis must be strictly positive to use logarithmic mode.\n"), fname);
return -1;
}
break;
case '2' :
case '4' :
case '6' :
case '8':
case '9':
/* computed from the x/y min/max */
if ((int)strlen(logFlags) < 1)
{
dataflag = 'g';
}
else
{
dataflag = logFlags[0];
}
switch (dataflag)
{
case 'e' :
size_x = (m1 != 0) ? 2 : 0;
break;
case 'o' :
size_x = m1;
break;
case 'g' :
default :
size_x = (n1 * m1);
break;
}
if (size_x != 0)
{
if (logFlags[1] == 'l' && sciFindStPosMin((l1), size_x) <= 0.0)
{
if (freeStrf)
{
freeAllocatedSingleString(strf);
}
Scierror(999, _("%s: At least one x data must be strictly positive to compute the bounds and use logarithmic mode.\n"), fname);
return -1;
}
}
size_y = (n1 * m1);
if (size_y != 0)
{
if (logFlags[2] == 'l' && sciFindStPosMin((l2), size_y) <= 0.0)
{
if (freeStrf)
{
freeAllocatedSingleString(strf);
}
Scierror(999, _("%s: At least one y data must be strictly positive to compute the bounds and use logarithmic mode\n"), fname);
return -1;
}
}
break;
}
// open a figure if none already exists
getOrCreateDefaultSubwin();
Objplot2d (1, logFlags, (l1), (l2), &n1, &m1, style, strf, legend, rect, nax, flagNax);
// Allocated by sciGetStyle (get_style_arg function in GetCommandArg.c)
FREE(style);
if (freeStrf)
{
freeAllocatedSingleString(strf);
}
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:FOSSEE-Internship,项目名称:scilab,代码行数:101,代码来源:sci_plot2d.c
示例17: sci_umf_lufact
//.........这里部分代码省略.........
}
Scierror(999, _("%s: Wrong size for input argument #%d.\n"), fname, 1);
return 1;
}
SciSparseToCcsSparse(&AA, &A);
FREE(piNbItemRow);
FREE(piColPos);
FREE(pdblSpReal);
if (pdblSpImg)
{
FREE(pdblSpImg);
}
/* symbolic factorization */
if (A.it == 1)
{
stat = umfpack_zi_symbolic(nA, mA, A.p, A.irow, A.R, A.I, &Symbolic, Control, Info);
}
else
{
stat = umfpack_di_symbolic(nA, mA, A.p, A.irow, A.R, &Symbolic, Control, Info);
}
if (stat != UMFPACK_OK)
{
freeCcsSparse(A);
Scierror(999, _("%s: An error occurred: %s: %s\n"), fname, _("symbolic factorization"), UmfErrorMes(stat));
return 1;
}
/* numeric factorization */
if (A.it == 1)
{
stat = umfpack_zi_numeric(A.p, A.irow, A.R, A.I, Symbolic, &Numeric, Control, Info);
}
else
{
stat = umfpack_di_numeric(A.p, A.irow, A.R, Symbolic, &Numeric, Control, Info);
}
if (A.it == 1)
{
umfpack_zi_free_symbolic(&Symbolic);
}
else
{
umfpack_di_free_symbolic(&Symbolic);
}
if ( stat != UMFPACK_OK && stat != UMFPACK_WARNING_singular_matrix )
{
freeCcsSparse(A);
Scierror(999, _("%s: An error occurred: %s: %s\n"), fname, _("symbolic factorization"), UmfErrorMes(stat));
return 1;
}
if ( stat == UMFPACK_WARNING_singular_matrix && mA == nA )
{
if (getWarningMode())
{
Sciwarning("\n%s:%s\n", _("Warning"), _("The (square) matrix appears to be singular."));
}
}
/* add the pointer in the list ListNumeric */
if (! AddAdrToList(Numeric, A.it, &ListNumeric))
{
/* AddAdrToList return 0 if malloc have failed : as it is just
for storing 2 pointers this is unlikely to occurs but ... */
if (A.it == 1)
{
umfpack_zi_free_numeric(&Numeric);
}
else
{
umfpack_di_free_numeric(&Numeric);
}
freeCcsSparse(A);
Scierror(999, _("%s: An error occurred: %s\n"), fname, _("no place to store the LU pointer in ListNumeric."));
return 1;
}
freeCcsSparse(A);
/* create the scilab object to store the pointer onto the LU factors */
sciErr = createPointer(pvApiCtx, 2, Numeric);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
/* return the pointer */
AssignOutputVariable(pvApiCtx, 1) = 2;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:FOSSEE-Internship,项目名称:scilab,代码行数:101,代码来源:sci_umf_lufact.c
示例18: sci_uicontrol
//.........这里部分代码省略.........
if (isScalar(pvApiCtx, piAddr) == 0)
{
Scierror(999, _("%s: Wrong type for input argument #%d: string expected.\n"), fname, 1);
return FALSE;
}
if (getAllocatedSingleString(pvApiCtx, piAddr, &pstXmlfile))
{
freeAllocatedSingleString(pstXmlfile);
Scierror(999, _("%s: No more memory.\n"), fname);
return FALSE;
}
pstExpandedPath = expandPathVariable(pstXmlfile);
freeAllocatedSingleString(pstXmlfile);
iUicontrol = xmlload(pstExpandedPath);
if (iUicontrol < 1)
{
Scierror(999, _("%s: can not read file %s.\n"), fname, pstExpandedPath);
FREE(pstExpandedPath);
return 0;
}
FREE(pstExpandedPath);
GraphicHandle = getHandle(iUicontrol);
/* Create return variable */
if (createScalarHandle(pvApiCtx, nbInputArgument(pvApiCtx) + 1, GraphicHandle))
{
Scierror(999, _("%s: Memory allocation error.\n"), fname);
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return TRUE;
}
#endif // Allow XML loading
else /* Get parent ID */
{
int* piAddr = NULL;
long long hParent = 0;
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
if (isScalar(pvApiCtx, piAddr) == 0)
{
Scierror(999, _("%s: Wrong size for input argument #%d: A graphic handle expected.\n"), fname, 1);
return FALSE;
}
if (getScalarHandle(pvApiCtx, piAddr, &hParent))
{
Scierror(202, _("%s: Wrong type for input argument #%d: Handle matrix expected.\n"), fname, 1);
return 1;
}
iParentUID = getObjectFromHandle((long)hParent);
if (iParentUID != 0)
{
getGraphicObjectProperty(iParentUID, __GO_TYPE__, jni_int, (void **)&piParentType);
if (iParentType == __GO_UICONTROL__) /* Focus management */
开发者ID:leowzukw,项目名称:scilab-mirror,代码行数:67,代码来源:sci_uicontrol.c
示例19: sci_delete
/*--------------------------------------------------------------------------*/
int sci_delete(char *fname, unsigned long fname_len)
{
SciErr sciErr;
int* piAddrl1 = NULL;
long long* l1 = NULL;
int* piAddrl2 = NULL;
char* l2 = NULL;
int m1 = 0, n1 = 0, lw = 0;
unsigned long hdl = 0;
int nb_handles = 0, i = 0, dont_overload = 0;
int iObjUID = 0;
int iFigureUID = 0;
int* piChildrenUID = NULL;
int iChildrenCount = 0;
int* childrencount = &iChildrenCount;
int iHidden = 0;
int *piHidden = &iHidden;
int iParentUID = 0;
int* piParentUID = &iParentUID;
int iParentType = -1;
int *piParentType = &iParentType;
int iObjType = -1;
int *piObjType = &iObjType;
CheckInputArgument(pvApiCtx, 0, 1);
CheckOutputArgument(pvApiCtx, 0, 1);
if (nbInputArgument(pvApiCtx) == 0) /* Delete current object */
{
iObjUID = getCurrentObject();
if (iObjUID == 0)
{
//No current object, we can leave
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
hdl = (unsigned long)getHandle(iObjUID);
dont_overload = 1;
nb_handles = 1;
}
else
{
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrl1);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
switch (getInputArgumentType(pvApiCtx, 1))
{
case sci_matrix:
{
if (isEmptyMatrix(pvApiCtx, piAddrl1))
{
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 1;
}
else
{
Scierror(202, _("%s: Wrong type for input argument #%d: Handle matrix expected.\n"), fname, 1);
return 1;
}
break;
}
case sci_handles: /* delete Entity given by a handle */
// Retrieve a matrix of handle at position 1.
sciErr = getMatrixOfHandle(pvApiCtx, piAddrl1, &m1, &n1, &l1); /* Gets the Handle passed as argument */
if (sciErr.iErr)
{
printError(&sciErr, 0);
Scierror(202, _("%s: Wrong type for input argument #%d: Handle matrix expected.\n"), fname, 1);
return 1;
}
nb_handles = m1 * n1;
if (nbInputArgument(pvApiCtx) == 2)
{
sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrl2);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
// Retrieve a matrix of double at position 2.
if (getAllocatedSingleString(pvApiCtx, piAddrl2, &l2)) /* Gets the command name */
{
Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
return 1;
}
//.........这里部分代码省略.........
开发者ID:ASP1234,项目名称:Scilabv5.5.2,代码行数:101,代码来源:sci_delete.c
示例20: sci_zneupd
//.........这里部分代码省略.........
if (mWORKev*nWORKev != 2 * pNCV[0])
{
Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKev", 2 * pNCV[0]);
return 1;
}
if ((mV != pN[0]) || (nV != pNCV[0]))
{
Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", pN[0], pNCV[0]);
return 1;
}
sizeWORKL = 3 * pNCV[0] * pNCV[0] + 5 * pNCV[0];
if ((mWORKL * nWORKL < sizeWORKL))
{
Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
return 1;
}
sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpHOWMANY);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
// Retrieve a matrix of double at position 2.
if (getAllocatedSingleString(pvApiCtx, piAddrpHOWMANY, &pHOWMANY))
{
Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
return 1;
}
sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpBMAT);
if (sciErr.iErr)
{
freeAllocatedSingleString(pHOWMANY);
printError(&sciErr, 0);
return 1;
}
// Retrieve a matrix of double at position 8.
if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
{
freeAllocatedSingleString(pHOWMANY);
Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 8);
return 1;
}
sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpWHICH);
if (sciErr.iErr)
{
freeAllocatedSingleString(pHOWMANY);
freeAllocatedSingleString(pBMAT);
printError(&sciErr, 0);
return 1;
}
// Retrieve a matrix of double at position 10.
if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
{
freeAllocatedSingleString(pHOWMANY);
freeAllocatedSingleString(pBMAT);
Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 10);
return 1;
}
C2F(zneupd)(pRVEC, pHOWMANY, pSELECT, pD,
pZ, &LDZ, pSIGMA, pWORKev,
pBMAT, pN, pWHICH, pNEV,
pTOL, pRESID, pNCV, pV,
&LDV, pIPARAM, pIPNTR, pWORKD,
pWORKL, &LWORKL, pRWORK, pINFO);
freeAllocatedSingleString(pHOWMANY);
freeAllocatedSingleString(pBMAT);
freeAllocatedSingleString(pWHICH);
if (pINFO[0] < 0)
{
C2F(errorinfo)("zneupd", pINFO, 6L);
return 0;
}
AssignOutputVariable(pvApiCtx, 1) = D;
AssignOutputVariable(pvApiCtx, 2) = Z;
AssignOutputVariable(pvApiCtx, 3) = RESID;
AssignOutputVariable(pvApiCtx, 4) = IPARAM;
AssignOutputVariable(pvApiCtx, 5) = IPNTR;
AssignOutputVariable(pvApiCtx, 6) = WORKD;
AssignOutputVariable(pvApiCtx, 7) = WORKL;
AssignOutputVariable(pvApiCtx, 8) = RWORK;
AssignOutputVariable(pvApiCtx, 9) = INFO;
ReturnArguments(pvApiCtx);
return 0;
}
开发者ID:ZhanlinWang,项目名称:scilab,代码行数:101,代码来源:sci_zneupd.c
注:本文中的AssignOutputVariable函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论