多項式の書き込み (Scilabゲートウェイ)
ゲートウェイに多項式の行列を書き込む方法.
呼び出し手順
入力引数プロファイル:
SciErr createMatrixOfPoly(void* _pvCtx, int _iVar, char* _pstVarName, int _iRows, int _iCols, const int* _piNbCoef, const double* const* _pdblReal)
SciErr createComplexMatrixOfPoly(void* _pvCtx, int _iVar, char* _pstVarName, int _iRows, int _iCols, const int* _piNbCoef, const double* const* _pdblReal, const double* const* _pdblImg)
Named variable profile:
SciErr createNamedMatrixOfPoly(void* _pvCtx, const char* _pstName, char* _pstVarName, int _iRows, int _iCols, const int* _piNbCoef, const double* const* _pdblReal)
SciErr createNamedComplexMatrixOfPoly(void* _pvCtx, const char* _pstName, char* _pstVarName, int _iRows, int _iCols, const int* _piNbCoef, const double* const* _pdblReal, const double* const* _pdblImg)
引数
- _pvCtx
Scilab環境ポインタ, api_scilab.h により定義された "pvApiCtx"で指定.
- _iVar
変数を保存するScilabメモリの位置
- _pstName
"名前指定"関数の場合の変数名.
- _pstVarName
多項式の変数名 (Scilab5: 最大4文字)
- _iRows
新規変数の行数
- _iCols
新規変数の列数
- _piNbCoef
各多項式の係数の数.
- _pdblReal
係数の実部を保持する double*の配列のアドレス (大きさ: _iCols * _iRows)
- _pdblImg
係数の虚部を保持する double*の配列のアドレス (大きさ: _iCols * _iRows)
- SciErr
エラー構造体で,エラーメッセージ履歴と最初のエラー番号を格納します.
説明
このヘルプはScilab APIにより多項式の行列を処理する方法を示します.
ゲートウェイのソース
#include "api_scilab.h" int write_poly(char *fname,void* pvApiCtx) { SciErr sciErr; //出力変数情報 : 多項式の行列 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"}; //係数の配列 int piNbCoef[6] = {2,4,3,1,4,6}; //データ配列 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; } //確保された変数を左辺に代入 AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1; return 0; }
Scilab テストスクリプト
Report an issue | ||
<< 多項式の読み込み (Scilabゲートウェイ) | Low level functions | ReturnArguments >> |