本文整理匯總了C++中CheckOutputArgument函數的典型用法代碼示例。如果您正苦於以下問題:C++ CheckOutputArgument函數的具體用法?C++ CheckOutputArgument怎麽用?C++ CheckOutputArgument使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了CheckOutputArgument函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: sci_sym_solve
int sci_sym_solve(char *fname, unsigned long fname_len){
int status=0;
//check whether we have no input and one output argument or not
CheckInputArgument(pvApiCtx, 0, 0) ;//no input argument
CheckOutputArgument(pvApiCtx, 1, 1) ;//one output argument
// Check environment
if(global_sym_env==NULL)
sciprint("Error: Symphony environment is not initialized.\n");
else {// There is an environment opened
double time_limit = -1.0;
status = sym_get_dbl_param(global_sym_env,"time_limit",&time_limit);
if (status == FUNCTION_TERMINATED_NORMALLY) {
if ( time_limit < 0.0 )
sciprint("\nNote: There is no limit on time.\n");
else sciprint("\nNote: Time limit has been set to %lf.\n",time_limit);
status=process_ret_val(sym_solve(global_sym_env));// Call function
}
else {
sciprint("\nUnable to read time limit.\n");
status = 1; //Error state
}
}
// Return result to scilab
return returnDoubleToScilab(status);
}
示例2: ScilabAbstractEnvironmentException
int ScilabGateway::unwrapremove(char * fname, const int envId, void * pvApiCtx)
{
SciErr err;
int * addr = 0;
int row = 0, col = 0;
int * id = 0;
if (Rhs == 0)
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Wrong number of arguments : more than 1 argument expected"));
}
CheckOutputArgument(pvApiCtx, Rhs, Rhs);
ScilabAbstractEnvironment & env = ScilabEnvironments::getEnvironment(envId);
ScilabGatewayOptions & options = env.getGatewayOptions();
OptionsHelper::setCopyOccurred(false);
ScilabObjects::initialization(env, pvApiCtx);
options.setIsNew(false);
for (int i = 1; i <= Rhs; i++)
{
err = getVarAddressFromPosition(pvApiCtx, i, &addr);
if (err.iErr)
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Invalid variable: cannot retrieve the data"));
}
if (!ScilabObjects::isExternalObj(addr, pvApiCtx))
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Wrong type for input argument #%d: An External Object expected."), i);
}
err = getMatrixOfInteger32InList(pvApiCtx, addr, EXTERNAL_OBJ_ID_POSITION, &row, &col, &id);
if (err.iErr)
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Invalid variable: cannot retrieve the data"));
}
if (!ScilabObjects::unwrap(*id, Rhs + i, envId, pvApiCtx))
{
try
{
ScilabObjects::createEnvironmentObjectAtPos(EXTERNAL_OBJECT, Rhs + i, *id, envId, pvApiCtx);
}
catch (ScilabAbstractEnvironmentException & /*e*/)
{
}
}
LhsVar(i) = Rhs + i;
env.removeobject(*id);
}
PutLhsVar();
return 0;
}
示例3: sci_mpi_comm_rank
/**
* This function returns the rank of a process within the specified communicator.
*/
int sci_mpi_comm_rank(char *fname, void* pvApiCtx)
{
int comm_rank = -1;
CheckInputArgument(pvApiCtx, 0, 1); // Check the parameters of the function ... Here 0 or 1
CheckOutputArgument(pvApiCtx, 1, 1); // The output of the function (1 parameter)
// return the communicator from optional argument "comm"
// if no optional "comm" is given, return MPI_COMM_WORLD
MPI_Comm comm = getOptionalComm(pvApiCtx);
if (comm == NULL)
{
Scierror(999, _("%s: Wrong type for input argument #%s: An MPI communicator expected.\n"), fname, "comm");
return 0;
}
if (comm != MPI_COMM_NULL)
{
MPI_Comm_rank(comm, &comm_rank);
}
if (createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, (double)comm_rank))
{
Scierror(999, _("%s: Unable to create variable.\n"), fname);
return 0;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
示例4: sci_sym_getObjSense
int sci_sym_getObjSense(char *fname){
//error management variable
SciErr sciErr;
int iRet;
//data declarations
int objSense;
//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 give output
iRet=sym_get_obj_sense(global_sym_env,&objSense);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured. Has a problem been loaded?\n");
return 1;
}
if(objSense==1)
sciprint("Symphony has been set to minimize the objective.\n");
else
sciprint("Symphony has been set to maximize the objective.\n");
if(returnDoubleToScilab(objSense))
return 1;
return 0;
}
示例5: sci_sym_open
/* Function that initializes the symphony environment
* Returns 1 on success , 0 on failure
*/
int sci_sym_open(char *fname, unsigned long fname_len){
// Error management variable
SciErr sciErr;
double status=0;
//check whether we have no input and one output argument or not
CheckInputArgument(pvApiCtx, 0, 0) ;//no input argument
CheckOutputArgument(pvApiCtx, 1, 1) ;//one output argument
//check environment
if(global_sym_env!=NULL){
sciprint("Warning: Symphony environment is already initialized.\n");
}else{
global_sym_env = sym_open_environment();//open an environment
if (!global_sym_env)
sciprint("Error: Unable to create symphony environment.\n");
else{
status=1;
//sciprint("Symphony environment is created successfully. Please run 'sym_close()' to close.\n");
//create useful variables for user
createNamedScalarDouble(pvApiCtx,"sym_minimize",1);
createNamedScalarDouble(pvApiCtx,"sym_maximize",-1);
}
}
/*write satus of function (success-1 or failure-0) as output argument to scilab*/
if(returnDoubleToScilab(status))
return 1;
return 0;
}
示例6: sci_empty_test
/**
* The gateway function for soap_servers()
* @param[in] fname the name of the file for the error messages
* @return 0 if successful, a negative value otherwise
*/
int sci_empty_test(char *fname)
{
SciErr sciErr;
// allocate memory for values
double dOut = 0;
char *cOut = "zero";
// this function does not take input arguments
CheckInputArgument(pvApiCtx, 0, 0);
// the number of output arguments must be 2
CheckOutputArgument(pvApiCtx, 2, 2);
// create results on stack
sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, 0, 0, &dOut);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
sciErr = createMatrixOfString(pvApiCtx, nbInputArgument(pvApiCtx) + 2, 0, 0, &cOut);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
return 0;
}
示例7: sci_sym_set_str_param
int sci_sym_set_str_param(char *fname, unsigned long fname_len){
// Error management variable
SciErr sciErr1,sciErr2;
double status=1.0;//assume error status
double num;//to store the value of the double parameter to be set
int output;//output return value of the setting of symphony string parameter function
int *piAddressVarOne = NULL;//pointer used to access first argument of the function
int *piAddressVarTwo=NULL;//pointer used to access second argument of the function
char variable_name[100],value[100];//string to hold the name of variable's value to be set and the value to be set is stored in 'value' string
char *ptr=variable_name,*valptr=value;//pointer-'ptr' to point to address of the variable name and 'valptr' points to the address of the value to be set to the string parameter
CheckInputArgument(pvApiCtx, 2, 2);//Check we have exactly two argument as input or not
CheckOutputArgument(pvApiCtx, 1, 1);//Check we have exactly no argument on output side or not
//load address of 1st argument into piAddressVarOne
sciErr1 = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
sciErr2 = getVarAddressFromPosition(pvApiCtx, 2, &piAddressVarTwo);
//check whether there is an error or not.
if (sciErr1.iErr){
printError(&sciErr1, 0);
return 0;
}
if (sciErr2.iErr){
printError(&sciErr2, 0);
return 0;
}
//read the value in that pointer pointing to variable name
int err1=getAllocatedSingleString(pvApiCtx, piAddressVarOne, &ptr);
//read the value of the string variable to be set
int err2=getAllocatedSingleString(pvApiCtx, piAddressVarTwo, &valptr);
//ensure that environment is active
if(global_sym_env==NULL){
sciprint("Error: Symphony environment not initialized. Please run 'sym_open()' first.\n");
}
else {
output=sym_set_str_param(global_sym_env,ptr,valptr);//symphony function to set the variable name pointed by the ptr pointer to the double value stored in 'value' variable.
if(output==FUNCTION_TERMINATED_NORMALLY){
sciprint("setting of string parameter function executed successfully\n");
status=0.0;
}
else
sciprint("Setting of the string parameter was unsuccessfull...check the input values!!\n");
}
int e=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+1,status);
if (e){
AssignOutputVariable(pvApiCtx, 1) = 0;
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
示例8: sci_dlgamma
/*--------------------------------------------------------------------------*/
int sci_dlgamma(char *fname, unsigned long fname_len)
{
SciErr sciErr;
double* lX = NULL;
int* piAddrX = NULL;
int iType1 = 0;
int MX = 0, NX = 0, i = 0;
nbInputArgument(pvApiCtx) = Max(0, nbInputArgument(pvApiCtx));
CheckInputArgument(pvApiCtx, 1, 1);
CheckOutputArgument(pvApiCtx, 1, 1);
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrX);
if (sciErr.iErr)
{
printError(&sciErr, 0);
Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
return 1;
}
sciErr = getVarType(pvApiCtx, piAddrX, &iType1);
if (sciErr.iErr)
{
printError(&sciErr, 0);
Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
return 1;
}
if ((iType1 == sci_list) || (iType1 == sci_tlist) || (iType1 == sci_mlist))
{
OverLoad(1);
return 0;
}
if (isVarComplex(pvApiCtx, piAddrX))
{
Scierror(999, _("%s: Wrong type for input argument #%d: A real expected.\n"), fname, 1);
return 1;
}
sciErr = getMatrixOfDouble(pvApiCtx, piAddrX, &MX, &NX, &lX);
if (sciErr.iErr)
{
Scierror(999, _("%s: Wrong type for argument %d: A matrix expected.\n"), fname, 1);
}
for (i = 0; i < MX * NX; i++)
{
lX[i] = C2F(psi)(lX + i);
}
AssignOutputVariable(pvApiCtx, 1) = 1;
returnArguments(pvApiCtx);
return 0;
}
示例9: sci_getlookandfeel
/*--------------------------------------------------------------------------*/
int sci_getlookandfeel(char *fname, void* pvApiCtx)
{
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)
{
static int n1 = 0, m1 = 0;
char *look = lnf->getCurrentLookAndFeel();
if (look)
{
m1 = (int)strlen(look);
n1 = 1;
if (createSingleString(pvApiCtx, nbInputArgument(pvApiCtx) + 1, look))
{
Scierror(999, _("%s: Memory allocation error.\n"), fname);
return 1;
}
if (look)
{
delete[]look;
look = NULL;
}
delete lnf;
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
}
else
{
delete lnf;
Scierror(999, _("%s: An error occurred: %s.\n"), fname, _("Impossible to get current look and feel"));
return 1;
}
}
else
{
Scierror(999, _("%s: No more memory.\n"), fname);
return 1;
}
return 0;
}
示例10: sci_sym_get_dbl_param
int sci_sym_get_dbl_param(char *fname, unsigned long fname_len){
// Error management variable
SciErr sciErr1;
double status=1.0;//assume error status
int *piAddressVarOne = NULL;//pointer used to access first argument of the function
char variable_name[100];//string to hold the name of variable's value to be retrieved
char *ptr=variable_name;//pointer to point to address of the variable name
int output;//output parameter for the symphony get_dbl_param function
CheckInputArgument(pvApiCtx, 1, 1);//Check we have exactly one argument as input or not
CheckOutputArgument(pvApiCtx, 1, 1);//Check we have exactly one argument on output side or not
//load address of 1st argument into piAddressVarOne
sciErr1 = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
//check whether there is an error or not.
if (sciErr1.iErr){
printError(&sciErr1, 0);
return 0;
}
//read the variable name in that pointer pointing to variable name
int err1=getAllocatedSingleString(pvApiCtx, piAddressVarOne, &ptr);
//ensure that environment is active
if(global_sym_env==NULL){
sciprint("Error: Symphony environment not initialized. Please run 'sym_open()' first.\n");
}
else {
double a;//local variable to store the value of variable name we want to retrieve
output=sym_get_dbl_param(global_sym_env,ptr,&a);//symphony function to get the value of double parameter pointed by ptr pointer and store it in 'a' variable
if(output==FUNCTION_TERMINATED_NORMALLY){
sciprint("value of double parameter %s is :: %lf\n",ptr,a);
status=1.0;
}
else{
sciprint("Unable to get the value of the parameter...check the input values!!\n");
status=1.0;
}
}
int e=createScalarDouble(pvApiCtx,nbInputArgument(pvApiCtx)+1,status);
if (e){
AssignOutputVariable(pvApiCtx, 1) = 0;
return 1;
}
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
ReturnArguments(pvApiCtx);
return 0;
}
示例11: sci_sym_setVarBound
int sci_sym_setVarBound(char *fname){
//error management variable
SciErr sciErr;
int iRet;
//data declarations
int *varAddress,varIndex,numVars;
double inputDouble,newBound;
bool isLower;
//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,2,2) ;
CheckOutputArgument(pvApiCtx,1,1) ;
//get argument 1: index of variable whose bound is to be changed
if(getUIntFromScilab(1,&varIndex))
return 1;
iRet=sym_get_num_cols(global_sym_env,&numVars);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured. Has a problem been loaded?\n");
return 1;
}else if(varIndex>=numVars){
Scierror(999, "An error occured. Variable index must be a number between 0 and %d.\n",numVars-1);
return 1;
}
//get argument 2: new bound
if(getDoubleFromScilab(2,&newBound))
return 1;
//decide which function to execute
isLower=(strcmp(fname,"sym_setVarLower")==0);
if(isLower)
iRet=sym_set_col_lower(global_sym_env,varIndex,newBound);
else
iRet=sym_set_col_upper(global_sym_env,varIndex,newBound);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured. Has a problem been loaded?\n");
return 1;
}else{
sciprint("Bound successfully changed.\n");
}
//code to give output
if(return0toScilab())
return 1;
return 0;
}
示例12: sci_sym_setObjSense
int sci_sym_setObjSense(char *fname){
//error management variable
SciErr sciErr;
int iRet;
//data declarations
int *varAddress;
double objSense;
//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,1,1) ;
CheckOutputArgument(pvApiCtx,1,1) ;
//code to process input
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &varAddress);
if (sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
if ( !isDoubleType(pvApiCtx,varAddress) || isVarComplex(pvApiCtx,varAddress) )
{
Scierror(999, "Wrong type for input argument #1:\nEither 1 (sym_minimize) or -1 (sym_maximize) is expected.\n");
return 1;
}
iRet = getScalarDouble(pvApiCtx, varAddress, &objSense);
if(iRet || (objSense!=-1 && objSense!=1))
{
Scierror(999, "Wrong type for input argument #1:\nEither 1 (sym_minimize) or -1 (sym_maximize) is expected.\n");
return 1;
}
iRet=sym_set_obj_sense(global_sym_env,objSense);
if(iRet==FUNCTION_TERMINATED_ABNORMALLY){
Scierror(999, "An error occured.\n");
return 1;
}else{
if(objSense==1)
sciprint("The solver has been set to minimize the objective.\n");
else
sciprint("The solver has been set to maximize the objective.\n");
}
//code to give output
if(return0toScilab())
return 1;
return 0;
}
示例13: CheckInputArgument
int
int_legdwavf
#ifdef _SCILAB6_
(char *fname, void* pvApiCtx)
#else
(char *fname)
#endif
{
static int l1, m1, n1, l2, m2, n2;
static int minlhs = 1, maxlhs = 1, minrhs = 1, maxrhs = 1;
swt_wavelet pWaveStruct;
int errCode, family, member;
int readFlag;
char * input_string1 = NULL;
double *output1;
CheckInputArgument(pvApiCtx,minrhs, maxrhs);
CheckOutputArgument(pvApiCtx,minlhs, maxlhs);
legdwavf_form_validate (pvApiCtx, &errCode);
if (errCode != SUCCESS)
{
validate_print (errCode);
return 0;
}
//GetRhsVar (1, "c", &m1, &n1, &l1);
readFlag = swt_gwsupport_GetScalarString(pvApiCtx, fname, 1 , &input_string1 );
m1=1;n1=1;
if(readFlag==SWT_GWSUPPORT_ERROR)
{
return 0;
}
legdwavf_content_validate (pvApiCtx, &errCode,input_string1);
if (errCode != SUCCESS)
{
validate_print (errCode);
return 0;
}
wavelet_parser(input_string1,&family,&member);
legendre_synthesis_initialize (member, &pWaveStruct);
m2 = 1;
n2 = pWaveStruct.length;
//CreateVar (2, "d", &m2, &n2, &l2);
readFlag = swt_gwsupport_AllocMatrixOfDoubles (pvApiCtx, fname, 1, m2 , n2 , &output1 );
if(readFlag==SWT_GWSUPPORT_ERROR)
{
return 0;
}
verbatim_copy (pWaveStruct.pLowPass, m2*n2, output1, m2*n2);
filter_clear();
//LhsVar (1) = 2;
return 0;
}
示例14: sci_TCL_DoOneEvent
/*--------------------------------------------------------------------------*/
int sci_TCL_DoOneEvent (char *fname, void* pvApiCtx)
{
CheckInputArgument(pvApiCtx, 0, 0);
CheckOutputArgument(pvApiCtx, 1, 1);
// wait for events and invoke event handlers
Tcl_DoOneEvent(TCL_ALL_EVENTS | TCL_DONT_WAIT);
AssignOutputVariable(pvApiCtx, 1) = 0;
ReturnArguments(pvApiCtx);
return 0;
}
示例15: CheckInputArgument
int ScilabGateway::exists(char * fname, const int envId, void * pvApiCtx)
{
SciErr err;
int * addr = 0;
int * id = 0;
int row = 0;
int col = 0;
bool exists = false;
CheckInputArgument(pvApiCtx, 1, 1);
CheckOutputArgument(pvApiCtx, 1, 1);
ScilabAbstractEnvironment & env = ScilabEnvironments::getEnvironment(envId);
ScilabGatewayOptions & options = env.getGatewayOptions();
OptionsHelper::setCopyOccured(false);
ScilabObjects::initialization(env, pvApiCtx);
options.setIsNew(false);
err = getVarAddressFromPosition(pvApiCtx, 1, &addr);
if (err.iErr)
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Invalid variable: cannot retrieve the data"));
}
if (!ScilabObjects::isExternalObjOrClass(addr, pvApiCtx))
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Wrong type for input argument #%d: An External Object expected."), 1);
return 0;
}
err = getMatrixOfInteger32InList(pvApiCtx, addr, EXTERNAL_OBJ_ID_POSITION, &row, &col, &id);
if (err.iErr)
{
throw ScilabAbstractEnvironmentException(__LINE__, __FILE__, gettext("Invalid variable: cannot retrieve the data"));
}
try
{
exists = env.isvalidobject(*id);
}
catch (std::exception & e)
{
throw;
}
createScalarBoolean(pvApiCtx, 1, exists ? 1 : 0);
LhsVar(1) = 1;
PutLhsVar();
return 0;
}