Thank Jim!

After hours of debug, I finally tracked down there was a regression
in the following commit made by Marshall Lochbaum. The change of
behavior in complex residue breaks +. and *. 

I suggest authors should run the test suite before commiting patches
into repos.


commit 223dbeab4e80ff8576f4044f9bfa6ffee84cc032
Author: Marshall Lochbaum <mlochb...@gmail.com>
Date:   Fri Feb 3 15:05:37 2012 -0500

    changed behavior of complex dyad | to be consistent with real |

diff --git a/vz.c b/vz.c
index a5e38c8..74b6b97 100644
--- a/vz.c
+++ b/vz.c
@@ -87,14 +87,17 @@ ZF2(jtzrem){D a,b,d;Z q;
  }
  ZASSERT(!ZINF(u),EVNONCE);
  d=u.re*u.re+u.im*u.im;
- a=u.re*v.re+u.im*v.im; q.re=tfloor(0.5+a/d); 
- b=u.re*v.im-u.im*v.re; q.im=tfloor(0.5+b/d);
+ a=u.re*v.re+u.im*v.im; q.re=tfloor(a/d); 
+ b=u.re*v.im-u.im*v.re; q.im=tfloor(b/d);
  R zminus(v,ztymes(u,q));
 }
 
 ZF2(jtzgcd){D a,b;Z t,z;
  ZASSERT(!(ZINF(u)||ZINF(v)),EVNAN);
- while(ZNZ(u)){t=zrem(u,v); v.re=u.re; v.im=u.im; u.re=t.re; u.im=t.im;}
+ while(ZNZ(u)){
+  t=zrem(u,v); if(t.re>v.re/2)t.re-=v.re; if(t.im>v.im/2)t.im-=v.im;
+  v.re=u.re; v.im=u.im; u.re=t.re; u.im=t.im;
+ }
  z.re=a=v.re; z.im=b=v.im;
  switch(2*(0>a)+(0>b)){
   case 0: if(!a){z.re= b; z.im=0;}                        break;


Вск, 24 Июн 2012, Jim Russell писал(а):
> On iPhone:
>   5j11 +. 3j7 
> 1j1
>    3j7|5j11
> _1j_3
> 
> 
> 
> 
> On Jun 24, 2012, at 5:45 AM, bill lam <bbill....@gmail.com> wrote:
> 
> > I compiled jconsole for android and there were some test failed, in
> > particular the complex number gcd and residue ,
> > 
> > 5j11 +. 3j7 
> > 
> > linux   1j1 (correct)
> > android 5j11
> > 
> > 
> > 3j7|5j11
> > 
> > linux    _1j_3 (somewhat correc, should be 2j4 according doj)
> > android  _5j7
> > 
> > It would be helpful if someone can also test it on iOS or android.  Thanks.
> > 
> > -- 
> > regards,
> > ====================================================
> > GPG key 1024D/4434BAB3 2008-08-24
> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to