Artifact ff6ecb2e4077cf11caf19250244f66d9a3fb66b1927b2e5d06c015fa5874c9ff:
- Executable file
r38/packages/crack/crstruc.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 2598) [annotate] [blame] [check-ins using] [more...]
%********************************************************************* module structural_eqns$ %********************************************************************* % Routines for solving a system of structural equations % Author: Thomas Wolf % 1998 % % $Id: crstruc.red $ % %--> Necessary assignments in the application code in algebraic mode: % % lisp(struc_eqn:=t)$ % struc_done:={all functions for which the corresponding % structural equations have already satisfied their % integrability conditions}$ symbolic procedure ini_struc$ begin scalar done$ done:=algebraic struc_done$ % check initial data if (not pairp done) or (car done neq 'LIST) then rederr("struc_done not properly initialized!") else done:=cdr done$ % In order for structural equations to be used for formulating % integrability conditions and not for substitutions, we need a % `total differential order' ordering where the differential order % has highest priority higher than the lex. order of functions lex_fc:=nil$ % Although only first order derivatives occur in the structural % equations, we will specify to order derivatives by their % differential order and not lexicographically. lex_df:=nil$ quick_decoup:=t$ % To do the first reduction found, not looking % for other reductions or integrability conditions proc_list_:='( subst_level_03 alg_length_reduction decoupling subst_level_05 change_proc_list )$ lisp(adjust_fnc:=t)$ end$ symbolic procedure change_proc_list(arglist)$ begin scalar fcts; proc_list_:='( to_do subst_level_05 separation quick_integration full_integration integration subst_derivative subst_level_4 undetlinode gen_separation decoupling diff_length_reduction undo_subst_derivative )$ struc_eqn:=nil$ fcts:=union(cadr arglist,setdiff(ftem_,cadr arglist))$ if print_ then << terpri()$ write"The priority list of procedures is changed. The new one is:"$ priproli(proc_list_)$ terpri()$ write"The current situation:"$ print_statistic(car arglist,fcts); print_pdes(car arglist); print_ineq(ineq_); struc_dim:=length fcts; >>; return arglist end$ endmodule$ end$