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

Version Path
picolena-0.1.6 lib/picolena/templates/spec/test_dirs/indexed/others/ccmatrix1.cpp
picolena-0.1.7 lib/picolena/templates/spec/test_dirs/indexed/others/ccmatrix1.cpp
picolena-0.1.8 lib/picolena/templates/spec/test_dirs/indexed/others/ccmatrix1.cpp
picolena-0.2.0 lib/picolena/templates/spec/test_dirs/indexed/others/ccmatrix1.cpp
picolena-0.2.2 lib/picolena/templates/spec/test_dirs/indexed/others/ccmatrix1.cpp