Sha256: c104ab02532184b2fc8b660ba11e178b0ee2a2cf429aa95785d673ed6bad10e5
Contents?: true
Size: 1.46 KB
Versions: 5
Compression:
Stored size: 1.46 KB
Contents
#include "ccmatrix.h" #include <iostream> class SciError {}; // CMatrix A(name,job); extern "C" { #include <stdio.h> #undef _PARAMS #include "stack-c.h" int send_scilab_job(char *,long int); void cc_test(); } static char buf[256]; CMatrix::CMatrix(char *name1,char *job) { sprintf(buf,"%s=%s;",name1,job); if ( send_scilab_job(buf,strlen(buf)) != 0) throw SciError(); else { int lp; C2F(cmatptr)(name1, &m, &n, &lp,strlen(name1)); v = stk(lp); } name = new char[strlen(name1)+1]; strcpy(name,name1); } void CMatrix::scijob(char *jobname) { sprintf(buf,jobname,name); if ( send_scilab_job(buf,strlen(buf)) != 0) throw SciError(); } CMatrix& CMatrix::plus(CMatrix &B) { sprintf(buf,"%s=%s+%s",this->name,this->name,B.name); if ( send_scilab_job(buf,strlen(buf)) != 0) throw SciError(); int lp; C2F(cmatptr)(name, &m, &n, &lp,strlen(name)); v = stk(lp); return *this; } void CMatrix::print() { fprintf(stdout,"Matrix %s=\n",name); scijob("disp(%s)"); } void CMatrix::inv() { sprintf(buf,"%s=inv(%s)",name,name); if ( send_scilab_job(buf,strlen(buf)) != 0) throw SciError(); int lp; C2F(cmatptr)(name, &m, &n, &lp,strlen(name)); v = stk(lp); } void cc_test() { CMatrix A("a","ones(2,2)"); CMatrix B("b","8"); A.plus(B); A.scijob("disp(%s);"); A.scijob("%s=rand(2,2)"); A.print(); A.inv(); A.print(); }
Version data entries
5 entries across 5 versions & 1 rubygems