version 1.2, 2000/03/23 11:54:08 |
version 1.3, 2000/06/08 08:35:01 |
|
|
% $OpenXM$ |
% $OpenXM: OpenXM/src/kan96xx/Doc/complex.sm1,v 1.2 2000/03/23 11:54:08 takayama Exp $ |
%% lib/complex.sm1 [ functions for complex ], 1999, 9/9 |
%% lib/complex.sm1 [ functions for complex ], 1999, 9/9 |
%% cf. yama:1999/Int/uli.sm1 |
%% cf. yama:1999/Int/uli.sm1 |
%%%%%%%%%%%%%%%%%%% commands %%%%%%%%%%%%%%%%%%%%%%%%% |
%%%%%%%%%%%%%%%%%%% commands %%%%%%%%%%%%%%%%%%%%%%%%% |
%%% res-div, res-solv, res-kernel-image, res-dual |
%%% res-div, res-solv, res-kernel-image, res-dual |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
[(complex.sm1 : 1999, 9/28, res-div, res-solv, res-kernel-image, res-dual ) |
[(complex.sm1 : 1999, 9/28, res-div, res-solv, res-kernel-image, res-dual ) |
|
( 2000, 6/8, isExact_h, isExact ) |
(In this package, complex is expressed in terms of matrices.) |
(In this package, complex is expressed in terms of matrices.) |
] {message} map |
] {message} map |
/uli.verbose 0 def |
/uli.verbose 0 def |
|
|
$ [[(y1) 1 (y2) 1 (y3) 1 (y4) 1]]] pgb $ |
$ [[(y1) 1 (y2) 1 (y3) 1 (y4) 1]]] pgb $ |
$ 0 get [(y1) (y2) (y3) (y4)] eliminatev ::$ |
$ 0 get [(y1) (y2) (y3) (y4)] eliminatev ::$ |
$Example 2: [[(x2^2) (x2 x4) (x2) (x4^2)] [(x2) (x4)] (x2,x4)] saturation$ |
$Example 2: [[(x2^2) (x2 x4) (x2) (x4^2)] [(x2) (x4)] (x2,x4)] saturation$ |
|
]] putUsages |
|
|
|
|
|
%% 2000, 6/8, at Fernando Colon, 319, Sevilla |
|
|
|
|
|
/isExact.verbose 1 def %% should be changed to gb.verbose |
|
/isExact_h { |
|
/arg1 set |
|
[/in-isExact_h /vv /comp /i /j /n /kernel.i /ans] pushVariables |
|
[ |
|
/comp arg1 0 get def |
|
/vv arg1 1 get def |
|
/n comp length def |
|
/ans 1 def |
|
0 1 n 2 sub { |
|
/i set |
|
/j i 1 add def |
|
isExact.verbose { (Checking ker ) messagen i messagen ( = im of ) messagen |
|
j message } { } ifelse |
|
[comp i get vv] syz_h 0 get /kernel.i set |
|
[ kernel.i comp j get vv] isSameIdeal_h /ans set |
|
ans 0 eq { |
|
(image != kernel at ) messagen i messagen ( and ) messagen j message |
|
/LLL.isExact_h goto |
|
} { } ifelse |
|
isExact.verbose { (OK) message } { } ifelse |
|
} for |
|
/LLL.isExact_h |
|
/arg1 ans def |
|
] pop |
|
arg1 |
|
} def |
|
|
|
[(isExact_h) |
|
[( complex isExact_h bool ) |
|
(It returns 1 when the given complex is exact. All computations are done) |
|
(in D<h>, the ring of homogenized differential operators.) |
|
(cf. syz_h, isSameIdeal_h ) |
|
$Example1: [ [[1 2 3]] [0]] gkz /ff set $ |
|
$ [ff 0 get (x1,x2,x3) [[(x2) -1 (Dx2) 1]]] resol1 /gg set $ |
|
$ [gg (x1,x2,x3)] isExact_h :: $ |
|
$ gg 1 get 0 get /pp set $ |
|
$ gg [1 1] pp put $ |
|
$ [gg (x1,x2,x3)] isExact_h :: $ |
|
]] putUsages |
|
|
|
/isExact { |
|
/arg1 set |
|
[/in-isExact /vv /comp /i /j /n /kernel.i /ans] pushVariables |
|
[ |
|
/comp arg1 0 get def |
|
/vv arg1 1 get def |
|
/n comp length def |
|
/ans 1 def |
|
0 1 n 2 sub { |
|
/i set |
|
/j i 1 add def |
|
isExact.verbose { (Checking ker ) messagen i messagen ( = im of ) messagen |
|
j message } { } ifelse |
|
[comp i get vv] syz 0 get /kernel.i set |
|
[ kernel.i comp j get vv] isSameIdeal /ans set |
|
ans 0 eq { |
|
(image != kernel at ) messagen i messagen ( and ) messagen j message |
|
/LLL.isExact goto |
|
} { } ifelse |
|
isExact.verbose { (OK) message } { } ifelse |
|
} for |
|
/LLL.isExact |
|
/arg1 ans def |
|
] pop |
|
arg1 |
|
} def |
|
|
|
[(isExact) |
|
[( complex isExact bool ) |
|
(It returns 1 when the given complex is exact. All computations are done) |
|
(in D, the ring of differentialoperators. Inputs are dehomogenized.) |
|
(cf. syz, isSameIdeal ) |
|
$Example1: [ [[1 2 3]] [0]] gkz /ff set $ |
|
$ [ff 0 get (x1,x2,x3) [[(x2) -1 (Dx2) 1]]] resol1 /gg set $ |
|
$ [gg (x1,x2,x3)] isExact :: $ |
|
$ gg 1 get 0 get /pp set $ |
|
$ gg [1 1] pp put $ |
|
$ [gg (x1,x2,x3)] isExact :: $ |
|
$Example2: [ [[1 2 3]] [0]] gkz /ff set $ |
|
$ [ff 0 get (x1,x2,x3) [[(x2) -1 (Dx2) 1]]] resol1 /gg set $ |
|
$ gg dehomogenize /gg set $ |
|
$ [gg (x1,x2,x3)] isExact :: $ |
|
( The syzygies of f_i^h in D<h> do not always give generators of ) |
|
( the corresponding syzygy of f_i in D.) |
]] putUsages |
]] putUsages |
|
|