Changes In Branch origin/merging-ode2odes-exe Through [be3660debc] Excluding Merge-Ins
This is equivalent to a diff from fe41f9074c to be3660debc
Deleted CVSROOT/checkoutlist version [3854d49239].
|
| < < < < < < < < < < < < < |
Deleted CVSROOT/commitinfo version [85654ac9a8].
|
| < < < < < < < < < < < < < < < |
Deleted CVSROOT/config version [28e7a42550].
|
| < < < < < < < < < < < |
Deleted CVSROOT/cvswrappers version [9d41597c29].
|
| < < < < < < < < < < < < < < < < < < < < < < < |
Deleted CVSROOT/editinfo version [dfa5fb459c].
|
| < < < < < < < < < < < < < < < < < < < < < |
Deleted CVSROOT/loginfo version [4503d4cd47].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted CVSROOT/modules version [84b74e5335].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < |
Deleted CVSROOT/notify version [2a5259e3c5].
|
| < < < < < < < < < < < < |
Deleted CVSROOT/rcsinfo version [c276b88ba1].
|
| < < < < < < < < < < < < < |
Deleted CVSROOT/taginfo version [364dad5373].
|
| < < < < < < < < < < < < < < < < < < < < |
Deleted CVSROOT/verifymsg version [cbc796537d].
|
| < < < < < < < < < < < < < < < < < < < < < |
Modified mttroot/mtt/bin/mtt from [7a138278c5] to [e8d02e781f].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Header$ ## $Log$ ## Revision 1.292 2001/02/05 17:27:40 gawthrop ## Make sure _def.r exists before creating _state.txt ## ## Revision 1.291 2000/12/27 14:50:40 peterg ## This is the first CVS version (4.9). ## Commented out code now deleted ## | > > > > > > > > > > > > > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # Copyright (C) 2000 by Peter J. Gawthrop ############################################################### ## Version control history ############################################################### ## $Header$ ## $Log$ ## Revision 1.293.2.5 2001/03/03 00:27:14 geraint ## Fixed ar options to work with GNU ar. Allow mtt to create dependencies for mtt_%.cc when making mtt_%.oct. ## ## Revision 1.293.2.4 2001/03/02 00:45:21 geraint ## Separated Euler and Implicit methods in .cc code and dependencies. ## ## Revision 1.293.2.3 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.293.2.2 2001/02/23 03:53:53 geraint ## Minor revisions. (ode2odes.exe works on GNU/Linux and ~GNU/Irix) ## ## Revision 1.293.2.1 2001/02/22 06:41:40 geraint ## Initial merge of ode2odes.exe into main mtt. ## standalone_rep.make deleted: rules moved to mtt, variables to mttrc. ## ## Revision 1.293 2001/02/06 04:39:08 geraint ## Added _standalone.exe representation. ## ## Revision 1.292 2001/02/05 17:27:40 gawthrop ## Make sure _def.r exists before creating _state.txt ## ## Revision 1.291 2000/12/27 14:50:40 peterg ## This is the first CVS version (4.9). ## Commented out code now deleted ## |
︙ | ︙ | |||
1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 | fi if [ -n "$sensitivity" ]; then sys=`echo $1 | cut -c 2-` sys_abg=$sys"_abg" fi ################################ # This is the main mtt programme ################################ ##echo Target is $target, Subsystem is $Subsystem, options are $mtt_switches $MAKE -S $verbose -f - $target << EOF # Cancel implicit rules I don't want %.dvi: %.tex # MTT implicit rules ## .oct files | > > > > > > > < | | < > > > > < | | | > > > > > > > > > > > > > | 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 | fi if [ -n "$sensitivity" ]; then sys=`echo $1 | cut -c 2-` sys_abg=$sys"_abg" fi ## Check octave version if [ `octave --version | awk -F\. '{print $2}'` ]; then define_octave_dev="-DOCTAVE_DEV" else define_octave_dev="" fi ################################ # This is the main mtt programme ################################ ##echo Target is $target, Subsystem is $Subsystem, options are $mtt_switches $MAKE -S $verbose -f - $target << EOF # Cancel implicit rules I don't want %.dvi: %.tex # MTT implicit rules ## .oct files $1_%.oct: $1_%.cc $1_def.h $1_sympar.h $1_cr.h echo Creating $1_\$*.oct; $MKOCTFILE $1_\$*.cc .PRECIOUS: mtt_%.oct mtt_%.oct: mtt_%.cc echo Compiling \$< ${MKOCTFILE} $define_octave_dev \$< ## .cc files .PRECIOUS: %.cc # Don't let mtt delete them $1_%.cc: $1_%.m mtt_m2cc.sh $1 \$* cat mtt_%.cc: ${MTT_LIB}/cc/mtt_%.cc cp ${MTT_LIB}/cc/mtt_\$*.cc mtt_\$*.cc ## .o files .PRECIOUS: $1_%.o $1_%.o: $1_%.cc $1_def.h $1_sympar.h $1_cr.h echo Compiling $1_\$*.cc ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $< -DSTANDALONE .PRECIOUS: mtt_%.o mtt_%.o: mtt_%.cc echo Compiling mtt_\$*.cc ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $< -DSTANDALONE $define_octave_dev # Generates code to write reduce code $1_ode_write.r: $1_def.m def2write_r $1 $2 ifeq ("$sensitivity","sensitivity") ifeq ("$level","0") |
︙ | ︙ | |||
2008 2009 2010 2011 2012 2013 2014 | #SUMMARY simpar simulation information (m) $1_simpar.m: $1_simpar.txt $1_def.r $1_sympar.txt mtt_txt2m $1 simpar #SUMMARY numpar numerical parameter declaration -- default (txt) | | < < | < < < | < < | < < < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 | #SUMMARY simpar simulation information (m) $1_simpar.m: $1_simpar.txt $1_def.r $1_sympar.txt mtt_txt2m $1 simpar #SUMMARY numpar numerical parameter declaration -- default (txt) $1_numpar.txt : $1_sympar.txt $1_def.r ifeq ($target,$1_numpar.txt) mtt_update $1 numpar update else mtt_update $1 numpar endif #SUMMARY state numerical state declaration -- default (txt) $1_state.txt : $1_struc.txt $1_sympar.txt $1_def.r ifeq ($target,$1_state.txt) mtt_update $1 state update else mtt_update $1 state endif #SUMMARY input numerical state declaration -- default (txt) $1_input.txt : $1_struc.txt $1_sympar.txt ifeq ($target,$1_input.txt) mtt_update $1 input update else mtt_update $1 input endif #SUMMARY logic Dynamic switch logic (txt) $1_logic.txt : $1_def.r $1_struc.txt $1_sympar.txt ifeq ($target,$1_logic.txt) mtt_update $1 logic update else mtt_update $1 logic endif # Dummy target FORCE: $1_ode2odes_common.m : $1_input.m $1_logic.m $1_numpar.m $1_simpar.m $1_state.m @echo > /dev/null $1_ode2odes_common.cc : $1_input.cc $1_logic.cc $1_numpar.cc $1_simpar.cc $1_state.cc @echo > /dev/null $1_ode2odes_common.o : $1_input.o $1_logic.o $1_numpar.o $1_simpar.o $1_state.o @echo "Creating $1_ode2odes_common.o" ar -cr \$@ \$^ $1_ode2odes_common.oct : $1_input.oct $1_logic.oct $1_numpar.oct $1_simpar.oct $1_state.oct @echo > /dev/null $1_ode2odes_euler.m : $1_ode.m $1_odeo.m @echo > /dev/null $1_ode2odes_euler.cc : $1_ode.cc $1_odeo.cc @echo > /dev/null $1_ode2odes_euler.o : $1_ode.o $1_odeo.o mtt_euler.o @echo "Creating $1_ode2odes_euler.o" ar -cr \$@ \$^ $1_ode2odes_euler.oct : $1_ode.oct $1_odeo.oct mtt_euler.oct @echo > /dev/null $1_ode2odes_implicit.m : $1_cseo.m $1_csex.m $1_smxa.m $1_smxax.m @echo > /dev/null $1_ode2odes_implicit.cc : $1_cseo.cc $1_csex.cc $1_smxa.cc $1_smxax.cc @echo > /dev/null $1_ode2odes_implicit.o : $1_cseo.o $1_csex.o $1_smxa.o $1_smxax.o mtt_implicit.o @echo "Creating $1_ode2odes_implicit.o" ar -cr \$@ \$^ $1_ode2odes_implicit.oct: $1_cseo.oct $1_csex.oct $1_smxa.oct $1_smxax.oct mtt_implicit.oct @echo > /dev/null #SUMMARY numpar numerical parameter declaration (m) $1_numpar.m: $1_numpar.txt $1_sympars.txt mtt_txt2m $1 numpar #SUMMARY numpar numerical parameter declaration (c) #SUMMARY numpar numerical parameter declaration (view) |
︙ | ︙ | |||
2196 2197 2198 2199 2200 2201 2202 | touch $1_aliased.txt $1_struc.tex: $1_struc.txt struc_txt2tex $1 $1_struc.m: $1_struc.txt struc_txt2m $1 $1_def.m: $1_def.r def_r2m $1; matlab_tidy $1_def.m; | | | 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 | touch $1_aliased.txt $1_struc.tex: $1_struc.txt struc_txt2tex $1 $1_struc.m: $1_struc.txt struc_txt2m $1 $1_def.m: $1_def.r def_r2m $1; matlab_tidy $1_def.m; $1_def.h: $1_def.m $1_sympar.txt def_m2h.sh $1 #SUMMARY rdae raw differential-algebraic equations (r) #SUMMARY dae differential-algebraic equations (r) #SUMMARY dae* differential-algebraic equations (m) #SUMMARY dae differential-algebraic equations (tex) #SUMMARY dae* differential-algebraic equations (view) |
︙ | ︙ | |||
2344 2345 2346 2347 2348 2349 2350 | # The main simulation programme ifeq ($integration_method,implicit) $1_ode2odes.m : $1_def.r $1_sympars.txt \ $1_smxa.m $1_smxax.m\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_csex.m $1_cseo.m $1_logic.m ifeq ($using_oct,yes) | < < < < < < < < < < < < > < < < < < < < < < | > > > > > > > > > > > > > > > > > > > > > > > > > > | 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 | # The main simulation programme ifeq ($integration_method,implicit) $1_ode2odes.m : $1_def.r $1_sympars.txt \ $1_smxa.m $1_smxax.m\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_csex.m $1_cseo.m $1_logic.m ifeq ($using_oct,yes) touch $1_ode2odes.m # Create a dummy which wont' be used mtt $mtt_switches -q -u $1 ode2odes oct else make_ode2odes $1 m $integration_method endif endif ifeq ($integration_method,euler) $1_ode2odes.m : $1_def.r $1_sympars.txt\ $1_simpar.m $1_numpar.m $1_state.m $1_input.m \ $1_ode.m $1_odeo.m $1_logic.m ifeq ($using_oct,yes) echo "*** Warning: Shouldn't be here! Creating dummy $1_ode2odes.m" touch $1_ode2odes.m # Create a dummy which wont' be used mtt $mtt_switches -q -u $1 ode2odes oct else make_ode2odes $1 m $integration_method endif endif #SUMMARY ode2odes Simulation function (m) #SUMMARY ode2odes Simulation function (cc) #SUMMARY ode2odes Simulation function (oct) #SUMMARY ode2odes Simulation function (exe) $1_ode2odes.exe: $1_def.h $1_sympar.h\ $1_ode2odes.o $1_ode2odes_common.o $1_ode2odes_${integration_method}.o echo Creating $1_ode2odes.exe ${MTT_CXX} ${MTT_CXXFLAGS} -o $1_ode2odes.exe\ $1_ode2odes.o $1_ode2odes_common.o $1_ode2odes_${integration_method}.o\ ${MTT_LDFLAGS} ${MTT_CXXLIBS} $1_ode2odes.o: $1_ode2odes.cc $1_ode2odes_common.o $1_ode2odes_${integration_method}.o echo Creating $1_ode2odes.o ${MTT_CXX} ${MTT_CXXFLAGS} ${MTT_CXXINCS} -c $1_ode2odes.cc -DSTANDALONE $1_ode2odes.oct: $1_ode2odes.cc $1_ode2odes_common.oct $1_ode2odes_${integration_method}.oct touch $1_ode2odes.m echo Creating $1_ode2odes.oct $MKOCTFILE $1_ode2odes.cc $1_ode2odes.cc: $1_def.r $1_sympars.txt\ $1_ode2odes_common.m $1_ode2odes_common.cc\ $1_ode2odes_${integration_method}.m $1_ode2odes_${integration_method}.cc touch $1_ode2odes.m make_ode2odes $1 cc $integration_method #Conversion of m to p to c #SUMMARY ode ordinary differential equations (c) #SUMMARY ode ordinary differential equations (p) #SUMMARY state state declaration (c) #SUMMARY state state declaration (p) $1_simpar.p : $1_def.r $1_simpar.m |
︙ | ︙ | |||
2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 | m2dat $1_sro 1_odes.c: $1_ode.c $1_def.r $1_sympar.r ode2odes_r2c $1 $1_sms.c: $1_sm.c $1_def.r $1_sympar.r sm2sms_r2c $1 ifeq ($computation,octave) $1_odes.dat2: $1_ode2odes.m time octave_ode2odes $1 endif ifeq ($computation,c) $1_ode2odes.out: $1_ode2odes.c echo Creating $1_odes.out $CC $1_ode2odes.c -lp2c -lm -o $1_ode2odes.out | > > > > > | 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 | m2dat $1_sro 1_odes.c: $1_ode.c $1_def.r $1_sympar.r ode2odes_r2c $1 $1_sms.c: $1_sm.c $1_def.r $1_sympar.r sm2sms_r2c $1 ifeq ($computation,octave) ifeq ($using_oct,yes) $1_odes.dat2: $1_ode2odes.oct time octave_ode2odes $1 else $1_odes.dat2: $1_ode2odes.m time octave_ode2odes $1 endif endif ifeq ($computation,c) $1_ode2odes.out: $1_ode2odes.c echo Creating $1_odes.out $CC $1_ode2odes.c -lp2c -lm -o $1_ode2odes.out |
︙ | ︙ |
Modified mttroot/mtt/bin/mtt_check_vars from [65d9a8cff0] to [f001c2c57d].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.7 2000/08/04 15:48:30 peterg ## Added PDF ## ## Revision 1.6 2000/05/22 12:37:24 peterg ## *** empty log message *** ## ## Revision 1.5 2000/05/22 12:34:07 peterg | > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.8 2000/12/27 13:11:42 peterg ## *** empty log message *** ## ## Revision 1.7 2000/08/04 15:48:30 peterg ## Added PDF ## ## Revision 1.6 2000/05/22 12:37:24 peterg ## *** empty log message *** ## ## Revision 1.5 2000/05/22 12:34:07 peterg |
︙ | ︙ | |||
71 72 73 74 75 76 77 | mtt_check_var "$FIG" "FIG" "$print" "MTT" mtt_check_var "$PSVIEW" "PSVIEW" "$print" "MTT" mtt_check_var "$PDFVIEW" "PDFVIEW" "$print" "MTT" mtt_check_var "$HTMLVIEW" "HTMLVIEW" "$print" "MTT" mtt_check_var "$DVIVIEW" "DVIVIEW" "$print" "MTT" mtt_check_var "$CC" "CC" "$print" "MTT" mtt_check_var "$LATEX2HTML" "LATEX2HTML" "$print" "MTT" | | > > > > > | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | mtt_check_var "$FIG" "FIG" "$print" "MTT" mtt_check_var "$PSVIEW" "PSVIEW" "$print" "MTT" mtt_check_var "$PDFVIEW" "PDFVIEW" "$print" "MTT" mtt_check_var "$HTMLVIEW" "HTMLVIEW" "$print" "MTT" mtt_check_var "$DVIVIEW" "DVIVIEW" "$print" "MTT" mtt_check_var "$CC" "CC" "$print" "MTT" mtt_check_var "$LATEX2HTML" "LATEX2HTML" "$print" "MTT" mtt_check_var "$MKOCTFILE" "MKOCTFILE" "$print" "MTT" mtt_check_var "$MTT_CXX" "MTT_CXX" "$print" "MTT" mtt_check_var "$MTT_CXXFLAGS" "MTT_CXXFLAGS" "$print" "MTT" mtt_check_var "$MTT_CXXLIBS" "MTT_CXXLIBS" "$print" "MTT" mtt_check_var "$MTT_CXXINCS" "MTT_CXXINCS" "$print" "MTT" mtt_check_var "$MTT_LDFLAGS" "MTT_LDFLAGS" "$print" "MTT" |
Modified mttroot/mtt/bin/mttrc from [7b899869da] to [3ae226d26c].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.16 2000/12/27 15:16:44 peterg ## If then else format ## ## Revision 1.15 2000/12/27 14:57:43 peterg ## Now takes the base path as an argument ## ## Revision 1.14 2000/12/27 13:11:43 peterg | > > > > > > > > > > > > > | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.17.2.3 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.17.2.2 2001/02/23 03:53:53 geraint ## Minor revisions. (ode2odes.exe works on GNU/Linux and ~GNU/Irix) ## ## Revision 1.17.2.1 2001/02/22 06:41:40 geraint ## Initial merge of ode2odes.exe into main mtt. ## standalone_rep.make deleted: rules moved to mtt, variables to mttrc. ## ## Revision 1.17 2000/12/27 16:46:13 peterg ## Stripped the mtt- from paths ## ## Revision 1.16 2000/12/27 15:16:44 peterg ## If then else format ## ## Revision 1.15 2000/12/27 14:57:43 peterg ## Now takes the base path as an argument ## ## Revision 1.14 2000/12/27 13:11:43 peterg |
︙ | ︙ | |||
130 131 132 133 134 135 136 137 | export LATEX2HTML="latex2html -contents_in_navigation -index_in_navigation -address http://mtt.sourceforge.net" # Ascend stuff export ASCENDLIBRARY=$MTTPATH/ascend/lib # Oct file generation - use version with no optimisation. export MKOCTFILE=$MTT_LIB/octave/mkoctfile fi | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | export LATEX2HTML="latex2html -contents_in_navigation -index_in_navigation -address http://mtt.sourceforge.net" # Ascend stuff export ASCENDLIBRARY=$MTTPATH/ascend/lib # Oct file generation - use version with no optimisation. export MKOCTFILE=$MTT_LIB/octave/mkoctfile # ode2odes.exe stuff # local system PLAT="i686-pc-linux-gnu" PREFIX="/usr/local" GCCVERS="2.95.2" SRCOCTAVE="/cvs/octave" # PLAT="mips-sgi-irix6.5" # PREFIX="/usr/people/bevangp/GNU" # GCCVERS="2.95.2" # SRCOCTAVE="${PREFIX}/../build/octave-2.1.33" # include paths IOCTAVE="-I${PREFIX}/include/octave" # library paths LOCTAVE="-L${PREFIX}/lib/octave -loctave -lcruft -loctinterp" LKPATHSEA="-L${SRCOCTAVE}/kpathsea -lkpathsea" LREADLINE=" -L${SRCOCTAVE}/readline -lreadline" LSYSTEM="-ldl -lm -lncurses" LF2C="-L${PREFIX}/lib/gcc-lib/${PLAT}/${GCCVERS} -lg2c" # compiler options DEBUG="-g" OPTIM="-O3" FLAGS="-fno-rtti -fno-exceptions -fno-implicit-templates" # exported variables export MTT_CXX="g++" export MTT_CXXFLAGS="${DEBUG} ${OPTIM} ${FLAGS}" export MTT_CXXLIBS="${LOCTAVE} ${LKPATHSEA} ${LREADLINE} ${LF2C} ${LSYSTEM}" export MTT_CXXINCS="-I. ${IOCTAVE}" export MTT_LDFLAGS=" " fi |
Modified mttroot/mtt/bin/trans/m/args2arg.m from [88e206959b] to [b6ee5ada28].
︙ | ︙ | |||
24 25 26 27 28 29 30 31 | % %% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Field separator if nargin<3 FS = ';'; end; | > > > > > > > > > > > > > > > > > > > > > > | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | % %% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Field separator if nargin<3 FS = ';'; end; arg = ''; if strcmp(args, '')==0 L = length(args); args_count = 0; for i=1:n arg_count = 0; arg = ''; if args_count == L break; end; while args_count < L args_count = args_count+1; arg_count = arg_count+1; ch = str2ch(args,args_count); if ch==FS break; end; arg = [arg ch]; end; end; end; |
Modified mttroot/mtt/bin/trans/make_ode2odes from [9dc2d47b21] to [5dd9cf654b].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.50 2001/02/18 09:18:49 geraint ## Removed temporary Matrices from mtt_implicit.cc ## ## Revision 1.49 2001/02/14 06:06:34 geraint ## Removed octave_value_list wrappers from standalone.exe - speed improvements ## ## Revision 1.48 2001/02/11 07:08:59 geraint | > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ## Revision 1.51.2.2 2001/03/02 00:45:21 geraint ## Separated Euler and Implicit methods in .cc code and dependencies. ## ## Revision 1.51.2.1 2001/03/01 05:05:53 geraint ## Minor revisions. ## ## Revision 1.51 2001/02/19 06:33:19 geraint ## Removed operation form loop. ## ## Revision 1.50 2001/02/18 09:18:49 geraint ## Removed temporary Matrices from mtt_implicit.cc ## ## Revision 1.49 2001/02/14 06:06:34 geraint ## Removed octave_value_list wrappers from standalone.exe - speed improvements ## ## Revision 1.48 2001/02/11 07:08:59 geraint |
︙ | ︙ | |||
278 279 280 281 282 283 284 | vector_value=vector_value feval_header=toplev.h fi cat <<EOF > $filename #include <octave/oct.h> #include <octave/ov-struct.h> | | > > | | | < | | | | | | | > > | > > > > | > > > | | | > | | > > > | > > | | < > | > > > > > > > > > | > | | > > > > > > > > > > > > > | | | | | > > > > > > > > > > > | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 | vector_value=vector_value feval_header=toplev.h fi cat <<EOF > $filename #include <octave/oct.h> #include <octave/ov-struct.h> #include <octave/load-save.h> #include <octave/lo-mappers.h> #include <octave/variables.h> #ifndef STANDALONE #include <octave/${feval_header}> #endif #include "${sys}_def.h" #include "${sys}_sympar.h" #ifdef STANDALONE #include <csignal> extern ColumnVector F${sys}_input ( ColumnVector &x, ColumnVector &y, const double &t, ColumnVector &par); extern ColumnVector F${sys}_logic ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_numpar ( void); extern Octave_map F${sys}_simpar ( void); extern ColumnVector F${sys}_state ( ColumnVector &x); extern ColumnVector F${sys}_${ode} ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_${odeo} ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); EOF if [ "$method" != "implicit" ]; then cat <<EOF >> $filename extern ColumnVector Fmtt_euler ( ColumnVector &x, const ColumnVector &dx, const double &ddt, const int &nx, const ColumnVector &open_switches); EOF else cat <<EOF >> $filename extern ColumnVector Fmtt_implicit ( ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, const ColumnVector &open_switches); extern Matrix F${sys}_smxa ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); extern ColumnVector F${sys}_smxax ( ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par); EOF fi cat <<EOF >> $filename #endif // STANDALONE inline ColumnVector mtt_input (ColumnVector &x, ColumnVector &y, const double &t, ColumnVector &par) { #ifdef STANDALONE return F${sys}_input (x, y, t, par); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (y); args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_input", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_logic (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { #ifdef STANDALONE return F${sys}_logic (x, u, t, par); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (u); args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_logic", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_numpar (void) { #ifdef STANDALONE return F${sys}_numpar (); #else static octave_value_list args, f; f = feval ("${sys}_numpar", args, 1); return f(0).${vector_value} (); #endif } inline Octave_map mtt_simpar (void) { #ifdef STANDALONE return F${sys}_simpar (); #else static octave_value_list args; static Octave_map f; f["first"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["first"]; f["dt"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["dt"]; f["last"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["last"]; f["stepfactor"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["stepfactor"]; f["wmin"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wmin"]; f["wmax"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wmax"]; f["wsteps"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["wsteps"]; f["input"] = feval ("${sys}_simpar", args, 1)(0).map_value ()["input"]; return (f); #endif } inline ColumnVector mtt_state (ColumnVector &x) { #ifdef STANDALONE return F${sys}_state (x); #else static octave_value_list args, f; args (0) = octave_value (x); f = feval ("${sys}_state", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_${ode} (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { |
︙ | ︙ | |||
391 392 393 394 395 396 397 398 399 400 401 402 403 404 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_${odeo}", args, 1); return f(0).${vector_value} (); #endif } inline ColumnVector mtt_implicit (ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_${odeo}", args, 1); return f(0).${vector_value} (); #endif } EOF if [ "$method" != "implicit" ];then cat <<EOF >> $filename inline ColumnVector mtt_euler (ColumnVector &x, const ColumnVector &dx, const double &ddt, const int &nx, const ColumnVector &open_switches) { #ifdef STANDALONE return Fmtt_euler (x, dx, ddt, nx, open_switches); #else static octave_value_list args, f; args (0) = octave_value (x); args (1) = octave_value (dx); args (2) = octave_value (ddt); args (3) = octave_value ((double)nx); args (4) = octave_value (open_switches); f = feval ("mtt_euler", args, 1); return f(0).${vector_value} (); #endif } EOF else cat <<EOF >> $filename inline ColumnVector mtt_implicit (ColumnVector &x, ColumnVector &dx, Matrix &AA, ColumnVector &AAx, const double &ddt, const int &nx, |
︙ | ︙ | |||
416 417 418 419 420 421 422 | args (5) = octave_value ((double)nx); args (6) = octave_value (open_switches); f = feval ("mtt_implicit", args, 1); return f(0).${vector_value} (); #endif } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 547 548 549 550 551 552 553 554 555 556 557 558 559 560 | args (5) = octave_value ((double)nx); args (6) = octave_value (open_switches); f = feval ("mtt_implicit", args, 1); return f(0).${vector_value} (); #endif } inline Matrix mtt_smxa (ColumnVector &x, ColumnVector &u, const double &t, ColumnVector &par) { #ifdef STANDALONE |
︙ | ︙ | |||
526 527 528 529 530 531 532 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_smxax", args, 1); return f(0).${vector_value} (); #endif } | < < < < < < < < < < < < | < < < < < < < < < < < < < < < < | < | | > > > > > > > > > > | | > > > > > > > > > > > > > > > | | 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 | args (2) = octave_value (t); args (3) = octave_value (par); f = feval ("${sys}_smxax", args, 1); return f(0).${vector_value} (); #endif } EOF fi cat <<EOF >> $filename inline void mtt_write (const double &t, ColumnVector &x, ColumnVector &y, const int &nrows, const bool aborting = false) { static Matrix data; static int row; if (aborting) { Matrix written_data = data.extract (0, 0, row-1, data.cols ()-1); save_ascii_data_for_plotting (cout, written_data, "MTT_data"); } const int nx = x.length (), ny = y.length (); register int col = 0; if (0 == row) data = Matrix (nrows, 1+ny+1+nx, 0.0); data.elem (row, col) = t; for (register int i = 0; i < ny; i++) data.elem (row, ++col) = y.elem (i); data.elem (row, ++col) = t; for (register int i = 0; i < nx; i++) data.elem (row, ++col) = x.elem (i); row++; if (nrows == row) { #ifdef STANDALONE save_ascii_data_for_plotting (cout, data, "MTT_data"); // cout << data << endl; #else // ! STANDALONE set_global_value ("MTT_data", data); #endif } } #ifdef STANDALONE void handle_sigfpe (int i) #ifdef __GNUC__ __attribute__ ((noreturn)); void handle_sigfpe (int i) #endif // __GNUC__ { ColumnVector null (0.0); cerr << "Error: Caught floating point exception ..." << endl << " ... writing data to standard output ..." << endl; mtt_write (0.0, null, null, 0, true); cerr << " ... aborting." << endl; abort (); } int main (void) { signal (SIGFPE, handle_sigfpe); #else DEFUN_DLD (${sys}_ode2odes, args, , "Octave ode2odes representation of system with $method integration method Usage: ${sys}_ode2odes (x, par, simpar) ") { static octave_value_list retval; #endif // STANDALONE static ColumnVector x; static ColumnVector par; |
︙ | ︙ | |||
667 668 669 670 671 672 673 674 675 676 677 678 679 680 | static ColumnVector open_switches (MTTNX); register double t = 0.0; const double ddt = dt / stepfactor; const int ilast = static_cast<int> (round ((last - first) / ddt)) + 1; const int nrows = static_cast<int> (round ((last - first) / dt)) + 1; for (register int j = 0, i = 1; i <= ilast; i++) { y = mtt_${odeo} (x, u, t, par); u = mtt_input (x, y, t, par); if (0 == j) { | > > > > > | 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 | static ColumnVector open_switches (MTTNX); register double t = 0.0; const double ddt = dt / stepfactor; const int ilast = static_cast<int> (round ((last - first) / ddt)) + 1; const int nrows = static_cast<int> (round ((last - first) / dt)) + 1; for (register int i = 0; i < MTTNU; i++) { u (i) = 0.0; } for (register int j = 0, i = 1; i <= ilast; i++) { y = mtt_${odeo} (x, u, t, par); u = mtt_input (x, y, t, par); if (0 == j) { |
︙ | ︙ |
Added mttroot/mtt/bin/trans/struc_txt2m version [da921fb492].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #! /bin/sh ###################################### ##### Model Transformation Tools ##### ###################################### # Bourne shell script: struc_txt2m # Structure file - txt to m conversion # P.J.Gawthrop April 1997 # Copyright (c) P.J.Gawthrop, 1997. ############################################################### ## Version control history ############################################################### ## $Id$ ## $Log$ ############################################################### # Inform user echo "Creating $1_struc.m" rm -f mtt_error #Write some file headers echo "function [input_name,output_name,state_name] = $1_struc" > $1_struc.m echo "%% Structure file ($1_struc.m)" >> $1_struc.m echo "%% Generated by MTT at `date`" >> $1_struc.m # This is the main transformation using awk awk ' function header(what){ print what "_name = ["; } function footer(what){ print "];"; } BEGIN{ Which=""; apostrophe = "\047"; } { if ($1!=Which) { if (Which!="") footer(Which); header($1); } print apostrophe $4 "_" $3 apostrophe; Which = $1; } END{ footer(Which) } ' SYSTEM=$1 < $1_struc.txt >> $1_struc.m 2>mtt_error.txt # Now invoke the standard error handling. mtt_error mtt_error.txt |
Modified mttroot/mtt/cc/Makefile from [10f25bc91c] to [5b47b1a5b7].
︙ | ︙ | |||
16 17 18 19 20 21 22 | endif all: $(sys)_$(rep).cc parser: parse_m2cc.cc | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | endif all: $(sys)_$(rep).cc parser: parse_m2cc.cc g++ $< $(CFLAGS) -o ${MTTPATH}/trans/parser -I${MTTPATH}/../cc/include ifeq ($(rep),ode2odes) $(sys)_ode2odes.cc: ode2odes.cc cat ode2odes.cc | sed 's/\$$/$(sys)/' > $(sys)_ode2odes.cc else $(sys)_$(rep).cc: $(sys)_def.h $(sys)_sympar.h $(sys)_def.r $(sys)_$(rep).m mtt_m2cc.sh ${sys} ${rep} parser |
︙ | ︙ |
Modified mttroot/mtt/cc/include/useful-functions.hh from [bc3e893dc8] to [6bacf30342].
1 |
| > > > > | > > > > | | > > > > > | > > > > > | > | > > | | > | | | | | < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #ifndef HAVE_USEFUL_FUNCTIONS_HH #define HAVE_USEFUL_FUNCTIONS_HH #ifdef __CPLUSPLUS template <class class_t> #else #define inline // strip from pre-processed file #define class_t double #endif // __CPLUSPLUS // == Template functions == static inline class_t max (const class_t &x1, const class_t &x2) { return ((x1 >= x2) ? x1 : (x1 < x2) ? x2 : 0); } static inline class_t min (const class_t &x1, const class_t &x2) { return ((x1 <= x2) ? x1 : (x1 > x2) ? x2 : 0); } static inline class_t sign (const class_t &x) { return ((x > 0) ? +1 : (x < 0) ? -1 : 0); } // == Octave functions == static inline Matrix ones (const int r = 1, const int c = 1) { Matrix m (r, c, 1.0); return m; } static inline ColumnVector nozeros (const ColumnVector v0, const double tol = 0.0) { ColumnVector v (v0.length ()); register int i, j; for (i = j = 0; i < v.length (); i++) if (tol < abs (v0 (i))) { v (j) = v0 (i); j++; } if (0 == j) { return *new ColumnVector (); } else { return (v.extract (0, --j)); } } static inline ColumnVector zeros (const int r) { ColumnVector v (r, 0.0); return v; } static inline Matrix zeros (const int r, const int c) { Matrix m (r, c, 0.0); return m; } #endif // HAVE_USEFUL_FUNCTIONS_HH |
Modified mttroot/mtt/cc/parse_m2cc.cc from [3b05b7d2a2] to [fde05ab4ba].
1 2 3 4 5 6 7 8 9 | /* $Id$ * $Log$ * Revision 1.1 2000/10/31 04:29:50 geraint * Initial revision * */ | > > > | 1 2 3 4 5 6 7 8 9 10 11 12 | /* $Id$ * $Log$ * Revision 1.1 2000/12/28 09:46:05 peterg * put under RCS * * Revision 1.1 2000/10/31 04:29:50 geraint * Initial revision * */ |
︙ | ︙ | |||
197 198 199 200 201 202 203 | { /* * get remainder of line in case there are any commented keywords */ char c; cout << " // "; cin >> c; | | < | | < | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | { /* * get remainder of line in case there are any commented keywords */ char c; cout << " // "; cin >> c; do { cout << c; } while (c != '\n' && cin >> c); cout << endl << indent () << ';' << endl << indent (); } |
︙ | ︙ |
Modified mttroot/mtt/lib/cc/mtt_implicit.cc from [66ec9e6cff] to [a2b6319245].
︙ | ︙ | |||
12 13 14 15 16 17 18 | { #else // !STANDALONE DEFUN_DLD (mtt_implicit, args, , "implicit integration method") { #ifdef OCTAVE_DEV static ColumnVector x = args(0).column_vector_value (); | | | | | | | | | | | | | | > | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | { #else // !STANDALONE DEFUN_DLD (mtt_implicit, args, , "implicit integration method") { #ifdef OCTAVE_DEV static ColumnVector x = args(0).column_vector_value (); static ColumnVector dx = args(1).column_vector_value (); static Matrix AA = args(2).matrix_value (); static ColumnVector AAx = args(3).column_vector_value (); const double t = args(4).double_value (); const int Nx = (int) (args(5).double_value ()); const ColumnVector openx = args(6).column_vector_value (); #else // !OCTAVE_DEV static ColumnVector x = args(0).vector_value (); static ColumnVector dx = args(1).vector_value (); static Matrix AA = args(2).matrix_value (); static ColumnVector AAx = args(3).vector_value (); const double t = args(4).double_value (); const int Nx = (int) (args(5).double_value ()); const ColumnVector openx = args(6).vector_value (); #endif // OCTAVE_DEV #endif // STANDALONE register int row, col; for (row = 0; row < Nx; row++) { if (openx (row) > 0.5) { AAx (row) = 0.0; dx (row) = 0.0; for (col = 0; col < Nx; col++) { AA (row,col) = 0.0; AA (col,row) = 0.0; } } } x = static_cast<ColumnVector> (xleftdiv (AA, static_cast<Matrix>(AAx + dx * t))); for (row = 0; row < Nx; row++) { if (openx (row) > 0.5) { x (row) = 0.0; } } #ifdef STANDALONE return x; |
︙ | ︙ |
Deleted mttroot/mtt/lib/rep/standalone_rep.make version [6e1ac4004e].
|
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < |