mathlib-commitlog Mailing List for JMathLib - Octave, Matlab clone in java (Page 38)
Status: Beta
Brought to you by:
st_mueller
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(4) |
Aug
(150) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(233) |
Feb
(86) |
Mar
(32) |
Apr
(26) |
May
(73) |
Jun
(45) |
Jul
(23) |
Aug
(23) |
Sep
(5) |
Oct
(80) |
Nov
(11) |
Dec
(11) |
| 2008 |
Jan
|
Feb
|
Mar
(13) |
Apr
(3) |
May
(7) |
Jun
(30) |
Jul
(12) |
Aug
(12) |
Sep
|
Oct
|
Nov
(78) |
Dec
(78) |
| 2009 |
Jan
(214) |
Feb
(79) |
Mar
(20) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:45:00
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16963/Source/MathLib/Tools/TestSuite/Tokens Modified Files: testCharToken.java Log Message: replaced NumberToken by DoubleNumberToken Index: testCharToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens/testCharToken.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** testCharToken.java 19 Nov 2006 16:21:17 -0000 1.1 --- testCharToken.java 15 Feb 2007 19:44:55 -0000 1.2 *************** *** 2,5 **** --- 2,6 ---- import MathLib.Interpreter.Interpreter; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; import MathLib.Tools.junit.framework.*; import MathLib.Tokens.*; *************** *** 9,13 **** private CharToken string1; private CharToken string2; ! private NumberToken number; protected Interpreter ml; --- 10,14 ---- private CharToken string1; private CharToken string2; ! private DoubleNumberToken number; protected Interpreter ml; *************** *** 31,35 **** string1 = new CharToken("A String"); string2 = new CharToken("Another String"); ! number = new NumberToken(1); ml = new Interpreter(true); } --- 32,36 ---- string1 = new CharToken("A String"); string2 = new CharToken("Another String"); ! number = new DoubleNumberToken(1); ml = new Interpreter(true); } |
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:44:46
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16926/Source/MathLib/Tools/TestSuite/Tokens Modified Files: TestNumberToken.java TestVariableToken.java TestNumberTokenComplex.java Log Message: replaced NumberToken by DoubleNumberToken Index: TestNumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens/TestNumberToken.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** TestNumberToken.java 13 Jan 2007 18:29:22 -0000 1.16 --- TestNumberToken.java 15 Feb 2007 19:44:38 -0000 1.17 *************** *** 5,18 **** import MathLib.Interpreter.*; import MathLib.Tokens.*; public class TestNumberToken extends TestCase { ! private NumberToken val1; ! private NumberToken val2; ! private NumberToken val3; ! private NumberToken val4; ! private NumberToken val5; ! private NumberToken val6; ! private NumberToken val7; private Interpreter ml; --- 5,19 ---- import MathLib.Interpreter.*; import MathLib.Tokens.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; public class TestNumberToken extends TestCase { ! private DoubleNumberToken val1; ! private DoubleNumberToken val2; ! private DoubleNumberToken val3; ! private DoubleNumberToken val4; ! private DoubleNumberToken val5; ! private DoubleNumberToken val6; ! private DoubleNumberToken val7; private Interpreter ml; *************** *** 34,44 **** public void setUp() { ! val1 = new NumberToken(3); ! val2 = new NumberToken(6); ! val3 = new NumberToken(3); ! val4 = new NumberToken(-3); ! val5 = new NumberToken(-6); ! val6 = new NumberToken(3.5); ! val7 = new NumberToken(-3.5); ml = new Interpreter(true); } --- 35,45 ---- public void setUp() { ! val1 = new DoubleNumberToken(3); ! val2 = new DoubleNumberToken(6); ! val3 = new DoubleNumberToken(3); ! val4 = new DoubleNumberToken(-3); ! val5 = new DoubleNumberToken(-6); ! val6 = new DoubleNumberToken(3.5); ! val7 = new DoubleNumberToken(-3.5); ml = new Interpreter(true); } *************** *** 57,61 **** public void testAdd1() { ! NumberToken expectedResult = new NumberToken(9); OperandToken actualResult = val1.add(val2); --- 58,62 ---- public void testAdd1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(9); OperandToken actualResult = val1.add(val2); *************** *** 66,70 **** public void testAdd2() { ! NumberToken expectedResult = new NumberToken(9); OperandToken actualResult = val2.add(val1); --- 67,71 ---- public void testAdd2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(9); OperandToken actualResult = val2.add(val1); *************** *** 75,79 **** public void testAdd3() { ! NumberToken expectedResult = new NumberToken(-3); OperandToken actualResult = val1.add(val5); --- 76,80 ---- public void testAdd3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-3); OperandToken actualResult = val1.add(val5); *************** *** 84,88 **** public void testAdd4() { ! NumberToken expectedResult = new NumberToken(-3); OperandToken actualResult = val5.add(val1); --- 85,89 ---- public void testAdd4() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-3); OperandToken actualResult = val5.add(val1); *************** *** 93,97 **** public void testAdd5() { ! NumberToken expectedResult = new NumberToken(-9); OperandToken actualResult = val4.add(val5); --- 94,98 ---- public void testAdd5() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-9); OperandToken actualResult = val4.add(val5); *************** *** 102,106 **** public void testAdd6() { ! NumberToken expectedResult = new NumberToken(-9); OperandToken actualResult = val5.add(val4); --- 103,107 ---- public void testAdd6() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-9); OperandToken actualResult = val5.add(val4); *************** *** 111,115 **** public void testSubtract1() { ! NumberToken expectedResult = new NumberToken(-3); OperandToken actualResult = val1.subtract(val2); --- 112,116 ---- public void testSubtract1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-3); OperandToken actualResult = val1.subtract(val2); *************** *** 120,124 **** public void testSubtract2() { ! NumberToken expectedResult = new NumberToken(3); OperandToken actualResult = val2.subtract(val1); --- 121,125 ---- public void testSubtract2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(3); OperandToken actualResult = val2.subtract(val1); *************** *** 129,133 **** public void testSubtract3() { ! NumberToken expectedResult = new NumberToken(9); OperandToken actualResult = val1.subtract(val5); --- 130,134 ---- public void testSubtract3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(9); OperandToken actualResult = val1.subtract(val5); *************** *** 138,142 **** public void testSubtract4() { ! NumberToken expectedResult = new NumberToken(-9); OperandToken actualResult = val5.subtract(val1); --- 139,143 ---- public void testSubtract4() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-9); OperandToken actualResult = val5.subtract(val1); *************** *** 147,151 **** public void testSubtract5() { ! NumberToken expectedResult = new NumberToken(3); OperandToken actualResult = val4.subtract(val5); --- 148,152 ---- public void testSubtract5() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(3); OperandToken actualResult = val4.subtract(val5); *************** *** 156,160 **** public void testSubtract6() { ! NumberToken expectedResult = new NumberToken(-3); OperandToken actualResult = val5.subtract(val4); --- 157,161 ---- public void testSubtract6() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-3); OperandToken actualResult = val5.subtract(val4); *************** *** 165,169 **** public void testMultiply1() { ! NumberToken expectedResult = new NumberToken(18); OperandToken actualResult = val1.multiply(val2); --- 166,170 ---- public void testMultiply1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(18); OperandToken actualResult = val1.multiply(val2); *************** *** 174,178 **** public void testMultiply2() { ! NumberToken expectedResult = new NumberToken(18); OperandToken actualResult = val2.multiply(val1); --- 175,179 ---- public void testMultiply2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(18); OperandToken actualResult = val2.multiply(val1); *************** *** 183,187 **** public void testMultiply3() { ! NumberToken expectedResult = new NumberToken(-18); OperandToken actualResult = val1.multiply(val5); --- 184,188 ---- public void testMultiply3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-18); OperandToken actualResult = val1.multiply(val5); *************** *** 192,196 **** public void testMultiply4() { ! NumberToken expectedResult = new NumberToken(-18); OperandToken actualResult = val5.multiply(val1); --- 193,197 ---- public void testMultiply4() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-18); OperandToken actualResult = val5.multiply(val1); *************** *** 201,205 **** public void testMultiply5() { ! NumberToken expectedResult = new NumberToken(18); OperandToken actualResult = val4.multiply(val5); --- 202,206 ---- public void testMultiply5() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(18); OperandToken actualResult = val4.multiply(val5); *************** *** 210,214 **** public void testMultiply6() { ! NumberToken expectedResult = new NumberToken(18); OperandToken actualResult = val5.multiply(val4); --- 211,215 ---- public void testMultiply6() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(18); OperandToken actualResult = val5.multiply(val4); *************** *** 222,229 **** double[][] expectedIm = {{0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}; ! NumberToken expected = new NumberToken(expectedRe, expectedIm); ! NumberToken input1 = new NumberToken(new double[][] {{1,2,3},{4,5,6}}); ! NumberToken input2 = new NumberToken(new double[][] {{2,2,2},{-1,-2,-0.5}}); OperandToken result = input1.scalarMultiply(input2); --- 223,230 ---- double[][] expectedIm = {{0.0, 0.0, 0.0},{0.0, 0.0, 0.0}}; ! DoubleNumberToken expected = new DoubleNumberToken(expectedRe, expectedIm); ! DoubleNumberToken input1 = new DoubleNumberToken(new double[][] {{1,2,3},{4,5,6}}); ! DoubleNumberToken input2 = new DoubleNumberToken(new double[][] {{2,2,2},{-1,-2,-0.5}}); OperandToken result = input1.scalarMultiply(input2); *************** *** 235,239 **** public void testDivide1() { ! NumberToken expectedResult = new NumberToken(0.5); OperandToken actualResult = val1.divide(val2); --- 236,240 ---- public void testDivide1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(0.5); OperandToken actualResult = val1.divide(val2); *************** *** 244,248 **** public void testDivide2() { ! NumberToken expectedResult = new NumberToken(2); OperandToken actualResult = val2.divide(val1); --- 245,249 ---- public void testDivide2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(2); OperandToken actualResult = val2.divide(val1); *************** *** 253,257 **** public void testDivide3() { ! NumberToken expectedResult = new NumberToken(-0.5); OperandToken actualResult = val1.divide(val5); --- 254,258 ---- public void testDivide3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-0.5); OperandToken actualResult = val1.divide(val5); *************** *** 262,266 **** public void testDivide4() { ! NumberToken expectedResult = new NumberToken(-2); OperandToken actualResult = val5.divide(val1); --- 263,267 ---- public void testDivide4() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-2); OperandToken actualResult = val5.divide(val1); *************** *** 271,275 **** public void testDivide5() { ! NumberToken expectedResult = new NumberToken(0.5); OperandToken actualResult = val4.divide(val5); --- 272,276 ---- public void testDivide5() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(0.5); OperandToken actualResult = val4.divide(val5); *************** *** 280,284 **** public void testDivide6() { ! NumberToken expectedResult = new NumberToken(2); OperandToken actualResult = val5.divide(val4); --- 281,285 ---- public void testDivide6() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(2); OperandToken actualResult = val5.divide(val4); *************** *** 289,293 **** public void testPower() { ! NumberToken expectedResult = new NumberToken(27); OperandToken actualResult = val1.power(val3); --- 290,294 ---- public void testPower() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(27); OperandToken actualResult = val1.power(val3); *************** *** 298,302 **** public void testMPower() { ! NumberToken expectedResult = new NumberToken(27); OperandToken actualResult = val1.mPower(val3); --- 299,303 ---- public void testMPower() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(27); OperandToken actualResult = val1.mPower(val3); *************** *** 307,311 **** public void testFactorial() { ! NumberToken expectedResult = new NumberToken(720); OperandToken actualResult = val2.factorial(); --- 308,312 ---- public void testFactorial() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(720); OperandToken actualResult = val2.factorial(); *************** *** 376,384 **** } ! public void testNumberToken100() { ml.executeExpression("a=[]"); assertTrue(ml.getArrayValueRe("a") == null ); } ! public void testNumberToken101() { ml.executeExpression("aa=[]"); assertTrue(ml.getArrayValueIm("aa") == null ); --- 377,385 ---- } ! public void testDoubleNumberToken100() { ml.executeExpression("a=[]"); assertTrue(ml.getArrayValueRe("a") == null ); } ! public void testDoubleNumberToken101() { ml.executeExpression("aa=[]"); assertTrue(ml.getArrayValueIm("aa") == null ); *************** *** 454,458 **** public void testSetSize02() { double[][] n1 = {{1,2},{4,5}}; ! NumberToken n=new NumberToken(n1); n.setSize(3,2); --- 455,459 ---- public void testSetSize02() { double[][] n1 = {{1,2},{4,5}}; ! DoubleNumberToken n=new DoubleNumberToken(n1); n.setSize(3,2); Index: TestVariableToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens/TestVariableToken.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TestVariableToken.java 7 Jan 2007 15:41:58 -0000 1.5 --- TestVariableToken.java 15 Feb 2007 19:44:38 -0000 1.6 *************** *** 3,6 **** --- 3,7 ---- import MathLib.Interpreter.Interpreter; import MathLib.Tools.junit.framework.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; import MathLib.Tokens.*; *************** *** 9,13 **** private VariableToken variable1; private VariableToken variable2; ! private NumberToken number; private Interpreter ml; --- 10,14 ---- private VariableToken variable1; private VariableToken variable2; ! private DoubleNumberToken number; private Interpreter ml; *************** *** 31,35 **** variable1 = new VariableToken("x"); variable2 = new VariableToken("x"); ! number = new NumberToken("2", null); ml = new Interpreter(true); } --- 32,36 ---- variable1 = new VariableToken("x"); variable2 = new VariableToken("x"); ! number = new DoubleNumberToken("2", null); ml = new Interpreter(true); } Index: TestNumberTokenComplex.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Tokens/TestNumberTokenComplex.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TestNumberTokenComplex.java 11 Jun 2006 16:12:16 -0000 1.7 --- TestNumberTokenComplex.java 15 Feb 2007 19:44:38 -0000 1.8 *************** *** 4,14 **** import MathLib.Tools.junit.framework.*; import MathLib.Tokens.*; public class TestNumberTokenComplex extends TestCase { ! private NumberToken val1; ! private NumberToken val2; ! private NumberToken val3; ! private NumberToken val4; protected Interpreter ml; --- 4,15 ---- import MathLib.Tools.junit.framework.*; import MathLib.Tokens.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; public class TestNumberTokenComplex extends TestCase { ! private DoubleNumberToken val1; ! private DoubleNumberToken val2; ! private DoubleNumberToken val3; ! private DoubleNumberToken val4; protected Interpreter ml; *************** *** 30,37 **** public void setUp() { ! val1 = new NumberToken(3); ! val2 = new NumberToken(0, 2); ! val3 = new NumberToken(2, 3); ! val4 = new NumberToken(3, 4); ml = new Interpreter(true); } --- 31,38 ---- public void setUp() { ! val1 = new DoubleNumberToken(3); ! val2 = new DoubleNumberToken(0, 2); ! val3 = new DoubleNumberToken(2, 3); ! val4 = new DoubleNumberToken(3, 4); ml = new Interpreter(true); } *************** *** 39,43 **** public void testAdd1() { ! NumberToken expectedResult = new NumberToken(5, 7); OperandToken actualResult = val3.add(val4); --- 40,44 ---- public void testAdd1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(5, 7); OperandToken actualResult = val3.add(val4); *************** *** 48,52 **** public void testAdd2() { ! NumberToken expectedResult = new NumberToken(3, 2); OperandToken actualResult = val1.add(val2); --- 49,53 ---- public void testAdd2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(3, 2); OperandToken actualResult = val1.add(val2); *************** *** 57,61 **** public void testSubtract1() { ! NumberToken expectedResult = new NumberToken(-1, -1); OperandToken actualResult = val3.subtract(val4); --- 58,62 ---- public void testSubtract1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-1, -1); OperandToken actualResult = val3.subtract(val4); *************** *** 66,70 **** public void testSubtract2() { ! NumberToken expectedResult = new NumberToken(3, -2); OperandToken actualResult = val1.subtract(val2); --- 67,71 ---- public void testSubtract2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(3, -2); OperandToken actualResult = val1.subtract(val2); *************** *** 75,79 **** public void testMultiply1() { ! NumberToken expectedResult = new NumberToken(-6, 17); OperandToken actualResult = val3.multiply(val4); --- 76,80 ---- public void testMultiply1() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-6, 17); OperandToken actualResult = val3.multiply(val4); *************** *** 84,88 **** public void testMultiply2() { ! NumberToken expectedResult = new NumberToken(0, 6); OperandToken actualResult = val1.multiply(val2); --- 85,89 ---- public void testMultiply2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(0, 6); OperandToken actualResult = val1.multiply(val2); *************** *** 93,97 **** public void testMultiply3() { ! NumberToken expectedResult = new NumberToken(-6, 4); OperandToken actualResult = val2.multiply(val3); --- 94,98 ---- public void testMultiply3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(-6, 4); OperandToken actualResult = val2.multiply(val3); *************** *** 102,106 **** public void testMuliply4() { ! NumberToken expectedResult = new NumberToken(6, 9); OperandToken actualResult = val1.multiply(val3); --- 103,107 ---- public void testMuliply4() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(6, 9); OperandToken actualResult = val1.multiply(val3); *************** *** 118,122 **** public void testConjugate2() { ! NumberToken expectedResult = new NumberToken(0, -2); OperandToken actualResult = val2.conjugate(); --- 119,123 ---- public void testConjugate2() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(0, -2); OperandToken actualResult = val2.conjugate(); *************** *** 127,131 **** public void testConjugate3() { ! NumberToken expectedResult = new NumberToken(2, -3); OperandToken actualResult = val3.conjugate(); --- 128,132 ---- public void testConjugate3() { ! DoubleNumberToken expectedResult = new DoubleNumberToken(2, -3); OperandToken actualResult = val3.conjugate(); *************** *** 134,138 **** } ! public void testNumberToken01() { ml.executeExpression("b=[]"); //assertTrue(ml.getScalarValueRe("b")==null); --- 135,139 ---- } ! public void testDoubleNumberToken01() { ml.executeExpression("b=[]"); //assertTrue(ml.getScalarValueRe("b")==null); |
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:44:17
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Interpreter In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16757/Source/MathLib/Tools/TestSuite/Interpreter Modified Files: TestLexicalAnalyser.java Log Message: replaced NumberToken by DoubleNumberToken Index: TestLexicalAnalyser.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Interpreter/TestLexicalAnalyser.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TestLexicalAnalyser.java 26 Dec 2006 15:11:12 -0000 1.9 --- TestLexicalAnalyser.java 15 Feb 2007 19:44:13 -0000 1.10 *************** *** 4,7 **** --- 4,8 ---- import MathLib.Interpreter.*; import MathLib.Tokens.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; import java.util.Vector; *************** *** 35,42 **** { String expression = "3"; ! expectedResult.add(new NumberToken(3)); analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); } --- 36,43 ---- { String expression = "3"; ! expectedResult.add(new DoubleNumberToken(3)); analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); } *************** *** 46,50 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(-3) ); } --- 47,51 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(-3) ); } *************** *** 54,58 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3.45) ); } --- 55,59 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3.45) ); } *************** *** 62,66 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(330)); } --- 63,67 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(330)); } *************** *** 70,74 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(0.033)); } --- 71,75 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(0.033)); } *************** *** 78,84 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('+')); ! assertEquals(analyser.getNextToken(0), new NumberToken(0,3)); } --- 79,85 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('+')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(0,3)); } *************** *** 96,102 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('+')); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); } --- 97,103 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('+')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); } *************** *** 106,112 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('-')); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); } --- 107,113 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); assertEquals(analyser.getNextToken(0), new AddSubOperatorToken('-')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); } *************** *** 116,122 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(2)); assertEquals(analyser.getNextToken(0), new MulDivOperatorToken('*')); ! assertEquals(analyser.getNextToken(0), new NumberToken(4)); } --- 117,123 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(2)); assertEquals(analyser.getNextToken(0), new MulDivOperatorToken('*')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(4)); } *************** *** 126,132 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(5)); assertEquals(analyser.getNextToken(0), new MulDivOperatorToken('/')); ! assertEquals(analyser.getNextToken(0), new NumberToken(2)); } --- 127,133 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(5)); assertEquals(analyser.getNextToken(0), new MulDivOperatorToken('/')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(2)); } *************** *** 136,142 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(4)); assertEquals(analyser.getNextToken(0), new PowerOperatorToken('m')); ! assertEquals(analyser.getNextToken(0), new NumberToken(7)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(';').toString()); } --- 137,143 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(4)); assertEquals(analyser.getNextToken(0), new PowerOperatorToken('m')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(7)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(';').toString()); } *************** *** 147,153 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(6)); assertEquals(analyser.getNextToken(0), new PowerOperatorToken('p')); ! assertEquals(analyser.getNextToken(0), new NumberToken(8)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(';').toString()); } --- 148,154 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(6)); assertEquals(analyser.getNextToken(0), new PowerOperatorToken('p')); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(8)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(';').toString()); } *************** *** 160,164 **** assertEquals(analyser.getNextToken(0), new FunctionToken("sin")); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken('(').toString()); ! assertEquals(analyser.getNextToken(0), new NumberToken(2)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(')').toString()); } --- 161,165 ---- assertEquals(analyser.getNextToken(0), new FunctionToken("sin")); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken('(').toString()); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(2)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(')').toString()); } *************** *** 171,177 **** assertEquals(analyser.getNextToken(0), new FunctionToken("min")); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken('(').toString()); ! assertEquals(analyser.getNextToken(0), new NumberToken(1)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(',').toString()); ! assertEquals(analyser.getNextToken(0), new NumberToken(2)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(')').toString()); } --- 172,178 ---- assertEquals(analyser.getNextToken(0), new FunctionToken("min")); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken('(').toString()); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(1)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(',').toString()); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(2)); assertEquals(analyser.getNextToken(0).toString(), new DelimiterToken(')').toString()); } *************** *** 212,217 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(3)); ! assertEquals(analyser.getNextToken(0), new NumberToken(4)); } --- 213,218 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(3)); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(4)); } *************** *** 221,225 **** analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new NumberToken(123)); } --- 222,226 ---- analyser.analyseExpression(expression); ! assertEquals(analyser.getNextToken(0), new DoubleNumberToken(123)); } |
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:43:55
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberTokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16481/Source/MathLib/Tokens/NumberTokens Modified Files: DoubleNumberToken.java Int8NumberToken.java Log Message: replaced NumberToken by DoubleNumberToken Index: Int8NumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberTokens/Int8NumberToken.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Int8NumberToken.java 11 Feb 2007 11:48:18 -0000 1.2 --- Int8NumberToken.java 15 Feb 2007 19:43:49 -0000 1.3 *************** *** 5,8 **** --- 5,9 ---- import MathLib.Tokens.DataToken; import MathLib.Tokens.NumberToken; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; import MathLib.Tokens.OperandToken; import MathLib.Tokens.Token; *************** *** 26,31 **** { // empty number token ! //super(5, "int8"); ! dataType = "int8"; sizeY = 0; sizeX = 0; --- 27,31 ---- { // empty number token ! super(5, "int8"); sizeY = 0; sizeX = 0; *************** *** 57,62 **** public Int8NumberToken(String _real, String _imaginary) { ! //super(5, "double"); ! dataType = "int8"; sizeX = 1; sizeY = 1; --- 57,61 ---- public Int8NumberToken(String _real, String _imaginary) { ! super(5, "int8"); sizeX = 1; sizeY = 1; *************** *** 85,90 **** public Int8NumberToken(byte _real, byte _imaginary) { ! //super(5, "double"); ! dataType = "int8"; sizeX = 1; sizeY = 1; --- 84,88 ---- public Int8NumberToken(byte _real, byte _imaginary) { ! super(5, "int8"); sizeX = 1; sizeY = 1; *************** *** 102,107 **** public Int8NumberToken(byte[][] _real, byte[][] _imaginary) { ! //super(5, "double"); ! dataType = "int8"; if (_real!=null) --- 100,104 ---- public Int8NumberToken(byte[][] _real, byte[][] _imaginary) { ! super(5, "int8"); if (_real!=null) *************** *** 140,145 **** public Int8NumberToken(byte[][][] _values) { ! //super(5, "double"); ! dataType = "int8"; sizeY = _values.length; sizeX = _values[0].length; --- 137,141 ---- public Int8NumberToken(byte[][][] _values) { ! super(5, "int8"); sizeY = _values.length; sizeX = _values[0].length; *************** *** 167,172 **** public Int8NumberToken(int _dy, int _dx, byte[] _reValues, byte[] _imValues) { ! //super(5, "double"); ! dataType = "int8"; sizeY = _dy; sizeX = _dx; --- 163,167 ---- public Int8NumberToken(int _dy, int _dx, byte[] _reValues, byte[] _imValues) { ! super(5, "int8"); sizeY = _dy; sizeX = _dx; *************** *** 177,185 **** if ((_reValues != null) && (noElem != _reValues.length) ) ! Errors.throwMathLibException("NumberToken: real dimension mismatch"); if ((_imValues != null) && (noElem != _imValues.length) ) ! Errors.throwMathLibException("NumberToken: imag dimension mismatch"); for(int ni = 0; ni< noElem; ni++) --- 172,180 ---- if ((_reValues != null) && (noElem != _reValues.length) ) ! Errors.throwMathLibException("DoubleNumberToken: real dimension mismatch"); if ((_imValues != null) && (noElem != _imValues.length) ) ! Errors.throwMathLibException("DoubleNumberToken: imag dimension mismatch"); for(int ni = 0; ni< noElem; ni++) *************** *** 207,216 **** public Int8NumberToken(int[] _sizeA, byte[] _reValues, byte[] _imValues) { ! //super(5, "double"); ! dataType = "int8"; sizeA = _sizeA; if (sizeA.length<2) ! Errors.throwMathLibException("NumberToken: dimension too low <2"); sizeY = sizeA[0]; --- 202,210 ---- public Int8NumberToken(int[] _sizeA, byte[] _reValues, byte[] _imValues) { ! super(5, "int8"); sizeA = _sizeA; if (sizeA.length<2) ! Errors.throwMathLibException("DoubleNumberToken: dimension too low <2"); sizeY = sizeA[0]; *************** *** 228,236 **** if ((_reValues != null) && (noElem != _reValues.length) ) ! Errors.throwMathLibException("NumberToken: real dimension mismatch"); if ((_imValues != null) && (noElem != _imValues.length) ) ! Errors.throwMathLibException("NumberToken: imag dimension mismatch"); for(int ni = 0; ni< noElem; ni++) --- 222,230 ---- if ((_reValues != null) && (noElem != _reValues.length) ) ! Errors.throwMathLibException("DoubleNumberToken: real dimension mismatch"); if ((_imValues != null) && (noElem != _imValues.length) ) ! Errors.throwMathLibException("DoubleNumberToken: imag dimension mismatch"); for(int ni = 0; ni< noElem; ni++) *************** *** 257,261 **** } ! /** increase/decrease the size of the current NumberToken to size y*x * @param dy number of rows * @param dx number of columns --- 251,255 ---- } ! /** increase/decrease the size of the current DoubleNumberToken to size y*x * @param dy number of rows * @param dx number of columns *************** *** 292,298 **** /**@return the real value of the first number*/ ! public byte getValueInt8Re() { ! return getValueInt8Re(0); } --- 286,292 ---- /**@return the real value of the first number*/ ! public byte getValueRe() { ! return getValueRe(0); } *************** *** 303,309 **** * @return the real value of the number at position y, x */ ! public byte getValueInt8Re(int y, int x) { ! return getValueInt8Re( yx2n(y,x) ); } --- 297,303 ---- * @return the real value of the number at position y, x */ ! public byte getValueRe(int y, int x) { ! return getValueRe( yx2n(y,x) ); } *************** *** 313,319 **** * @return */ ! public byte getValueInt8Re(int[] index) { ! return getValueInt8Re( index2n(index) ); } --- 307,313 ---- * @return */ ! public byte getValueRe(int[] index) { ! return getValueRe( index2n(index) ); } *************** *** 323,327 **** * @return */ ! public byte getValueInt8Re(int n) { return values[n][REAL]; --- 317,321 ---- * @return */ ! public byte getValueRe(int n) { return values[n][REAL]; *************** *** 331,343 **** /**@return the imaginary value of the first number*/ ! public byte getValueInt8Im() { ! return getValueInt8Im(0); } /**@return the imaginary value of the number at position y, x*/ ! public byte getValueInt8Im(int y, int x) { ! return getValueInt8Im( yx2n(y,x) ); } --- 325,337 ---- /**@return the imaginary value of the first number*/ ! public byte getValueIm() { ! return getValueIm(0); } /**@return the imaginary value of the number at position y, x*/ ! public byte getValueIm(int y, int x) { ! return getValueIm( yx2n(y,x) ); } *************** *** 347,353 **** * @return */ ! public byte getValueInt8Im(int[] index) { ! return getValueInt8Im( index2n(index) ); } --- 341,347 ---- * @return */ ! public byte getValueIm(int[] index) { ! return getValueIm( index2n(index) ); } *************** *** 357,361 **** * @return */ ! public byte getValueInt8Im(int n) { return values[n][IMAG]; --- 351,355 ---- * @return */ ! public byte getValueIm(int n) { return values[n][IMAG]; *************** *** 364,368 **** /**@return the real values of the number*/ ! public byte[][] getValuesInt8Re() { byte[][] temp = new byte[sizeY][sizeX]; --- 358,362 ---- /**@return the real values of the number*/ ! public byte[][] getValuesRe() { byte[][] temp = new byte[sizeY][sizeX]; *************** *** 384,388 **** /**@return the imaginary values of the number*/ ! public byte[][] getValuesInt8Im() { byte[][] temp = new byte[sizeY][sizeX]; --- 378,382 ---- /**@return the imaginary values of the number*/ ! public byte[][] getValuesIm() { byte[][] temp = new byte[sizeY][sizeX]; *************** *** 444,449 **** public void setElement(int n, OperandToken num) { ! values[n][REAL] = ((Int8NumberToken)num).getValueInt8Re(); ! values[n][IMAG] = ((Int8NumberToken)num).getValueInt8Im(); } --- 438,443 ---- public void setElement(int n, OperandToken num) { ! values[n][REAL] = ((Int8NumberToken)num).getValueRe(); ! values[n][IMAG] = ((Int8NumberToken)num).getValueIm(); } *************** *** 511,520 **** for(int n = 0; n < noElem; n++) { ! byte real = add(getValueInt8Re(n), nArg.getValueInt8Re(n)); ! byte imag = add(getValueInt8Im(n), nArg.getValueInt8Im(n)); result.setValue(n, real, imag); } ! //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); return result; } --- 505,514 ---- for(int n = 0; n < noElem; n++) { ! byte real = add(getValueRe(n), nArg.getValueRe(n)); ! byte imag = add(getValueIm(n), nArg.getValueIm(n)); result.setValue(n, real, imag); } ! //ErrorLogger.debugLine("end DoubleNumberToken: add (n*m) + (n*m)"); return result; } *************** *** 527,536 **** for(int n = 0; n < nArg.getNumberOfElements(); n++) { ! byte realval = add(getValueInt8Re(), nArg.getValueInt8Re(n)); ! byte imaginaryval = add(getValueInt8Im(), nArg.getValueInt8Im(n)); result.setValue(n, realval, imaginaryval); } ! //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); return result; } --- 521,530 ---- for(int n = 0; n < nArg.getNumberOfElements(); n++) { ! byte realval = add(getValueRe(), nArg.getValueRe(n)); ! byte imaginaryval = add(getValueIm(), nArg.getValueIm(n)); result.setValue(n, realval, imaginaryval); } ! //ErrorLogger.debugLine("end DoubleNumberToken: add (n*m) + (n*m)"); return result; } *************** *** 543,552 **** for(int n = 0; n < noElem; n++) { ! byte realval = add(getValueInt8Re(n), nArg.getValueInt8Re()); ! byte imaginaryval = add(getValueInt8Im(n), nArg.getValueInt8Im()); result.setValue(n, realval, imaginaryval); } ! //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); return result; } --- 537,546 ---- for(int n = 0; n < noElem; n++) { ! byte realval = add(getValueRe(n), nArg.getValueRe()); ! byte imaginaryval = add(getValueIm(n), nArg.getValueIm()); result.setValue(n, realval, imaginaryval); } ! //ErrorLogger.debugLine("end DoubleNumberToken: add (n*m) + (n*m)"); return result; } *************** *** 558,566 **** } } ! else if (arg instanceof NumberToken) { ErrorLogger.debugLine("Int8NumberToken: add (n,m) + (1,1)double"); ! NumberToken nArg = ((NumberToken)arg); if ((nArg.getSize().length!=2) || --- 552,560 ---- } } ! else if (arg instanceof DoubleNumberToken) { ErrorLogger.debugLine("Int8NumberToken: add (n,m) + (1,1)double"); ! DoubleNumberToken nArg = ((DoubleNumberToken)arg); if ((nArg.getSize().length!=2) || *************** *** 573,578 **** for(int n = 0; n < noElem; n++) { ! byte realval = add(getValueInt8Re(n), nArg.getValueRe()); ! byte imaginaryval = add(getValueInt8Im(n), nArg.getValueIm()); result.setValue(n, realval, imaginaryval); } --- 567,572 ---- for(int n = 0; n < noElem; n++) { ! byte realval = add(getValueRe(n), nArg.getValueRe()); ! byte imaginaryval = add(getValueIm(n), nArg.getValueIm()); result.setValue(n, realval, imaginaryval); } *************** *** 728,731 **** --- 722,740 ---- } + /**@return true if this number token is a scalar (1*1 matrix)*/ + public boolean isScalar() + { + + for (int i=0; i<sizeA.length; i++) + { + // in case one entry in the size-array is unequal 1 it + // is not a scalar any more + if (sizeA[i]!=1) + return false; + } + + return true; + } + } // end Int8NumberToken Index: DoubleNumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberTokens/DoubleNumberToken.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DoubleNumberToken.java 20 Jan 2007 10:33:42 -0000 1.1 --- DoubleNumberToken.java 15 Feb 2007 19:43:49 -0000 1.2 *************** *** 1,9 **** --- 1,1662 ---- package MathLib.Tokens.NumberTokens; + import java.text.NumberFormat; + + import MathLib.Interpreter.ErrorLogger; + import MathLib.Interpreter.Errors; + import MathLib.Tokens.DataToken; import MathLib.Tokens.NumberToken; + import MathLib.Tokens.OperandToken; [...1633 lines suppressed...] + // an imaginary part the matrix is complex + boolean isRe = false; + boolean isIm = false; + + for (int n=0; n<noElem; n++) + { + if (getValueRe(n) != 0) + isRe = true; + if (getValueIm(n)!= 0) + isIm = true; + } + + // check if both real and imaginary tags are set + if (isRe & isIm) + return true; + else + return false; + } } // end DoubleNumberToken |
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:43:27
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16448/Source/MathLib/Tokens Modified Files: NumberToken.java Log Message: replaced NumberToken by DoubleNumberToken Index: NumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberToken.java,v retrieving revision 1.106 retrieving revision 1.107 diff -C2 -d -r1.106 -r1.107 *** NumberToken.java 11 Feb 2007 11:49:59 -0000 1.106 --- NumberToken.java 15 Feb 2007 19:43:14 -0000 1.107 *************** *** 18,32 **** * 2 * 4 */ - private double values[][]; - - /**Constant value set to 1*/ - public static final NumberToken one = new NumberToken(1); - - /**Constant value set to 0*/ - public static final NumberToken zero = new NumberToken(0); - [...1586 lines suppressed...] - } - - // check if both real and imaginary tags are set - if (isRe & isIm) - return true; - else - return false; - } } // end NumberToken --- 123,131 ---- } ! public String toString() { return null; } } // end NumberToken |
|
From: Stefan M. <st_...@us...> - 2007-02-15 19:42:46
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15980/Source/MathLib/Tokens Modified Files: UnaryOperatorToken.java WhileOperatorToken.java RelationOperatorToken.java VariableToken.java MulDivOperatorToken.java LogicalToken.java MathLibObject.java SparseNumberToken.java MatrixToken.java Log Message: replaced NumberToken by DoubleNumberToken Index: MatrixToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/MatrixToken.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** MatrixToken.java 20 Jan 2007 15:26:33 -0000 1.28 --- MatrixToken.java 15 Feb 2007 19:42:41 -0000 1.29 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Class used to represent non numeric matrices*/ *************** *** 23,29 **** } ! /**Constructor taking a NumberToken @param _value = the values of the elements of the matrix*/ ! public MatrixToken(NumberToken _value) { super(5, "matrix"); --- 25,31 ---- } ! /**Constructor taking a DoubleNumberToken @param _value = the values of the elements of the matrix*/ ! public MatrixToken(DoubleNumberToken _value) { super(5, "matrix"); *************** *** 73,80 **** // Check if value[yy][xx] is array of number tokens // e.g.: [1,2,[3,4],5] ! if (value[yy][xx] instanceof NumberToken) { ! int valueSizeY = ((NumberToken)value[yy][xx]).getSizeY(); ! int valueSizeX = ((NumberToken)value[yy][xx]).getSizeX(); //ErrorLogger.debugLine("Matrix: eval: "+valueSizeY+" "+valueSizeX); --- 75,82 ---- // Check if value[yy][xx] is array of number tokens // e.g.: [1,2,[3,4],5] ! if (value[yy][xx] instanceof DoubleNumberToken) { ! int valueSizeY = ((DoubleNumberToken)value[yy][xx]).getSizeY(); ! int valueSizeX = ((DoubleNumberToken)value[yy][xx]).getSizeX(); //ErrorLogger.debugLine("Matrix: eval: "+valueSizeY+" "+valueSizeX); *************** *** 155,162 **** retString += ((DataToken)value[0][x]).toString(); } ! else if (value[0][x] instanceof NumberToken) { // e.g. ['asdf' 65] -> 'asdfA' ! byte[] b = { new Double( ((NumberToken)value[0][x]).getValueRe() ).byteValue() }; try{ retString += new String(b, "UTF8"); --- 157,164 ---- retString += ((DataToken)value[0][x]).toString(); } ! else if (value[0][x] instanceof DoubleNumberToken) { // e.g. ['asdf' 65] -> 'asdfA' ! byte[] b = { new Double( ((DoubleNumberToken)value[0][x]).getValueRe() ).byteValue() }; try{ retString += new String(b, "UTF8"); *************** *** 200,207 **** { // get matrix of each element ! valSizeY = ((NumberToken)value[yy][xx]).getSizeY(); ! valSizeX = ((NumberToken)value[yy][xx]).getSizeX(); ! double[][] valRe = ((NumberToken)value[yy][xx]).getValuesRe(); ! double[][] valIm = ((NumberToken)value[yy][xx]).getValuesIm(); // copy small matrix of each element into global matrix --- 202,209 ---- { // get matrix of each element ! valSizeY = ((DoubleNumberToken)value[yy][xx]).getSizeY(); ! valSizeX = ((DoubleNumberToken)value[yy][xx]).getSizeX(); ! double[][] valRe = ((DoubleNumberToken)value[yy][xx]).getValuesRe(); ! double[][] valIm = ((DoubleNumberToken)value[yy][xx]).getValuesIm(); // copy small matrix of each element into global matrix *************** *** 219,223 **** } ! return new NumberToken(valuesRe, valuesIm); } --- 221,225 ---- } ! return new DoubleNumberToken(valuesRe, valuesIm); } *************** *** 274,278 **** if (value[yy][xx] != null) { ! if (arg instanceof NumberToken) { System.out.println("Matrix multiply num"); --- 276,280 ---- if (value[yy][xx] != null) { ! if (arg instanceof DoubleNumberToken) { System.out.println("Matrix multiply num"); *************** *** 337,342 **** OperandToken left = value[yy][xx]; OperandToken right = value2[yy][xx]; ! if ( (left instanceof NumberToken) ! && (right instanceof NumberToken) ) { value[yy][xx]=left.add(right); --- 339,344 ---- OperandToken left = value[yy][xx]; OperandToken right = value2[yy][xx]; ! if ( (left instanceof DoubleNumberToken) ! && (right instanceof DoubleNumberToken) ) { value[yy][xx]=left.add(right); Index: VariableToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/VariableToken.java,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** VariableToken.java 20 Jan 2007 15:26:33 -0000 1.68 --- VariableToken.java 15 Feb 2007 19:42:41 -0000 1.69 *************** *** 3,6 **** --- 3,8 ---- import MathLib.Interpreter.*; import MathLib.Constants.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + //import MathLib.Functions.Matrix.SubAssign; import MathLib.Functions.Matrix.SubMatrix; *************** *** 86,90 **** /**set limits for variable (e.g. a(1,3:4) ) ! @param limits = the limiting operands (NumberToken, ColonOperator) */ public void setLimits(OperandToken[] _limits) { --- 88,92 ---- /**set limits for variable (e.g. a(1,3:4) ) ! @param limits = the limiting operands (DoubleNumberToken, ColonOperator) */ public void setLimits(OperandToken[] _limits) { *************** *** 159,166 **** // check for predefined variables if (name.equals("pi")) ! return new NumberToken(3.14159265358979); if (name.equals("eps")) ! return new NumberToken(2.2204e-016); --- 161,168 ---- // check for predefined variables if (name.equals("pi")) ! return new DoubleNumberToken(3.14159265358979); if (name.equals("eps")) ! return new DoubleNumberToken(2.2204e-016); Index: UnaryOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/UnaryOperatorToken.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** UnaryOperatorToken.java 3 Dec 2006 17:46:09 -0000 1.21 --- UnaryOperatorToken.java 15 Feb 2007 19:42:41 -0000 1.22 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Class representing any unary operators in an expression*/ *************** *** 54,58 **** // second: decrease variable ! OperandToken op = result.subtract(new NumberToken(1)); // save new variable value --- 56,60 ---- // second: decrease variable ! OperandToken op = result.subtract(new DoubleNumberToken(1)); // save new variable value *************** *** 74,78 **** // second: increase variable ! OperandToken op = result.add(new NumberToken(1)); // save new variable value --- 76,80 ---- // second: increase variable ! OperandToken op = result.add(new DoubleNumberToken(1)); // save new variable value Index: MathLibObject.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/MathLibObject.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** MathLibObject.java 4 Feb 2007 15:52:10 -0000 1.13 --- MathLibObject.java 15 Feb 2007 19:42:41 -0000 1.14 *************** *** 2,5 **** --- 2,6 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.*; import java.util.*; *************** *** 156,160 **** else { ! NumberToken temp = NumberToken.zero; result.setField(fieldName, temp.subtract(var.getData())); } --- 157,161 ---- else { ! NumberToken temp = DoubleNumberToken.zero; result.setField(fieldName, temp.subtract(var.getData())); } *************** *** 185,189 **** else { ! result.setField(fieldName, NumberToken.zero); } } --- 186,190 ---- else { ! result.setField(fieldName, DoubleNumberToken.zero); } } *************** *** 213,217 **** else { ! result.setField(fieldName, NumberToken.zero); } } --- 214,218 ---- else { ! result.setField(fieldName, DoubleNumberToken.zero); } } *************** *** 241,245 **** else { ! result.setField(fieldName, NumberToken.zero); } } --- 242,246 ---- else { ! result.setField(fieldName, DoubleNumberToken.zero); } } Index: LogicalToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/LogicalToken.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** LogicalToken.java 3 Feb 2007 19:45:34 -0000 1.5 --- LogicalToken.java 15 Feb 2007 19:42:41 -0000 1.6 *************** *** 3,7 **** import MathLib.Interpreter.ErrorLogger; import MathLib.Interpreter.Errors; ! import MathLib.Tokens.NumberToken; --- 3,7 ---- import MathLib.Interpreter.ErrorLogger; import MathLib.Interpreter.Errors; ! import MathLib.Tokens.NumberTokens.DoubleNumberToken; *************** *** 218,222 **** } ! /** increase/decrease the size of the current NumberToken to size y*x * @param dy number of rows * @param dx number of columns --- 218,222 ---- } ! /** increase/decrease the size of the current DoubleNumberToken to size y*x * @param dy number of rows * @param dx number of columns *************** *** 370,374 **** * @return */ ! public NumberToken getNumberToken() { double[] ret = new double[values.length]; --- 370,374 ---- * @return */ ! public DoubleNumberToken getDoubleNumberToken() { double[] ret = new double[values.length]; *************** *** 382,386 **** } ! return new NumberToken(sizeA, ret, null); } --- 382,386 ---- } ! return new DoubleNumberToken(sizeA, ret, null); } *************** *** 545,549 **** // 1 + [3,4,5] ErrorLogger.debugLine("LogicalToken: add (1*1) + (n*m)"); ! NumberToken result = new NumberToken(nArg.sizeA, null, null); for(int n = 0; n < nArg.getNumberOfElements(); n++) --- 545,549 ---- // 1 + [3,4,5] ErrorLogger.debugLine("LogicalToken: add (1*1) + (n*m)"); ! DoubleNumberToken result = new DoubleNumberToken(nArg.sizeA, null, null); for(int n = 0; n < nArg.getNumberOfElements(); n++) *************** *** 553,557 **** } ! //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); return result; } --- 553,557 ---- } ! //ErrorLogger.debugLine("end DoubleNumberToken: add (n*m) + (n*m)"); return result; } *************** *** 560,564 **** // [3,4,5] +1 ErrorLogger.debugLine("LogicalToken: add (n,m) + (1,1)"); ! NumberToken result = new NumberToken(sizeA, null, null); for(int n = 0; n < noElem; n++) --- 560,564 ---- // [3,4,5] +1 ErrorLogger.debugLine("LogicalToken: add (n,m) + (1,1)"); ! DoubleNumberToken result = new DoubleNumberToken(sizeA, null, null); for(int n = 0; n < noElem; n++) *************** *** 568,572 **** } ! //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); return result; } --- 568,572 ---- } ! //ErrorLogger.debugLine("end DoubleNumberToken: add (n*m) + (n*m)"); return result; } Index: SparseNumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/SparseNumberToken.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SparseNumberToken.java 20 Jan 2007 15:26:33 -0000 1.5 --- SparseNumberToken.java 15 Feb 2007 19:42:41 -0000 1.6 *************** *** 2,5 **** --- 2,6 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; import java.text.NumberFormat; *************** *** 7,11 **** holds a 2D array of complex numers in a 3d array values[y][x][REAL/IMAGINARY] [...1178 lines suppressed...] --- 2074,2078 ---- } ! return new DoubleNumberToken(values); } *************** *** 2089,2093 **** } ! return new NumberToken(values); } } --- 2090,2094 ---- } ! return new DoubleNumberToken(values); } } Index: MulDivOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/MulDivOperatorToken.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** MulDivOperatorToken.java 27 Nov 2006 20:49:44 -0000 1.24 --- MulDivOperatorToken.java 15 Feb 2007 19:42:41 -0000 1.25 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Class representing multiplicaton and division operations within an expression*/ *************** *** 28,36 **** OperandToken left = ((OperandToken)operands[0]); if(left == null) ! left = new NumberToken(0); OperandToken right = ((OperandToken)operands[1]); if(right == null) ! right = new NumberToken(0); try --- 30,38 ---- OperandToken left = ((OperandToken)operands[0]); if(left == null) ! left = new DoubleNumberToken(0); OperandToken right = ((OperandToken)operands[1]); if(right == null) ! right = new DoubleNumberToken(0); try Index: RelationOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/RelationOperatorToken.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** RelationOperatorToken.java 21 Jan 2007 16:22:09 -0000 1.19 --- RelationOperatorToken.java 15 Feb 2007 19:42:41 -0000 1.20 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Used to implement relation operations within an expression*/ *************** *** 57,74 **** // it is much easier to compare number, so convert to number if (operands[0] instanceof LogicalToken) ! operands[0]=((LogicalToken)operands[0]).getNumberToken(); // it is much easier to compare number, so convert to number if (operands[1] instanceof LogicalToken) ! operands[1]=((LogicalToken)operands[1]).getNumberToken(); ! if ( (operands[0] instanceof NumberToken) ! && (operands[1] instanceof NumberToken) ) { // two operands and both a numbers // e.g. 2>3, 3>=6, 4!=3, [2,3,4]>3 ! NumberToken num0 = (NumberToken)operands[0]; ! NumberToken num1 = (NumberToken)operands[1]; int[] size0 = num0.getSize(); int[] size1 = num1.getSize(); --- 59,76 ---- // it is much easier to compare number, so convert to number if (operands[0] instanceof LogicalToken) ! operands[0]=((LogicalToken)operands[0]).getDoubleNumberToken(); // it is much easier to compare number, so convert to number if (operands[1] instanceof LogicalToken) ! operands[1]=((LogicalToken)operands[1]).getDoubleNumberToken(); ! if ( (operands[0] instanceof DoubleNumberToken) ! && (operands[1] instanceof DoubleNumberToken) ) { // two operands and both a numbers // e.g. 2>3, 3>=6, 4!=3, [2,3,4]>3 ! DoubleNumberToken num0 = (DoubleNumberToken)operands[0]; ! DoubleNumberToken num1 = (DoubleNumberToken)operands[1]; int[] size0 = num0.getSize(); int[] size1 = num1.getSize(); Index: WhileOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/WhileOperatorToken.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** WhileOperatorToken.java 30 Jan 2007 19:55:52 -0000 1.12 --- WhileOperatorToken.java 15 Feb 2007 19:42:41 -0000 1.13 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Used to implement if-then-else operations within an expression*/ *************** *** 38,46 **** OperandToken result = relationLine.evaluate(null); ! if (result instanceof NumberToken) { ! double[][] opValues = ((NumberToken)result).getReValues(); ! int opSizeX = ((NumberToken)result).getSizeX(); ! int opSizeY = ((NumberToken)result).getSizeY(); boolean cond = false; --- 40,48 ---- OperandToken result = relationLine.evaluate(null); ! if (result instanceof DoubleNumberToken) { ! double[][] opValues = ((DoubleNumberToken)result).getReValues(); ! int opSizeX = ((DoubleNumberToken)result).getSizeX(); ! int opSizeY = ((DoubleNumberToken)result).getSizeY(); boolean cond = false; |
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15548/Source/MathLib/Tokens Modified Files: AddSubOperatorToken.java ColonOperatorToken.java AssignmentOperatorToken.java ForOperatorToken.java ConditionToken.java Log Message: replaced NumberToken by DoubleNumberToken Index: ColonOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/ColonOperatorToken.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ColonOperatorToken.java 26 Dec 2006 12:28:11 -0000 1.15 --- ColonOperatorToken.java 15 Feb 2007 19:41:48 -0000 1.16 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + *************** *** 31,35 **** if ( operands.length==2 && ! ( (operands[0] instanceof NumberToken) && (operands[1] instanceof DelimiterToken) ) ) return new Expression(new ColonOperatorToken(), --- 33,37 ---- if ( operands.length==2 && ! ( (operands[0] instanceof DoubleNumberToken) && (operands[1] instanceof DelimiterToken) ) ) return new Expression(new ColonOperatorToken(), *************** *** 38,43 **** if (operands.length==3 && ! (operands[0] instanceof NumberToken) && ! (operands[1] instanceof NumberToken) && (operands[2] instanceof DelimiterToken) ) { --- 40,45 ---- if (operands.length==3 && ! (operands[0] instanceof DoubleNumberToken) && ! (operands[1] instanceof DoubleNumberToken) && (operands[2] instanceof DelimiterToken) ) { *************** *** 56,79 **** else if (operands.length == 2) { ! if ( (!(operands[0] instanceof NumberToken)) || ! (!(operands[1] instanceof NumberToken)) ) Errors.throwMathLibException("ColonOperator: argument not number or end (x:x)"); // e.g. 4:5 ! x1 = ((NumberToken)operands[0]).getReValues()[0][0]; ! x2 = ((NumberToken)operands[1]).getReValues()[0][0]; } else { if (operands[2] == null) return null; ! if ( (!(operands[0] instanceof NumberToken)) || ! (!(operands[1] instanceof NumberToken)) || ! (!(operands[2] instanceof NumberToken)) ) Errors.throwMathLibException("ColonOperator: argument not number or end (x:x:x)"); // e.g. 4:2:20 ! x1 = ((NumberToken)operands[0]).getReValues()[0][0]; ! dx = ((NumberToken)operands[1]).getReValues()[0][0]; ! x2 = ((NumberToken)operands[2]).getReValues()[0][0]; } --- 58,81 ---- else if (operands.length == 2) { ! if ( (!(operands[0] instanceof DoubleNumberToken)) || ! (!(operands[1] instanceof DoubleNumberToken)) ) Errors.throwMathLibException("ColonOperator: argument not number or end (x:x)"); // e.g. 4:5 ! x1 = ((DoubleNumberToken)operands[0]).getReValues()[0][0]; ! x2 = ((DoubleNumberToken)operands[1]).getReValues()[0][0]; } else { if (operands[2] == null) return null; ! if ( (!(operands[0] instanceof DoubleNumberToken)) || ! (!(operands[1] instanceof DoubleNumberToken)) || ! (!(operands[2] instanceof DoubleNumberToken)) ) Errors.throwMathLibException("ColonOperator: argument not number or end (x:x:x)"); // e.g. 4:2:20 ! x1 = ((DoubleNumberToken)operands[0]).getReValues()[0][0]; ! dx = ((DoubleNumberToken)operands[1]).getReValues()[0][0]; ! x2 = ((DoubleNumberToken)operands[2]).getReValues()[0][0]; } *************** *** 87,91 **** } ! return new NumberToken(values); } --- 89,93 ---- } ! return new DoubleNumberToken(values); } Index: AddSubOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/AddSubOperatorToken.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** AddSubOperatorToken.java 27 Nov 2006 20:49:43 -0000 1.29 --- AddSubOperatorToken.java 15 Feb 2007 19:41:48 -0000 1.30 *************** *** 2,5 **** --- 2,6 ---- import MathLib.Interpreter.RootObject; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; /**Used to implement addition and subtraction operations within an expression*/ *************** *** 27,35 **** OperandToken left = ((OperandToken)operands[0]); if(left == null) ! left = new NumberToken(0); OperandToken right = ((OperandToken)operands[1]); if(right == null) ! right = new NumberToken(0); try --- 28,36 ---- OperandToken left = ((OperandToken)operands[0]); if(left == null) ! left = new DoubleNumberToken(0); OperandToken right = ((OperandToken)operands[1]); if(right == null) ! right = new DoubleNumberToken(0); try Index: ConditionToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/ConditionToken.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ConditionToken.java 21 Jan 2007 13:53:52 -0000 1.10 --- ConditionToken.java 15 Feb 2007 19:41:48 -0000 1.11 *************** *** 2,5 **** --- 2,6 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; /**Used to implement if-then-else operations within an expression*/ *************** *** 49,55 **** OperandToken result = condition.evaluate(null); ! if(result instanceof NumberToken) { ! NumberToken num = (NumberToken)result; boolean tag = true; --- 50,56 ---- OperandToken result = condition.evaluate(null); ! if(result instanceof DoubleNumberToken) { ! DoubleNumberToken num = (DoubleNumberToken)result; boolean tag = true; *************** *** 65,69 **** // evaluate Code code.evaluate(null); ! return NumberToken.one; } } --- 66,70 ---- // evaluate Code code.evaluate(null); ! return DoubleNumberToken.one; } } *************** *** 84,88 **** // evaluate Code code.evaluate(null); ! return NumberToken.one; } } --- 85,89 ---- // evaluate Code code.evaluate(null); ! return DoubleNumberToken.one; } } *************** *** 91,95 **** { code.evaluate(null); ! return NumberToken.one; } --- 92,96 ---- { code.evaluate(null); ! return DoubleNumberToken.one; } Index: AssignmentOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/AssignmentOperatorToken.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** AssignmentOperatorToken.java 26 Dec 2006 12:28:12 -0000 1.45 --- AssignmentOperatorToken.java 15 Feb 2007 19:41:48 -0000 1.46 *************** *** 4,7 **** --- 4,9 ---- import MathLib.Interpreter.*; import MathLib.Functions.Matrix.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Used to implement assignment operations within an expression*/ *************** *** 63,67 **** ErrorLogger.debugLine("AssignmentOpTok: new struct: "+name+"."+fieldName); MathLibObject obj = new MathLibObject(); ! obj.setField(fieldName, NumberToken.zero); Variable var = getVariables().createVariable(name ); var.assign(obj); --- 65,69 ---- ErrorLogger.debugLine("AssignmentOpTok: new struct: "+name+"."+fieldName); MathLibObject obj = new MathLibObject(); ! obj.setField(fieldName, DoubleNumberToken.zero); Variable var = getVariables().createVariable(name ); var.assign(obj); *************** *** 73,77 **** // variable is a struct -> auto create new field variable ErrorLogger.debugLine("AssignmentOpTok: struct new field: "+name+"."+fieldName); ! ((MathLibObject)getVariables().getVariable(name).getData()).setField(fieldName,NumberToken.zero); left = leftVarTok.getVariable(); } --- 75,79 ---- // variable is a struct -> auto create new field variable ErrorLogger.debugLine("AssignmentOpTok: struct new field: "+name+"."+fieldName); ! ((MathLibObject)getVariables().getVariable(name).getData()).setField(fieldName,DoubleNumberToken.zero); left = leftVarTok.getVariable(); } *************** *** 165,169 **** //ErrorLogger.debugLine("AssignOpToken: inst Var.."); ! if (!(rightOps[0][i] instanceof NumberToken )) return null; //ErrorLogger.debugLine("AssignOpToken: inst Num.."); --- 167,171 ---- //ErrorLogger.debugLine("AssignOpToken: inst Var.."); ! if (!(rightOps[0][i] instanceof DoubleNumberToken )) return null; //ErrorLogger.debugLine("AssignOpToken: inst Num.."); *************** *** 173,177 **** // get number-matrix of an element on the right side ! NumberToken number = (NumberToken)rightOps[0][i]; if (leftVar == null) --- 175,179 ---- // get number-matrix of an element on the right side ! DoubleNumberToken number = (DoubleNumberToken)rightOps[0][i]; if (leftVar == null) *************** *** 186,197 **** result = leftVar.assign(number); } ! //return NumberToken.one; return null; } ! else if(operands[1] instanceof NumberToken) { ! ErrorLogger.debugLine("AssignOperatorToken: eval: MatrixToken = NumberToken"); MatrixToken left = (MatrixToken)operands[0]; ! NumberToken right = (NumberToken)operands[1]; if ( (left.getSizeX() != right.getSizeX()) || (left.getSizeY() != 1) --- 188,199 ---- result = leftVar.assign(number); } ! //return DoubleNumberToken.one; return null; } ! else if(operands[1] instanceof DoubleNumberToken) { ! ErrorLogger.debugLine("AssignOperatorToken: eval: MatrixToken = DoubleNumberToken"); MatrixToken left = (MatrixToken)operands[0]; ! DoubleNumberToken right = (DoubleNumberToken)operands[1]; if ( (left.getSizeX() != right.getSizeX()) || (left.getSizeY() != 1) *************** *** 225,234 **** // get number-matrix of an element on the right side ! NumberToken number = new NumberToken(rightOps[0][i]); // assign right side matrix to left side variable result = leftVar.assign(number); } ! return null; //result; //NumberToken.one; } } --- 227,236 ---- // get number-matrix of an element on the right side ! DoubleNumberToken number = new DoubleNumberToken(rightOps[0][i]); // assign right side matrix to left side variable result = leftVar.assign(number); } ! return null; //result; //DoubleNumberToken.one; } } Index: ForOperatorToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/ForOperatorToken.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ForOperatorToken.java 30 Jan 2007 19:48:57 -0000 1.12 --- ForOperatorToken.java 15 Feb 2007 19:41:48 -0000 1.13 *************** *** 2,5 **** --- 2,7 ---- import MathLib.Interpreter.*; + import MathLib.Tokens.NumberTokens.DoubleNumberToken; + /**Used to implement for loops within an expression*/ *************** *** 78,86 **** OperandToken result = relationLine.evaluate(null); ! if (result instanceof NumberToken) { ! double[][] opValues = ((NumberToken)result).getReValues(); ! int opSizeX = ((NumberToken)result).getSizeX(); ! int opSizeY = ((NumberToken)result).getSizeY(); boolean cond = false; --- 80,88 ---- OperandToken result = relationLine.evaluate(null); ! if (result instanceof DoubleNumberToken) { ! double[][] opValues = ((DoubleNumberToken)result).getReValues(); ! int opSizeX = ((DoubleNumberToken)result).getSizeX(); ! int opSizeY = ((DoubleNumberToken)result).getSizeY(); boolean cond = false; *************** *** 173,182 **** Variable variable = getVariables().createVariable(variableToken.getName()); ! NumberToken vector = null; Token child = forExpression.getChild(1); ! if(child instanceof NumberToken) { MathLib.Interpreter.ErrorLogger.debugLine("vector for evaluating 2"); ! vector = ((NumberToken)child); } else if(child instanceof Expression) --- 175,184 ---- Variable variable = getVariables().createVariable(variableToken.getName()); ! DoubleNumberToken vector = null; Token child = forExpression.getChild(1); ! if(child instanceof DoubleNumberToken) { MathLib.Interpreter.ErrorLogger.debugLine("vector for evaluating 2"); ! vector = ((DoubleNumberToken)child); } else if(child instanceof Expression) *************** *** 188,195 **** //child = ((Expression)child).getChild(1); ! if(childOp instanceof NumberToken) { MathLib.Interpreter.ErrorLogger.debugLine("vector for evaluating 4"); ! vector = ((NumberToken)childOp); MathLib.Interpreter.ErrorLogger.debugLine(vector.toString()); } --- 190,197 ---- //child = ((Expression)child).getChild(1); ! if(childOp instanceof DoubleNumberToken) { MathLib.Interpreter.ErrorLogger.debugLine("vector for evaluating 4"); ! vector = ((DoubleNumberToken)childOp); MathLib.Interpreter.ErrorLogger.debugLine(vector.toString()); } *************** *** 205,209 **** for(int xx = 0; xx < sizeX; xx++) { ! NumberToken value = new NumberToken(values[yy][xx]); variable.assign(value); --- 207,211 ---- for(int xx = 0; xx < sizeX; xx++) { ! DoubleNumberToken value = new DoubleNumberToken(values[yy][xx]); variable.assign(value); |
|
From: Stefan M. <st_...@us...> - 2007-02-11 11:50:33
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv934/Source/MathLib/Tokens Modified Files: NumberToken.java Log Message: make IMAG, REAL protected instead of private Index: NumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberToken.java,v retrieving revision 1.105 retrieving revision 1.106 diff -C2 -d -r1.105 -r1.106 *** NumberToken.java 24 Jan 2007 20:46:23 -0000 1.105 --- NumberToken.java 11 Feb 2007 11:49:59 -0000 1.106 *************** *** 33,40 **** /**Index for real values within array*/ ! private static final int REAL = 0; /**Index for Imaginary values within array*/ ! private static final int IMAG = 1; /** Constructor creating empty number token --- 33,40 ---- /**Index for real values within array*/ ! protected static final int REAL = 0; /**Index for Imaginary values within array*/ ! protected static final int IMAG = 1; /** Constructor creating empty number token |
|
From: Stefan M. <st_...@us...> - 2007-02-11 11:48:26
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberTokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv439/Source/MathLib/Tokens/NumberTokens Modified Files: Int8NumberToken.java Log Message: Index: Int8NumberToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/NumberTokens/Int8NumberToken.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Int8NumberToken.java 20 Jan 2007 10:33:42 -0000 1.1 --- Int8NumberToken.java 11 Feb 2007 11:48:18 -0000 1.2 *************** *** 1,9 **** --- 1,731 ---- package MathLib.Tokens.NumberTokens; + import MathLib.Interpreter.ErrorLogger; + import MathLib.Interpreter.Errors; + import MathLib.Tokens.DataToken; import MathLib.Tokens.NumberToken; + import MathLib.Tokens.OperandToken; + import MathLib.Tokens.Token; public class Int8NumberToken extends NumberToken { + /**Complex values of the token + * the data is organizes as on single vector. + * e.g. a=[1,2;3,4] will be stored like below + * values = 1 + * 3 + * 2 + * 4 */ + private byte values[][]; + + + /** Constructor creating empty number token + */ + public Int8NumberToken() + { + // empty number token + //super(5, "int8"); + dataType = "int8"; + sizeY = 0; + sizeX = 0; + sizeA = new int[]{0,0}; + noElem = 0; + values = null; + } + + /** Constructor creating a scalar taking the numbers value as a double + * @param _value = the numbers value as a double + */ + public Int8NumberToken(byte _value) + { + this(_value, (byte)0); + } + + /** Constructor taking the numbers value as a double[][] + * @param _value = the numbers value as a 2D array of double + */ + public Int8NumberToken(byte[][] _values) + { + this(_values, null); + } + + /**Constructor taking the numbers value as a string + * @param _real = the numbers real value as a string + * @param _imaginary = the numbers imaginary value as a string + */ + public Int8NumberToken(String _real, String _imaginary) + { + //super(5, "double"); + dataType = "int8"; + sizeX = 1; + sizeY = 1; + sizeA = new int[]{1, 1}; + noElem = 1; + values = new byte[1][2]; + + // create real part + if (_real!=null) + values[0][REAL] = new Byte(_real).byteValue(); + else + values[0][REAL] = 0; + + // create imaginary part + if (_imaginary!=null) + values[0][IMAG] = new Byte(_imaginary).byteValue(); + else + values[0][IMAG] = 0; + } + + /**Constructor taking the numbers value as a pair of double + * values representing real and imaginary part + * @param _real = the numbers real value as a double + * @param _imaginary = the numbers imaginary value as a double + */ + public Int8NumberToken(byte _real, byte _imaginary) + { + //super(5, "double"); + dataType = "int8"; + sizeX = 1; + sizeY = 1; + sizeA = new int[]{1, 1}; + noElem = 1; + values = new byte[1][2]; + + values[0][REAL] = _real; + values[0][IMAG] = _imaginary; + } + + /**Constructor taking the numbers value as two double[][] + @param _real = the numbers value as a 2D array of double + @param _imaginary = the numbers value as a 2D array of double*/ + public Int8NumberToken(byte[][] _real, byte[][] _imaginary) + { + //super(5, "double"); + dataType = "int8"; + + if (_real!=null) + { + sizeY = _real.length; + sizeX = _real[0].length; + } + else if(_imaginary!=null) + { + sizeY = _imaginary.length; + sizeX = _imaginary[0].length; + } + sizeA = new int[]{sizeY, sizeX}; + noElem = sizeY * sizeX; + values = new byte[noElem][2]; + + for(int xx = 0; xx < sizeX; xx++) + { + for(int yy = 0; yy < sizeY; yy++) + { + if (_real != null) + values[xx*sizeY+yy][REAL] = _real[yy][xx]; + else + values[xx*sizeY+yy][REAL] = 0; + + if (_imaginary != null) + values[xx*sizeY+yy][IMAG] = _imaginary[yy][xx]; + else + values[xx*sizeY+yy][IMAG] = 0; + } + } + } + + /**Constructor taking the numbers value as a double[][][] + @param _values = the numbers value as a 3D array of double*/ + public Int8NumberToken(byte[][][] _values) + { + //super(5, "double"); + dataType = "int8"; + sizeY = _values.length; + sizeX = _values[0].length; + sizeA = new int[]{sizeY, sizeX}; + noElem = sizeY * sizeX; + values = new byte[noElem][2]; + + for(int xx = 0; xx < sizeX; xx++) + { + for(int yy = 0; yy < sizeY; yy++) + { + values[xx*sizeY+yy][REAL] = _values[yy][xx][REAL]; + values[xx*sizeY+yy][IMAG] = _values[yy][xx][IMAG]; + } + } + } + + /** + * + * @param _dy + * @param _dx + * @param _reValues + * @param _imValues + */ + public Int8NumberToken(int _dy, int _dx, byte[] _reValues, byte[] _imValues) + { + //super(5, "double"); + dataType = "int8"; + sizeY = _dy; + sizeX = _dx; + sizeA = new int[]{sizeY, sizeX}; + noElem = sizeY * sizeX; + values = new byte[noElem][2]; + + if ((_reValues != null) && + (noElem != _reValues.length) ) + Errors.throwMathLibException("NumberToken: real dimension mismatch"); + + if ((_imValues != null) && + (noElem != _imValues.length) ) + Errors.throwMathLibException("NumberToken: imag dimension mismatch"); + + for(int ni = 0; ni< noElem; ni++) + { + if (_reValues != null) + values[ni][REAL] = _reValues[ni]; + else + values[ni][REAL] = 0; + + if (_imValues != null) + values[ni][IMAG] = _imValues[ni]; + else + values[ni][IMAG] = 0; + } + + + } + + /** + * Constructor for multidimensional array + * @param _sizeA + * @param _reValues + * @param _imValues + */ + public Int8NumberToken(int[] _sizeA, byte[] _reValues, byte[] _imValues) + { + //super(5, "double"); + dataType = "int8"; + sizeA = _sizeA; + + if (sizeA.length<2) + Errors.throwMathLibException("NumberToken: dimension too low <2"); + + sizeY = sizeA[0]; + sizeX = sizeA[1]; + + // compute number of elements over all dimensions + noElem = 1; + for (int i=0; i<sizeA.length; i++) + { + noElem *= sizeA[i]; + } + + values = new byte[noElem][2]; + + if ((_reValues != null) && + (noElem != _reValues.length) ) + Errors.throwMathLibException("NumberToken: real dimension mismatch"); + + if ((_imValues != null) && + (noElem != _imValues.length) ) + Errors.throwMathLibException("NumberToken: imag dimension mismatch"); + + for(int ni = 0; ni< noElem; ni++) + { + if (_reValues != null) + values[ni][REAL] = _reValues[ni]; + else + values[ni][REAL] = 0; + + if (_imValues != null) + values[ni][IMAG] = _imValues[ni]; + else + values[ni][IMAG] = 0; + } + + } + + /** return a new Number Token of size y*x + * + */ + public DataToken getElementSized(int y, int x) + { + return new Int8NumberToken(y, x, new byte[y*x],null); + } + + /** increase/decrease the size of the current NumberToken to size y*x + * @param dy number of rows + * @param dx number of columns + */ + public void setSize(int dy, int dx) + { + byte[][] newValues = new byte[dy*dx][2]; + + ErrorLogger.debugLine("number "+dy+" "+dx); + ErrorLogger.debugLine("number "+sizeY+" "+sizeX); + + // new array must be bigger than original value, otherwise values will be + // lost after copying into the new array + if ((dy<sizeY) || (dx<sizeX)) + Errors.throwMathLibException("Int8NumberToken: setSize: loosing values"); + + for(int yy = 0; yy < sizeY; yy++) + { + for(int xx = 0; xx < sizeX; xx++) + { + int n = yx2n(yy,xx); + //ErrorLogger.debugLine("int8number "+yy+" "+xx); + newValues[xx*dy + yy][REAL] = values[n][REAL]; + newValues[xx*dy + yy][IMAG] = values[n][IMAG]; + } + } + values = newValues; + sizeY = dy; + sizeX = dx; + sizeA = new int[]{sizeY, sizeX}; + noElem = sizeY * sizeX; + } // end setSize + + + /**@return the real value of the first number*/ + public byte getValueInt8Re() + { + return getValueInt8Re(0); + } + + /** + * + * @param y + * @param x + * @return the real value of the number at position y, x + */ + public byte getValueInt8Re(int y, int x) + { + return getValueInt8Re( yx2n(y,x) ); + } + + /** + * + * @param index + * @return + */ + public byte getValueInt8Re(int[] index) + { + return getValueInt8Re( index2n(index) ); + } + + /** + * + * @param n + * @return + */ + public byte getValueInt8Re(int n) + { + return values[n][REAL]; + } + + + + /**@return the imaginary value of the first number*/ + public byte getValueInt8Im() + { + return getValueInt8Im(0); + } + + /**@return the imaginary value of the number at position y, x*/ + public byte getValueInt8Im(int y, int x) + { + return getValueInt8Im( yx2n(y,x) ); + } + + /** + * + * @param index + * @return + */ + public byte getValueInt8Im(int[] index) + { + return getValueInt8Im( index2n(index) ); + } + + /** + * + * @param n + * @return + */ + public byte getValueInt8Im(int n) + { + return values[n][IMAG]; + } + + + /**@return the real values of the number*/ + public byte[][] getValuesInt8Re() + { + byte[][] temp = new byte[sizeY][sizeX]; + if ((sizeY==0) && (sizeX==0)) + return null; + + for(int yy = 0; yy < sizeY; yy++) + { + for(int xx = 0; xx < sizeX; xx++) + { + int n = yx2n(yy,xx); + temp[yy][xx] = values[n][REAL]; + } + } + return temp; + } + + + /**@return the imaginary values of the number*/ + public byte[][] getValuesInt8Im() + { + byte[][] temp = new byte[sizeY][sizeX]; + + if ((sizeY==0) && (sizeX==0)) + return null; + + for(int yy = 0; yy < sizeY; yy++) + { + for(int xx = 0; xx < sizeX; xx++) + { + int n = yx2n(yy,xx); + temp[yy][xx] = values[n][IMAG]; + } + } + return temp; + } + + + /** + * + * @param y + * @param x + * @return + */ + public OperandToken getElement(int y, int x) + { + int n = yx2n(y,x); + return getElement(n); + } + + /** + * + * @param n + * @return + */ + public OperandToken getElement(int n) + { + return new Int8NumberToken(values[n][REAL], values[n][IMAG]); + } + + /** + * + * @param y + * @param x + * @param num + */ + public void setElement(int y, int x, OperandToken num) + { + int n = yx2n(y,x); + setElement(n, num); + } + + /** + * + * @param n + * @param num + */ + public void setElement(int n, OperandToken num) + { + values[n][REAL] = ((Int8NumberToken)num).getValueInt8Re(); + values[n][IMAG] = ((Int8NumberToken)num).getValueInt8Im(); + } + + + /** Set value at position y, x + * @param y = y position in matrix + * @param x = x position in matrix + * @param real = real value + * @param imag = imaginary value + */ + public void setValue(int y, int x, byte _real, byte _imag) + { + int n = yx2n(y,x); + setValue(n, _real, _imag); + } + + /** + * + * @param n + * @param _real + * @param _imag + */ + public void setValue(int n, byte _real, byte _imag) + { + values[n][REAL] = _real; + values[n][IMAG] = _imag; + } + + /** + * + * @param index multidimensional index + * @param _real + * @param _imag + */ + public void setValue(int[] index, byte _real, byte _imag) + { + + int n = index2n(index); + + setValue(n, _real, _imag); + + } + + ///////////////////////standard operators/////////////////// + //////////////////////////////////////////////////////////// + + /**add arg to this object for a number token + @param = the value to add to it + @return the result as an OperandToken*/ + public OperandToken add(OperandToken arg) + { + + if (arg instanceof Int8NumberToken) + { + Int8NumberToken nArg = ((Int8NumberToken)arg); + + // Check dimensions of matrices + if(checkEqualDimensions(sizeA, nArg.getSize())) + { + // Add (n*m) + (n*m) or + // same dimensions (n,m,r)==(n,m,r) + ErrorLogger.debugLine("Int8NumberToken: add (n*m) + (n*m)"); + Int8NumberToken result = new Int8NumberToken(sizeA, null, null); + + for(int n = 0; n < noElem; n++) + { + byte real = add(getValueInt8Re(n), nArg.getValueInt8Re(n)); + byte imag = add(getValueInt8Im(n), nArg.getValueInt8Im(n)); + result.setValue(n, real, imag); + } + + //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); + return result; + } + else if(isScalar()) + { + // 1 + [3,4,5] + ErrorLogger.debugLine("Int8NumberToken: add (1*1) + (n*m)"); + Int8NumberToken result = new Int8NumberToken(nArg.getSize(), null, null); + + for(int n = 0; n < nArg.getNumberOfElements(); n++) + { + byte realval = add(getValueInt8Re(), nArg.getValueInt8Re(n)); + byte imaginaryval = add(getValueInt8Im(), nArg.getValueInt8Im(n)); + result.setValue(n, realval, imaginaryval); + } + + //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); + return result; + } + else if(nArg.isScalar()) + { + // [3,4,5] +1 + ErrorLogger.debugLine("Int8NumberToken: add (n,m) + (1,1)"); + Int8NumberToken result = new Int8NumberToken(sizeA, null, null); + + for(int n = 0; n < noElem; n++) + { + byte realval = add(getValueInt8Re(n), nArg.getValueInt8Re()); + byte imaginaryval = add(getValueInt8Im(n), nArg.getValueInt8Im()); + result.setValue(n, realval, imaginaryval); + } + + //ErrorLogger.debugLine("end NumberToken: add (n*m) + (n*m)"); + return result; + } + else + { + /* Matrices have unequal size: (n*m) != (o*p) */ + Errors.throwMathLibException("Int8NumberToken: add matrices of unequal size"); + return null; + } + } + else if (arg instanceof NumberToken) + { + ErrorLogger.debugLine("Int8NumberToken: add (n,m) + (1,1)double"); + + NumberToken nArg = ((NumberToken)arg); + + if ((nArg.getSize().length!=2) || + (nArg.getSizeX() !=1) || + (nArg.getSizeY() !=1) ) + Errors.throwMathLibException("Int8NumberToken: int8+double only works if double is scalar"); + + Int8NumberToken result = new Int8NumberToken(sizeA, null, null); + + for(int n = 0; n < noElem; n++) + { + byte realval = add(getValueInt8Re(n), nArg.getValueRe()); + byte imaginaryval = add(getValueInt8Im(n), nArg.getValueIm()); + result.setValue(n, realval, imaginaryval); + } + return result; + } + + + + Errors.throwMathLibException("Int8NumberToken: add: wrong type"); + return null; + + } // and add + + private byte add(double a, double b) + { + double c= a + b; + + if (c>127) + return 127; + else if (c<-128) + return -128; + else + return (byte)c; + } + + /**return the number as a string*/ + public String toString() + { + String result = null; + if((sizeY == 0) && (sizeX == 0)) + { + // e.g. a=null; + result = "[]"; + } + else if((sizeY == 1) && (sizeX == 1) && sizeA.length==2) + { + // e.g. a=555; + result = toString(values[0]); + } + else if (sizeA.length ==2) + { + result = toString2d(new int[]{sizeY,sizeX}); + } + else + { + // e.g. a=[1,2,3;4,5,6] or multidimensional + + int[] dim = new int[sizeA.length]; + dim[0] = sizeY; + dim[1] = sizeX; + + String s = toString(dim, sizeA.length-1); + + result = new String(s); + } + return result; + } + + private String toString(int[] dim, int i) + { + String ret=""; + + if (i>=2) + { + // e.g. at least 3rd dimension + // e.g. a(5,3,4,x,3,1) + for (int n=0; n<sizeA[i]; n++) + { + dim[i]=n; + + + // e.g. a(5,3,Y,x,3,1) + ret += toString(dim, i-1); + + } + + } + else + { + // e.g. + ret += "(:,:"; + for (int k=2; k<dim.length; k++) + { + ret += "," + (dim[k]+1); //NOTE: conversion from internal to external index + } + ret += ") = \n"; + + ret += toString2d(dim); + + ret += "\n"; + } + return ret; + } + + private String toString2d(int[] nn) + { + StringBuffer buffer = new StringBuffer(20); + + for(int yy = 0; yy < sizeA[0]; yy++) + { + buffer.append(" ["); + for(int xx = 0; xx < sizeA[1]; xx++) + { + nn[0] = yy; + nn[1] = xx; + int n = index2n(nn); + ErrorLogger.debugLine(" NToken: "+index2n(nn)); + + buffer.append(toString(values[n])); + + if(xx < sizeX - 1) + buffer.append(" , "); + } + buffer.append("]\n"); + } + return buffer.toString(); + } + + /** create string representation of (complex) double values + @param _values[]={REAL,IMAG} real and imaginary part of number*/ + public String toString(byte _values[]) + { + if (_values==null) + return "XXXXXX"; + + byte re = _values[REAL]; + byte im = _values[IMAG]; + + StringBuffer result = new StringBuffer(); + + if(im != 0) + result.append("("); + + result.append(re); + + // imaginary part of number + if(im != 0.0) + { + if ((re!=0) && !(im<0)) + result.append("+"); + + result.append(im); + + result.append("i)"); + } + return result.toString(); + } + + /**Evaluate the token. This causes it to return itself*/ + public OperandToken evaluate(Token[] operands) + { + return this; + } + + } // end Int8NumberToken |
|
From: Stefan M. <st_...@us...> - 2007-02-11 11:15:34
|
Update of /cvsroot/mathlib/mathlib In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv19044 Modified Files: ChangeLog.txt Log Message: Index: ChangeLog.txt =================================================================== RCS file: /cvsroot/mathlib/mathlib/ChangeLog.txt,v retrieving revision 1.166 retrieving revision 1.167 diff -C2 -d -r1.166 -r1.167 *** ChangeLog.txt 10 Feb 2007 12:54:51 -0000 1.166 --- ChangeLog.txt 11 Feb 2007 11:15:25 -0000 1.167 *************** *** 37,40 **** --- 37,43 ---- stefan * + 2007/02/11 + stefan * Functions/General/int8.java convert a double array to an int8 array + 2007/02/10 stefan * Functions/Time/is_leap_year.m |
|
From: Stefan M. <st_...@us...> - 2007-02-11 11:14:11
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/General In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv18556/Source/MathLib/Functions/General Added Files: int8.java Log Message: --- NEW FILE: int8.java --- package MathLib.Functions.General; import MathLib.Tokens.*; import MathLib.Tokens.NumberTokens.*; import MathLib.Functions.ExternalFunction; public class int8 extends ExternalFunction { public OperandToken evaluate(Token[] operands) { if (getNArgIn(operands) != 1 ) throwMathLibException("int8: number of arguments !=1"); if (!(operands[0] instanceof NumberToken)) throwMathLibException("int: only works on numbers"); NumberToken num = (NumberToken)operands[0]; int[] size = num.getSize(); int n = num.getNumberOfElements(); Int8NumberToken int8 = new Int8NumberToken(size, null, null); double re = 0; double im = 0; byte reI = 0; byte imI = 0; for (int i=0; i<n; i++) { re = num.getValueRe(i); im = num.getValueIm(i); if (re>127) reI = 127; else if (re<-128) reI = -128; else reI = (byte)re; if (im>127) imI = 127; else if (im<-128) imI = -128; else imI = (byte)im; int8.setValue(i, reI, imI); } return int8; } // end eval } /* @GROUP general @SYNTAX int8(x) @DOC converts a double array into an array of int8 (range -128 up to +127) @EXAMPLES <programlisting> </programlisting> @SEE double, int16, uin8, uint16 */ |
|
From: Stefan M. <st_...@us...> - 2007-02-10 13:13:20
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Time In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv29456/Source/MathLib/Functions/Time Modified Files: time.java Log Message: retrun miliseconds since 1970 Index: time.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Time/time.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** time.java 30 Dec 2006 17:58:20 -0000 1.7 --- time.java 10 Feb 2007 13:13:12 -0000 1.8 *************** *** 5,8 **** --- 5,9 ---- import MathLib.Tokens.*; import java.util.*; + import MathLib.Functions.ExternalFunction; *************** *** 16,29 **** public class time extends ExternalFunction { - /**returns a string - * @return the current date as a string */ public OperandToken evaluate(Token[] operands) { ! Calendar date = Calendar.getInstance(); ! return new CharToken( date.getTime().toString() ); ! ! } // end eval } --- 17,30 ---- public class time extends ExternalFunction { public OperandToken evaluate(Token[] operands) { ! Date d = new Date(); ! double time = (double)d.getTime(); ! ! return new NumberToken(time); ! ! } // end eval } *************** *** 35,44 **** t = time() @DOC ! Returns the current time. @EXAMPLES <programlisting> t=time() - returns - t = Sun Jul 07 11:58:18 CEST 2002 </programlisting> @NOTES --- 36,43 ---- t = time() @DOC ! Returns the elapsed milisecends from 1.1.1970. @EXAMPLES <programlisting> t=time() </programlisting> @NOTES |
|
From: Stefan M. <st_...@us...> - 2007-02-10 12:55:16
|
Update of /cvsroot/mathlib/mathlib In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv21349 Modified Files: ChangeLog.txt Log Message: Index: ChangeLog.txt =================================================================== RCS file: /cvsroot/mathlib/mathlib/ChangeLog.txt,v retrieving revision 1.165 retrieving revision 1.166 diff -C2 -d -r1.165 -r1.166 *** ChangeLog.txt 4 Feb 2007 15:53:47 -0000 1.165 --- ChangeLog.txt 10 Feb 2007 12:54:51 -0000 1.166 *************** *** 13,18 **** cov.m, createnewfile.java, cumprod.java, cumsum.m, create_set.m, conj.java, delete.java, det.m, dot.m, eq.m, false.m, gammaln.m, ge.m, gray2ind.m, gray.m, ! gt.m, hankel.m, hurst.m, inf.java, inv.m, isa.java, isdefinite.m, ! isdirectory.java, isfile.java, isfinite.java, ishidden.java, islogical.java, isnan.java, isinf.java, issymmetric.m, lastmodified.java, le.m, loadvariables.java, logical.java, --- 13,18 ---- cov.m, createnewfile.java, cumprod.java, cumsum.m, create_set.m, conj.java, delete.java, det.m, dot.m, eq.m, false.m, gammaln.m, ge.m, gray2ind.m, gray.m, ! gt.m, hankel.m, hurst.m, inf.java, inv.m, is_leap_year.m, isa.java, ! isdefinite.m, isdirectory.java, isfile.java, isfinite.java, ishidden.java, islogical.java, isnan.java, isinf.java, issymmetric.m, lastmodified.java, le.m, loadvariables.java, logical.java, *************** *** 37,40 **** --- 37,43 ---- stefan * + 2007/02/10 + stefan * Functions/Time/is_leap_year.m + 2007/02/04 stefan # Functions/General/whos.java added treatment of tokens without "size"" |
|
From: Stefan M. <st_...@us...> - 2007-02-10 12:54:07
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Time In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv20948/Source/MathLib/Functions/Time Added Files: is_leap_year.m Log Message: --- NEW FILE: is_leap_year.m --- ## Copyright (C) 1996, 1997 John W. Eaton ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 02110-1301, USA. ## -*- texinfo -*- ## @deftypefn {Function File} {} is_leap_year (@var{year}) ## Return 1 if the given year is a leap year and 0 otherwise. If no ## arguments are provided, @code{is_leap_year} will use the current year. ## For example, ## ## @example ## @group ## is_leap_year (2000) ## @result{} 1 ## @end group ## @end example ## @end deftypefn ## Author: jwe function retval = is_leap_year (year) if (nargin > 1) print_usage (); endif if (nargin == 0) t = clock (); year = t (1); endif retval = ((rem (year, 4) == 0 & rem (year, 100) != 0) ... | rem (year, 400) == 0); endfunction |
|
From: Stefan M. <st_...@us...> - 2007-02-04 15:53:51
|
Update of /cvsroot/mathlib/mathlib In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv9069 Modified Files: ChangeLog.txt Log Message: Index: ChangeLog.txt =================================================================== RCS file: /cvsroot/mathlib/mathlib/ChangeLog.txt,v retrieving revision 1.164 retrieving revision 1.165 diff -C2 -d -r1.164 -r1.165 *** ChangeLog.txt 3 Feb 2007 21:32:46 -0000 1.164 --- ChangeLog.txt 4 Feb 2007 15:53:47 -0000 1.165 *************** *** 17,28 **** isfinite.java, ishidden.java, islogical.java, isnan.java, isinf.java, issymmetric.m, lastmodified.java, le.m, loadvariables.java, logical.java, ! lookup.m, mean.m, meansq.java, ! mkdir.java, nan.java, ne.m, nthroot.m, ntsc2rgb.m, nper.m, numel.java, orth.m, pascal.m, perms.m, pmt.m, polyval.m, polyreduce.m, poly.m, print_usage.java, pv.m, pvl.m, qconj.m, qderiv.m, qderivmat.m, qinv.m, qmult.m, qtrans.m, ! qtransv.m, qtransvmat.m, quaternion.m, rehash.java, repmat.java, rmdir.java, roots.m, save_variables.java, size_equal.m, sort.java, std.m, stril.m, sylvester_matrix.m, toeplitz.m, triangle_lw.m, triangle_sw.m, ! triu.m, true.m, var.m, vech.m, wilkinson.m Updated functions: --- 17,29 ---- isfinite.java, ishidden.java, islogical.java, isnan.java, isinf.java, issymmetric.m, lastmodified.java, le.m, loadvariables.java, logical.java, ! logspace.m, lookup.m, mean.m, meansq.java, ! mkdir.java, nan.java, ne.m, npv.m, nthroot.m, ntsc2rgb.m, nper.m, numel.java, ! orth.m, pascal.m, perms.m, pmt.m, polyval.m, polyreduce.m, poly.m, print_usage.java, pv.m, pvl.m, qconj.m, qderiv.m, qderivmat.m, qinv.m, qmult.m, qtrans.m, ! qtransv.m, qtransvmat.m, quaternion.m, randperm.m, rehash.java, repmat.java, rmdir.java, roots.m, save_variables.java, size_equal.m, sort.java, std.m, stril.m, sylvester_matrix.m, toeplitz.m, triangle_lw.m, triangle_sw.m, ! triu.m, true.m, union.m, var.m, vech.m, wilkinson.m Updated functions: *************** *** 36,40 **** stefan * ! 2007/02/3 stefan * Functions/Matrix/submatrix.java added support for logical tokens stefan + Functions/General/_class.java --- 37,48 ---- stefan * ! 2007/02/04 ! stefan # Functions/General/whos.java added treatment of tokens without "size"" ! stefan # Tokens/MathLibObject.java added correct name of token ! ! 2007/02/03 ! stefan + Functions/set/union.m ! stefan + Functions/General/randperm.m ! stefan + Functions/Finanan/npv.m stefan * Functions/Matrix/submatrix.java added support for logical tokens stefan + Functions/General/_class.java |
|
From: Stefan M. <st_...@us...> - 2007-02-04 15:52:15
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/General In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv8606/Source/MathLib/Functions/General Modified Files: whos.java Log Message: added treatment of "structs" to whos() Index: whos.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Functions/General/whos.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** whos.java 20 Jan 2007 15:23:15 -0000 1.7 --- whos.java 4 Feb 2007 15:52:10 -0000 1.8 *************** *** 49,52 **** --- 49,57 ---- String line =""; + // for tokens with no size return "" + if (s==null) + return ""; + + // build up "size"-string for (int i=0; i< s.length; i++) { |
|
From: Stefan M. <st_...@us...> - 2007-02-04 15:52:14
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv8606/Source/MathLib/Tokens Modified Files: MathLibObject.java Log Message: added treatment of "structs" to whos() Index: MathLibObject.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/MathLibObject.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MathLibObject.java 20 Jan 2007 15:26:33 -0000 1.12 --- MathLibObject.java 4 Feb 2007 15:52:10 -0000 1.13 *************** *** 15,20 **** public MathLibObject() { ! super(10, "object"); ! fields = new HashMap(); } --- 15,19 ---- public MathLibObject() { ! super(10, "struct"); fields = new HashMap(); } *************** *** 24,27 **** --- 23,27 ---- public MathLibObject(MathLibObject oldVal) { + super(10, "struct"); fields = ((HashMap)oldVal.getFieldsHash().clone()); } |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:57:40
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/set In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv5921/Source/MathLib/Functions/set Added Files: union.m Log Message: --- NEW FILE: union.m --- ## Copyright (C) 1996, 1997 John W. Eaton ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 02110-1301, USA. ## -*- texinfo -*- ## @deftypefn {Function File} {} union (@var{x}, @var{y}) ## Return the set of elements that are in either of the sets @var{x} and ## @var{y}. For example, ## ## @example ## @group ## union ([ 1, 2, 4 ], [ 2, 3, 5 ]) ## @result{} [ 1, 2, 3, 4, 5 ] ## @end group ## @end example ## @seealso{create_set, intersection, complement} ## @end deftypefn ## Author: jwe function y = union(a,b) if (nargin != 2) print_usage (); endif if (isempty (a)) y = create_set (b); elseif (isempty (b)) y = create_set (a); else y = create_set ([a(:); b(:)]); if (size (a, 1) == 1 || size (b, 1) == 1) y = y(:).'; else y = y(:); endif endif endfunction |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:49:50
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/General In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv2658/Source/MathLib/Functions/General Added Files: randperm.m Log Message: --- NEW FILE: randperm.m --- ## Copyright (C) 1998 John W. Eaton ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 02110-1301, USA. ## -*- texinfo -*- ## @deftypefn {Function File} {} randperm (@var{n}) ## Return a row vector containing a random permutation of the ## integers from 1 to @var{n}. ## @end deftypefn ## Author: "James R. Van Zandt" <jr...@va...> ## Adapted-By: jwe function retval = randperm (n) if (nargin == 1 && isscalar (n) && floor (n) == n) if (n >= 0) [junk, retval] = sort (rand (1, n)); else error ("randperm: argument must be non-negative"); endif else print_usage (); endif endfunction |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:41:47
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/General In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv31603/Source/MathLib/Functions/General Added Files: logspace.m Log Message: --- NEW FILE: logspace.m --- ## Copyright (C) 1996, 1997 John W. Eaton ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 02110-1301, USA. ## -*- texinfo -*- ## @deftypefn {Function File} {} logspace (@var{base}, @var{limit}, @var{n}) ## Similar to @code{linspace} except that the values are logarithmically ## spaced from ## @iftex ## @tex ## $10^{base}$ to $10^{limit}$. ## @end tex ## @end iftex ## @ifinfo ## 10^base to 10^limit. ## @end ifinfo ## ## If @var{limit} is equal to ## @iftex ## @tex ## $\pi$, ## @end tex ## @end iftex ## @ifinfo ## pi, ## @end ifinfo ## the points are between ## @iftex ## @tex ## $10^{base}$ and $\pi$, ## @end tex ## @end iftex ## @ifinfo ## 10^base and pi, ## @end ifinfo ## @emph{not} ## @iftex ## @tex ## $10^{base}$ and $10^{\pi}$, ## @end tex ## @end iftex ## @ifinfo ## 10^base and 10^pi, ## @end ifinfo ## in order to be compatible with the corresponding @sc{Matlab} function. ## @seealso{linspace} ## @end deftypefn ## Author: jwe function retval = logspace (x1, x2, n) if (nargin == 2) npoints = 50; elseif (nargin == 3) if (length (n) == 1) npoints = fix (n); else error ("logspace: arguments must be scalars"); endif else print_usage (); endif if (npoints < 2) error ("logspace: npoints must be greater than 2"); endif if (length (x1) == 1 && length (x2) == 1) x2_tmp = x2; if (x2 == pi) x2_tmp = log10 (pi); endif retval = 10 .^ (linspace (x1, x2_tmp, npoints)); else error ("logspace: arguments must be scalars"); endif endfunction |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:37:25
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Finance In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv29949/Source/MathLib/Functions/Finance Added Files: npv.m Log Message: --- NEW FILE: npv.m --- ## Copyright (C) 1995, 1996, 1997 Kurt Hornik ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, write to the Free ## Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ## 02110-1301, USA. ## -*- texinfo -*- ## @deftypefn {Function File} {} npv (@var{r}, @var{p}, @var{i}) ## Returns the net present value of a series of irregular (i.e., not ## necessarily identical) payments @var{p} which occur at the ends of @var{n} ## consecutive periods. @var{r} specifies the one-period interest rates and ## can either be a scalar (constant rates) or a vector of the same ## length as @var{p}. ## ## The optional argument @var{i} may be used to specify an initial ## investment. ## ## Note that the rate @var{r} is specified as a fraction (i.e., 0.05, ## not 5 percent). ## @seealso{irr, pv} ## @end deftypefn ## Author: KH <Kur...@wu...> ## Description: Net present value of a series of payments function v = npv (r, p, ii) if ((nargin < 2) || (nargin > 3)) print_usage (); endif if (! (isvector (p))) error ("npv: p has to be a vector"); else n = length (p); p = reshape (p, 1, n); endif if (any (any (r <= -1))) error ("npv: all interest rates must be > -1"); endif if (isscalar (r)) d = 1 ./ (1 + r) .^ (0 : n); elseif (isvector (r) && (length (r) == n)) d = [1, (1 ./ cumprod (reshape (1 + r, 1, n)))]; else error ("npv: r must be a scalar or a vector of the same length as p"); endif if (nargin == 3) if (! isscalar (ii)) error ("npv: I_0 must be a scalar"); endif else ii = 0; endif p = [ii, p]; v = sum (d .* p); endfunction |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:33:03
|
Update of /cvsroot/mathlib/mathlib In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv27793 Modified Files: ChangeLog.txt Log Message: Index: ChangeLog.txt =================================================================== RCS file: /cvsroot/mathlib/mathlib/ChangeLog.txt,v retrieving revision 1.163 retrieving revision 1.164 diff -C2 -d -r1.163 -r1.164 *** ChangeLog.txt 3 Feb 2007 13:52:35 -0000 1.163 --- ChangeLog.txt 3 Feb 2007 21:32:46 -0000 1.164 *************** *** 37,40 **** --- 37,41 ---- 2007/02/3 + stefan * Functions/Matrix/submatrix.java added support for logical tokens stefan + Functions/General/_class.java stefan + Functions/General/class.m *************** *** 81,85 **** stefan + Functions/General/issingle.m - 2007/01/18 stefan * Tokens/CellArrayToken.java added better support for empty constructor --- 82,85 ---- |
|
From: Stefan M. <st_...@us...> - 2007-02-03 21:32:14
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Matrix In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv27474/Source/MathLib/Functions/Matrix Modified Files: SubMatrix.java Log Message: added support for logical tokens Index: SubMatrix.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Functions/Matrix/SubMatrix.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** SubMatrix.java 26 Dec 2006 12:25:07 -0000 1.21 --- SubMatrix.java 3 Feb 2007 21:32:09 -0000 1.22 *************** *** 68,72 **** // submatrix(a,3:5) } ! else if(operands[1] instanceof Expression) { // e.g. submatrix(a,:) or submatrix(a,2:end) --- 68,100 ---- // submatrix(a,3:5) } ! else if(operands[1] instanceof LogicalToken) ! { ! // e.g. submatrix(a,[true,true,false,true]) ! LogicalToken l = (LogicalToken)operands[1]; ! ! // find number of elements unequal zero ! int n = 0; ! for (int i=0; i<l.getNumberOfElements(); i++) ! { ! if (l.getValue(i)) ! n++; ! } ! ! // create index array from boolean values ! // eg. a=[true,true,false,true] ->[1,2,4] (use indices with "true") ! double[][] values = new double [1][n]; ! int ni =0; ! for (int i=0; i<l.getNumberOfElements(); i++) ! { ! if (l.getValue(i)) ! { ! values[0][ni] = (double)i + 1; ! ni++; ! } ! } ! operands[1] = new NumberToken(values,null); ! ! } ! else if(operands[1] instanceof Expression) { // e.g. submatrix(a,:) or submatrix(a,2:end) *************** *** 221,224 **** --- 249,280 ---- // e.g. submatrix(a,1,2) } + else if(operands[2] instanceof LogicalToken) + { + // e.g. submatrix(a,b,[true,true,false,true]) + LogicalToken l = (LogicalToken)operands[2]; + + // find number of elements unequal zero + int n = 0; + for (int i=0; i<l.getNumberOfElements(); i++) + { + if (l.getValue(i)) + n++; + } + + // create index array from boolean values + // eg. a=[true,true,false,true] ->[1,2,4] (use indices with "true") + double[][] values = new double [1][n]; + int ni =0; + for (int i=0; i<l.getNumberOfElements(); i++) + { + if (l.getValue(i)) + { + values[0][ni] = (double)i + 1; + ni++; + } + } + operands[2] = new NumberToken(values,null); + + } else if(operands[2] instanceof Expression) { |
|
From: Stefan M. <st_...@us...> - 2007-02-03 19:45:37
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tokens In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15589/Source/MathLib/Tokens Modified Files: LogicalToken.java Log Message: cleanup Index: LogicalToken.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tokens/LogicalToken.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LogicalToken.java 30 Jan 2007 19:55:52 -0000 1.4 --- LogicalToken.java 3 Feb 2007 19:45:34 -0000 1.5 *************** *** 1,6 **** package MathLib.Tokens; - import java.text.NumberFormat; - import MathLib.Interpreter.ErrorLogger; import MathLib.Interpreter.Errors; --- 1,4 ---- *************** *** 39,43 **** * values representing real and imaginary part * @param _real = the numbers real value as a double - * @param _imaginary = the numbers imaginary value as a double */ public LogicalToken(double _real) --- 37,40 ---- |
|
From: Stefan M. <st_...@us...> - 2007-02-03 19:45:21
|
Update of /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Interpreter In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15559/Source/MathLib/Tools/TestSuite/Interpreter Modified Files: testParser.java Log Message: throw exception for */ ** /* */ // (multiple operators) Index: testParser.java =================================================================== RCS file: /cvsroot/mathlib/mathlib/Source/MathLib/Tools/TestSuite/Interpreter/testParser.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** testParser.java 26 Dec 2006 15:11:12 -0000 1.20 --- testParser.java 3 Feb 2007 19:45:17 -0000 1.21 *************** *** 135,194 **** public void testPriority101() { ml.executeExpression("2<3"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority102() { ml.executeExpression("2<3+4"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority103() { ml.executeExpression("2>3+4"); ! assertEquals(0.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority104() { ml.executeExpression("2>3||1<7"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority105() { ml.executeExpression("2>3||1>7"); ! assertEquals(0.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority106() { ml.executeExpression("2<3||1>7"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority107a() { ml.executeExpression("3&&2==3||1>7"); ! assertEquals(0.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority107b() { ml.executeExpression("3&&2==2||1>7"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority108() { ml.executeExpression("5!=5||1>7"); ! assertEquals(0.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority109() { ml.executeExpression("7!=5||1>7"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority110() { ml.executeExpression("8>=7||4!=5"); ! assertEquals(1.0, ml.getScalarValueRe("ans"), 0.001); } public void testPriority111() { ml.executeExpression("5>=7||5!=5"); ! assertEquals(0.0, ml.getScalarValueRe("ans"), 0.001); } --- 135,194 ---- public void testPriority101() { ml.executeExpression("2<3"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority102() { ml.executeExpression("2<3+4"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority103() { ml.executeExpression("2>3+4"); ! assertEquals(false, ml.getScalarValueBoolean("ans")); } public void testPriority104() { ml.executeExpression("2>3||1<7"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority105() { ml.executeExpression("2>3||1>7"); ! assertEquals(false, ml.getScalarValueBoolean("ans")); } public void testPriority106() { ml.executeExpression("2<3||1>7"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority107a() { ml.executeExpression("3&&2==3||1>7"); ! assertEquals(false, ml.getScalarValueBoolean("ans")); } public void testPriority107b() { ml.executeExpression("3&&2==2||1>7"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority108() { ml.executeExpression("5!=5||1>7"); ! assertEquals(false, ml.getScalarValueBoolean("ans")); } public void testPriority109() { ml.executeExpression("7!=5||1>7"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority110() { ml.executeExpression("8>=7||4!=5"); ! assertEquals(true, ml.getScalarValueBoolean("ans")); } public void testPriority111() { ml.executeExpression("5>=7||5!=5"); ! assertEquals(false, ml.getScalarValueBoolean("ans")); } |