summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjofret2006-11-27 14:48:10 +0000
committerjofret2006-11-27 14:48:10 +0000
commit2dda5de857d862da6154cff17c7fbf278e47484a (patch)
tree7d4a5b6b6f8a60f2bc1ad0217d715818357267e3
parentb2bf3feb5e95f340df85dedb3f07c9892186f3ee (diff)
downloadscilab2c-2dda5de857d862da6154cff17c7fbf278e47484a.tar.gz
scilab2c-2dda5de857d862da6154cff17c7fbf278e47484a.tar.bz2
scilab2c-2dda5de857d862da6154cff17c7fbf278e47484a.zip
Evolution of tree construcion
-rw-r--r--ChangeLog29
-rw-r--r--Doc/Elementary Functions/TrigonometricsDependeces.dot84
-rw-r--r--TODO20
3 files changed, 117 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000..f71158aa
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,29 @@
+2006-11-27 Bruno JOFRET <bruno.jofret@inria.fr>
+
+ * Number Sign [sign]:
+ Done for Real Type.
+ * Abslute Value [abs]:
+ Done for Real Type.
+
+2006-11-18 Bruno JOFRET <bruno.jofret@inria.fr>
+
+ * Tangeant [tan]:
+ Done for Real and Complex Type.
+ * Logarithm [log]:
+ Done for Real and Complex Type.
+
+2006-11-15 Bruno JOFRET <bruno.jofret@inria.fr>
+
+ * Cosinus [cos]:
+ Done for Real and Complex Type.
+ * Sinus [sin]:
+ Done for Real and Complex Type.
+
+2006-11-13 Bruno JOFRET <bruno.jofret@inria.fr>
+
+ * TrigonometricsDependeces.dot :
+ First dependences...
+ Evaluating all depences in order to find atomic calls.
+
+
+
diff --git a/Doc/Elementary Functions/TrigonometricsDependeces.dot b/Doc/Elementary Functions/TrigonometricsDependeces.dot
index 23fa74e4..b7196358 100644
--- a/Doc/Elementary Functions/TrigonometricsDependeces.dot
+++ b/Doc/Elementary Functions/TrigonometricsDependeces.dot
@@ -1,17 +1,21 @@
digraph TrigonometricsFunctions {
- size="8,8";
+ size="6,6";
node [shape=circle];
//
// -*- Basic Call -*-
//
-F77_Call [label="Fortan Call", shape=doublecircle];
-C_Call [label="C Call", shape=doublecircle];
+F77_Call [label="Fortan Call", shape=doublecircle, color=green];
+C_Call [label="C Call", shape=doublecircle, color=blue];
+LAPACK_Call [label="LAPACK Call", shape=doublecircle, color=yellow];
+
//
// -*- Specific LAPACK Call -*-
//
-Dlamch_E_Call [label="dlamch('e')", comment="Précision Machine - LAPACK", shape=doublecircle, color=red];
+Dlamch_E_Call [label="dlamch('E')", comment="Précision Machine - LAPACK", shape=doublecircle, color=red];
+Dlamch_U_Call [label="dlamch('U')", comment="??? - LAPACK", shape=doublecircle, color=red];
+Dlamch_O_Call [label="dlamch('O')", comment="??? - LAPACK", shape=doublecircle, color=red];
//
@@ -49,10 +53,6 @@ Sqrt_Positive_Real [label="sqrt(R+)"];
Sqrt_Negative_Real [label="sqrt(R-)"];
Sqrt_Complex [label="sqrt(C)", comment="wsqrt"];
-
-Sqrt_Complex [label="sqrt(C)"];
-
-
// Valeur Absolue
Abs_Real [label="abs(R)", comment="|R|"];
@@ -65,6 +65,12 @@ Sign_Real [label="sign(R)"];
// -*- Functions call links -*-
//
+// -*- DLAMCH -*-
+Dlamch_E_Call -> LAPACK_Call;
+Dlamch_U_Call -> LAPACK_Call;
+Dlamch_O_Call -> LAPACK_Call;
+
+
// -*- COS -*-
// cos(a+ib) = cos(a).ch(b) - i.sin(a).sh(b)
Cos_Complex -> {
@@ -73,8 +79,9 @@ Cos_Complex -> {
Cos_Hyperbolic_Real
Sin_Hyperbolic_Real
};
- // Call a cosinus function in F77 math lib
- Cos_Real -> F77_Call;
+
+// Call a cosinus function in F77 math lib
+Cos_Real -> F77_Call;
// -*- SIN -*-
//
@@ -93,6 +100,9 @@ Sin_Real -> F77_Call;
// -*- TAN -*-
//
// tan(a+ib) = x_r + i.x_i
+//
+// x_r= 1/2 sin(2.a) / d
+//
// x_i = | sh(2.b) / 2.d si |b| <= L
// | sign(a)
//
@@ -113,13 +123,65 @@ Tan_Complex -> {
Tan_Real -> F77_Call;
+// -*- LOG -*-
+//
+// log(a+ib) = x_r + i.x_i
+//
+// Constantes :
+// L_inf = sqrt(dlamch('U'))
+// L_sup = sqrt(R_max / 2)
+// R_max = dlamch('O')
+// t = pythag(|a|,|b|)
+// r = |b|/|a|
+//
+// x_i = atan2(b, a)
+//
+// x_r = | 1/2 logp1((|a|-1)(|a|+1) + |b|^2) si 1/2 <= |a| <= sqrt(2)
+// | 1/2 log(|a|^2 + |b|^2) si L_inf < |b| && |a| < L_sup
+// | |a| si |a| > R_max
+// | log(t) si t <= R_max
+// | log(|a|) + 1/2 logp1(r^2) sinon
+Log_Complex -> {
+ Sqrt_Real
+ Dlamch_U_Call
+ Dlamch_O_Call
+ Pythag_Real
+ LogP1_Real
+ Log_Real
+ Abs_Real
+ Pythag_Real
+ ATan2_Real
+ };
+
+// Call a log function in F77 math lib
+Log_Real -> F77_Call;
+
+
+
// -*- SQRT -*-
//
-Sqrt_Negative_Real -> Sqrt_Complex;
+// Separate positive and negative case
+Sqrt_Real -> {
+ Sqrt_Positive_Real
+ Sqrt_Negative_Real
+ };
+// Call another sqrt function, treat it as complex
+Sqrt_Negative_Real -> Sqrt_Complex;
// Call a sqrt function in F77 math lib
Sqrt_Positive_Real -> F77_Call;
+// -*- SIGN -*-
+//
+// Call a sign function in F77 math lib
+Sign_Real -> F77_Call;
+
+
+// -*- ABS -*-
+//
+// Call a abs function in F77 math lib
+Abs_Real -> F77_Call;
+
} \ No newline at end of file
diff --git a/TODO b/TODO
index c598eefb..2782c2ae 100644
--- a/TODO
+++ b/TODO
@@ -5,19 +5,29 @@
## Made by Bruno JOFRET <bruno.jofret@inria.fr>
##
## Started on Tue Nov 21 15:22:58 2006 jofret
-## Last update Wed Nov 22 17:15:00 2006 jofret
+## Last update Mon Nov 27 12:19:53 2006 jofret
##
## Copyright INRIA 2006
##
-BJ - Evaluate and draw a graph of function dependences.
+
+BJ - Evaluated and draw :
+ cos : [done R & C]
+ sin : [done R & C]
+ tan : [done R & C]
+ + log : [done R & C]
+ + sign : [done R]
+ + abs : [done R]
+
+BJ - Evaluate and draw a graph of function dependences.
+ sqrt : Working...
- + log : Working...
- + exp
+ + ch : Fixme (R)
+ + sh : Fixme (R)
+ + atan2 : Fixme (R)
+ + exp : Fixme (R & C)
BJ - Find a way to code complex type taking care of double/float precision.
-BJ - Listing of atomic call and library dependences. \ No newline at end of file
+BJ - Listing of atomic call and library dependences.
+
+BJ - Explore dlamch uses 'e' 'u' 'o' ??? \ No newline at end of file