File: frobenius.mac

package info (click to toggle)
maxima 5.47.0-9
  • links: PTS
  • area: main
  • in suites: forky
  • size: 193,104 kB
  • sloc: lisp: 434,678; fortran: 14,665; tcl: 10,990; sh: 4,577; makefile: 2,763; ansic: 447; java: 328; python: 262; perl: 201; xml: 60; awk: 28; sed: 15; javascript: 2
file content (24 lines) | stat: -rw-r--r-- 927 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*  written by Gosei Furuya <go.maxima@gmail.com> 
#  This program is free software; you can redistribute it and/or modify        
#  it under the terms of the GNU General Public License as published by        
#  the Free Software Foundation; either version 2 of the License, or           
#  (at your option) any later version.                
*/

/* to find integral factor for a diff form, if possible */
trans_toexact(_w):= block([anorm_table,a,b,c],
    if d(_w)@ _w # 0 then return("no answer")
    else (
	   anorm_table:norm_table,
	   a:makelist(concat('u,i),i,1,dim),
	   norm_table:map("*",a,norm_table),
	   for i:1 thru dim do
             ( extsubb2[i]:cons(basis[i]=norm_table[i]/basis[i],extsub[i])),
           b:_w & _w,
           c:( d(_w) & _w) /b,
           norm_table:anorm_table,
	   for i:1 thru dim do
             ( extsubb2[i]:cons(basis[i]=norm_table[i]/basis[i],extsub[i]))
           ),
	c
	);