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
|
package javasci ;
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2006 */
/********************************************************************************************************/
public class SciComplex implements java.io.Serializable
{
/********************************************************************************************************/
private SciComplexArray pObjSciComplex;
private double[] pTmpComplexRealArray;
private double[] pTmpComplexImaginaryArray;
/********************************************************************************************************/
/**
* See SCI/examples/callsci/callsciJava/others for some simple examples
*/
/********************************************************************************************************/
/********************************************************************************************************/
public SciComplex(String name,SciComplex Obj)
{
pTmpComplexRealArray=new double[1];
pTmpComplexImaginaryArray=new double[1];
pTmpComplexRealArray[0]=Obj.getRealPartData();
pTmpComplexImaginaryArray[0]=Obj.getImaginaryPartData();
pObjSciComplex = new SciComplexArray(name,1,1,pTmpComplexRealArray,pTmpComplexImaginaryArray);
}
/********************************************************************************************************/
public SciComplex(String name)
{
pTmpComplexRealArray=new double[1];
pTmpComplexImaginaryArray=new double[1];
pObjSciComplex = new SciComplexArray(name,1,1);
}
/********************************************************************************************************/
public SciComplex(String name,double RealPart,double ImaginaryPart)
{
pTmpComplexRealArray=new double[1];
pTmpComplexImaginaryArray=new double[1];
pTmpComplexRealArray[0]=RealPart;
pTmpComplexImaginaryArray[0]=ImaginaryPart;
pObjSciComplex = new SciComplexArray(name,1,1,pTmpComplexRealArray,pTmpComplexImaginaryArray);
}
/********************************************************************************************************/
public String getName()
{
return pObjSciComplex.getName();
}
/********************************************************************************************************/
public double getRealPartData()
{
Get();
pTmpComplexRealArray=pObjSciComplex.getRealPartData();
return pTmpComplexRealArray[0];
}
/********************************************************************************************************/
public double getImaginaryPartData()
{
Get();
pTmpComplexImaginaryArray=pObjSciComplex.getImaginaryPartData();
return pTmpComplexImaginaryArray[0];
}
/********************************************************************************************************/
public void Get()
{
pObjSciComplex.Get();
pTmpComplexImaginaryArray=pObjSciComplex.getImaginaryPartData();
pTmpComplexRealArray=pObjSciComplex.getRealPartData();
}
/********************************************************************************************************/
public boolean Job(String job)
{
return pObjSciComplex.Job(job);
}
/********************************************************************************************************/
public void Send()
{
pObjSciComplex.Send();
}
/********************************************************************************************************/
public void disp()
{
Get();
System.out.println("double "+ getName() +"=");
Job( "disp(" + getName() +");");
}
/********************************************************************************************************/
public String toString()
{
Get();
if (pTmpComplexRealArray[0]!=0 && pTmpComplexImaginaryArray[0]>0)
{
return pTmpComplexRealArray[0]+" + "+pTmpComplexImaginaryArray[0]+"i";
}
if (pTmpComplexRealArray[0]!=0 && pTmpComplexImaginaryArray[0]<0)
{
return pTmpComplexRealArray[0]+" - "+(-pTmpComplexImaginaryArray[0])+"i";
}
if (pTmpComplexImaginaryArray[0]==0)
{
return String.valueOf(pTmpComplexRealArray[0]);
}
if (pTmpComplexRealArray[0]==0)
{
return pTmpComplexImaginaryArray[0]+"i";
}
/*(unless Inf or NaN)*/
return pTmpComplexRealArray[0]+" + i*"+pTmpComplexImaginaryArray[0];
}
/********************************************************************************************************/
}
/********************************************************************************************************/
|