Mercurial > hg > jgplsrc
comparison cip_t.h @ 0:e0bbaa717f41 draft default tip
lol J
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 25 Nov 2013 11:56:30 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e0bbaa717f41 |
---|---|
1 /* Copyright 1990-2011, Jsoftware Inc. All rights reserved. */ | |
2 /* License in license.txt. */ | |
3 /* */ | |
4 /* Template for ipbx (boolean inner products) */ | |
5 | |
6 /* requires F(x,y) *x++g=*y++ where g is one of | & ^ */ | |
7 | |
8 if(c==CPLUSDOT&&(c0==IPBX1||c1==IPBX1)||c==CSTARDOT&&(c0==IPBX0||c1==IPBX0)){ | |
9 e=c==CPLUSDOT?c1==IPBX1:c1==IPBX0; | |
10 for(i=0;i<m;++i){ | |
11 b=*av; if(ac)++av; memcpy(zv,b?v1:v0,n); if(b==e){zv+=n; continue;} | |
12 for(j=1;j<p;++j){ | |
13 b=*av; if(ac)++av; if(b==e){memset(zv,c==CPLUSDOT?C1:C0,n); break;} | |
14 uu=(I*)zv; vv=(I*)(b?v1+j*wc:v0+j*wc); | |
15 DO(q, F(uu,vv);); | |
16 if(r){u=(B*)uu; v=(B*)vv; DO(r, F(u,v););} | |
17 } | |
18 zv+=n; | |
19 }}else if(c==CPLUSDOT&&(c0==IPBX0||c1==IPBX0)||c==CSTARDOT&&(c0==IPBX1||c1==IPBX1)|| | |
20 c==CNE&&(c0==IPBX0||c1==IPBX0)){ | |
21 e=c==CSTARDOT?c1==IPBX1:c1==IPBX0; | |
22 for(i=0;i<m;++i){ | |
23 b=*av; if(ac)++av; memcpy(zv,b?v1:v0,n); | |
24 for(j=1;j<p;++j){ | |
25 b=*av; if(ac)++av; if(b==e)continue; | |
26 uu=(I*)zv; vv=(I*)(b?v1+j*wc:v0+j*wc); | |
27 DO(q, F(uu,vv);); | |
28 if(r){u=(B*)uu; v=(B*)vv; DO(r, F(u,v););} | |
29 } | |
30 zv+=n; | |
31 }}else | |
32 for(i=0;i<m;++i){ | |
33 memcpy(zv,*av?v1:v0,n); if(ac)++av; | |
34 for(j=1;j<p;++j){ | |
35 uu=(I*)zv; vv=(I*)(*av?v1+j*wc:v0+j*wc); if(ac)++av; | |
36 DO(q, F(uu,vv);); | |
37 if(r){u=(B*)uu; v=(B*)vv; DO(r, F(u,v););} | |
38 } | |
39 zv+=n; | |
40 } | |
41 #undef F |