is there a way to use modulo over an expression? for example: 3*k1^2+4*k1*k2+1231231*k1 mod 2= k1^2+k1 all I really want is to work with polynomials over Z_2 so with subs I can do subs(a,$1^2=$1) but some times it's not enough cause I might run into something with power more than 2 would subs(a,$1^$2=$1) be enough??? I'm not using ginsh but c++ any help???
Dear Kostas, Citeren Kostas Patsakis <kpatsak@gmail.com>:
is there a way to use modulo over an expression? for example: 3*k1^2+4*k1*k2+1231231*k1 mod 2= k1^2+k1
all I really want is to work with polynomials over Z_2 so with subs I can do subs(a,$1^2=$1)
This does not sound like a good idea. From the above I gather that you do not want that you substitution gives k1^2 -> k1 but with the substitution given here you will get this result.
but some times it's not enough cause I might run into something with power more than 2 would subs(a,$1^$2=$1) be enough??? I'm not using ginsh but c++ any help???
Try a map function. Something like (not tested, so probably some things are wrong): struct Do_mod_2 : public map_function { ex operator()(const ex&x) { if(is_a<numeric>(x)) return mod(ex_to<numeric>(x),2); return x.map(*this); } }; Do_mod_2 do_mod_2; You can now use do_mod_2(3*k1^2+4*k1*k2+1231231*k1); A happy new year! Chris
participants (2)
-
C.Dams@science.ru.nl
-
Kostas Patsakis