diff -Nru zeo-1.0.1+1~ubuntu14.04.1/config zeo-1.0.1+2~ubuntu14.04.1/config --- zeo-1.0.1+1~ubuntu14.04.1/config 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/config 2016-02-26 03:36:11.000000000 +0000 @@ -1,7 +1,7 @@ # dependency # CURE-1.0.0-beta5 -# ZM-1.0.0 +# ZM-1.0.0a PREFIX=$(DESTDIR)/usr PROJNAME=zeo -VERSION=1.0.1 +VERSION=1.0.1a diff -Nru zeo-1.0.1+1~ubuntu14.04.1/config.org zeo-1.0.1+2~ubuntu14.04.1/config.org --- zeo-1.0.1+1~ubuntu14.04.1/config.org 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/config.org 2016-02-26 03:36:07.000000000 +0000 @@ -1,7 +1,7 @@ # dependency # CURE-1.0.0-beta5 -# ZM-1.0.0 +# ZM-1.0.0a PREFIX=$(HOME)/usr PROJNAME=zeo -VERSION=1.0.1 +VERSION=1.0.1a diff -Nru zeo-1.0.1+1~ubuntu14.04.1/debian/bzr-builder.manifest zeo-1.0.1+2~ubuntu14.04.1/debian/bzr-builder.manifest --- zeo-1.0.1+1~ubuntu14.04.1/debian/bzr-builder.manifest 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/debian/bzr-builder.manifest 2016-02-26 03:36:07.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}+1 -lp:~hrg/hrg-packaging/zeo revid:yosuke.matsusaka@gmail.com-20160112045551-9xbrsuokuwqdfnc9 +# bzr-builder format 0.3 deb-version {debupstream}+2 +lp:~hrg/hrg-packaging/zeo revid:f-kanehiro@aist.go.jp-20160226033140-gwgdkhhc5aplnsyd diff -Nru zeo-1.0.1+1~ubuntu14.04.1/debian/changelog zeo-1.0.1+2~ubuntu14.04.1/debian/changelog --- zeo-1.0.1+1~ubuntu14.04.1/debian/changelog 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/debian/changelog 2016-02-26 03:36:07.000000000 +0000 @@ -1,8 +1,14 @@ -zeo (1.0.1+1~ubuntu14.04.1) trusty; urgency=low +zeo (1.0.1+2~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- Launchpad Package Builder Tue, 12 Jan 2016 05:24:36 +0000 + -- Fumio KANEHIRO Fri, 26 Feb 2016 03:36:07 +0000 + +zeo (1.0.1-1ubuntu1) UNRELEASED; urgency=medium + + * Version 1.0.1a + + -- Fumio KANEHIRO Fri, 26 Feb 2016 12:31:17 +0900 zeo (1.0.1-1) unstable; urgency=low diff -Nru zeo-1.0.1+1~ubuntu14.04.1/include/zeo/zeo_mat6d.h zeo-1.0.1+2~ubuntu14.04.1/include/zeo/zeo_mat6d.h --- zeo-1.0.1+1~ubuntu14.04.1/include/zeo/zeo_mat6d.h 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/include/zeo/zeo_mat6d.h 2016-02-26 03:36:07.000000000 +0000 @@ -33,6 +33,18 @@ /*! \brief transpose of a 6x6 matrix. */ __EXPORT zMat6D *zMat6DT(zMat6D *m, zMat6D *mout); +/*! \brief abstract row/column vectors from a 6x6 matrix. + * + * zMat6DRow() abstracts the \a i'th row from a 6x6 matrix \a m and puts + * it into \a v. + * + * zMat6DCol() abstracts the \a i'th column from a 6x6 matrix \a m and + * puts it into \a v. + * \return + * zMat6DRow() and zMat6DCol() return a pointer \a v. + */ +__EXPORT zVec6D *zMat6DRow(zMat6D *m, int i, zVec6D *v); +__EXPORT zVec6D *zMat6DCol(zMat6D *m, int i, zVec6D *v); /*! \brief multiply a 6x1 vector by a 6x6 matrix from the left side. * \a vout = \a m \a vin diff -Nru zeo-1.0.1+1~ubuntu14.04.1/.pc/.quilt_patches zeo-1.0.1+2~ubuntu14.04.1/.pc/.quilt_patches --- zeo-1.0.1+1~ubuntu14.04.1/.pc/.quilt_patches 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/.pc/.quilt_patches 2016-02-26 03:36:11.000000000 +0000 @@ -1 +1 @@ -/home/buildd/build-RECIPEBRANCHBUILD-1054238/chroot-autobuild/home/buildd/work/tree/zeo-1.0.1+1~ubuntu14.04.1/debian/patches +/home/buildd/build-RECIPEBRANCHBUILD-1084599/chroot-autobuild/home/buildd/work/tree/zeo-1.0.1+2~ubuntu14.04.1/debian/patches diff -Nru zeo-1.0.1+1~ubuntu14.04.1/.pc/.quilt_series zeo-1.0.1+2~ubuntu14.04.1/.pc/.quilt_series --- zeo-1.0.1+1~ubuntu14.04.1/.pc/.quilt_series 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/.pc/.quilt_series 2016-02-26 03:36:11.000000000 +0000 @@ -1 +1 @@ -/home/buildd/build-RECIPEBRANCHBUILD-1054238/chroot-autobuild/home/buildd/work/tree/zeo-1.0.1+1~ubuntu14.04.1/debian/patches/series +/home/buildd/build-RECIPEBRANCHBUILD-1084599/chroot-autobuild/home/buildd/work/tree/zeo-1.0.1+2~ubuntu14.04.1/debian/patches/series diff -Nru zeo-1.0.1+1~ubuntu14.04.1/src/zeo_mat3d.c zeo-1.0.1+2~ubuntu14.04.1/src/zeo_mat3d.c --- zeo-1.0.1+1~ubuntu14.04.1/src/zeo_mat3d.c 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/src/zeo_mat3d.c 2016-02-26 03:36:07.000000000 +0000 @@ -37,17 +37,11 @@ */ zMat3D *zMat3DT(zMat3D *m, zMat3D *tm) { - double tmp; - - if( tm == m ){ - tmp = tm->e[1][0]; tm->e[1][0] = m->e[0][1]; m->e[0][1] = tmp; - tmp = tm->e[2][0]; tm->e[2][0] = m->e[0][2]; m->e[0][2] = tmp; - tmp = tm->e[2][1]; tm->e[2][1] = m->e[1][2]; m->e[1][2] = tmp; - } else{ - tm->e[0][0] = m->e[0][0]; tm->e[1][0] = m->e[0][1]; tm->e[2][0] = m->e[0][2]; - tm->e[0][1] = m->e[1][0]; tm->e[1][1] = m->e[1][1]; tm->e[2][1] = m->e[1][2]; - tm->e[0][2] = m->e[2][0]; tm->e[1][2] = m->e[2][1]; tm->e[2][2] = m->e[2][2]; - } + zMat3D tmp; + tmp.e[0][0] = m->e[0][0]; tmp.e[1][0] = m->e[0][1]; tmp.e[2][0] = m->e[0][2]; + tmp.e[0][1] = m->e[1][0]; tmp.e[1][1] = m->e[1][1]; tmp.e[2][1] = m->e[1][2]; + tmp.e[0][2] = m->e[2][0]; tmp.e[1][2] = m->e[2][1]; tmp.e[2][2] = m->e[2][2]; + zMat3DCopy( &tmp, tm ); return tm; } @@ -681,18 +675,23 @@ { register int i; double l, a; + zVec3D evec[3]; + double eval[3]; aa->e[0] = m->e[1][2]-m->e[2][1]; aa->e[1] = m->e[2][0]-m->e[0][2]; aa->e[2] = m->e[0][1]-m->e[1][0]; l = zVec3DNorm( aa ); a = atan2( l, m->e[0][0]+m->e[1][1]+m->e[2][2]-1 ); - if( zIsTiny( l ) ) - for( i=0; i<3; i++ ){ - zMat3DCol( m, i, aa ); - aa->e[i] += 1.0; - if( !zVec3DIsTiny( aa ) ) break; - } + if( zIsTiny( l ) ){ + zMat3DSymEig(m, eval, evec); + for( i=0; i<3; i++ ){ + if( zIsTiny( eval[i] - 1.0 ) ){ + zVec3DCopy(&evec[i], aa); + return zVec3DMulDRC( aa, a ); + } + } + } return zVec3DMulDRC( aa, a / zVec3DNorm(aa) ); } diff -Nru zeo-1.0.1+1~ubuntu14.04.1/src/zeo_mat6d.c zeo-1.0.1+2~ubuntu14.04.1/src/zeo_mat6d.c --- zeo-1.0.1+1~ubuntu14.04.1/src/zeo_mat6d.c 2016-01-12 05:24:36.000000000 +0000 +++ zeo-1.0.1+2~ubuntu14.04.1/src/zeo_mat6d.c 2016-02-26 03:36:07.000000000 +0000 @@ -52,19 +52,84 @@ return mout; } +/* zMat6DRow + * - abstract row vector from 6D matrix. + */ +zVec6D *zMat6DRow(zMat6D *m, int i, zVec6D *v) +{ + int a, b; + a = (i/3)*2; + b = i%3; + v->e[0] = m->m[a ].e[0][b]; + v->e[1] = m->m[a ].e[1][b]; + v->e[2] = m->m[a ].e[2][b]; + v->e[3] = m->m[a+1].e[0][b]; + v->e[4] = m->m[a+1].e[1][b]; + v->e[5] = m->m[a+1].e[2][b]; + return v; +} + +/* zMat6DCol + * - abstract column vector from 6D matrix. + */ +zVec6D *zMat6DCol(zMat6D *m, int i, zVec6D *v) +{ + int a, b; + a = i/3; + b = i%3; + v->e[0] = m->m[ a].e[b][0]; + v->e[1] = m->m[ a].e[b][1]; + v->e[2] = m->m[ a].e[b][2]; + v->e[3] = m->m[2+a].e[b][0]; + v->e[4] = m->m[2+a].e[b][1]; + v->e[5] = m->m[2+a].e[b][2]; + return v; +} + +#define __zVec6DCreate(v,x,y,z,xa,ya,za) do{\ + double __x, __xa, __y, __ya, __z, __za; \ + __x = x;\ + __y = y;\ + __z = z;\ + __xa = xa;\ + __ya = ya;\ + __za = za;\ + (v)->e[zX] = __x;\ + (v)->e[zY] = __y;\ + (v)->e[zZ] = __z;\ + (v)->e[zXA] = __xa;\ + (v)->e[zYA] = __ya;\ + (v)->e[zZA] = __za;\ +} while(0) + +#define __zMulMat6DVec6D(m,v,mv) __zVec6DCreate( mv,\ + (m)->m[0].e[0][0]*(v)->e[0] + (m)->m[0].e[1][0]*(v)->e[1] + (m)->m[0].e[2][0]*(v)->e[2] + (m)->m[1].e[0][0]*(v)->e[3] + (m)->m[1].e[1][0]*(v)->e[4] + (m)->m[1].e[2][0]*(v)->e[5],\ + (m)->m[0].e[0][1]*(v)->e[0] + (m)->m[0].e[1][1]*(v)->e[1] + (m)->m[0].e[2][1]*(v)->e[2] + (m)->m[1].e[0][1]*(v)->e[3] + (m)->m[1].e[1][1]*(v)->e[4] + (m)->m[1].e[2][1]*(v)->e[5],\ + (m)->m[0].e[0][2]*(v)->e[0] + (m)->m[0].e[1][2]*(v)->e[1] + (m)->m[0].e[2][2]*(v)->e[2] + (m)->m[1].e[0][2]*(v)->e[3] + (m)->m[1].e[1][2]*(v)->e[4] + (m)->m[1].e[2][2]*(v)->e[5],\ + (m)->m[2].e[0][0]*(v)->e[0] + (m)->m[2].e[1][0]*(v)->e[1] + (m)->m[2].e[2][0]*(v)->e[2] + (m)->m[3].e[0][0]*(v)->e[3] + (m)->m[3].e[1][0]*(v)->e[4] + (m)->m[3].e[2][0]*(v)->e[5],\ + (m)->m[2].e[0][1]*(v)->e[0] + (m)->m[2].e[1][1]*(v)->e[1] + (m)->m[2].e[2][1]*(v)->e[2] + (m)->m[3].e[0][1]*(v)->e[3] + (m)->m[3].e[1][1]*(v)->e[4] + (m)->m[3].e[2][1]*(v)->e[5],\ + (m)->m[2].e[0][2]*(v)->e[0] + (m)->m[2].e[1][2]*(v)->e[1] + (m)->m[2].e[2][2]*(v)->e[2] + (m)->m[3].e[0][2]*(v)->e[3] + (m)->m[3].e[1][2]*(v)->e[4] + (m)->m[3].e[2][2]*(v)->e[5]) + +#define __zMulMat6DTVec6D(m,v,mv) __zVec6DCreate( mv,\ + (m)->m[0].e[0][0]*(v)->e[0] + (m)->m[0].e[0][1]*(v)->e[1] + (m)->m[0].e[0][2]*(v)->e[2] + (m)->m[2].e[0][0]*(v)->e[0] + (m)->m[2].e[0][1]*(v)->e[1] + (m)->m[2].e[0][2]*(v)->e[2],\ + (m)->m[0].e[1][0]*(v)->e[0] + (m)->m[0].e[1][1]*(v)->e[1] + (m)->m[0].e[1][2]*(v)->e[2] + (m)->m[2].e[1][0]*(v)->e[0] + (m)->m[2].e[1][1]*(v)->e[1] + (m)->m[2].e[1][2]*(v)->e[2],\ + (m)->m[0].e[2][0]*(v)->e[0] + (m)->m[0].e[2][1]*(v)->e[1] + (m)->m[0].e[2][2]*(v)->e[2] + (m)->m[2].e[2][0]*(v)->e[0] + (m)->m[2].e[2][1]*(v)->e[1] + (m)->m[2].e[2][2]*(v)->e[2],\ + (m)->m[1].e[0][0]*(v)->e[0] + (m)->m[1].e[0][1]*(v)->e[1] + (m)->m[1].e[0][2]*(v)->e[2] + (m)->m[3].e[0][0]*(v)->e[0] + (m)->m[3].e[0][1]*(v)->e[1] + (m)->m[3].e[0][2]*(v)->e[2],\ + (m)->m[1].e[1][0]*(v)->e[0] + (m)->m[1].e[1][1]*(v)->e[1] + (m)->m[1].e[1][2]*(v)->e[2] + (m)->m[3].e[1][0]*(v)->e[0] + (m)->m[3].e[1][1]*(v)->e[1] + (m)->m[3].e[1][2]*(v)->e[2],\ + (m)->m[1].e[2][0]*(v)->e[0] + (m)->m[1].e[2][1]*(v)->e[1] + (m)->m[1].e[2][2]*(v)->e[2] + (m)->m[3].e[2][0]*(v)->e[0] + (m)->m[3].e[2][1]*(v)->e[1] + (m)->m[3].e[2][2]*(v)->e[2]) /* zMulMat6DVec6D * - multiply a 6x1 vector by a 6x6 matrix from the left side. */ zVec6D *zMulMat6DVec6D(zMat6D *m, zVec6D *vin, zVec6D *vout) { - zVec3D v1, v2; - - zMulMatVec3D( &m->m[0], zVec6DLin(vin), &v1 ); - zMulMatVec3D( &m->m[1], zVec6DAng(vin), &v2 ); - zVec3DAdd( &v1, &v2, zVec6DLin(vout) ); - zMulMatVec3D( &m->m[2], zVec6DLin(vin), &v1 ); - zMulMatVec3D( &m->m[3], zVec6DAng(vin), &v2 ); - zVec3DAdd( &v1, &v2, zVec6DAng(vout) ); + __zMulMat6DVec6D(m, vin, vout); + /* zVec3D v1, v2; */ + /* zMulMatVec3D( &m->m[0], zVec6DLin(vin), &v1 ); */ + /* zMulMatVec3D( &m->m[1], zVec6DAng(vin), &v2 ); */ + /* zVec3DAdd( &v1, &v2, zVec6DLin(vout) ); */ + /* zMulMatVec3D( &m->m[2], zVec6DLin(vin), &v1 ); */ + /* zMulMatVec3D( &m->m[3], zVec6DAng(vin), &v2 ); */ + /* zVec3DAdd( &v1, &v2, zVec6DAng(vout) ); */ return vout; } @@ -73,14 +138,14 @@ */ zVec6D *zMulMat6DTVec6D(zMat6D *m, zVec6D *vin, zVec6D *vout) { - zVec3D v1, v2; - - zMulMatTVec3D( &m->m[0], zVec6DLin(vin), &v1 ); - zMulMatTVec3D( &m->m[2], zVec6DAng(vin), &v2 ); - zVec3DAdd( &v1, &v2, zVec6DLin(vout) ); - zMulMatTVec3D( &m->m[1], zVec6DLin(vin), &v1 ); - zMulMatTVec3D( &m->m[3], zVec6DAng(vin), &v2 ); - zVec3DAdd( &v1, &v2, zVec6DAng(vout) ); + __zMulMat6DTVec6D(m, vin, vout); + /* zVec3D v1, v2; */ + /* zMulMatTVec3D( &m->m[0], zVec6DLin(vin), &v1 ); */ + /* zMulMatTVec3D( &m->m[2], zVec6DAng(vin), &v2 ); */ + /* zVec3DAdd( &v1, &v2, zVec6DLin(vout) ); */ + /* zMulMatTVec3D( &m->m[1], zVec6DLin(vin), &v1 ); */ + /* zMulMatTVec3D( &m->m[3], zVec6DAng(vin), &v2 ); */ + /* zVec3DAdd( &v1, &v2, zVec6DAng(vout) ); */ return vout; } @@ -89,10 +154,50 @@ */ zMat6D *zMat6DAdd(zMat6D *m1, zMat6D *m2, zMat6D *mout) { - zMat3DAdd( &m1->m[0], &m2->m[0], &mout->m[0] ); - zMat3DAdd( &m1->m[1], &m2->m[1], &mout->m[1] ); - zMat3DAdd( &m1->m[2], &m2->m[2], &mout->m[2] ); - zMat3DAdd( &m1->m[3], &m2->m[3], &mout->m[3] ); + mout->m[0].e[0][0] = m1->m[0].e[0][0] + m2->m[0].e[0][0]; + mout->m[0].e[1][0] = m1->m[0].e[1][0] + m2->m[0].e[1][0]; + mout->m[0].e[2][0] = m1->m[0].e[2][0] + m2->m[0].e[2][0]; + mout->m[0].e[0][1] = m1->m[0].e[0][1] + m2->m[0].e[0][1]; + mout->m[0].e[1][1] = m1->m[0].e[1][1] + m2->m[0].e[1][1]; + mout->m[0].e[2][1] = m1->m[0].e[2][1] + m2->m[0].e[2][1]; + mout->m[0].e[0][2] = m1->m[0].e[0][2] + m2->m[0].e[0][2]; + mout->m[0].e[1][2] = m1->m[0].e[1][2] + m2->m[0].e[1][2]; + mout->m[0].e[2][2] = m1->m[0].e[2][2] + m2->m[0].e[2][2]; + + mout->m[1].e[0][0] = m1->m[1].e[0][0] + m2->m[1].e[0][0]; + mout->m[1].e[1][0] = m1->m[1].e[1][0] + m2->m[1].e[1][0]; + mout->m[1].e[2][0] = m1->m[1].e[2][0] + m2->m[1].e[2][0]; + mout->m[1].e[0][1] = m1->m[1].e[0][1] + m2->m[1].e[0][1]; + mout->m[1].e[1][1] = m1->m[1].e[1][1] + m2->m[1].e[1][1]; + mout->m[1].e[2][1] = m1->m[1].e[2][1] + m2->m[1].e[2][1]; + mout->m[1].e[0][2] = m1->m[1].e[0][2] + m2->m[1].e[0][2]; + mout->m[1].e[1][2] = m1->m[1].e[1][2] + m2->m[1].e[1][2]; + mout->m[1].e[2][2] = m1->m[1].e[2][2] + m2->m[1].e[2][2]; + + mout->m[2].e[0][0] = m1->m[2].e[0][0] + m2->m[2].e[0][0]; + mout->m[2].e[1][0] = m1->m[2].e[1][0] + m2->m[2].e[1][0]; + mout->m[2].e[2][0] = m1->m[2].e[2][0] + m2->m[2].e[2][0]; + mout->m[2].e[0][1] = m1->m[2].e[0][1] + m2->m[2].e[0][1]; + mout->m[2].e[1][1] = m1->m[2].e[1][1] + m2->m[2].e[1][1]; + mout->m[2].e[2][1] = m1->m[2].e[2][1] + m2->m[2].e[2][1]; + mout->m[2].e[0][2] = m1->m[2].e[0][2] + m2->m[2].e[0][2]; + mout->m[2].e[1][2] = m1->m[2].e[1][2] + m2->m[2].e[1][2]; + mout->m[2].e[2][2] = m1->m[2].e[2][2] + m2->m[2].e[2][2]; + + mout->m[3].e[0][0] = m1->m[3].e[0][0] + m2->m[3].e[0][0]; + mout->m[3].e[1][0] = m1->m[3].e[1][0] + m2->m[3].e[1][0]; + mout->m[3].e[2][0] = m1->m[3].e[2][0] + m2->m[3].e[2][0]; + mout->m[3].e[0][1] = m1->m[3].e[0][1] + m2->m[3].e[0][1]; + mout->m[3].e[1][1] = m1->m[3].e[1][1] + m2->m[3].e[1][1]; + mout->m[3].e[2][1] = m1->m[3].e[2][1] + m2->m[3].e[2][1]; + mout->m[3].e[0][2] = m1->m[3].e[0][2] + m2->m[3].e[0][2]; + mout->m[3].e[1][2] = m1->m[3].e[1][2] + m2->m[3].e[1][2]; + mout->m[3].e[2][2] = m1->m[3].e[2][2] + m2->m[3].e[2][2]; + + /* zMat3DAdd( &m1->m[0], &m2->m[0], &mout->m[0] ); */ + /* zMat3DAdd( &m1->m[1], &m2->m[1], &mout->m[1] ); */ + /* zMat3DAdd( &m1->m[2], &m2->m[2], &mout->m[2] ); */ + /* zMat3DAdd( &m1->m[3], &m2->m[3], &mout->m[3] ); */ return mout; }