Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / share / diff_form / frobenius.mac
blob7e4ec3aa2f627e886702a1bfdcd680595507827e
1 /*  written by Gosei Furuya <go.maxima@gmail.com> 
2 #  This program is free software; you can redistribute it and/or modify        
3 #  it under the terms of the GNU General Public License as published by        
4 #  the Free Software Foundation; either version 2 of the License, or           
5 #  (at your option) any later version.                
6 */
8 /* to find integral factor for a diff form, if possible */
9 trans_toexact(_w):= block([anorm_table,a,b,c],
10     if d(_w)@ _w # 0 then return("no answer")
11     else (
12            anorm_table:norm_table,
13            a:makelist(concat('u,i),i,1,dim),
14            norm_table:map("*",a,norm_table),
15            for i:1 thru dim do
16              ( extsubb2[i]:cons(basis[i]=norm_table[i]/basis[i],extsub[i])),
17            b:_w & _w,
18            c:( d(_w) & _w) /b,
19            norm_table:anorm_table,
20            for i:1 thru dim do
21              ( extsubb2[i]:cons(basis[i]=norm_table[i]/basis[i],extsub[i]))
22            ),
23         c
24         );