<?xml version="1.0" encoding="UTF-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2010 - DIGITEO - Sylvestre LEDRU
* 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="ja">
-
<refnamediv>
-
<refname>api_scilab</refname>
-
<refpurpose>
-
api_scilab はScilabメモリにデータを読み書きするための
-
Scilabインターフェイスです
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>Scilab 5.2.0以降, Scilab は統一した文書化された簡易な
-
APIを提供しています.
-
</para>
-
<para>このAPIはScilabメモリにデータを読み書きするための
-
関数を提供します.
-
</para>
-
<para>このAPIには以下のような多くの優れた点があります:</para>
-
<itemizedlist>
-
<listitem>
-
<para>全てのScilabデータ型を管理</para>
-
</listitem>
-
<listitem>
-
<para>全データ型を統一的に処理</para>
-
</listitem>
-
<listitem>
-
<para>エラー管理</para>
-
</listitem>
-
<listitem>
-
<para>完全に文書化されている</para>
-
</listitem>
-
<listitem>
-
<para>ユニットテストで完全にテストされている</para>
-
</listitem>
-
<listitem>
-
<para>
-
直接または名前を指定した変数アクセス
-
(<link linkend="call_scilab">call_scilab API</link>参照).
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
Scilabの将来のバージョンで保守される
</para>
-
</listitem>
-
</itemizedlist>
-
<para>通常, このAPIはScilabの機能を拡張するために使用されますが,
-
他のコンテキストで使用することもできます
-
</para>
-
<itemizedlist>
-
<listitem>
-
<para>ライブラリまたはC/C++関数:
-
多くのライブラリがフリー/オープンソースまたはプロプライエタリ市場で
-
開発されています.
-
このライブラリはScilabのような高レベル言語に読み込んで使用することができます.
-
API Scilabはこのようなライブラリへのインターフェイス機能を提供します.
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
サードパーティソフトウエアから計算エンジンとしてScilabを使用すること
-
も可能です.
-
この機能は,
-
C/C++コードから使用する際には
-
<link linkend="call_scilab">call_scilab</link>,
-
Javaから使用する際には
-
<link linkend="javasci">javasci</link>と呼ばれます.
-
変数へのアクセスはその名前(変数名)で行われます.
-
</para>
-
</listitem>
-
</itemizedlist>
-
<para>
-
古いAPI (stackX.h)は Scilab 6.0以降使用できなくなることに注意
-
してください.
-
</para>
-
</refsection>
-
<refsection>
-
<title>履歴</title>
-
<revhistory>
-
<revision>
-
<revnumber>5.4.0</revnumber>
-
<revdescription>
-
スタック関数/マクロを代替するための関数/マクロを追加
-
<itemizedlist>
-
<listitem>nbInputArgument
-
<para>
-
<literal>Rhs</literal>を代替
-
</para>
-
</listitem>
-
<listitem>nbOutputArgument
-
<para>
-
<literal>Lhs</literal>を代替
-
</para>
-
</listitem>
-
<listitem>AssignOutputVariable
-
<para>
-
<literal>LhsVar</literal>を代替
-
</para>
-
</listitem>
-
<listitem>ReturnArguments
-
<para>
-
<literal>PutLhsVar</literal>を代替
-
</para>
-
</listitem>
-
<listitem>CheckInputArgument
-
<para>
-
<literal>CheckRhs</literal>を代替
-
</para>
-
</listitem>
-
<listitem>CheckOutputArgument
-
<para>
-
<literal>CheckLhs</literal>を代替
-
</para>
-
</listitem>
-
</itemizedlist>
-
<para>
-
リストのデータ型を調べる以下の関数を追加します:
-
<literal>isListType</literal>, <literal>isNamedListType</literal>, <literal>isTListType</literal>, <literal>isNamedTListType</literal>, <literal>isMListType</literal>,
-
<literal>isNamedMListType</literal>
-
</para>
-
</revdescription>
-
</revision>
-
</revhistory>
-
</refsection>
-
<refsection>
-
<title>参照 - API_Scilab</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="boolean_reading_API">論理値を読み込むAPI</link>,
-
</member>
-
<member>
-
<link linkend="boolean_writing_API">論理値を書き込むAPI</link>,
-
</member>
-
<member>
-
<link linkend="bsparse_reading_API">論理値の疎行列を読み込むAPI</link>,
-
</member>
-
<member>
-
<link linkend="bsparse_writing_API">論理値の疎行列を書き込むAPI</link>,
-
</member>
-
<member>
-
<link linkend="Common_getvaraddr_API">getvaraddr 共通API</link>,
-
</member>
-
<member>
-
<link linkend="Common_getvardimension_API">getvardimension 共通API</link>,
-
</member>
-
<member>
-
<link linkend="Common_getvartype_API">getvartype 共通API</link>,
-
</member>
-
<member>
-
<link linkend="Common_iscomplex_API">iscomplex 共通API</link>,
-
</member>
-
<member>
-
<link linkend="Common_isvarmatrixtype_API">isvarmatrixtype 共通API</link>,
-
</member>
-
<member>
-
<link linkend="Double_management_reading_API">double管理読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Double_management_writing_API">double管理書き込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Integer_management_reading_API">整数管理読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Integer_management_writing_API">整数管理書き込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="int_getmatrixofintegerprecision_API">getmatrixofintegerprecision API</link>,
-
</member>
-
<member>
-
<link linkend="Pointer_reading_API">ポインタ読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Pointer_writing_API">ポインタ書き込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="poly_getpolyvariablename_API">多項式getpolyvariablename API</link>,
-
</member>
-
<member>
-
<link linkend="Polynomial_management_reading_API">多項式管理読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Polynomial_management_writing_API">多項式管理書き込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Sparse_management_reading_API">疎行列管理読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="Sparse_management_writing_API">疎行列管理書き込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="String_management_reading_API">文字列管理読み込みAPI</link>,
-
</member>
-
<member>
-
<link linkend="String_management_writing_API">文字列管理書き込みAPI</link>
-
</member>
-
</simplelist>
-
</refsection>
-
<refsection>
-
<title>参照 - API_Scilab リスト管理</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="list_boolean_reading_API">論理値リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_boolean_writing_API">論理値リストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_bsparse_reading_API">論理値疎リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_bsparse_writing_API">論理値疎リストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_createlist_API">list_createlist API</link>
-
</member>
-
<member>
-
<link linkend="list_double_reading_API">doubleリストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_double_writing_API">doubleリストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_getlistitemaddress_API">getlistitemaddressリスト API</link>
-
</member>
-
<member>
-
<link linkend="list_getlistitemnumber_API">getlistitemnumberリスト API</link>
-
</member>
-
<member>
-
<link linkend="list_integer_reading_API">整数リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_integer_writing_API">整数リストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_pointer_reading_API">ポインタリストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_pointer_writing_API">ポインタリストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_poly_reading_API">多項式リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_poly_writing_API">多項式リストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_sparse_reading_API">疎行列リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_sparse_writing_API">疎行列リストを書き込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_string_reading_API">文字列リストを読み込むAPI</link>
-
</member>
-
<member>
-
<link linkend="list_string_writing_API">文字列リストを書き込むAPI</link>
-
</member>
-
</simplelist>
-
</refsection>
-
<refsection>
-
<title>参照 - call_scilab</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="call_scilab">Call_Scilab</link>
-
</member>
-
<member>
-
<link linkend="compile_and_run_call_scilab">call_scilabでコンパイル/実行する</link>
-
</member>
-
<member>
-
<link linkend="DoubleManagement_callscilab">行列の管理</link>
-
</member>
-
<member>
-
<link linkend="BooleanManagement_callscilab">論理値の管理</link>
-
</member>
-
<member>
-
<link linkend="ComplexManagement_callscilab">複素数の管理</link>
-
</member>
-
<member>
-
<link linkend="StringManagement_callscilab">文字列の管理</link>
-
</member>
-
</simplelist>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="isBooleanType" xml:lang="ja">
-
<refnamediv>
-
<refname>isBooleanType</refname>
-
<refpurpose>
-
論理値変数かどうか調べる
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int isBooleanType(void* _pvCtx, int* _piAddress)</synopsis>
-
<synopsis>int isNamedBooleanType(void* _pvCtx, const char* _pstName)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.h で提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定"関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>変数が論理値型の場合は1, それ以外の場合は0</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="getScalarBoolean" xml:lang="ja">
-
<refnamediv>
-
<refname>getScalarBoolean</refname>
-
<refpurpose>
-
ゲートウェイ引数からスカラー論理値データを読み込む
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int getScalarBoolean(void* _pvCtx, int* _piAddress, int* _piBool)</synopsis>
-
<synopsis>int getNamedScalarBoolean(void* _pvCtx, const char* _pstName, int* _piBool)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
Scilab変数のアドレス.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piBool</term>
-
<listitem>
-
<para>
-
返される論理値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="createScalarBoolean" xml:lang="ja">
-
<refnamediv>
-
<refname>createScalarBoolean</refname>
-
<refpurpose>
-
Scilabメモリにスカラー論理値変数を作成する.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int createScalarBoolean(void* _pvCtx, int _iVar, int _iBool)</synopsis>
-
<synopsis>int createNamedScalarBoolean(void* _pvCtx, const char* _pstName, int _iBool)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_iVar</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_iBool</term>
-
<listitem>
-
<para>
-
論理値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="booleanExample" xml:lang="ja">
-
<refnamediv>
-
<refname>論理値の例</refname>
-
<refpurpose>
-
論理値の使用例.
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>この例は論理値を取得し,
-
Scilabに返す手順を示します.
</para>
-
</refsection>
-
<refsection>
-
<!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/booleanExample.c-->
-
<!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/booleanExample.tst-->
-
<!--Lib_name: booleanExample-->
-
<!--Func_list: booleanExample-->
-
<title>ゲートウェイのソース</title>
-
<programlisting role="code_gateway">
-
<![CDATA[
#include "api_scilab.h"
-
int booleanExample(char *fname,unsigned long fname_len)
{
SciErr sciErr;
int* piAddr = NULL;
int iType = 0;
int iRet = 0;
-
CheckInputArgument(pvApiCtx, 1, 1);
CheckOutputArgument(pvApiCtx, 0, 1);
-
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if(sciErr.iErr)
{
int iRows = 0;
int iCols = 0;
int *piBool = NULL;
-
sciErr = getMatrixOfBoolean(pvApiCtx, piAddr, &iRows, &iCols, &piBool);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
-
sciErr = createMatrixOfBoolean(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, piBool);
if(sciErr.iErr)
{
return 0;
}
]]>
-
</programlisting>
-
</refsection>
-
<refsection>
-
<title>Scilabテストスクリプト</title>
-
<programlisting role="code_scilab"><![CDATA[
a = %t;
b = %f;
c = [a,b;b,a;a,b;b,a];
d = c';
-
booleanExample(a) == a
booleanExample(b) == b
booleanExample(c) == c
booleanExample(d) == d
]]></programlisting>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="isBooleanSparseType" xml:lang="en">
-
<refnamediv>
-
<refname>isBooleanSparseType</refname>
-
<refpurpose>
-
疎論理値変数かどうかを確認する.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int isBooleanSparseType(void* _pvCtx, int* _piAddress)</synopsis>
-
<synopsis>int isNamedBooleanSparseType(void* _pvCtx, const char* _pstName)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.h で提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定"関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>変数が疎論理値型の場合は1, それ以外の場合は0</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="getAllocatedBooleanSparseMatrix" xml:lang="ja">
-
<refnamediv>
-
<refname>getAllocatedBooleanSparseMatrix</refname>
-
<refpurpose>
-
疎行列の属性を取得.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int getAllocatedBooleanSparseMatrix(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int* _piNbItem, int** _piNbItemRow, int** _piColPos)</synopsis>
-
<synopsis>int getNamedAllocatedBooleanSparseMatrix(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piNbItem, int** _piNbItemRow, int** _piColPos)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
Scilab変数のアドレス.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piRows</term>
-
<listitem>
-
<para>
-
返される変数の行数.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piCols</term>
-
<listitem>
-
<para>
-
返される変数の列数.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piNbItem</term>
-
<listitem>
-
<para>
-
%f でない値の数を返す.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piNbItemRow</term>
-
<listitem>
-
<para>
-
各行のアイテム数を返す (大きさ: *_piRows).
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piColPos</term>
-
<listitem>
-
<para>
-
各アイテムの列位置を返す (大きさ: *_piNbItem).
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="freeAllocatedBooleanSparse" xml:lang="ja">
-
<refnamediv>
-
<refname>freeAllocatedBooleanSparse</refname>
-
<refpurpose>
-
getAllocatedBooleanSparseMatrix 関数で確保されたメモリを開放する.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>void freeAllocatedBooleanSparse(int* _piNbItemRow, int* _piColPos)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_piNbItemRow</term>
-
<listitem>
-
<para>
-
getAllocatedBooleanSparseMatrixで確保された"_piNbItemRow"ポインタ.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piColPos</term>
-
<listitem>
-
<para>
-
getAllocatedBooleanSparseMatrixで確保された"_piColPos"ポインタ.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="booleanSparseExample" xml:lang="ja">
-
<refnamediv>
-
<refname>疎論理値の例</refname>
-
<refpurpose>
-
疎論理値の使用例
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>この例は疎論理値変数を取得し,Scilabに戻す手順を示します.</para>
-
</refsection>
-
<refsection>
-
<!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/booleanSparseExample.c-->
-
<!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/booleanSparseExample.tst-->
-
<!--Lib_name: booleanSparseExample-->
-
<!--Func_list: booleanSparseExample-->
-
<title>ゲートウェイのソース</title>
-
<programlisting role="code_gateway">
-
<![CDATA[
#include "api_scilab.h"
-
int booleanSparseExample(char *fname,unsigned long fname_len)
{
SciErr sciErr;
int* piAddr = NULL;
int iType = 0;
int iRet = 0;
-
CheckInputArgument(pvApiCtx, 1, 1);
CheckOutputArgument(pvApiCtx, 0, 1);
-
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
-
if(isBooleanSparseType(pvApiCtx, piAddr))
{
int iRows = 0;
int iNbItem = 0;
int* piNbItemRow = NULL;
int* piColPos = NULL;
-
iRet = getAllocatedBooleanSparseMatrix(pvApiCtx, piAddr, &iRows, &iCols, &iNbItem, &piNbItemRow, &piColPos);
if(iRet)
{
freeAllocatedBooleanSparse(piNbItemRow, piColPos);
return iRet;
}
-
sciErr = createBooleanSparseMatrix(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, iNbItem, piNbItemRow, piColPos);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return sciErr.iErr;
}
-
freeAllocatedBooleanSparse(piNbItemRow, piColPos);
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
}
return 0;
}
]]>
-
</programlisting>
-
</refsection>
-
<refsection>
-
<title>Scilabテストスクリプト</title>
-
<programlisting role="code_scilab"><![CDATA[
bsp = sparse([1,1;2,2;3,3],[%t,%t,%t]);
or(booleanSparseExample(bsp) == bsp)
]]></programlisting>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="UTF-8"?>
-
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="Scierror" xml:lang="ja">
-
<refnamediv>
-
<refname>Scierror</refname>
-
<refpurpose>エラーメッセージをユーザーに表示するCゲートウェイ関数
-
(printf関数と同じプロファイル)で,
-
エラーレベルを示す整数値を返す
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>void Scierror(error_level,format,value_1,..,value_n)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>Arguments</title>
-
<variablelist>
-
<varlistentry>
-
<term>error_level</term>
-
<listitem>
-
<para>エラーレベルを示す整数値</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>format</term>
-
<listitem>
-
<para>char* 文字列.
-
変換指示を含むリテラル文字を結合した文字列を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>value_i</term>
-
<listitem>
-
<para>
-
フォーマットパラメータに基づき変換した
-
データを指定する.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>returns</term>
-
<listitem>
-
<para>
-
処理が成功した場合,
-
この関数は出力した文字数(文字列の終端に
-
使用される末尾の '\0' を含まない)を返します.
-
</para>
-
<para>エラーが発生した場合, 負の値を返します.</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>説明</title>
-
<para>
-
Scierror はエラーメッセージをユーザに表示するためのC ゲートウェイ関数
-
(printf関数と同じプロファイル)で,エラーレベルを表す整数値を返します.
-
この関数を使用するには Scierror.h を読み込む必要があります.
-
このヘッダは output_stream モジュールで提供されています
-
(このディレクトリはデフォルトで読み込まれます).
-
</para>
-
</refsection>
-
<refsection>
-
<title>例</title>
-
<para>この例は, Cゲートウェイ関数はエラーメッセージを出力し,
-
エラーレベル133を返します.
-
</para>
-
<programlisting role="example"><![CDATA[
#include <stack-c.h>
#include <Scierror.h>
-
int sci_myscierror(char * fname)
{
Scierror(133,"An error has occurred: %d\n", 1);
-
return 0;
}
]]></programlisting>
-
</refsection>
-
<refsection role="see also">
-
<title>参照</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="printf_conversion">printf_conversion</link>
-
</member>
-
<member>
-
<link linkend="mprintf">mprintf</link>
-
</member>
-
<member>
-
<link linkend="sciprint">sciprint</link>
-
</member>
-
</simplelist>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="UTF-8"?>
-
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="sci_types" xml:lang="ja">
-
<refnamediv>
-
<refname>sci_types</refname>
-
<refpurpose>
-
変数で利用可能な型を定義するC enum
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>
-
変数で利用可能な型を定義する C enum.
-
この関数を使用する際には, stack-c.h を読み込む必要があります.
-
</para>
-
<para>利用可能な型のリストを以下に示します:</para>
-
<itemizedlist>
-
<listitem>
-
<para>
-
1 - <emphasis>sci_matrix</emphasis>: doubleの行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
2 - <emphasis>sci_poly</emphasis>: 多項式行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
4 - <emphasis>sci_boolean</emphasis>: 論理値行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
5 - <emphasis>sci_sparse</emphasis>: 疎行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
6 - <emphasis>sci_boolean_sparse</emphasis>: 論理値疎行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
7 - <emphasis>sci_matlab_sparse</emphasis>: matlab疎行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
8 - <emphasis>sci_ints</emphasis>: 整数行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
9 - <emphasis>sci_handles</emphasis>: グラフィックハンドル
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
10 - <emphasis>sci_strings</emphasis>: 文字列行列
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
11 - <emphasis>sci_u_function</emphasis>: 未コンパイルのScilab関数
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
13 - <emphasis>sci_c_function</emphasis>: コンパイル済みのScilab関数
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
14 - <emphasis>sci_lib</emphasis>: Scilab関数のライブラリ
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
15 - <emphasis>sci_list</emphasis>: a Scilab list
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
16 - <emphasis>sci_tlist</emphasis>: Scilab tlist
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
17 - <emphasis>sci_mlist</emphasis>: Scilab mlist
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
128 - <emphasis>sci_pointer (Scilab 5.2以前はsci_lufact_pointer)</emphasis>: ポインタ
-
</para>
-
</listitem>
-
</itemizedlist>
-
<para>整数またはenum型は
-
変数の型を確認する際に使用出来ます.
-
enum型の値には明示的な意味があるため,enum型の使用が推奨されます.
-
</para>
-
</refsection>
-
<refsection>
-
<title>例</title>
-
<para>この例では, Cゲートウェイ関数は1つの引数をとります.
-
switch case構造により, パラメータとして送信した変数の型を表示します.
-
</para>
-
<programlisting role="code_gateway"><![CDATA[
#include "api_scilab.h"
#include "sciprint.h"
-
-
int sci_mysci_typesrhs(char * fname, unsigned long fname_len)
{
int iType = 0;
int* piAddr = NULL;
SciErr sciErr;
-
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
-
sciErr = getVarType(pvApiCtx, piAddr, &iType);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return 1;
}
-
switch(iType)
{
case sci_matrix:
default:
sciprint("Unknown type !\n"); // Should never happen
}
-
return 0;
}
]]></programlisting>
-
</refsection>
-
<refsection role="see also">
-
<title>参照</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="sciprint">sciprint</link>
-
</member>
-
</simplelist>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="UTF-8"?>
-
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="sciprint" xml:lang="ja">
-
<refnamediv>
-
<refname>sciprint</refname>
-
<refpurpose>ユーザに標準メッセージを出力するCゲートウェイ関数
-
(C printf関数と同じプロファイル)
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>void sciprint(format,value_1,..,value_n)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>Arguments</title>
-
<variablelist>
-
<varlistentry>
-
<term>format</term>
-
<listitem>
-
<para>char* 文字列.
-
変換を指定するリテラル文字からなる文字列を指定します.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>value_i</term>
-
<listitem>
-
<para>
-
フォーマットパラメータ(%s, %d, ...)に基づき変換するデータを
-
指定します.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>説明</title>
-
<para>
-
このCゲートウェイ関数はScilabユーザにメッセージを表示する機能を提供します.
-
基本的に,この関数は,C言語のprintf関数をエミュレートします.
-
この関数を利用するには sciprint.h を読み込む必要があります.
-
このヘッダは output_stream モジュールで提供されます
-
(このディレクトリはデフォルトで読み込まれます).
-
</para>
-
<para>
-
エラーを発生させたい場合, 関数 Scierrorの方がより適当です.
-
</para>
-
</refsection>
-
<refsection>
-
<title>例</title>
-
<para>この例では, C ゲートウェイ関数は
-
sciprint関数の使用方法を表す
-
複数のメッセージをScilabコンソールに出力します.
-
</para>
-
<programlisting role="example"><![CDATA[
#include <stack-c.h>
#include <sciprint.h>
-
int sci_mysciprint(char * fname)
{
sciprint("printing an integer: %d\n", 1);
sciprint("printing a double: %f\n", 2.1);
sciprint("printing a string: %s\n", "test");
-
return 0;
}
]]></programlisting>
-
</refsection>
-
<refsection role="see also">
-
<title>参照</title>
-
<simplelist type="inline">
-
<member>
-
<link linkend="printf_conversion">printf_conversion</link>
-
</member>
-
<member>
-
<link linkend="mprintf">mprintf</link>
-
</member>
-
<member>
-
<link linkend="Scierror">Scierror</link>
-
</member>
-
</simplelist>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="isDoubleType" xml:lang="ja">
-
<refnamediv>
-
<refname>isDoubleType</refname>
-
<refpurpose>
-
double変数かどうかを調べる.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int isDoubleType(void* _pvCtx, int* _piAddress)</synopsis>
-
<synopsis>int isNamedDoubleType(void* _pvCtx, const char* _pstName)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.h で提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定"関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>変数が論理値型の場合は1, それ以外の場合は0</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="getScalarDouble" xml:lang="ja">
-
<refnamediv>
-
<refname>getScalarDouble</refname>
-
<refpurpose>
-
スカラーdouble変数を取得.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int getScalarDouble(void* _pvCtx, int* _piAddress, double* _pdblReal)</synopsis>
-
<synopsis>int getNamedScalarDouble(void* _pvCtx, const char* _pstName, double* _pdblReal)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
Scilab変数のアドレス.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pdblReal</term>
-
<listitem>
-
<para>
-
double値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="getScalarComplexDouble" xml:lang="ja">
-
<refnamediv>
-
<refname>getScalarComplexDouble</refname>
-
<refpurpose>
-
スカラー複素数double変数を取得.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int getScalarComplexDouble(void* _pvCtx, int* _piAddress, double* _pdblReal, double* _pdblImg)</synopsis>
-
<synopsis>int getNamedScalarComplexDouble(void* _pvCtx, const char* _pstName, double* _pdblReal, double* _pdblImg)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_piAddress</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pdblReal</term>
-
<listitem>
-
<para>
-
実部の値.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pdblImg</term>
-
<listitem>
-
<para>
-
虚部の値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="createScalarDouble" xml:lang="ja">
-
<refnamediv>
-
<refname>createScalarDouble</refname>
-
<refpurpose>
-
スカラーdoubleをScilabメモリに作成.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int createScalarDouble(void* _pvCtx, int _iVar, double _dblReal)</synopsis>
-
<synopsis>int createNamedScalarDouble(void* _pvCtx, const char* _pstName, double _dblReal)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_iVar</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_dblReal</term>
-
<listitem>
-
<para>
-
doubleの値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="createScalarComplexDouble" xml:lang="ja">
-
<refnamediv>
-
<refname>createScalarComplexDouble</refname>
-
<refpurpose>
-
スカラー複素数doubleをScilabメモリに作成.
-
</refpurpose>
-
</refnamediv>
-
<refsynopsisdiv>
-
<title>呼び出し手順</title>
-
<synopsis>int createScalarComplexDouble(void* _pvCtx, int _iVar, double _dblReal, double _dblImg)</synopsis>
-
<synopsis>int createNamedScalarComplexDouble(void* _pvCtx, const char* _pstName, double _dblReal, double _dblImg)</synopsis>
-
</refsynopsisdiv>
-
<refsection>
-
<title>引数</title>
-
<variablelist>
-
<varlistentry>
-
<term>_pvCtx</term>
-
<listitem>
-
<para>
-
Scilab環境ポインタ, api_scilab.hで提供される"pvApiCtx"を指定.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_iVar</term>
-
<listitem>
-
<para>
-
変数を保存するScilabメモリの位置.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_pstName</term>
-
<listitem>
-
<para>
-
"名前指定" 関数の場合の変数名.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_dblReal</term>
-
<listitem>
-
<para>
-
実部の値.
-
</para>
-
</listitem>
-
</varlistentry>
-
<varlistentry>
-
<term>_dblImg</term>
-
<listitem>
-
<para>
-
虚部の値.
-
</para>
-
</listitem>
-
</varlistentry>
-
</variablelist>
-
</refsection>
-
<refsection>
-
<title>戻り値</title>
-
<para>
-
成功した場合は 0, それ以外はScilabコンソールにエラーメッセージを表示し,
-
最初のエラー番号を返します.
-
</para>
-
</refsection>
-
</refentry>
-
<?xml version="1.0" encoding="utf-8"?>
-
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2009 - DIGITEO - Antoine ELIAS
* 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="doubleExample" xml:lang="ja">
-
<refnamediv>
-
<refname>doubleの例</refname>
-
<refpurpose>
-
doubleの使用例.
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>この例はdouble変数を取得し,Scilabに戻す手順を示します.</para>
-
</refsection>
-
<refsection>
-
<!--File_gateway: SCI/modules/api_scilab/tests/unit_tests/doubleExample.c-->
-
<!--File_scilab: SCI/modules/api_scilab/tests/unit_tests/doubleExample.tst-->
-
<!--Lib_name: doubleExample-->
-
<!--Func_list: doubleExample-->
-
<title>ゲートウェイのソース</title>
-
<programlisting role="code_gateway">
-
<![CDATA[
#include "api_scilab.h"
-
int doubleExample(char *fname,unsigned long fname_len)
{
SciErr sciErr;
int* piAddr = NULL;
int iType = 0;
int iRet = 0;
-
CheckInputArgument(pvApiCtx, 1, 1);
CheckOutputArgument(pvApiCtx, 0, 1);
-
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return 0;
}
-
if(isEmptyMatrix(pvApiCtx, piAddr))
{
iRet = createEmptyMatrix(pvApiCtx, nbInputArgument(pvApiCtx) + 1);
{
return iRet;
}
-
AssignOutputVariable(pvApiCtx, 1) = 0;
}
else if(isDoubleType(pvApiCtx, piAddr))
{
double dblReal = 0;
double dblImg = 0;
-
if(isVarComplex(pvApiCtx, piAddr))
{
iRet = getScalarComplexDouble(pvApiCtx, piAddr, &dblReal, &dblImg);
{
return iRet;
}
-
iRet = createScalarComplexDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, dblReal, dblImg);
if(iRet)
{
{
return iRet;
}
-
iRet = createScalarDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, dblReal);
if(iRet)
{
int iCols = 0;
double* pdblReal = NULL;
double* pdblImg = NULL;
-
if(isVarComplex(pvApiCtx, piAddr))
{
sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &iRows, &iCols, &pdblReal, &pdblImg);
printError(&sciErr, 0);
return sciErr.iErr;
}
-
sciErr = createComplexMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pdblReal, pdblImg);
if(sciErr.iErr)
{
printError(&sciErr, 0);
return sciErr.iErr;
}
-
sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iRows, iCols, pdblReal);
if(sciErr.iErr)
{
}
}
}
-
AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
}
-
return 0;
}
]]>
-
</programlisting>
-
</refsection>
-
<refsection>
-
<title>Scilabテストスクリプト</title>
-
<programlisting role="code_scilab"><![CDATA[
a = 1;
b = %i;
c = [1,2,3;4,5,6];
d = c(1:$) + c($:-1:1) * %i;
-
doubleExample(a) == a
doubleExample(b) == b
doubleExample(c) == c
doubleExample(d) == d
]]></programlisting>
-
</refsection>
-
</refentry>
-
<?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
* 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="ja">
-
<refnamediv>
-
<refname>API_Scilab入門</refname>
-
<refpurpose>
-
C, C++ またはfortranコードを新しい関数としてScilabエンジンに読み込む方法
-
</refpurpose>
-
</refnamediv>
-
<refsection>
-
<title>説明</title>
-
<para>
-
<link linkend="api_scilab">api_scilabプレゼンテーション</link>
-
で説明されたように,
-
ScilabはC, C++またはFortranコード(ソースまたはライブラリ)で言語を
-
拡張するためのAPIを提供します.
-
</para>
-
<para>
-
Scilabエンジンとアプリケーションコードの間のリンクは
-
<literal>gateway</literal>と呼ばれます.
-
</para>
-
<para>
-
多くの場合, 処理は常に同じで,以下のようになります:
-
<orderedlist>
-
<listitem>
-
<para>
-
ユーザに指定された(入力及び出力)引数の数を調べます.
-
</para>
-
<para>
-
例えば,関数<literal>foo(x)</literal>が <literal>foo()</literal> または <literal>foo(2,3)</literal>のようにコールされ, ユーザが答を得ます.
-
</para>
-
<para>
-
詳細: <link linkend="CheckInputArgument">CheckInputArgument</link> および <link linkend="CheckOutputArgument">CheckOutputArgument</link>
-
</para>
-
</listitem>
-
<listitem>
-
<para>入力引数の管理</para>
-
<para>
-
複数の処理を行います:
-
<orderedlist inheritnum="inherit">
-
<listitem>
-
<para>入力引数Xの変数アドレスを取得します</para>
-
<para>
-
関数
-
<literal>
-
SciErr <link linkend="Common_getvaraddr_API">getVarAddressFromPosition</link>(void* context, int positionOfTheVariable, int** address)
-
</literal>
-
</para>
-
</listitem>
-
<listitem>
-
<para>変数の型を調べます: doubleの行列 (複素数または複素数以外), 文字列
-
, 等
</para>
-
<para>
-
<literal>
-
SciErr <link linkend="Common_getvartype_API">getVarType</link>(void* context, int* positionOfTheVariable, int* Type)
-
</literal>
-
</para>
-
<para>
-
他の関数も提供されています:
-
<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>
-
関連する場合, 入力引数かどうかを確認します.
</para>
-
<para>
-
<literal>
-
int <link linkend="Common_iscomplex_API">isVarComplex</link>(void* context, int* address)
-
</literal>
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
整数を処理する場合,さらに整数の精度も確認します
</para>
-
<para>
-
<literal>
-
SciErr <link linkend="int_getmatrixofintegerprecision_API">getMatrixOfIntegerPrecision</link>(void* context, int* address, int* precision)
-
</literal>
-
</para>
-
</listitem>
-
<listitem>
-
<para>変数の大きさを確認します: 正方行列, スカラー, 等</para>
-
<para>
-
大きさに関する情報を取得する際にも
-
実際のデータを取得する際に使用するものと同じ関数を使用します.
-
例えば, double の行列の場合 関数コール
-
<literal>
-
SciErr <link linkend="Double_management_reading_API">getMatrixOfDouble</link>(void* context, int* address, int* nbRows, int* nbCols, double** theActualData)
-
</literal>
-
により行列の次元を取得できます.
-
</para>
-
<para>ほぼ全てのScilabデータ型にはこのような処理を行うための
-
同様なC関数があります.
-
</para>
-
</listitem>
-
<listitem>
-
<para>
-
その他, 特定の値かどうかを調べたり, 最初と2番目の入力引数の間の整合性を
-
確認したりすること等も可能です.
-
</para>
-
</listitem>
-
<listitem>
-
<para>データ変換 (オプション).</para>
-
<para>
-
使用するコードまたはライブラリによっては,
-
いくつかの変換をデータに適用することができます.
-
古典的な例は行列の記録を列形式から線形式に変換するものです.
-
</para>
-
<para>
-
通常,このようにすると性能が低下することに注意してください.
-
</para>
-
</listitem>
-
</orderedlist>
-
</para>
-
</listitem>
-
<listitem>
-
<para>アプリケーションコード</para>
-
<para>
-
確認とデータ取得を行った後,実際の主コードをコールできます.
-
実際の情報処理(処理, データ変換, 等)をここで実行します.
-
</para>
-
<para>
-
これは,
-
<literal>src/c</literal>, <literal>src/cpp</literal> または
-
<literal>src/fortran</literal>に保存,構築した
-
サードパーティのコードにより行いますが,
-
&n