Ver Fonte

* new example to demonstrate new QuickEvaluate routine.

git-svn-id: trunk@18197 -
marco há 14 anos atrás
pai
commit
8f4d4bc959

+ 1 - 0
.gitattributes

@@ -5903,6 +5903,7 @@ packages/symbolic/doc/optimization.txt svneol=native#text/plain
 packages/symbolic/doc/symbolic.txt svneol=native#text/plain
 packages/symbolic/examples/Makefile svneol=native#text/plain
 packages/symbolic/examples/Makefile.fpc svneol=native#text/plain
+packages/symbolic/examples/easyevalexample.pp svneol=native#text/plain
 packages/symbolic/examples/evaltest.pas svneol=native#text/plain
 packages/symbolic/examples/rpnthing.pas svneol=native#text/plain
 packages/symbolic/fpmake.pp svneol=native#text/plain

+ 64 - 64
packages/symbolic/examples/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/03]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/08/13]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
@@ -289,193 +289,193 @@ FPCFPMAKE=$(FPC)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_PROGRAMS+=evaltest rpnthing
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
 endif
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR

+ 1 - 1
packages/symbolic/examples/Makefile.fpc

@@ -3,7 +3,7 @@
 #
 
 [target]
-programs=evaltest rpnthing
+programs=evaltest rpnthing easyevalexample
 
 [require]
 packages=symbolic

+ 39 - 0
packages/symbolic/examples/easyevalexample.pp

@@ -0,0 +1,39 @@
+Program EasyEvalExample;
+{
+    Copyright (c) 2011 by Marco van de Voort([email protected])
+    member of the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright. (LGPL-with-static-linking-exception)
+
+    Rock bottom example of new evaluator helper function.
+
+    This program 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.
+}
+
+{$mode delphi}
+Uses Symbolic,Classes,sysutils;
+
+var s : AnsiString;
+    a : extended;
+    b : integer;
+    
+begin
+  // quickevaluate('expression',[],[]); evaluates a constant expression to an
+  //  extended result
+
+  s:='(5+5+10)*2';
+  writeln(s,'=',QuickEvaluate(s,[],[]):10:1);
+
+
+  // ... but still allows variables:
+
+  a:=2.0;
+  b:=3;
+  s:='(5+A+10)*B';
+  // variable names are case sensitive!
+  writeln(s,'=',QuickEvaluate(s,['A','B'],[a,b]):10:1,' with A=',a:0:1,' and B=',b);
+
+end.

+ 1 - 0
packages/symbolic/fpmake.pp

@@ -40,6 +40,7 @@ begin
     P.ExamplePath.Add('examples');
     P.Targets.AddExampleProgram('evaltest.pas');
     P.Targets.AddExampleProgram('rpnthing.pas');
+    P.Targets.AddExampleProgram('easyevalexample.pas');
     P.Sources.AddDoc('doc/optimization.txt');
     P.Sources.AddDoc('doc/symbolic.txt');