# /home/bill/Qnial/Working file.ndf # www.BillHowell.ca 12Apr2016 f_work := 'Working file.ndf' ; d_work := QNial_root ; write 'loading Working file.ndf' ; lqw IS loaddefs link d_work f_work ; #********************************* # Debugging # flag_debug_work := o ; % include additional output to help debugging ; flag_break := o ; % stop execution to test local environment ; flag_check := o ; % force checking of all operators with examples, showing results ; flag_print := o ; % print results to screen during loading ; # IF flag_break = l THEN break ; ENDIF ; fon IS { NONLOCAL flag_break ; flag_break := l ; } foff IS { NONLOCAL flag_break ; flag_break := o ; } #********************************** # Setup IF not in "SYMBOLS&IDENTIFIERS (EACH first symbols 0) THEN loaddefs (link Qnial_mine 'symbolic reduction.ndf') 0 ; ENDIF; #*********************************************** # Operators, data etc IF flag_debug = l THEN write 'loading test_varName&Index' ; ENDIF ; #************************************* # Test operator - to simplify control of tests IF flag_debug = l THEN write 'loading Test list' ; ENDIF ; # test IS OP selNum { CASE selNum FROM 1: test_varName&Index ; END 2: test_of ; END ELSE write 'test error: unknown selection' ; ENDCASE ; } # IF flag_break = l THEN break ; ENDIF ; test1 IS { EACH write ' ' ' ' 'test1 series for un |[,sum k 1] : ' ' ' ; EACH [write, write execute_equation_test] '(D*(un|[,k])) + (A*f_activn_uk)' '(B*f_activn_uk_lagged)' '(Lx* (wn|[,k]))' '(D *(un|[,k])) + (A *f_activn_uk) + (B *f_activn_uk_lagged) + (Lx * (wn|[,k]) )' ; EACH write ' ' ' ' ; } test2 IS { write 'There is no test2' } test3 IS { write 'There is no test3' } test0 IS { [write, write execute_equation_test] '((D0 + (E_1*del*N_1))*(un|[,k])) + ((A0 + (E_2*del*N_2))*f_activn_uk) + ((B0 - (E_3*del*N_3))*f_activn_uk_lagged) + (Lx * (wn|[,k]) )' ; } test4 IS { EACH write ' ' ' ' 'test4 series for u4 |[,sum k 1 ; ' ' ' ; EACH [write, write execute_equation_test] '((D0 + (E_1*del*N_1))*(un|[,k]))' '((A0 + (E_2*del*N_2))*f_activn_uk)' '((B0 - (E_3*del*N_3))*f_activn_uk_lagged)' '(Lx*(wn|[,k]))' '((D0 + (E_1*del*N_1))*(un|[,k])) + ((A0 + (E_2*del*N_2))*f_activn_uk) + ((B0 - (E_3*del*N_3))*f_activn_uk_lagged) + (Lx * (wn|[,k]) )' ; EACH write ' ' ' ' ; } test5 IS { EACH write ' ' ' ' 'test5 series for uh |[,sum k 1] : ' ' ' ; EACH [write, write execute_equation_test] '(D0*(uh|[,k]))' '(A0*f_activn_uk)' '(B0*f_activn_uk_lagged)' '(KG*((yn|[,k]) - (yh|[,k])))' '(D0 *(uh|[,k])) + (A0 *f_activn_uk) + (B0 *f_activn_uk_lagged) + (KG *((yn|[,k]) - (yh|[,k])))' ; EACH write ' ' ' ' ; } test6 IS { EACH write ' ' ' ' 'test6 series for e6 |[,sum k 1] : ' ' ' ; EACH [write, write execute_equation_test] '((D0 - (K*C1))*(en|[,k]))' '(A0*(ge|[,k]))' '(B0*gek_lagged)' '((Lx - (KG*C2))*(wn|[,k]))' '(E_1*del*N_1 *f_activn_uk)' '(E_2 *del*N_2 *f_activn_uk)' '(E_3 *del*N_3 *f_activn_uk_lagged)' '((D0 - (KG*C1)) *(en|[,k])) + (A0 *(ge|[,k]) ) + (B0 *gek_lagged ) + ((Lx - (KG*C2))* (wn|[,k]) ) + (E_1 *del*N_1 *f_activn_uk) + (E_2 *del*N_2 *f_activn_uk) + (E_3 *del*N_3 *f_activn_uk_lagged)' ; EACH write ' ' ' ' ; } test7 IS { EACH write ' ' ' ' 'test7 series for x7 |[,sum k 1] : ' ' ' ; EACH [write, write execute_equation_test] '((DI0 - C1I)*(xn|[,k]))' '(AI0*(hx|[,k]))' '(BI0*hxk_lagged)' '((LxI - C2I)*(wn|[,k]))' '(E_1I*del*N_1I*(xn|[,k]))' '(E_2I*del*N_2I*(hx|[,k]))' '(E_3I*del*N_3I*hxk_lagged)' '((DI0 - C1I) *(xn|[,k])) + (AI0 *(hx|[,k]) ) + (BI0 *hxk_lagged ) + ((LxI - C2I )* (wn|[,k]) ) + (E_1I*del*N_1I*(xn|[,k]) ) + (E_2I*del*N_2I*(hx|[,k]) ) + (E_3I*del*N_3I*hxk_lagged )' ; EACH write ' ' ' ' ; } test IS OP selNum { CASE selNum FROM 0: test0 ; END 1: test1 ; END 2: test2 ; END 3: test3 ; END 4: test4 ; END 5: test5 ; END 6: test6 ; END 7: test7 ; END ELSE write 'test error: unknown selection' ; ENDCASE ; } # IF flag_debug = l THEN write 'loading CHECK - data and results' ; ENDIF ; #*** '# Example of matrices R^n*n (L,M,R,X,Y,Z) := ' '# R := ' R '; ' ' ' '# Term_1 RHS raw expression := ' (2 3 reshape ' term_a ' ' term_b ' ' term_c ' term_a term_b term_c ) ' ' ; EACH write '# int_23 := ' int_23 ' ' ; EACH write '# term_1 RHS expanded := ' term_1 ' ' ; EACH write '# term_2 := ' term_2 ' ' ; EACH write '# term_3 := ' term_3 ' ' ; write '# Full expression (23) : ' ; write int_23 ; write ' + ∫[ds, s1 to s2 : ' ; wpa (first (solitary term_1)) 3 ; write '*ds ' ; EACH write term_2 term_3 ; # Not printed out at late stage after initial error-checking : '# L := ' L1 '; ' ' ' '# M := ' M '; ' ' ' '# R := ' R '; ' ' ' '# X := ' X '; ' ' ' '# Y := ' Y '; ' ' ' '# Z := ' Z '; ' ' ' # #***************************** #-----+ CHECK - data and results # Note : scalars and vectors are shown with two dimensions so that symbolic # computations work, plus this also clearly shows the orientation. # variable types and dimensions # enddoc