1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
package javasci ;
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2006 */
/********************************************************************************************************/
public class SciComplexArray implements java.io.Serializable
{
/********************************************************************************************************/
private double [] x ; /* Real part */
private double [] y ; /* Imaginary part */
private int m, n;
/* m number of rows */
/* n number of colons */
private String name;
/********************************************************************************************************/
private static native void Initialize();
/**
* Initialize Scilab interface
*/
public native boolean Job(String job);
/**
* Execute a command in Scilab
*/
public native void Get();
/**
* Get Matrix from Scilab
*/
public native void Send();
/**
* Send Matrix to Scilab
*/
public native double GetRealPartElement(int indr,int indc);
/**
* Get only ONE element from Scilab Matrix
* indr AND indc are indices in scilab
* Get Real Part
*/
public native double GetImaginaryPartElement(int indr,int indc);
/**
* Get only ONE element from Scilab Matrix
* indr AND indc are indices in scilab
* Get Imaginary Part
*/
/**
* See SCI/examples/callsci/callsciJava/others for some simple examples
*/
/********************************************************************************************************/
static
{
System.loadLibrary("javasci");
Initialize();
}
/********************************************************************************************************/
public SciComplexArray(String name,SciComplexArray Obj)
{
this.name = name;
this.m = Obj.getRow() ;
this.n = Obj.getCol();
this.x = new double[m*n];
this.x =Obj.getRealPartData() ;
this.y = new double[m*n];
this.y =Obj.getImaginaryPartData() ;
Send();
}
/********************************************************************************************************/
public SciComplexArray(String name,int r,int c)
{
this.m = r ;
this.n = c ;
this.x = new double[r*c];
this.y = new double[r*c];
this.name = name;
for ( int i = 0 ; i < r*c ; i++)
{
x[i]=0;
y[i]=0;
}
Send();
}
/********************************************************************************************************/
public SciComplexArray(String name,int r,int c,double [] x,double [] y )
{
if ( (r*c != x.length) && (r*c != y.length) )
{
throw new BadDataArgumentException("Bad Matrix call, size of third argument is wrong");
}
this.m = r ;
this.n = c;
this.x = x;
this.y = y;
this.name = name;
Send();
}
/********************************************************************************************************/
public int getRow()
{
return m;
}
/********************************************************************************************************/
public int getCol()
{
return n;
}
/********************************************************************************************************/
public String getName()
{
return name;
}
/********************************************************************************************************/
public double[] getRealPartData()
{
Get();
return x;
}
/********************************************************************************************************/
public double[] getImaginaryPartData()
{
Get();
return y;
}
/********************************************************************************************************/
public void disp()
{
Get();
System.out.println("Matrix "+ getName() +"=");
Job( "disp(" + getName() +");");
}
}
/********************************************************************************************************/
|