25#ifndef IKFAST_HAS_LIBRARY
26#define IKFAST_HAS_LIBRARY
33#define IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x]
48#ifndef __PRETTY_FUNCTION__
49#define __PRETTY_FUNCTION__ __FUNCDNAME__
53#ifndef __PRETTY_FUNCTION__
54#define __PRETTY_FUNCTION__ __func__
57#define IKFAST_ASSERT(b) \
61 std::stringstream ss; \
62 ss << "ikfast exception: " << __FILE__ << ":" << __LINE__ << ": " << __PRETTY_FUNCTION__ << ": Assertion '" \
63 << #b << "' failed"; \
64 throw std::runtime_error(ss.str()); \
71#define IKFAST_ALIGNED16(x) __declspec(align(16)) x
73#define IKFAST_ALIGNED16(x) x __attribute((aligned(16)))
76#define IK2PI ((IkReal)6.28318530717959)
77#define IKPI ((IkReal)3.14159265358979)
78#define IKPI_2 ((IkReal)1.57079632679490)
94void dgetrf_(
const int*
m,
const int* n,
double* a,
const int* lda,
int* ipiv,
int*
info);
95void zgetrf_(
const int*
m,
const int* n, std::complex<double>* a,
const int* lda,
int* ipiv,
int*
info);
96void dgetri_(
const int* n,
const double* a,
const int* lda,
int* ipiv,
double* work,
const int* lwork,
int*
info);
97void dgesv_(
const int* n,
const int* nrhs,
double* a,
const int* lda,
int* ipiv,
double* b,
const int* ldb,
int*
info);
125#ifdef IKFAST_NAMESPACE
126namespace IKFAST_NAMESPACE
130inline float IKabs(
float f) {
return fabsf(f); }
131inline double IKabs(
double f) {
return fabs(f); }
133inline float IKsqr(
float f) {
return f * f; }
134inline double IKsqr(
double f) {
return f * f; }
136inline float IKlog(
float f) {
return logf(f); }
137inline double IKlog(
double f) {
return log(f); }
140#ifndef IKFAST_SINCOS_THRESH
141#define IKFAST_SINCOS_THRESH ((IkReal)1e-7)
146#ifndef IKFAST_ATAN2_MAGTHRESH
147#define IKFAST_ATAN2_MAGTHRESH ((IkReal)1e-7)
151#ifndef IKFAST_SOLUTION_THRESH
152#define IKFAST_SOLUTION_THRESH ((IkReal)1e-6)
157#ifndef IKFAST_EVALCOND_THRESH
158#define IKFAST_EVALCOND_THRESH ((IkReal)0.00001)
222inline float IKsin(
float f) {
return sinf(f); }
223inline double IKsin(
double f) {
return sin(f); }
224inline float IKcos(
float f) {
return cosf(f); }
225inline double IKcos(
double f) {
return cos(f); }
226inline float IKtan(
float f) {
return tanf(f); }
227inline double IKtan(
double f) {
return tan(f); }
252 return atan2f(fy, fx);
266 return atan2(fy, fx);
282 if (!isnan(fy) && !isnan(fx))
349 int num = n > 0 ? n : -n;
356 ret.
value = f * f * f;
381IKFAST_API
void ComputeFk(
const IkReal*
j, IkReal* eetrans, IkReal* eerot)
383 IkReal x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23,
384 x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46,
385 x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64, x65, x66, x67, x68;
401 x15 = ((0.15085) * x5);
408 x22 = ((0.15085) * x7);
409 x23 = ((0.15085) * x8);
413 x27 = ((0.15085) * x9);
429 x43 = ((((-1.0) * x40)) + ((x0 * x36)));
430 x44 = (x29 + ((x1 * x33)));
431 x45 = (((x1 * x5)) + ((x2 * x35)));
432 x46 = (x40 + (((-1.0) * x21 * x37)));
433 x47 = ((((-1.0) * x37)) + ((x1 * x40)));
434 x48 = ((((-1.0) * x1 * x18)) + x41);
435 x49 = (((x0 * x1 * x19)) + (((1.0) * x33)));
436 x50 = ((((-1.0) * x0 * x19)) + (((-1.0) * x21 * x33)));
443 x57 = (x52 + ((x28 * x7)));
444 x58 = (((x3 * x35)) + ((x44 * x5)));
445 x59 = (((x46 * x7)) + ((x28 * x5)));
446 x60 = ((((-1.0) * x42)) + x53);
447 x61 = (((x26 * (((((-1.0) * x1 * x7)) + x41)))) + ((x17 * x4 * x6)));
448 x62 = ((((-1.0) * x18 * x28)) + (((-1.0) * x16 * x43)));
449 x63 = (((x3 * x31)) + x56);
450 x64 = ((((-1.0) * x18 * x39)) + (((-1.0) * x16 * x44)));
454 x68 = (x54 + ((x64 * x8)));
457 (((((1.0) * x65)) + (((1.0) * x13 * ((((x8 * (((((-1.0) * x28 * x7)) + (((-1.0) * x52)))))) + x55)))))))) +
458 ((x11 * (((((-1.0) * x17 * x49)) + (((-1.0) * x26 * x57)))))));
459 eerot[1] = (((x11 * ((((x13 * ((x55 + x66)))) + x65)))) + ((x10 * ((((x34 * x49)) + ((x30 * x57)))))));
460 eerot[2] = (((x13 * x59)) + ((x12 * (((((-1.0) * x17 * x62)) + (((-1.0) * x26 * x49)))))));
461 eetrans[0] = (((x7 * (((((-1.0) * x0 * x1 * x25)) + ((x14 * x4)))))) + ((x13 * ((((x22 * x46)) + ((x15 * x28)))))) +
462 (((0.4) * x28)) + ((x12 * (((((-1.0) * x27 * x49)) + (((-1.0) * x23 * x62)))))) + ((x24 * x28)));
463 eerot[3] = (((x10 * (((((-1.0) * x20 * x68)) + (((-1.0) * x67)))))) + ((x11 * ((((x34 * x47)) + ((x30 * x58)))))));
464 eerot[4] = (((x10 * (((((-1.0) * x17 * x47)) + (((-1.0) * x26 * x58)))))) + ((x11 * ((((x13 * x68)) + x67)))));
465 eerot[5] = (((x13 * x63)) + ((x12 * (((((-1.0) * x17 * x64)) + (((-1.0) * x26 * x47)))))));
466 eetrans[1] = (((x13 * ((((x15 * x39)) + ((x22 * x50)))))) + ((x7 * (((((-1.0) * x14 * x36)) + (((-0.4) * x29)))))) +
467 ((x14 * x6)) + ((x14 * x31)) + ((x12 * (((((-1.0) * x27 * x47)) + (((-1.0) * x23 * x64)))))));
468 eerot[6] = (((x11 * x61)) + ((x10 * (((((-1.0) * x20 * x60)) + (((-1.0) * x51)))))));
469 eerot[7] = (((x11 * ((((x13 * x60)) + x51)))) + ((x10 * x61)));
470 eerot[8] = (((x12 * (((((-1.0) * x17 * x48)) + x42)))) + ((x13 * x45)));
471 eetrans[2] = ((0.34) + ((x1 * x24)) + (((0.4) * x1)) + ((x12 * ((((x27 * x4 * x6)) + (((-1.0) * x23 * x48)))))) +
472 ((x13 * ((((x1 * x15)) + ((x22 * x38)))))) + ((x25 * x35)));
478 static int freeparams[] = { 4 };
490 IkReal j0, cj0, sj0, htj0,
j0mul, j1, cj1, sj1, htj1, j1mul, j2, cj2, sj2, htj2, j2mul, j3, cj3, sj3, htj3, j3mul, j5,
491 cj5, sj5, htj5, j5mul, j6,
cj6, sj6, htj6, j6mul, j4, cj4, sj4, htj4, new_r00, r00, rxp0_0, new_r01, r01, rxp0_1,
492 new_r02, r02, rxp0_2, new_r10, r10, rxp1_0, new_r11, r11, rxp1_1, new_r12, r12, rxp1_2, new_r20, r20, rxp2_0,
493 new_r21, r21, rxp2_1, new_r22, r22, rxp2_2, new_px, px, npx, new_py, py, npy, new_pz, pz, npz, pp;
494 unsigned char _ij0[2], _nj0, _ij1[2], _nj1, _ij2[2], _nj2, _ij3[2], _nj3, _ij5[2], _nj5, _ij6[2], _nj6, _ij4[2], _nj4;
497 unsigned char _ij100[2], _nj100;
500 j0 = numeric_limits<IkReal>::quiet_NaN();
504 j1 = numeric_limits<IkReal>::quiet_NaN();
508 j2 = numeric_limits<IkReal>::quiet_NaN();
512 j3 = numeric_limits<IkReal>::quiet_NaN();
516 j5 = numeric_limits<IkReal>::quiet_NaN();
520 j6 = numeric_limits<IkReal>::quiet_NaN();
527 for (
int dummyiter = 0; dummyiter < 1; ++dummyiter)
532 sj4 = sin(pfree[0]), htj4 = tan(pfree[0] * 0.5);
533 r00 = eerot[0 * 3 + 0];
534 r01 = eerot[0 * 3 + 1];
535 r02 = eerot[0 * 3 + 2];
536 r10 = eerot[1 * 3 + 0];
537 r11 = eerot[1 * 3 + 1];
538 r12 = eerot[1 * 3 + 2];
539 r20 = eerot[2 * 3 + 0];
540 r21 = eerot[2 * 3 + 1];
541 r22 = eerot[2 * 3 + 2];
546 new_r00 = ((-1.0) * r00);
547 new_r01 = ((-1.0) * r01);
549 new_px = (px + (((-0.15085) * r02)));
550 new_r10 = ((-1.0) * r10);
551 new_r11 = ((-1.0) * r11);
553 new_py = (py + (((-0.15085) * r12)));
554 new_r20 = ((-1.0) * r20);
555 new_r21 = ((-1.0) * r21);
557 new_pz = ((-0.34) + pz + (((-0.15085) * r22)));
570 IkReal x69 = ((1.0) * px);
571 IkReal x70 = ((1.0) * pz);
572 IkReal x71 = ((1.0) * py);
573 pp = ((px * px) + (py * py) + (pz * pz));
574 npx = (((px * r00)) + ((py * r10)) + ((pz * r20)));
575 npy = (((px * r01)) + ((py * r11)) + ((pz * r21)));
576 npz = (((px * r02)) + ((py * r12)) + ((pz * r22)));
577 rxp0_0 = ((((-1.0) * r20 * x71)) + ((pz * r10)));
578 rxp0_1 = (((px * r20)) + (((-1.0) * r00 * x70)));
579 rxp0_2 = ((((-1.0) * r10 * x69)) + ((py * r00)));
580 rxp1_0 = ((((-1.0) * r21 * x71)) + ((pz * r11)));
581 rxp1_1 = (((px * r21)) + (((-1.0) * r01 * x70)));
582 rxp1_2 = ((((-1.0) * r11 * x69)) + ((py * r01)));
583 rxp2_0 = ((((-1.0) * r22 * x71)) + ((pz * r12)));
584 rxp2_1 = (((px * r22)) + (((-1.0) * r02 * x70)));
585 rxp2_2 = ((((-1.0) * r12 * x69)) + ((py * r02)));
587 IkReal j3array[2], cj3array[2], sj3array[2];
588 bool j3valid[2] = {
false };
590 cj3array[0] = ((-1.0) + (((3.125) * pp)));
593 j3valid[0] = j3valid[1] =
true;
594 j3array[0] =
IKacos(cj3array[0]);
595 sj3array[0] =
IKsin(j3array[0]);
596 cj3array[1] = cj3array[0];
597 j3array[1] = -j3array[0];
598 sj3array[1] = -sj3array[0];
600 else if (isnan(cj3array[0]))
608 for (
int ij3 = 0; ij3 < 2; ++ij3)
616 for (
int iij3 = ij3 + 1; iij3 < 2; ++iij3)
621 j3valid[iij3] =
false;
633 j6eval[1] = ((npx * npx) + (npy * npy));
634 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
IKabs(j6eval[1]) < 0.0000010000000000)
638 j5eval[0] = ((1.0) + (cj3 * cj3) + (((2.0) * cj3)) + (((cj4 * cj4) * (sj3 * sj3))));
639 j5eval[1] = ((((2.5) * (
IKabs(((0.4) + (((0.4) * cj3))))))) + (
IKabs((cj4 * sj3))));
640 if (
IKabs(j5eval[0]) < 0.0000010000000000 ||
IKabs(j5eval[1]) < 0.0000010000000000)
644 bool bgotonextstatement =
true;
648 ((-3.14159265358979) +
649 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j3)))), 6.28318530717959)));
651 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
IKabs(evalcond[1]) < 0.0000050000000000)
653 bgotonextstatement =
false;
658 j3 = 3.14159265358979;
660 if (
IKabs(j6eval[0]) < 0.0000010000000000)
667 IkReal j6array[2], cj6array[2], sj6array[2];
668 bool j6valid[2] = {
false };
676 IkReal x72 = x73.
value;
677 j6array[0] = ((-1.0) * x72);
678 sj6array[0] =
IKsin(j6array[0]);
679 cj6array[0] =
IKcos(j6array[0]);
680 j6array[1] = ((3.14159265358979) + (((-1.0) * x72)));
681 sj6array[1] =
IKsin(j6array[1]);
682 cj6array[1] =
IKcos(j6array[1]);
683 if (j6array[0] >
IKPI)
687 else if (j6array[0] < -
IKPI)
692 if (j6array[1] >
IKPI)
696 else if (j6array[1] < -
IKPI)
701 for (
int ij6 = 0; ij6 < 2; ++ij6)
709 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
714 j6valid[iij6] =
false;
724 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) + (((-1.0) * npx * (
IKsin(j6)))));
735 j3 = 3.14159265358979;
736 j5eval[0] =
IKabs((((cj6 * npx)) + (((-1.0) * npy * sj6))));
737 if (
IKabs(j5eval[0]) < 0.0000000100000000)
743 IkReal op[2 + 1], zeror[2];
745 IkReal x74 = (npy * sj6);
746 IkReal x75 = (cj6 * npx);
747 op[0] = (x75 + (((-1.0) * x74)));
749 op[2] = (x74 + (((-1.0) * x75)));
750 polyroots2(op, zeror, numroots);
751 IkReal j5array[2], cj5array[2], sj5array[2], tempj5array[1];
752 int numsolutions = 0;
753 for (
int ij5 = 0; ij5 < numroots; ++ij5)
755 IkReal htj5 = zeror[ij5];
756 tempj5array[0] = ((2.0) * (atan(htj5)));
757 for (
int kj5 = 0; kj5 < 1; ++kj5)
759 j5array[numsolutions] = tempj5array[kj5];
760 if (j5array[numsolutions] >
IKPI)
762 j5array[numsolutions] -=
IK2PI;
764 else if (j5array[numsolutions] < -
IKPI)
766 j5array[numsolutions] +=
IK2PI;
768 sj5array[numsolutions] =
IKsin(j5array[numsolutions]);
769 cj5array[numsolutions] =
IKcos(j5array[numsolutions]);
773 bool j5valid[2] = {
true,
true };
775 for (
int ij5 = 0; ij5 < numsolutions; ++ij5)
784 htj5 =
IKtan(j5 / 2);
788 for (
int iij5 = ij5 + 1; iij5 < numsolutions; ++iij5)
794 j5valid[iij5] =
false;
799 rotationfunction0(solutions);
809 if (bgotonextstatement)
811 bool bgotonextstatement =
true;
816 bgotonextstatement =
false;
820 if (bgotonextstatement)
829 IkReal j5array[2], cj5array[2], sj5array[2];
830 bool j5valid[2] = {
false };
832 IkReal x1007 = ((0.4) + (((0.4) * cj3)));
839 IkReal x1008 = ((1.0) * (x1010.
value));
840 if ((((((0.16) * (cj4 * cj4) * (sj3 * sj3))) + (x1007 * x1007))) < -0.00001)
843 IKabs(
IKsqrt(((((0.16) * (cj4 * cj4) * (sj3 * sj3))) + (x1007 * x1007)))), -1);
852 j5array[0] = (x1009 + (((-1.0) * x1008)));
853 sj5array[0] =
IKsin(j5array[0]);
854 cj5array[0] =
IKcos(j5array[0]);
855 j5array[1] = ((3.14159265358979) + (((-1.0) * x1009)) + (((-1.0) * x1008)));
856 sj5array[1] =
IKsin(j5array[1]);
857 cj5array[1] =
IKcos(j5array[1]);
858 if (j5array[0] >
IKPI)
862 else if (j5array[0] < -
IKPI)
867 if (j5array[1] >
IKPI)
871 else if (j5array[1] < -
IKPI)
876 for (
int ij5 = 0; ij5 < 2; ++ij5)
884 for (
int iij5 = ij5 + 1; iij5 < 2; ++iij5)
889 j5valid[iij5] =
false;
900 IkReal x1012 = npy * npy;
901 IkReal x1013 = npx * npx;
902 IkReal x1014 = (cj5 * sj4);
903 IkReal x1015 = (cj5 * x1013);
904 IkReal x1016 = (cj5 * x1012);
905 IkReal x1017 = ((5.0) * npz * sj5);
906 IkReal x1018 = ((2.0) * npy * sj3);
907 IkReal x1019 = ((2.0) * npx * sj3);
908 j6eval[0] = (x1015 + x1016);
909 j6eval[1] = ((
IKabs((((x1014 * x1019)) + ((cj4 * x1018)) + (((-1.0) * npy * x1017))))) +
910 (
IKabs((((x1014 * x1018)) + (((-1.0) * cj4 * x1019)) + ((npx * x1017))))));
911 j6eval[2] =
IKsign(((((5.0) * x1016)) + (((5.0) * x1015))));
912 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
IKabs(j6eval[1]) < 0.0000010000000000 ||
913 IKabs(j6eval[2]) < 0.0000010000000000)
917 IkReal x1020 = npy * npy;
918 IkReal x1021 = npx * npx;
919 IkReal x1022 = ((2.0) * cj3);
920 IkReal x1023 = ((5.0) * sj5);
921 IkReal x1024 = ((2.0) * npx);
922 IkReal x1025 = ((2.0) * npy);
923 IkReal x1026 = ((5.0) * cj5 * npz);
924 IkReal x1027 = (sj3 * sj4 * sj5);
925 j6eval[0] = (((sj5 * x1021)) + ((sj5 * x1020)));
926 j6eval[1] =
IKsign((((x1021 * x1023)) + ((x1020 * x1023))));
928 ((
IKabs((x1024 + ((npx * x1022)) + (((-1.0) * npx * x1026)) + ((x1025 * x1027))))) +
929 (
IKabs((((npy * x1026)) + (((-1.0) * x1025)) + (((-1.0) * npy * x1022)) +
930 ((x1024 * x1027))))));
931 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
IKabs(j6eval[1]) < 0.0000010000000000 ||
932 IKabs(j6eval[2]) < 0.0000010000000000)
936 IkReal x1028 = npx * npx;
937 IkReal x1029 = npy * npy;
938 IkReal x1030 = ((2.0) * sj5);
939 IkReal x1031 = ((2.0) * sj3);
940 IkReal x1032 = (cj4 * cj5);
941 j6eval[0] = (x1029 + x1028);
942 j6eval[1] = ((
IKabs(((((-1.0) * npx * x1031 * x1032)) + ((npy * sj4 * x1031)) +
943 ((npx * x1030)) + ((cj3 * npx * x1030))))) +
944 (
IKabs((((npx * sj4 * x1031)) + ((npy * x1031 * x1032)) +
945 (((-1.0) * cj3 * npy * x1030)) + (((-1.0) * npy * x1030))))));
946 j6eval[2] =
IKsign(((((5.0) * x1028)) + (((5.0) * x1029))));
947 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
IKabs(j6eval[1]) < 0.0000010000000000 ||
948 IKabs(j6eval[2]) < 0.0000010000000000)
952 bool bgotonextstatement =
true;
955 evalcond[0] = ((-3.14159265358979) +
956 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j3)))),
959 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
960 IKabs(evalcond[1]) < 0.0000050000000000)
962 bgotonextstatement =
false;
967 j3 = 3.14159265358979;
969 if (
IKabs(j6eval[0]) < 0.0000010000000000)
975 j3 = 3.14159265358979;
976 j6eval[0] = ((
IKabs((npx * sj5))) + (
IKabs((npy * sj5))));
977 if (
IKabs(j6eval[0]) < 0.0000010000000000)
983 j3 = 3.14159265358979;
984 j6eval[0] = ((
IKabs((cj5 * npx))) + (
IKabs((cj5 * npy))));
985 if (
IKabs(j6eval[0]) < 0.0000010000000000)
989 bool bgotonextstatement =
true;
992 evalcond[0] = ((-3.14159265358979) +
993 (
IKfmod(((3.14159265358979) +
994 (
IKabs(((-1.5707963267949) + j5)))),
996 if (
IKabs(evalcond[0]) < 0.0000050000000000)
998 bgotonextstatement =
false;
1003 j3 = 3.14159265358979;
1006 j5 = 1.5707963267949;
1008 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1015 IkReal j6array[2], cj6array[2], sj6array[2];
1016 bool j6valid[2] = {
false };
1026 IkReal x1033 = x1034.
value;
1027 j6array[0] = ((-1.0) * x1033);
1028 sj6array[0] =
IKsin(j6array[0]);
1029 cj6array[0] =
IKcos(j6array[0]);
1030 j6array[1] = ((3.14159265358979) + (((-1.0) * x1033)));
1031 sj6array[1] =
IKsin(j6array[1]);
1032 cj6array[1] =
IKcos(j6array[1]);
1033 if (j6array[0] >
IKPI)
1035 j6array[0] -=
IK2PI;
1037 else if (j6array[0] < -
IKPI)
1039 j6array[0] +=
IK2PI;
1042 if (j6array[1] >
IKPI)
1044 j6array[1] -=
IK2PI;
1046 else if (j6array[1] < -
IKPI)
1048 j6array[1] +=
IK2PI;
1051 for (
int ij6 = 0; ij6 < 2; ++ij6)
1059 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1061 if (j6valid[iij6] &&
1062 IKabs(cj6array[ij6] - cj6array[iij6]) <
1064 IKabs(sj6array[ij6] - sj6array[iij6]) <
1067 j6valid[iij6] =
false;
1073 cj6 = cj6array[ij6];
1074 sj6 = sj6array[ij6];
1077 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) +
1078 (((-1.0) * npx * (
IKsin(j6)))));
1085 rotationfunction0(solutions);
1092 if (bgotonextstatement)
1094 bool bgotonextstatement =
true;
1097 evalcond[0] = ((-3.14159265358979) +
1098 (
IKfmod(((3.14159265358979) +
1099 (
IKabs(((1.5707963267949) + j5)))),
1100 6.28318530717959)));
1101 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1103 bgotonextstatement =
false;
1108 j3 = 3.14159265358979;
1111 j5 = -1.5707963267949;
1113 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1120 IkReal j6array[2], cj6array[2], sj6array[2];
1121 bool j6valid[2] = {
false };
1125 IkReal(((-1.0) * npy)),
1131 IkReal x1035 = x1036.
value;
1132 j6array[0] = ((-1.0) * x1035);
1133 sj6array[0] =
IKsin(j6array[0]);
1134 cj6array[0] =
IKcos(j6array[0]);
1136 ((3.14159265358979) + (((-1.0) * x1035)));
1137 sj6array[1] =
IKsin(j6array[1]);
1138 cj6array[1] =
IKcos(j6array[1]);
1139 if (j6array[0] >
IKPI)
1141 j6array[0] -=
IK2PI;
1143 else if (j6array[0] < -
IKPI)
1145 j6array[0] +=
IK2PI;
1148 if (j6array[1] >
IKPI)
1150 j6array[1] -=
IK2PI;
1152 else if (j6array[1] < -
IKPI)
1154 j6array[1] +=
IK2PI;
1157 for (
int ij6 = 0; ij6 < 2; ++ij6)
1165 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1167 if (j6valid[iij6] &&
1168 IKabs(cj6array[ij6] - cj6array[iij6]) <
1170 IKabs(sj6array[ij6] - sj6array[iij6]) <
1173 j6valid[iij6] =
false;
1179 cj6 = cj6array[ij6];
1180 sj6 = sj6array[ij6];
1183 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) +
1184 (((-1.0) * npx * (
IKsin(j6)))));
1191 rotationfunction0(solutions);
1198 if (bgotonextstatement)
1200 bool bgotonextstatement =
true;
1203 evalcond[0] = ((-3.14159265358979) +
1205 6.28318530717959)));
1206 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1208 bgotonextstatement =
false;
1213 j3 = 3.14159265358979;
1218 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1225 IkReal j6array[2], cj6array[2], sj6array[2];
1226 bool j6valid[2] = {
false };
1236 IkReal x1037 = x1038.
value;
1237 j6array[0] = ((-1.0) * x1037);
1238 sj6array[0] =
IKsin(j6array[0]);
1239 cj6array[0] =
IKcos(j6array[0]);
1241 ((3.14159265358979) + (((-1.0) * x1037)));
1242 sj6array[1] =
IKsin(j6array[1]);
1243 cj6array[1] =
IKcos(j6array[1]);
1244 if (j6array[0] >
IKPI)
1246 j6array[0] -=
IK2PI;
1248 else if (j6array[0] < -
IKPI)
1250 j6array[0] +=
IK2PI;
1253 if (j6array[1] >
IKPI)
1255 j6array[1] -=
IK2PI;
1257 else if (j6array[1] < -
IKPI)
1259 j6array[1] +=
IK2PI;
1262 for (
int ij6 = 0; ij6 < 2; ++ij6)
1270 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1272 if (j6valid[iij6] &&
1273 IKabs(cj6array[ij6] - cj6array[iij6]) <
1275 IKabs(sj6array[ij6] - sj6array[iij6]) <
1278 j6valid[iij6] =
false;
1284 cj6 = cj6array[ij6];
1285 sj6 = sj6array[ij6];
1288 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) +
1289 (((-1.0) * npx * (
IKsin(j6)))));
1296 rotationfunction0(solutions);
1303 if (bgotonextstatement)
1305 bool bgotonextstatement =
true;
1309 ((-3.14159265358979) +
1310 (
IKfmod(((3.14159265358979) +
1311 (
IKabs(((-3.14159265358979) + j5)))),
1312 6.28318530717959)));
1313 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1315 bgotonextstatement =
false;
1320 j3 = 3.14159265358979;
1323 j5 = 3.14159265358979;
1325 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1332 IkReal j6array[2], cj6array[2], sj6array[2];
1333 bool j6valid[2] = {
false };
1337 IkReal(((-1.0) * npy)),
1343 IkReal x1039 = x1040.
value;
1344 j6array[0] = ((-1.0) * x1039);
1345 sj6array[0] =
IKsin(j6array[0]);
1346 cj6array[0] =
IKcos(j6array[0]);
1348 ((3.14159265358979) + (((-1.0) * x1039)));
1349 sj6array[1] =
IKsin(j6array[1]);
1350 cj6array[1] =
IKcos(j6array[1]);
1351 if (j6array[0] >
IKPI)
1353 j6array[0] -=
IK2PI;
1355 else if (j6array[0] < -
IKPI)
1357 j6array[0] +=
IK2PI;
1360 if (j6array[1] >
IKPI)
1362 j6array[1] -=
IK2PI;
1364 else if (j6array[1] < -
IKPI)
1366 j6array[1] +=
IK2PI;
1369 for (
int ij6 = 0; ij6 < 2; ++ij6)
1377 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1379 if (j6valid[iij6] &&
1380 IKabs(cj6array[ij6] - cj6array[iij6]) <
1382 IKabs(sj6array[ij6] - sj6array[iij6]) <
1385 j6valid[iij6] =
false;
1391 cj6 = cj6array[ij6];
1392 sj6 = sj6array[ij6];
1396 ((((-1.0) * npy * (
IKcos(j6)))) +
1397 (((-1.0) * npx * (
IKsin(j6)))));
1398 if (
IKabs(evalcond[0]) >
1405 rotationfunction0(solutions);
1412 if (bgotonextstatement)
1414 bool bgotonextstatement =
true;
1419 bgotonextstatement =
false;
1423 if (bgotonextstatement)
1435 IkReal j6array[2], cj6array[2], sj6array[2];
1436 bool j6valid[2] = {
false };
1440 IkReal((cj5 * npy)),
1446 IkReal x1041 = x1042.
value;
1447 j6array[0] = ((-1.0) * x1041);
1448 sj6array[0] =
IKsin(j6array[0]);
1449 cj6array[0] =
IKcos(j6array[0]);
1450 j6array[1] = ((3.14159265358979) + (((-1.0) * x1041)));
1451 sj6array[1] =
IKsin(j6array[1]);
1452 cj6array[1] =
IKcos(j6array[1]);
1453 if (j6array[0] >
IKPI)
1455 j6array[0] -=
IK2PI;
1457 else if (j6array[0] < -
IKPI)
1459 j6array[0] +=
IK2PI;
1462 if (j6array[1] >
IKPI)
1464 j6array[1] -=
IK2PI;
1466 else if (j6array[1] < -
IKPI)
1468 j6array[1] +=
IK2PI;
1471 for (
int ij6 = 0; ij6 < 2; ++ij6)
1479 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1481 if (j6valid[iij6] &&
1482 IKabs(cj6array[ij6] - cj6array[iij6]) <
1484 IKabs(sj6array[ij6] - sj6array[iij6]) <
1487 j6valid[iij6] =
false;
1493 cj6 = cj6array[ij6];
1494 sj6 = sj6array[ij6];
1497 IkReal x1043 =
IKsin(j6);
1498 IkReal x1044 =
IKcos(j6);
1499 IkReal x1045 = ((1.0) * npx);
1500 IkReal x1046 = (npy * x1043);
1501 evalcond[0] = (x1046 + (((-1.0) * x1044 * x1045)));
1503 ((((-1.0) * x1043 * x1045)) + (((-1.0) * npy * x1044)));
1505 (((sj5 * x1046)) + (((-1.0) * sj5 * x1044 * x1045)));
1514 rotationfunction0(solutions);
1523 IkReal j6array[2], cj6array[2], sj6array[2];
1524 bool j6valid[2] = {
false };
1528 IkReal((npy * sj5)),
1534 IkReal x1047 = x1048.
value;
1535 j6array[0] = ((-1.0) * x1047);
1536 sj6array[0] =
IKsin(j6array[0]);
1537 cj6array[0] =
IKcos(j6array[0]);
1538 j6array[1] = ((3.14159265358979) + (((-1.0) * x1047)));
1539 sj6array[1] =
IKsin(j6array[1]);
1540 cj6array[1] =
IKcos(j6array[1]);
1541 if (j6array[0] >
IKPI)
1543 j6array[0] -=
IK2PI;
1545 else if (j6array[0] < -
IKPI)
1547 j6array[0] +=
IK2PI;
1550 if (j6array[1] >
IKPI)
1552 j6array[1] -=
IK2PI;
1554 else if (j6array[1] < -
IKPI)
1556 j6array[1] +=
IK2PI;
1559 for (
int ij6 = 0; ij6 < 2; ++ij6)
1567 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1569 if (j6valid[iij6] &&
1570 IKabs(cj6array[ij6] - cj6array[iij6]) <
1572 IKabs(sj6array[ij6] - sj6array[iij6]) <
1575 j6valid[iij6] =
false;
1581 cj6 = cj6array[ij6];
1582 sj6 = sj6array[ij6];
1585 IkReal x1049 =
IKsin(j6);
1586 IkReal x1050 =
IKcos(j6);
1587 IkReal x1051 = ((1.0) * npx);
1588 IkReal x1052 = (npy * x1049);
1589 evalcond[0] = (x1052 + (((-1.0) * x1050 * x1051)));
1591 ((((-1.0) * npy * x1050)) + (((-1.0) * x1049 * x1051)));
1593 ((((-1.0) * cj5 * x1050 * x1051)) + ((cj5 * x1052)));
1602 rotationfunction0(solutions);
1611 IkReal j6array[2], cj6array[2], sj6array[2];
1612 bool j6valid[2] = {
false };
1620 IkReal x1053 = x1054.
value;
1621 j6array[0] = ((-1.0) * x1053);
1622 sj6array[0] =
IKsin(j6array[0]);
1623 cj6array[0] =
IKcos(j6array[0]);
1624 j6array[1] = ((3.14159265358979) + (((-1.0) * x1053)));
1625 sj6array[1] =
IKsin(j6array[1]);
1626 cj6array[1] =
IKcos(j6array[1]);
1627 if (j6array[0] >
IKPI)
1629 j6array[0] -=
IK2PI;
1631 else if (j6array[0] < -
IKPI)
1633 j6array[0] +=
IK2PI;
1636 if (j6array[1] >
IKPI)
1638 j6array[1] -=
IK2PI;
1640 else if (j6array[1] < -
IKPI)
1642 j6array[1] +=
IK2PI;
1645 for (
int ij6 = 0; ij6 < 2; ++ij6)
1653 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1655 if (j6valid[iij6] &&
1659 j6valid[iij6] =
false;
1665 cj6 = cj6array[ij6];
1666 sj6 = sj6array[ij6];
1669 IkReal x1055 =
IKsin(j6);
1670 IkReal x1056 =
IKcos(j6);
1671 IkReal x1057 = ((1.0) * npx);
1672 IkReal x1058 = (npy * x1055);
1673 evalcond[0] = ((((-1.0) * npy * x1056)) + (((-1.0) * x1055 * x1057)));
1674 evalcond[1] = (((sj5 * x1058)) + (((-1.0) * sj5 * x1056 * x1057)));
1675 evalcond[2] = ((((-1.0) * cj5 * x1056 * x1057)) + ((cj5 * x1058)));
1684 rotationfunction0(solutions);
1691 if (bgotonextstatement)
1693 bool bgotonextstatement =
true;
1696 evalcond[0] = ((-3.14159265358979) +
1697 (
IKfmod(((3.14159265358979) + (
IKabs(j5))), 6.28318530717959)));
1698 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1700 bgotonextstatement =
false;
1706 IkReal x1059 = npx * npx;
1707 IkReal x1060 = npy * npy;
1708 IkReal x1061 = (npy * sj3);
1709 IkReal x1062 = (npx * sj3);
1710 j6eval[0] = (x1059 + x1060);
1711 j6eval[1] = ((
IKabs(((((-1.0) * cj4 * x1062)) + ((sj4 * x1061))))) +
1712 (
IKabs((((cj4 * x1061)) + ((sj4 * x1062))))));
1713 j6eval[2] =
IKsign(((((5.0) * x1060)) + (((5.0) * x1059))));
1714 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
1715 IKabs(j6eval[1]) < 0.0000010000000000 ||
1716 IKabs(j6eval[2]) < 0.0000010000000000)
1720 bool bgotonextstatement =
true;
1724 ((-3.14159265358979) +
1725 (
IKfmod(((3.14159265358979) + (
IKabs(j3))), 6.28318530717959)));
1726 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1728 bgotonextstatement =
false;
1738 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1745 IkReal j6array[2], cj6array[2], sj6array[2];
1746 bool j6valid[2] = {
false };
1756 IkReal x1063 = x1064.
value;
1757 j6array[0] = ((-1.0) * x1063);
1758 sj6array[0] =
IKsin(j6array[0]);
1759 cj6array[0] =
IKcos(j6array[0]);
1760 j6array[1] = ((3.14159265358979) + (((-1.0) * x1063)));
1761 sj6array[1] =
IKsin(j6array[1]);
1762 cj6array[1] =
IKcos(j6array[1]);
1763 if (j6array[0] >
IKPI)
1765 j6array[0] -=
IK2PI;
1767 else if (j6array[0] < -
IKPI)
1769 j6array[0] +=
IK2PI;
1772 if (j6array[1] >
IKPI)
1774 j6array[1] -=
IK2PI;
1776 else if (j6array[1] < -
IKPI)
1778 j6array[1] +=
IK2PI;
1781 for (
int ij6 = 0; ij6 < 2; ++ij6)
1789 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
1791 if (j6valid[iij6] &&
1792 IKabs(cj6array[ij6] - cj6array[iij6]) <
1794 IKabs(sj6array[ij6] - sj6array[iij6]) <
1797 j6valid[iij6] =
false;
1803 cj6 = cj6array[ij6];
1804 sj6 = sj6array[ij6];
1807 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) +
1808 (((-1.0) * npx * (
IKsin(j6)))));
1815 rotationfunction0(solutions);
1822 if (bgotonextstatement)
1824 bool bgotonextstatement =
true;
1829 bgotonextstatement =
false;
1833 if (bgotonextstatement)
1842 IkReal j6array[1], cj6array[1], sj6array[1];
1843 bool j6valid[1] = {
false };
1845 IkReal x1065 = ((2.0) * sj3);
1847 IkReal((((cj4 * npy * x1065)) + ((npx * sj4 * x1065)))),
1848 IkReal(((((-1.0) * cj4 * npx * x1065)) + ((npy * sj4 * x1065)))),
1855 IKsign(((((5.0) * (npx * npx))) + (((5.0) * (npy * npy))))), -1);
1860 j6array[0] = ((-1.5707963267949) + (x1066.
value) +
1861 (((1.5707963267949) * (x1067.
value))));
1862 sj6array[0] =
IKsin(j6array[0]);
1863 cj6array[0] =
IKcos(j6array[0]);
1864 if (j6array[0] >
IKPI)
1866 j6array[0] -=
IK2PI;
1868 else if (j6array[0] < -
IKPI)
1870 j6array[0] +=
IK2PI;
1873 for (
int ij6 = 0; ij6 < 1; ++ij6)
1881 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
1883 if (j6valid[iij6] &&
1884 IKabs(cj6array[ij6] - cj6array[iij6]) <
1888 j6valid[iij6] =
false;
1894 cj6 = cj6array[ij6];
1895 sj6 = sj6array[ij6];
1898 IkReal x1068 =
IKsin(j6);
1899 IkReal x1069 =
IKcos(j6);
1900 IkReal x1070 = ((0.4) * sj3);
1901 IkReal x1071 = ((1.0) * x1069);
1902 evalcond[0] = ((((-1.0) * npx * x1071)) + (((-1.0) * cj4 * x1070)) +
1904 evalcond[1] = ((((-1.0) * npy * x1071)) + (((-1.0) * npx * x1068)) +
1913 rotationfunction0(solutions);
1920 if (bgotonextstatement)
1922 bool bgotonextstatement =
true;
1926 ((-3.14159265358979) +
1927 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j5)))),
1928 6.28318530717959)));
1929 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1931 bgotonextstatement =
false;
1936 j5 = 3.14159265358979;
1937 IkReal x1072 = npx * npx;
1938 IkReal x1073 = npy * npy;
1939 IkReal x1074 = (cj4 * sj3);
1940 IkReal x1075 = (sj3 * sj4);
1941 j6eval[0] = (x1072 + x1073);
1942 j6eval[1] = ((
IKabs((((npx * x1074)) + ((npy * x1075))))) +
1943 (
IKabs(((((-1.0) * npy * x1074)) + ((npx * x1075))))));
1944 j6eval[2] =
IKsign(((((5.0) * x1073)) + (((5.0) * x1072))));
1945 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
1946 IKabs(j6eval[1]) < 0.0000010000000000 ||
1947 IKabs(j6eval[2]) < 0.0000010000000000)
1951 bool bgotonextstatement =
true;
1954 evalcond[0] = ((-3.14159265358979) +
1956 6.28318530717959)));
1957 if (
IKabs(evalcond[0]) < 0.0000050000000000)
1959 bgotonextstatement =
false;
1964 j5 = 3.14159265358979;
1969 if (
IKabs(j6eval[0]) < 0.0000010000000000)
1976 IkReal j6array[2], cj6array[2], sj6array[2];
1977 bool j6valid[2] = {
false };
1981 IkReal(((-1.0) * npy)),
1987 IkReal x1076 = x1077.
value;
1988 j6array[0] = ((-1.0) * x1076);
1989 sj6array[0] =
IKsin(j6array[0]);
1990 cj6array[0] =
IKcos(j6array[0]);
1991 j6array[1] = ((3.14159265358979) + (((-1.0) * x1076)));
1992 sj6array[1] =
IKsin(j6array[1]);
1993 cj6array[1] =
IKcos(j6array[1]);
1994 if (j6array[0] >
IKPI)
1996 j6array[0] -=
IK2PI;
1998 else if (j6array[0] < -
IKPI)
2000 j6array[0] +=
IK2PI;
2003 if (j6array[1] >
IKPI)
2005 j6array[1] -=
IK2PI;
2007 else if (j6array[1] < -
IKPI)
2009 j6array[1] +=
IK2PI;
2012 for (
int ij6 = 0; ij6 < 2; ++ij6)
2020 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
2022 if (j6valid[iij6] &&
2023 IKabs(cj6array[ij6] - cj6array[iij6]) <
2025 IKabs(sj6array[ij6] - sj6array[iij6]) <
2028 j6valid[iij6] =
false;
2034 cj6 = cj6array[ij6];
2035 sj6 = sj6array[ij6];
2038 evalcond[0] = ((((-1.0) * npy * (
IKcos(j6)))) +
2039 (((-1.0) * npx * (
IKsin(j6)))));
2046 rotationfunction0(solutions);
2053 if (bgotonextstatement)
2055 bool bgotonextstatement =
true;
2060 bgotonextstatement =
false;
2064 if (bgotonextstatement)
2073 IkReal j6array[1], cj6array[1], sj6array[1];
2074 bool j6valid[1] = {
false };
2076 IkReal x1078 = ((2.0) * sj3);
2078 IKsign(((((5.0) * (npx * npx))) + (((5.0) * (npy * npy))))), -1);
2084 IkReal(((((-1.0) * cj4 * npy * x1078)) + ((npx * sj4 * x1078)))),
2085 IkReal((((cj4 * npx * x1078)) + ((npy * sj4 * x1078)))),
2091 j6array[0] = ((-1.5707963267949) +
2092 (((1.5707963267949) * (x1079.
value))) + (x1080.
value));
2093 sj6array[0] =
IKsin(j6array[0]);
2094 cj6array[0] =
IKcos(j6array[0]);
2095 if (j6array[0] >
IKPI)
2097 j6array[0] -=
IK2PI;
2099 else if (j6array[0] < -
IKPI)
2101 j6array[0] +=
IK2PI;
2104 for (
int ij6 = 0; ij6 < 1; ++ij6)
2112 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2114 if (j6valid[iij6] &&
2115 IKabs(cj6array[ij6] - cj6array[iij6]) <
2117 IKabs(sj6array[ij6] - sj6array[iij6]) <
2120 j6valid[iij6] =
false;
2126 cj6 = cj6array[ij6];
2127 sj6 = sj6array[ij6];
2130 IkReal x1081 =
IKsin(j6);
2131 IkReal x1082 =
IKcos(j6);
2132 IkReal x1083 = ((0.4) * sj3);
2133 IkReal x1084 = ((1.0) * npy);
2134 evalcond[0] = ((((-1.0) * x1081 * x1084)) + ((npx * x1082)) +
2135 (((-1.0) * cj4 * x1083)));
2136 evalcond[1] = ((((-1.0) * x1082 * x1084)) + ((sj4 * x1083)) +
2137 (((-1.0) * npx * x1081)));
2145 rotationfunction0(solutions);
2152 if (bgotonextstatement)
2154 bool bgotonextstatement =
true;
2158 ((-3.14159265358979) +
2159 (
IKfmod(((3.14159265358979) + (
IKabs(((-1.5707963267949) + j5)))),
2160 6.28318530717959)));
2161 if (
IKabs(evalcond[0]) < 0.0000050000000000)
2163 bgotonextstatement =
false;
2168 j5 = 1.5707963267949;
2169 IkReal x1085 = npx * npx;
2170 IkReal x1086 = npy * npy;
2171 IkReal x1087 = ((2.0) * cj3);
2172 IkReal x1088 = ((2.0) * npx);
2173 IkReal x1089 = (sj3 * sj4);
2174 IkReal x1090 = ((2.0) * npy);
2175 j6eval[0] = (x1086 + x1085);
2176 j6eval[1] = ((
IKabs((x1088 + ((x1089 * x1090)) + ((npx * x1087))))) +
2177 (
IKabs(((((-1.0) * x1090)) + (((-1.0) * npy * x1087)) +
2178 ((x1088 * x1089))))));
2179 j6eval[2] =
IKsign(((((5.0) * x1085)) + (((5.0) * x1086))));
2180 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
2181 IKabs(j6eval[1]) < 0.0000010000000000 ||
2182 IKabs(j6eval[2]) < 0.0000010000000000)
2189 IkReal j6array[1], cj6array[1], sj6array[1];
2190 bool j6valid[1] = {
false };
2192 IkReal x1091 = ((2.0) * cj3);
2193 IkReal x1092 = ((2.0) * npx);
2194 IkReal x1093 = (sj3 * sj4);
2195 IkReal x1094 = ((2.0) * npy);
2197 IkReal(((((-1.0) * x1094)) + ((x1092 * x1093)) +
2198 (((-1.0) * npy * x1091)))),
2199 IkReal((((npx * x1091)) + x1092 + ((x1093 * x1094)))),
2206 IKsign(((((5.0) * (npx * npx))) + (((5.0) * (npy * npy))))),
2212 j6array[0] = ((-1.5707963267949) + (x1095.
value) +
2213 (((1.5707963267949) * (x1096.
value))));
2214 sj6array[0] =
IKsin(j6array[0]);
2215 cj6array[0] =
IKcos(j6array[0]);
2216 if (j6array[0] >
IKPI)
2218 j6array[0] -=
IK2PI;
2220 else if (j6array[0] < -
IKPI)
2222 j6array[0] +=
IK2PI;
2225 for (
int ij6 = 0; ij6 < 1; ++ij6)
2233 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2235 if (j6valid[iij6] &&
2236 IKabs(cj6array[ij6] - cj6array[iij6]) <
2238 IKabs(sj6array[ij6] - sj6array[iij6]) <
2241 j6valid[iij6] =
false;
2247 cj6 = cj6array[ij6];
2248 sj6 = sj6array[ij6];
2251 IkReal x1097 =
IKsin(j6);
2252 IkReal x1098 =
IKcos(j6);
2253 IkReal x1099 = ((1.0) * npx);
2254 evalcond[0] = ((0.4) + (((0.4) * cj3)) + ((npy * x1097)) +
2255 (((-1.0) * x1098 * x1099)));
2257 ((((-1.0) * x1097 * x1099)) + (((-1.0) * npy * x1098)) +
2258 (((0.4) * sj3 * sj4)));
2266 rotationfunction0(solutions);
2273 if (bgotonextstatement)
2275 bool bgotonextstatement =
true;
2279 ((-3.14159265358979) +
2280 (
IKfmod(((3.14159265358979) + (
IKabs(((1.5707963267949) + j5)))),
2281 6.28318530717959)));
2282 if (
IKabs(evalcond[0]) < 0.0000050000000000)
2284 bgotonextstatement =
false;
2289 j5 = -1.5707963267949;
2290 IkReal x1100 = npx * npx;
2291 IkReal x1101 = npy * npy;
2292 IkReal x1102 = ((2.0) * cj3);
2293 IkReal x1103 = ((2.0) * npx);
2294 IkReal x1104 = (sj3 * sj4);
2295 IkReal x1105 = ((2.0) * npy);
2296 j6eval[0] = (x1100 + x1101);
2297 j6eval[1] = ((
IKabs(((((-1.0) * npx * x1102)) + ((x1104 * x1105)) +
2298 (((-1.0) * x1103))))) +
2299 (
IKabs((x1105 + ((npy * x1102)) + ((x1103 * x1104))))));
2300 j6eval[2] =
IKsign(((((5.0) * x1101)) + (((5.0) * x1100))));
2301 if (
IKabs(j6eval[0]) < 0.0000010000000000 ||
2302 IKabs(j6eval[1]) < 0.0000010000000000 ||
2303 IKabs(j6eval[2]) < 0.0000010000000000)
2310 IkReal j6array[1], cj6array[1], sj6array[1];
2311 bool j6valid[1] = {
false };
2313 IkReal x1106 = ((2.0) * cj3);
2314 IkReal x1107 = ((2.0) * npx);
2315 IkReal x1108 = (sj3 * sj4);
2316 IkReal x1109 = ((2.0) * npy);
2318 IKsign(((((5.0) * (npx * npx))) + (((5.0) * (npy * npy))))),
2325 IkReal((x1109 + ((npy * x1106)) + ((x1107 * x1108)))),
2326 IkReal((((x1108 * x1109)) + (((-1.0) * npx * x1106)) +
2327 (((-1.0) * x1107)))),
2334 ((-1.5707963267949) + (((1.5707963267949) * (x1110.
value))) +
2336 sj6array[0] =
IKsin(j6array[0]);
2337 cj6array[0] =
IKcos(j6array[0]);
2338 if (j6array[0] >
IKPI)
2340 j6array[0] -=
IK2PI;
2342 else if (j6array[0] < -
IKPI)
2344 j6array[0] +=
IK2PI;
2347 for (
int ij6 = 0; ij6 < 1; ++ij6)
2355 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2357 if (j6valid[iij6] &&
2358 IKabs(cj6array[ij6] - cj6array[iij6]) <
2360 IKabs(sj6array[ij6] - sj6array[iij6]) <
2363 j6valid[iij6] =
false;
2369 cj6 = cj6array[ij6];
2370 sj6 = sj6array[ij6];
2373 IkReal x1112 =
IKsin(j6);
2374 IkReal x1113 =
IKcos(j6);
2375 IkReal x1114 = ((1.0) * x1112);
2376 evalcond[0] = ((0.4) + ((npx * x1113)) +
2377 (((-1.0) * npy * x1114)) + (((0.4) * cj3)));
2379 ((((-1.0) * npy * x1113)) + (((-1.0) * npx * x1114)) +
2380 (((0.4) * sj3 * sj4)));
2388 rotationfunction0(solutions);
2395 if (bgotonextstatement)
2397 bool bgotonextstatement =
true;
2402 bgotonextstatement =
false;
2406 if (bgotonextstatement)
2419 IkReal j6array[1], cj6array[1], sj6array[1];
2420 bool j6valid[1] = {
false };
2422 IkReal x1115 = ((2.0) * sj5);
2423 IkReal x1116 = ((2.0) * sj3);
2424 IkReal x1117 = (cj4 * cj5);
2426 IkReal((((npy * x1116 * x1117)) + (((-1.0) * npy * x1115)) +
2427 ((npx * sj4 * x1116)) + (((-1.0) * cj3 * npy * x1115)))),
2428 IkReal((((npx * x1115)) + (((-1.0) * npx * x1116 * x1117)) +
2429 ((npy * sj4 * x1116)) + ((cj3 * npx * x1115)))),
2436 IKsign(((((5.0) * (npx * npx))) + (((5.0) * (npy * npy))))), -1);
2442 ((-1.5707963267949) + (x1118.
value) + (((1.5707963267949) * (x1119.
value))));
2443 sj6array[0] =
IKsin(j6array[0]);
2444 cj6array[0] =
IKcos(j6array[0]);
2445 if (j6array[0] >
IKPI)
2447 j6array[0] -=
IK2PI;
2449 else if (j6array[0] < -
IKPI)
2451 j6array[0] +=
IK2PI;
2454 for (
int ij6 = 0; ij6 < 1; ++ij6)
2462 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2464 if (j6valid[iij6] &&
2468 j6valid[iij6] =
false;
2474 cj6 = cj6array[ij6];
2475 sj6 = sj6array[ij6];
2478 IkReal x1120 =
IKsin(j6);
2479 IkReal x1121 =
IKcos(j6);
2480 IkReal x1122 = ((0.4) * sj3);
2481 IkReal x1123 = ((1.0) * npx);
2482 IkReal x1124 = ((0.4) * sj5);
2483 IkReal x1125 = (npy * x1120);
2485 ((((-1.0) * npy * x1121)) + ((sj4 * x1122)) + (((-1.0) * x1120 * x1123)));
2486 evalcond[1] = (((npz * sj5)) + (((-1.0) * cj4 * x1122)) +
2487 (((-1.0) * cj5 * x1121 * x1123)) + ((cj5 * x1125)));
2488 evalcond[2] = ((0.4) + (((0.4) * cj3)) + (((-1.0) * sj5 * x1121 * x1123)) +
2489 (((-1.0) * cj5 * npz)) + ((sj5 * x1125)));
2490 evalcond[3] = ((((-1.0) * cj4 * cj5 * x1122)) + x1124 + x1125 +
2491 (((-1.0) * x1121 * x1123)) + ((cj3 * x1124)));
2501 rotationfunction0(solutions);
2510 IkReal j6array[1], cj6array[1], sj6array[1];
2511 bool j6valid[1] = {
false };
2513 IkReal x1126 = ((2.0) * cj3);
2514 IkReal x1127 = ((5.0) * sj5);
2515 IkReal x1128 = ((2.0) * npx);
2516 IkReal x1129 = ((2.0) * npy);
2517 IkReal x1130 = ((5.0) * cj5 * npz);
2518 IkReal x1131 = (sj3 * sj4 * sj5);
2520 IKsign((((x1127 * (npy * npy))) + ((x1127 * (npx * npx))))), -1);
2526 IkReal(((((-1.0) * npy * x1126)) + ((npy * x1130)) + (((-1.0) * x1129)) +
2527 ((x1128 * x1131)))),
2528 IkReal((x1128 + ((npx * x1126)) + (((-1.0) * npx * x1130)) + ((x1129 * x1131)))),
2535 ((-1.5707963267949) + (((1.5707963267949) * (x1132.
value))) + (x1133.
value));
2536 sj6array[0] =
IKsin(j6array[0]);
2537 cj6array[0] =
IKcos(j6array[0]);
2538 if (j6array[0] >
IKPI)
2540 j6array[0] -=
IK2PI;
2542 else if (j6array[0] < -
IKPI)
2544 j6array[0] +=
IK2PI;
2547 for (
int ij6 = 0; ij6 < 1; ++ij6)
2555 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2557 if (j6valid[iij6] &&
2561 j6valid[iij6] =
false;
2567 cj6 = cj6array[ij6];
2568 sj6 = sj6array[ij6];
2571 IkReal x1134 =
IKsin(j6);
2572 IkReal x1135 =
IKcos(j6);
2573 IkReal x1136 = ((0.4) * sj3);
2574 IkReal x1137 = ((1.0) * npx);
2575 IkReal x1138 = ((0.4) * sj5);
2576 IkReal x1139 = (npy * x1134);
2578 ((((-1.0) * npy * x1135)) + ((sj4 * x1136)) + (((-1.0) * x1134 * x1137)));
2579 evalcond[1] = ((((-1.0) * cj4 * x1136)) + ((npz * sj5)) +
2580 (((-1.0) * cj5 * x1135 * x1137)) + ((cj5 * x1139)));
2581 evalcond[2] = ((0.4) + (((-1.0) * sj5 * x1135 * x1137)) + (((0.4) * cj3)) +
2582 (((-1.0) * cj5 * npz)) + ((sj5 * x1139)));
2583 evalcond[3] = (x1139 + x1138 + ((cj3 * x1138)) + (((-1.0) * cj4 * cj5 * x1136)) +
2584 (((-1.0) * x1135 * x1137)));
2594 rotationfunction0(solutions);
2603 IkReal j6array[1], cj6array[1], sj6array[1];
2604 bool j6valid[1] = {
false };
2606 IkReal x1140 = (cj5 * sj4);
2607 IkReal x1141 = ((5.0) * cj5);
2608 IkReal x1142 = ((5.0) * npz * sj5);
2609 IkReal x1143 = ((2.0) * npy * sj3);
2610 IkReal x1144 = ((2.0) * npx * sj3);
2612 IkReal((((x1140 * x1144)) + (((-1.0) * npy * x1142)) + ((cj4 * x1143)))),
2613 IkReal((((x1140 * x1143)) + (((-1.0) * cj4 * x1144)) + ((npx * x1142)))),
2625 j6array[0] = ((-1.5707963267949) + (x1145.
value) + (((1.5707963267949) * (x1146.
value))));
2626 sj6array[0] =
IKsin(j6array[0]);
2627 cj6array[0] =
IKcos(j6array[0]);
2628 if (j6array[0] >
IKPI)
2630 j6array[0] -=
IK2PI;
2632 else if (j6array[0] < -
IKPI)
2634 j6array[0] +=
IK2PI;
2637 for (
int ij6 = 0; ij6 < 1; ++ij6)
2645 for (
int iij6 = ij6 + 1; iij6 < 1; ++iij6)
2650 j6valid[iij6] =
false;
2656 cj6 = cj6array[ij6];
2657 sj6 = sj6array[ij6];
2660 IkReal x1147 =
IKsin(j6);
2661 IkReal x1148 =
IKcos(j6);
2662 IkReal x1149 = ((0.4) * sj3);
2663 IkReal x1150 = ((1.0) * npx);
2664 IkReal x1151 = ((0.4) * sj5);
2665 IkReal x1152 = (npy * x1147);
2666 evalcond[0] = (((sj4 * x1149)) + (((-1.0) * x1147 * x1150)) + (((-1.0) * npy * x1148)));
2667 evalcond[1] = (((npz * sj5)) + (((-1.0) * cj4 * x1149)) +
2668 (((-1.0) * cj5 * x1148 * x1150)) + ((cj5 * x1152)));
2669 evalcond[2] = ((0.4) + (((0.4) * cj3)) + ((sj5 * x1152)) + (((-1.0) * cj5 * npz)) +
2670 (((-1.0) * sj5 * x1148 * x1150)));
2671 evalcond[3] = (x1151 + x1152 + ((cj3 * x1151)) + (((-1.0) * x1148 * x1150)) +
2672 (((-1.0) * cj4 * cj5 * x1149)));
2682 rotationfunction0(solutions);
2695 IkReal j6array[2], cj6array[2], sj6array[2];
2696 bool j6valid[2] = {
false };
2704 IkReal x1153 = ((1.0) * (x1155.
value));
2705 if ((((npx * npx) + (npy * npy))) < -0.00001)
2715 IkReal x1154 =
IKasin(((0.4) * sj3 * sj4 * (x1156.
value)));
2716 j6array[0] = ((((-1.0) * x1153)) + (((-1.0) * x1154)));
2717 sj6array[0] =
IKsin(j6array[0]);
2718 cj6array[0] =
IKcos(j6array[0]);
2719 j6array[1] = ((3.14159265358979) + x1154 + (((-1.0) * x1153)));
2720 sj6array[1] =
IKsin(j6array[1]);
2721 cj6array[1] =
IKcos(j6array[1]);
2722 if (j6array[0] >
IKPI)
2724 j6array[0] -=
IK2PI;
2726 else if (j6array[0] < -
IKPI)
2728 j6array[0] +=
IK2PI;
2731 if (j6array[1] >
IKPI)
2733 j6array[1] -=
IK2PI;
2735 else if (j6array[1] < -
IKPI)
2737 j6array[1] +=
IK2PI;
2740 for (
int ij6 = 0; ij6 < 2; ++ij6)
2748 for (
int iij6 = ij6 + 1; iij6 < 2; ++iij6)
2753 j6valid[iij6] =
false;
2759 cj6 = cj6array[ij6];
2760 sj6 = sj6array[ij6];
2764 IkReal x1157 = (cj6 * npx);
2765 IkReal x1158 = (npy * sj6);
2766 IkReal x1159 = ((2.0) * cj3);
2767 IkReal x1160 = ((5.0) * npz);
2768 IkReal x1161 = ((0.8) * cj4 * sj3);
2769 IkReal x1162 = (cj4 * npz * sj3);
2770 j5eval[0] = (x1158 + x1162 + ((cj3 * x1158)) + (((-1.0) * cj3 * x1157)) + (((-1.0) * x1157)));
2771 j5eval[1] = ((
IKabs(((-0.8) + (((-1.6) * cj3)) + ((npz * x1160)) + (((-0.8) * (cj3 * cj3)))))) +
2772 (
IKabs((x1161 + ((cj3 * x1161)) + ((x1158 * x1160)) + (((-1.0) * x1157 * x1160))))));
2773 j5eval[2] =
IKsign(((((-1.0) * x1157 * x1159)) + ((x1158 * x1159)) + (((2.0) * x1158)) +
2774 (((2.0) * x1162)) + (((-2.0) * x1157))));
2775 if (
IKabs(j5eval[0]) < 0.0000010000000000 ||
IKabs(j5eval[1]) < 0.0000010000000000 ||
2776 IKabs(j5eval[2]) < 0.0000010000000000)
2780 IkReal x1163 = cj3 * cj3;
2781 IkReal x1164 = cj4 * cj4;
2782 IkReal x1165 = ((10.0) * cj3);
2783 IkReal x1166 = (npy * sj6);
2784 IkReal x1167 = (cj6 * npx);
2785 IkReal x1168 = ((4.0) * x1164);
2786 IkReal x1169 = ((10.0) * cj4 * sj3);
2787 j5eval[0] = ((1.0) + x1164 + x1163 + (((-1.0) * x1163 * x1164)) + (((2.0) * cj3)));
2789 IKsign(((4.0) + x1168 + (((8.0) * cj3)) + (((-1.0) * x1163 * x1168)) + (((4.0) * x1163))));
2790 j5eval[2] = ((
IKabs((((x1165 * x1167)) + ((npz * x1169)) + (((10.0) * x1167)) +
2791 (((-10.0) * x1166)) + (((-1.0) * x1165 * x1166))))) +
2792 (
IKabs((((x1166 * x1169)) + (((10.0) * npz)) + ((npz * x1165)) +
2793 (((-1.0) * x1167 * x1169))))));
2794 if (
IKabs(j5eval[0]) < 0.0000010000000000 ||
IKabs(j5eval[1]) < 0.0000010000000000 ||
2795 IKabs(j5eval[2]) < 0.0000010000000000)
2799 IkReal x1170 = cj6 * cj6;
2800 IkReal x1171 = npy * npy;
2801 IkReal x1172 = npx * npx;
2802 IkReal x1173 = npz * npz;
2803 IkReal x1174 = ((2.0) * cj3);
2804 IkReal x1175 = (cj6 * npx);
2805 IkReal x1176 = ((2.0) * npz);
2806 IkReal x1177 = (cj4 * sj3);
2807 IkReal x1178 = ((2.0) * npy * sj6);
2808 IkReal x1179 = (x1170 * x1171);
2809 IkReal x1180 = (x1170 * x1172);
2810 j5eval[0] = (x1180 + x1173 + x1171 + (((-1.0) * x1175 * x1178)) + (((-1.0) * x1179)));
2812 ((
IKabs((((x1174 * x1175)) + ((x1176 * x1177)) + (((2.0) * x1175)) +
2813 (((-1.0) * npy * sj6 * x1174)) + (((-1.0) * x1178))))) +
2814 (
IKabs((x1176 + ((x1177 * x1178)) + ((npz * x1174)) + (((-2.0) * x1175 * x1177))))));
2815 j5eval[2] =
IKsign(((((5.0) * x1180)) + (((-5.0) * x1179)) + (((5.0) * x1171)) +
2816 (((5.0) * x1173)) + (((-10.0) * npy * sj6 * x1175))));
2817 if (
IKabs(j5eval[0]) < 0.0000010000000000 ||
IKabs(j5eval[1]) < 0.0000010000000000 ||
2818 IKabs(j5eval[2]) < 0.0000010000000000)
2822 bool bgotonextstatement =
true;
2825 evalcond[0] = ((-3.14159265358979) +
2826 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j3)))),
2827 6.28318530717959)));
2829 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
2830 IKabs(evalcond[1]) < 0.0000050000000000)
2832 bgotonextstatement =
false;
2837 j3 = 3.14159265358979;
2838 j5eval[0] =
IKabs((((cj6 * npx)) + (((-1.0) * npy * sj6))));
2839 if (
IKabs(j5eval[0]) < 0.0000000100000000)
2845 IkReal op[2 + 1], zeror[2];
2847 IkReal x1181 = (npy * sj6);
2848 IkReal x1182 = (cj6 * npx);
2849 op[0] = (x1182 + (((-1.0) * x1181)));
2851 op[2] = (x1181 + (((-1.0) * x1182)));
2852 polyroots2(op, zeror, numroots);
2853 IkReal j5array[2], cj5array[2], sj5array[2], tempj5array[1];
2854 int numsolutions = 0;
2855 for (
int ij5 = 0; ij5 < numroots; ++ij5)
2857 IkReal htj5 = zeror[ij5];
2858 tempj5array[0] = ((2.0) * (atan(htj5)));
2859 for (
int kj5 = 0; kj5 < 1; ++kj5)
2861 j5array[numsolutions] = tempj5array[kj5];
2862 if (j5array[numsolutions] >
IKPI)
2864 j5array[numsolutions] -=
IK2PI;
2866 else if (j5array[numsolutions] < -
IKPI)
2868 j5array[numsolutions] +=
IK2PI;
2870 sj5array[numsolutions] =
IKsin(j5array[numsolutions]);
2871 cj5array[numsolutions] =
IKcos(j5array[numsolutions]);
2875 bool j5valid[2] = {
true,
true };
2877 for (
int ij5 = 0; ij5 < numsolutions; ++ij5)
2884 cj5 = cj5array[ij5];
2885 sj5 = sj5array[ij5];
2886 htj5 =
IKtan(j5 / 2);
2890 for (
int iij5 = ij5 + 1; iij5 < numsolutions; ++iij5)
2892 if (j5valid[iij5] &&
2896 j5valid[iij5] =
false;
2901 rotationfunction0(solutions);
2907 if (bgotonextstatement)
2909 bool bgotonextstatement =
true;
2914 bgotonextstatement =
false;
2918 if (bgotonextstatement)
2927 IkReal j5array[1], cj5array[1], sj5array[1];
2928 bool j5valid[1] = {
false };
2930 IkReal x1183 = cj6 * cj6;
2931 IkReal x1184 = npy * npy;
2932 IkReal x1185 = (npy * sj6);
2933 IkReal x1186 = ((2.0) * cj3);
2934 IkReal x1187 = (cj6 * npx);
2935 IkReal x1188 = ((2.0) * npz);
2936 IkReal x1189 = (cj4 * sj3);
2937 IkReal x1190 = ((5.0) * x1184);
2939 IKsign((x1190 + (((-10.0) * x1185 * x1187)) + (((5.0) * (npz * npz))) +
2940 (((-1.0) * x1183 * x1190)) + (((5.0) * x1183 * (npx * npx))))),
2947 IKatan2WithCheck(IkReal((((x1186 * x1187)) + ((x1188 * x1189)) + (((2.0) * x1187)) +
2948 (((-2.0) * x1185)) + (((-1.0) * x1185 * x1186)))),
2949 IkReal(((((2.0) * x1185 * x1189)) + x1188 +
2950 (((-2.0) * x1187 * x1189)) + ((npz * x1186)))),
2957 ((-1.5707963267949) + (((1.5707963267949) * (x1191.
value))) + (x1192.
value));
2958 sj5array[0] =
IKsin(j5array[0]);
2959 cj5array[0] =
IKcos(j5array[0]);
2960 if (j5array[0] >
IKPI)
2962 j5array[0] -=
IK2PI;
2964 else if (j5array[0] < -
IKPI)
2966 j5array[0] +=
IK2PI;
2969 for (
int ij5 = 0; ij5 < 1; ++ij5)
2977 for (
int iij5 = ij5 + 1; iij5 < 1; ++iij5)
2979 if (j5valid[iij5] &&
2983 j5valid[iij5] =
false;
2989 cj5 = cj5array[ij5];
2990 sj5 = sj5array[ij5];
2993 IkReal x1193 =
IKcos(j5);
2994 IkReal x1194 =
IKsin(j5);
2995 IkReal x1195 = (npy * sj6);
2996 IkReal x1196 = ((1.0) * npz);
2997 IkReal x1197 = ((1.0) * cj6 * npx);
2998 IkReal x1198 = ((0.4) * cj4 * sj3);
2999 IkReal x1199 = ((0.4) * x1194);
3000 IkReal x1200 = ((0.4) * x1193);
3001 evalcond[0] = (x1200 + ((x1194 * x1198)) + (((-1.0) * x1196)) + ((cj3 * x1200)));
3002 evalcond[1] = ((((-1.0) * x1193 * x1197)) + (((-1.0) * x1198)) + ((npz * x1194)) +
3004 evalcond[2] = ((0.4) + (((-1.0) * x1193 * x1196)) + ((x1194 * x1195)) +
3005 (((-1.0) * x1194 * x1197)) + (((0.4) * cj3)));
3006 evalcond[3] = (x1199 + x1195 + (((-1.0) * x1193 * x1198)) + (((-1.0) * x1197)) +
3017 rotationfunction0(solutions);
3026 IkReal j5array[1], cj5array[1], sj5array[1];
3027 bool j5valid[1] = {
false };
3029 IkReal x1201 = cj3 * cj3;
3030 IkReal x1202 = cj4 * cj4;
3031 IkReal x1203 = ((10.0) * cj3);
3032 IkReal x1204 = (npy * sj6);
3033 IkReal x1205 = (cj6 * npx);
3034 IkReal x1206 = ((10.0) * cj4 * sj3);
3035 IkReal x1207 = ((4.0) * x1202);
3038 (((-1.0) * x1201 * x1207)))),
3045 IKatan2WithCheck(IkReal(((((-10.0) * x1204)) + (((10.0) * x1205)) + ((npz * x1206)) +
3046 ((x1203 * x1205)) + (((-1.0) * x1203 * x1204)))),
3047 IkReal((((x1204 * x1206)) + (((10.0) * npz)) + ((npz * x1203)) +
3048 (((-1.0) * x1205 * x1206)))),
3054 j5array[0] = ((-1.5707963267949) + (((1.5707963267949) * (x1208.
value))) + (x1209.
value));
3055 sj5array[0] =
IKsin(j5array[0]);
3056 cj5array[0] =
IKcos(j5array[0]);
3057 if (j5array[0] >
IKPI)
3059 j5array[0] -=
IK2PI;
3061 else if (j5array[0] < -
IKPI)
3063 j5array[0] +=
IK2PI;
3066 for (
int ij5 = 0; ij5 < 1; ++ij5)
3074 for (
int iij5 = ij5 + 1; iij5 < 1; ++iij5)
3079 j5valid[iij5] =
false;
3085 cj5 = cj5array[ij5];
3086 sj5 = sj5array[ij5];
3089 IkReal x1210 =
IKcos(j5);
3090 IkReal x1211 =
IKsin(j5);
3091 IkReal x1212 = (npy * sj6);
3092 IkReal x1213 = ((1.0) * npz);
3093 IkReal x1214 = ((1.0) * cj6 * npx);
3094 IkReal x1215 = ((0.4) * cj4 * sj3);
3095 IkReal x1216 = ((0.4) * x1211);
3096 IkReal x1217 = ((0.4) * x1210);
3097 evalcond[0] = (x1217 + ((cj3 * x1217)) + ((x1211 * x1215)) + (((-1.0) * x1213)));
3098 evalcond[1] = (((x1210 * x1212)) + ((npz * x1211)) + (((-1.0) * x1210 * x1214)) +
3099 (((-1.0) * x1215)));
3100 evalcond[2] = ((0.4) + (((0.4) * cj3)) + (((-1.0) * x1210 * x1213)) +
3101 (((-1.0) * x1211 * x1214)) + ((x1211 * x1212)));
3103 (x1212 + x1216 + (((-1.0) * x1210 * x1215)) + ((cj3 * x1216)) + (((-1.0) * x1214)));
3113 rotationfunction0(solutions);
3122 IkReal j5array[1], cj5array[1], sj5array[1];
3123 bool j5valid[1] = {
false };
3125 IkReal x1218 = (npy * sj6);
3126 IkReal x1219 = (cj6 * npx);
3127 IkReal x1220 = ((2.0) * cj3);
3128 IkReal x1221 = ((5.0) * npz);
3129 IkReal x1222 = ((0.8) * cj4 * sj3);
3131 IkReal(((-0.8) + ((npz * x1221)) + (((-1.6) * cj3)) + (((-0.8) * (cj3 * cj3))))),
3132 IkReal((x1222 + ((cj3 * x1222)) + ((x1218 * x1221)) + (((-1.0) * x1219 * x1221)))),
3139 IKsign((((x1218 * x1220)) + (((2.0) * x1218)) + (((-1.0) * x1219 * x1220)) +
3140 (((-2.0) * x1219)) + (((2.0) * cj4 * npz * sj3)))),
3146 j5array[0] = ((-1.5707963267949) + (x1223.
value) + (((1.5707963267949) * (x1224.
value))));
3147 sj5array[0] =
IKsin(j5array[0]);
3148 cj5array[0] =
IKcos(j5array[0]);
3149 if (j5array[0] >
IKPI)
3151 j5array[0] -=
IK2PI;
3153 else if (j5array[0] < -
IKPI)
3155 j5array[0] +=
IK2PI;
3158 for (
int ij5 = 0; ij5 < 1; ++ij5)
3166 for (
int iij5 = ij5 + 1; iij5 < 1; ++iij5)
3171 j5valid[iij5] =
false;
3177 cj5 = cj5array[ij5];
3178 sj5 = sj5array[ij5];
3181 IkReal x1225 =
IKcos(j5);
3182 IkReal x1226 =
IKsin(j5);
3183 IkReal x1227 = (npy * sj6);
3184 IkReal x1228 = ((1.0) * npz);
3185 IkReal x1229 = ((1.0) * cj6 * npx);
3186 IkReal x1230 = ((0.4) * cj4 * sj3);
3187 IkReal x1231 = ((0.4) * x1226);
3188 IkReal x1232 = ((0.4) * x1225);
3189 evalcond[0] = (((cj3 * x1232)) + x1232 + (((-1.0) * x1228)) + ((x1226 * x1230)));
3191 (((npz * x1226)) + (((-1.0) * x1225 * x1229)) + (((-1.0) * x1230)) + ((x1225 * x1227)));
3192 evalcond[2] = ((0.4) + (((-1.0) * x1225 * x1228)) + (((0.4) * cj3)) +
3193 (((-1.0) * x1226 * x1229)) + ((x1226 * x1227)));
3195 (((cj3 * x1231)) + x1231 + x1227 + (((-1.0) * x1225 * x1230)) + (((-1.0) * x1229)));
3205 rotationfunction0(solutions);
3221 for (
int rotationiter = 0; rotationiter < 1; ++rotationiter)
3223 IkReal x76 = (r02 * sj5);
3224 IkReal x77 = ((1.0) * cj5);
3225 IkReal x78 = ((1.0) * sj6);
3226 IkReal x79 = ((1.0) * cj4);
3227 IkReal x80 = ((1.0) * cj3);
3228 IkReal x81 = ((1.0) * sj4);
3229 IkReal x82 = ((1.0) * cj6);
3230 IkReal x83 = ((((-1.0) * r01 * x78)) + ((cj6 * r00)));
3231 IkReal x84 = (((cj6 * r10)) + (((-1.0) * r11 * x78)));
3232 IkReal x85 = ((((-1.0) * r21 * x78)) + ((cj6 * r20)));
3233 IkReal x86 = ((((-1.0) * r00 * x78)) + (((-1.0) * r01 * x82)));
3234 IkReal x87 = ((((-1.0) * r11 * x82)) + (((-1.0) * r10 * x78)));
3235 IkReal x88 = ((((-1.0) * r20 * x78)) + (((-1.0) * r21 * x82)));
3236 IkReal x89 = (((sj5 * x83)) + ((cj5 * r02)));
3237 IkReal x90 = ((((-1.0) * x77 * x83)) + x76);
3238 IkReal x91 = ((((-1.0) * x77 * x84)) + ((r12 * sj5)));
3239 IkReal x92 = (((cj5 * r12)) + ((sj5 * x84)));
3240 IkReal x93 = (((r22 * sj5)) + (((-1.0) * x77 * x85)));
3241 IkReal x94 = (((cj5 * r22)) + ((sj5 * x85)));
3242 IkReal x95 = (sj4 * x86);
3243 IkReal x96 = ((1.0) * x88);
3244 IkReal x97 = ((((-1.0) * x81 * x87)) + ((cj4 * x91)));
3245 IkReal x98 = ((((-1.0) * x81 * x88)) + ((cj4 * x93)));
3246 new_r00 = ((((-1.0) * x80 * ((((cj4 * (((((-1.0) * cj5 * x83)) + x76)))) + (((-1.0) * x95)))))) + ((sj3 * x89)));
3247 new_r01 = ((((-1.0) * x79 * x86)) + (((-1.0) * x81 * x90)));
3248 new_r02 = (((cj3 * x89)) + ((sj3 * (((((-1.0) * x81 * x86)) + ((cj4 * x90)))))));
3249 new_r10 = (((sj3 * x92)) + (((-1.0) * x80 * x97)));
3250 new_r11 = ((((-1.0) * x79 * x87)) + (((-1.0) * x81 * x91)));
3251 new_r12 = (((sj3 * x97)) + ((cj3 * x92)));
3252 new_r20 = (((sj3 * x94)) + (((-1.0) * x80 * x98)));
3253 new_r21 = ((((-1.0) * x79 * x88)) + (((-1.0) * x81 * x93)));
3254 new_r22 = (((sj3 * x98)) + ((cj3 * x94)));
3256 IkReal j1array[2], cj1array[2], sj1array[2];
3257 bool j1valid[2] = {
false };
3259 cj1array[0] = new_r22;
3262 j1valid[0] = j1valid[1] =
true;
3263 j1array[0] =
IKacos(cj1array[0]);
3264 sj1array[0] =
IKsin(j1array[0]);
3265 cj1array[1] = cj1array[0];
3266 j1array[1] = -j1array[0];
3267 sj1array[1] = -sj1array[0];
3269 else if (isnan(cj1array[0]))
3277 for (
int ij1 = 0; ij1 < 2; ++ij1)
3285 for (
int iij1 = ij1 + 1; iij1 < 2; ++iij1)
3290 j1valid[iij1] =
false;
3296 cj1 = cj1array[ij1];
3297 sj1 = sj1array[ij1];
3302 j0eval[1] = ((
IKabs(new_r12)) + (
IKabs(new_r02)));
3304 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
IKabs(j0eval[1]) < 0.0000010000000000 ||
3305 IKabs(j0eval[2]) < 0.0000010000000000)
3311 j2eval[2] = ((
IKabs(new_r20)) + (
IKabs(new_r21)));
3312 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000 ||
3313 IKabs(j2eval[2]) < 0.0000010000000000)
3317 j0eval[0] = new_r12;
3319 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
IKabs(j0eval[1]) < 0.0000010000000000)
3323 bool bgotonextstatement =
true;
3327 ((-3.14159265358979) + (
IKfmod(((3.14159265358979) + (
IKabs(j1))), 6.28318530717959)));
3328 evalcond[1] = new_r21;
3329 evalcond[2] = new_r02;
3330 evalcond[3] = new_r12;
3331 evalcond[4] = new_r20;
3332 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
IKabs(evalcond[1]) < 0.0000050000000000 &&
3333 IKabs(evalcond[2]) < 0.0000050000000000 &&
IKabs(evalcond[3]) < 0.0000050000000000 &&
3334 IKabs(evalcond[4]) < 0.0000050000000000)
3336 bgotonextstatement =
false;
3345 j0 =
IKatan2(((-1.0) * new_r10), ((-1.0) * new_r00));
3347 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
3348 vinfos[0].jointtype = 1;
3349 vinfos[0].foffset = j0;
3350 vinfos[0].fmul = j0mul;
3351 vinfos[0].freeind = 0;
3352 vinfos[0].maxsolutions = 0;
3353 vinfos[1].jointtype = 1;
3354 vinfos[1].foffset = j1;
3355 vinfos[1].indices[0] = _ij1[0];
3356 vinfos[1].indices[1] = _ij1[1];
3357 vinfos[1].maxsolutions = _nj1;
3358 vinfos[2].jointtype = 1;
3359 vinfos[2].foffset = j2;
3360 vinfos[2].fmul = j2mul;
3361 vinfos[2].freeind = 0;
3362 vinfos[2].maxsolutions = 0;
3363 vinfos[3].jointtype = 1;
3364 vinfos[3].foffset = j3;
3365 vinfos[3].indices[0] = _ij3[0];
3366 vinfos[3].indices[1] = _ij3[1];
3367 vinfos[3].maxsolutions = _nj3;
3368 vinfos[4].jointtype = 1;
3369 vinfos[4].foffset = j4;
3370 vinfos[4].indices[0] = _ij4[0];
3371 vinfos[4].indices[1] = _ij4[1];
3372 vinfos[4].maxsolutions = _nj4;
3373 vinfos[5].jointtype = 1;
3374 vinfos[5].foffset = j5;
3375 vinfos[5].indices[0] = _ij5[0];
3376 vinfos[5].indices[1] = _ij5[1];
3377 vinfos[5].maxsolutions = _nj5;
3378 vinfos[6].jointtype = 1;
3379 vinfos[6].foffset = j6;
3380 vinfos[6].indices[0] = _ij6[0];
3381 vinfos[6].indices[1] = _ij6[1];
3382 vinfos[6].maxsolutions = _nj6;
3383 std::vector<int> vfree(1);
3389 if (bgotonextstatement)
3391 bool bgotonextstatement =
true;
3394 evalcond[0] = ((-3.14159265358979) +
3395 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j1)))),
3396 6.28318530717959)));
3397 evalcond[1] = new_r21;
3398 evalcond[2] = new_r02;
3399 evalcond[3] = new_r12;
3400 evalcond[4] = new_r20;
3401 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
IKabs(evalcond[1]) < 0.0000050000000000 &&
3402 IKabs(evalcond[2]) < 0.0000050000000000 &&
IKabs(evalcond[3]) < 0.0000050000000000 &&
3403 IKabs(evalcond[4]) < 0.0000050000000000)
3405 bgotonextstatement =
false;
3413 j0 =
IKatan2(new_r10, ((-1.0) * new_r11));
3415 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
3416 vinfos[0].jointtype = 1;
3417 vinfos[0].foffset = j0;
3418 vinfos[0].fmul = j0mul;
3419 vinfos[0].freeind = 0;
3420 vinfos[0].maxsolutions = 0;
3421 vinfos[1].jointtype = 1;
3422 vinfos[1].foffset = j1;
3423 vinfos[1].indices[0] = _ij1[0];
3424 vinfos[1].indices[1] = _ij1[1];
3425 vinfos[1].maxsolutions = _nj1;
3426 vinfos[2].jointtype = 1;
3427 vinfos[2].foffset = j2;
3428 vinfos[2].fmul = j2mul;
3429 vinfos[2].freeind = 0;
3430 vinfos[2].maxsolutions = 0;
3431 vinfos[3].jointtype = 1;
3432 vinfos[3].foffset = j3;
3433 vinfos[3].indices[0] = _ij3[0];
3434 vinfos[3].indices[1] = _ij3[1];
3435 vinfos[3].maxsolutions = _nj3;
3436 vinfos[4].jointtype = 1;
3437 vinfos[4].foffset = j4;
3438 vinfos[4].indices[0] = _ij4[0];
3439 vinfos[4].indices[1] = _ij4[1];
3440 vinfos[4].maxsolutions = _nj4;
3441 vinfos[5].jointtype = 1;
3442 vinfos[5].foffset = j5;
3443 vinfos[5].indices[0] = _ij5[0];
3444 vinfos[5].indices[1] = _ij5[1];
3445 vinfos[5].maxsolutions = _nj5;
3446 vinfos[6].jointtype = 1;
3447 vinfos[6].foffset = j6;
3448 vinfos[6].indices[0] = _ij6[0];
3449 vinfos[6].indices[1] = _ij6[1];
3450 vinfos[6].maxsolutions = _nj6;
3451 std::vector<int> vfree(1);
3457 if (bgotonextstatement)
3459 bool bgotonextstatement =
true;
3462 evalcond[0] = ((
IKabs(new_r12)) + (
IKabs(new_r02)));
3463 if (
IKabs(evalcond[0]) < 0.0000050000000000)
3465 bgotonextstatement =
false;
3472 IkReal x99 = new_r22 * new_r22;
3473 IkReal x100 = ((16.0) * new_r10);
3474 IkReal x101 = ((16.0) * new_r01);
3475 IkReal x102 = ((16.0) * new_r22);
3476 IkReal x103 = ((8.0) * new_r11);
3477 IkReal x104 = ((8.0) * new_r00);
3478 IkReal x105 = (x100 * x99);
3479 IkReal x106 = (x101 * x99);
3482 ((((16.0) * new_r00)) + (((-32.0) * new_r00 * x99)) + ((new_r11 * x102))))) +
3483 (
IKabs(((((-1.0) * x105)) + x100))) + (
IKabs(((((-1.0) * x100)) + x105))) +
3484 (
IKabs(((((32.0) * new_r11)) + (((-1.0) * new_r00 * x102)) +
3485 (((-16.0) * new_r11 * x99))))) +
3486 (
IKabs(((((-1.0) * x101)) + x106))) +
3487 (
IKabs((((x103 * x99)) + (((-1.0) * new_r22 * x104))))) +
3488 (
IKabs((((new_r22 * x103)) + (((-1.0) * x104))))) +
3489 (
IKabs(((((-1.0) * x106)) + x101))));
3490 if (
IKabs(j0eval[0]) < 0.0000000100000000)
3496 IkReal op[4 + 1], zeror[4];
3498 IkReal j0evalpoly[1];
3499 IkReal x107 = new_r22 * new_r22;
3500 IkReal x108 = ((16.0) * new_r10);
3501 IkReal x109 = (new_r11 * new_r22);
3502 IkReal x110 = (x107 * x108);
3503 IkReal x111 = ((((8.0) * x109)) + (((-8.0) * new_r00)));
3505 op[1] = ((((-1.0) * x110)) + x108);
3506 op[2] = ((((16.0) * x109)) + (((-32.0) * new_r00 * x107)) + (((16.0) * new_r00)));
3507 op[3] = ((((-1.0) * x108)) + x110);
3509 polyroots4(op, zeror, numroots);
3510 IkReal j0array[4], cj0array[4], sj0array[4], tempj0array[1];
3511 int numsolutions = 0;
3512 for (
int ij0 = 0; ij0 < numroots; ++ij0)
3514 IkReal htj0 = zeror[ij0];
3515 tempj0array[0] = ((2.0) * (atan(htj0)));
3516 for (
int kj0 = 0; kj0 < 1; ++kj0)
3518 j0array[numsolutions] = tempj0array[kj0];
3519 if (j0array[numsolutions] >
IKPI)
3521 j0array[numsolutions] -=
IK2PI;
3523 else if (j0array[numsolutions] < -
IKPI)
3525 j0array[numsolutions] +=
IK2PI;
3527 sj0array[numsolutions] =
IKsin(j0array[numsolutions]);
3528 cj0array[numsolutions] =
IKcos(j0array[numsolutions]);
3532 bool j0valid[4] = {
true,
true,
true,
true };
3534 for (
int ij0 = 0; ij0 < numsolutions; ++ij0)
3541 cj0 = cj0array[ij0];
3542 sj0 = sj0array[ij0];
3543 htj0 =
IKtan(j0 / 2);
3545 IkReal x112 = ((16.0) * new_r01);
3546 IkReal x113 = new_r22 * new_r22;
3547 IkReal x114 = (new_r00 * new_r22);
3548 IkReal x115 = ((8.0) * x114);
3549 IkReal x116 = (new_r11 * x113);
3550 IkReal x117 = (x112 * x113);
3551 IkReal x118 = ((8.0) * x116);
3553 (((htj0 * (((((-1.0) * x117)) + x112)))) +
3554 (((htj0 * htj0 * htj0) * (((((-1.0) * x112)) + x117)))) + (((-1.0) * x115)) +
3557 (((((32.0) * new_r11)) + (((-16.0) * x114)) + (((-16.0) * x116)))))) +
3558 (((htj0 * htj0 * htj0 * htj0) * (((((-1.0) * x115)) + x118)))));
3559 if (
IKabs(j0evalpoly[0]) > 0.0000001000000000)
3565 for (
int iij0 = ij0 + 1; iij0 < numsolutions; ++iij0)
3567 if (j0valid[iij0] &&
3571 j0valid[iij0] =
false;
3582 IkReal x119 = cj0 * cj0;
3583 IkReal x120 = new_r22 * new_r22;
3584 IkReal x121 = ((1.0) * cj0);
3585 IkReal x122 = (new_r22 * sj0);
3586 IkReal x123 = (x120 + x119 + (((-1.0) * x119 * x120)));
3589 ((
IKabs(((((-1.0) * new_r10 * x122)) + (((-1.0) * new_r11 * x121))))) +
3590 (
IKabs(((((-1.0) * new_r10 * x121)) + ((new_r11 * x122))))));
3591 j2eval[2] =
IKsign(x123);
3592 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
3593 IKabs(j2eval[1]) < 0.0000010000000000 ||
3594 IKabs(j2eval[2]) < 0.0000010000000000)
3602 j2eval[0] = new_r22;
3603 if (
IKabs(j2eval[0]) < 0.0000010000000000)
3612 if (
IKabs(j2eval[0]) < 0.0000010000000000)
3616 bool bgotonextstatement =
true;
3619 evalcond[0] = ((-3.14159265358979) +
3620 (
IKfmod(((3.14159265358979) +
3621 (
IKabs(((-1.5707963267949) + j0)))),
3622 6.28318530717959)));
3623 if (
IKabs(evalcond[0]) < 0.0000050000000000)
3625 bgotonextstatement =
false;
3627 IkReal j2array[1], cj2array[1], sj2array[1];
3628 bool j2valid[1] = {
false };
3635 j2array[0] =
IKatan2(new_r00, new_r01);
3636 sj2array[0] =
IKsin(j2array[0]);
3637 cj2array[0] =
IKcos(j2array[0]);
3638 if (j2array[0] >
IKPI)
3640 j2array[0] -=
IK2PI;
3642 else if (j2array[0] < -
IKPI)
3644 j2array[0] +=
IK2PI;
3647 for (
int ij2 = 0; ij2 < 1; ++ij2)
3655 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
3657 if (j2valid[iij2] &&
3658 IKabs(cj2array[ij2] - cj2array[iij2]) <
3660 IKabs(sj2array[ij2] - sj2array[iij2]) <
3663 j2valid[iij2] =
false;
3669 cj2 = cj2array[ij2];
3670 sj2 = sj2array[ij2];
3673 IkReal x124 =
IKsin(j2);
3674 IkReal x125 =
IKcos(j2);
3676 evalcond[1] = ((-1.0) * x124);
3677 evalcond[2] = (x124 + (((-1.0) * new_r00)));
3678 evalcond[3] = (x125 + (((-1.0) * new_r01)));
3689 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
3690 vinfos[0].jointtype = 1;
3691 vinfos[0].foffset = j0;
3692 vinfos[0].indices[0] = _ij0[0];
3693 vinfos[0].indices[1] = _ij0[1];
3694 vinfos[0].maxsolutions = _nj0;
3695 vinfos[1].jointtype = 1;
3696 vinfos[1].foffset = j1;
3697 vinfos[1].indices[0] = _ij1[0];
3698 vinfos[1].indices[1] = _ij1[1];
3699 vinfos[1].maxsolutions = _nj1;
3700 vinfos[2].jointtype = 1;
3701 vinfos[2].foffset = j2;
3702 vinfos[2].indices[0] = _ij2[0];
3703 vinfos[2].indices[1] = _ij2[1];
3704 vinfos[2].maxsolutions = _nj2;
3705 vinfos[3].jointtype = 1;
3706 vinfos[3].foffset = j3;
3707 vinfos[3].indices[0] = _ij3[0];
3708 vinfos[3].indices[1] = _ij3[1];
3709 vinfos[3].maxsolutions = _nj3;
3710 vinfos[4].jointtype = 1;
3711 vinfos[4].foffset = j4;
3712 vinfos[4].indices[0] = _ij4[0];
3713 vinfos[4].indices[1] = _ij4[1];
3714 vinfos[4].maxsolutions = _nj4;
3715 vinfos[5].jointtype = 1;
3716 vinfos[5].foffset = j5;
3717 vinfos[5].indices[0] = _ij5[0];
3718 vinfos[5].indices[1] = _ij5[1];
3719 vinfos[5].maxsolutions = _nj5;
3720 vinfos[6].jointtype = 1;
3721 vinfos[6].foffset = j6;
3722 vinfos[6].indices[0] = _ij6[0];
3723 vinfos[6].indices[1] = _ij6[1];
3724 vinfos[6].maxsolutions = _nj6;
3725 std::vector<int> vfree(0);
3732 if (bgotonextstatement)
3734 bool bgotonextstatement =
true;
3737 evalcond[0] = ((-3.14159265358979) +
3738 (
IKfmod(((3.14159265358979) +
3739 (
IKabs(((1.5707963267949) + j0)))),
3740 6.28318530717959)));
3741 if (
IKabs(evalcond[0]) < 0.0000050000000000)
3743 bgotonextstatement =
false;
3745 IkReal j2array[1], cj2array[1], sj2array[1];
3746 bool j2valid[1] = {
false };
3751 IKsqr(((-1.0) * new_r01)) - 1) <=
3755 IKatan2(((-1.0) * new_r00), ((-1.0) * new_r01));
3756 sj2array[0] =
IKsin(j2array[0]);
3757 cj2array[0] =
IKcos(j2array[0]);
3758 if (j2array[0] >
IKPI)
3760 j2array[0] -=
IK2PI;
3762 else if (j2array[0] < -
IKPI)
3764 j2array[0] +=
IK2PI;
3767 for (
int ij2 = 0; ij2 < 1; ++ij2)
3775 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
3777 if (j2valid[iij2] &&
3778 IKabs(cj2array[ij2] - cj2array[iij2]) <
3780 IKabs(sj2array[ij2] - sj2array[iij2]) <
3783 j2valid[iij2] =
false;
3789 cj2 = cj2array[ij2];
3790 sj2 = sj2array[ij2];
3793 IkReal x126 =
IKcos(j2);
3794 IkReal x127 =
IKsin(j2);
3796 evalcond[1] = (x127 + new_r00);
3797 evalcond[2] = (x126 + new_r01);
3798 evalcond[3] = ((-1.0) * x127);
3809 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
3810 vinfos[0].jointtype = 1;
3811 vinfos[0].foffset = j0;
3812 vinfos[0].indices[0] = _ij0[0];
3813 vinfos[0].indices[1] = _ij0[1];
3814 vinfos[0].maxsolutions = _nj0;
3815 vinfos[1].jointtype = 1;
3816 vinfos[1].foffset = j1;
3817 vinfos[1].indices[0] = _ij1[0];
3818 vinfos[1].indices[1] = _ij1[1];
3819 vinfos[1].maxsolutions = _nj1;
3820 vinfos[2].jointtype = 1;
3821 vinfos[2].foffset = j2;
3822 vinfos[2].indices[0] = _ij2[0];
3823 vinfos[2].indices[1] = _ij2[1];
3824 vinfos[2].maxsolutions = _nj2;
3825 vinfos[3].jointtype = 1;
3826 vinfos[3].foffset = j3;
3827 vinfos[3].indices[0] = _ij3[0];
3828 vinfos[3].indices[1] = _ij3[1];
3829 vinfos[3].maxsolutions = _nj3;
3830 vinfos[4].jointtype = 1;
3831 vinfos[4].foffset = j4;
3832 vinfos[4].indices[0] = _ij4[0];
3833 vinfos[4].indices[1] = _ij4[1];
3834 vinfos[4].maxsolutions = _nj4;
3835 vinfos[5].jointtype = 1;
3836 vinfos[5].foffset = j5;
3837 vinfos[5].indices[0] = _ij5[0];
3838 vinfos[5].indices[1] = _ij5[1];
3839 vinfos[5].maxsolutions = _nj5;
3840 vinfos[6].jointtype = 1;
3841 vinfos[6].foffset = j6;
3842 vinfos[6].indices[0] = _ij6[0];
3843 vinfos[6].indices[1] = _ij6[1];
3844 vinfos[6].maxsolutions = _nj6;
3845 std::vector<int> vfree(0);
3852 if (bgotonextstatement)
3854 bool bgotonextstatement =
true;
3857 IkReal x128 = new_r22 * new_r22;
3864 if ((((-1.0) * x128 * (x129.
value))) < -0.00001)
3866 IkReal gconst12 =
IKsqrt(((-1.0) * x128 * (x129.
value)));
3868 ((-3.14159265358979) +
3869 (
IKfmod(((3.14159265358979) +
3870 (
IKabs((cj0 + (((-1.0) * gconst12))))) +
3872 6.28318530717959)));
3873 if (
IKabs(evalcond[0]) < 0.0000050000000000)
3875 bgotonextstatement =
false;
3878 IkReal x130 = new_r22 * new_r22;
3883 if ((((1.0) + (((-1.0) * (gconst12 * gconst12))))) <
3887 IKsqrt(((1.0) + (((-1.0) * (gconst12 * gconst12)))));
3894 ((1.0) + (((-1.0) * x130))), -1);
3899 if ((((-1.0) * x130 * (x131.
value))) < -0.00001)
3901 IkReal gconst12 =
IKsqrt(((-1.0) * x130 * (x131.
value)));
3902 j2eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r10)));
3903 if (
IKabs(j2eval[0]) < 0.0000010000000000)
3906 IkReal j2array[1], cj2array[1], sj2array[1];
3907 bool j2valid[1] = {
false };
3915 if ((((1.0) + (((-1.0) * (gconst12 * gconst12))))) <
3918 if (
IKabs(((-1.0) * new_r10 * (x132.
value))) <
3923 (gconst12 * gconst12)))))))) +
3924 (((-1.0) * gconst12 * new_r11)))) <
3929 (
IKsqrt(((1.0) + (((-1.0) *
3932 (((-1.0) * gconst12 * new_r11)))) -
3936 ((-1.0) * new_r10 * (x132.
value)),
3938 (
IKsqrt(((1.0) + (((-1.0) * (gconst12 *
3940 (((-1.0) * gconst12 * new_r11))));
3941 sj2array[0] =
IKsin(j2array[0]);
3942 cj2array[0] =
IKcos(j2array[0]);
3943 if (j2array[0] >
IKPI)
3945 j2array[0] -=
IK2PI;
3947 else if (j2array[0] < -
IKPI)
3949 j2array[0] +=
IK2PI;
3952 for (
int ij2 = 0; ij2 < 1; ++ij2)
3960 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
3962 if (j2valid[iij2] &&
3963 IKabs(cj2array[ij2] - cj2array[iij2]) <
3965 IKabs(sj2array[ij2] - sj2array[iij2]) <
3968 j2valid[iij2] =
false;
3974 cj2 = cj2array[ij2];
3975 sj2 = sj2array[ij2];
3978 IkReal x133 =
IKsin(j2);
3979 IkReal x134 =
IKcos(j2);
3981 (((-1.0) * (gconst12 * gconst12))))) <
3985 ((1.0) + (((-1.0) * (gconst12 * gconst12)))));
3986 IkReal x136 = ((1.0) * x135);
3988 evalcond[1] = ((-1.0) * x133);
3989 evalcond[2] = (((gconst12 * x133)) + new_r10);
3990 evalcond[3] = (((gconst12 * x134)) + new_r11);
3992 ((((-1.0) * x133 * x136)) + new_r00);
3994 ((((-1.0) * x134 * x136)) + new_r01);
3995 evalcond[6] = ((((-1.0) * new_r00 * x136)) +
3996 x133 + ((gconst12 * new_r10)));
3997 evalcond[7] = ((((-1.0) * new_r01 * x136)) +
3998 x134 + ((gconst12 * new_r11)));
4013 std::vector<IkSingleDOFSolutionBase<IkReal> >
4015 vinfos[0].jointtype = 1;
4016 vinfos[0].foffset = j0;
4017 vinfos[0].indices[0] = _ij0[0];
4018 vinfos[0].indices[1] = _ij0[1];
4019 vinfos[0].maxsolutions = _nj0;
4020 vinfos[1].jointtype = 1;
4021 vinfos[1].foffset = j1;
4022 vinfos[1].indices[0] = _ij1[0];
4023 vinfos[1].indices[1] = _ij1[1];
4024 vinfos[1].maxsolutions = _nj1;
4025 vinfos[2].jointtype = 1;
4026 vinfos[2].foffset = j2;
4027 vinfos[2].indices[0] = _ij2[0];
4028 vinfos[2].indices[1] = _ij2[1];
4029 vinfos[2].maxsolutions = _nj2;
4030 vinfos[3].jointtype = 1;
4031 vinfos[3].foffset = j3;
4032 vinfos[3].indices[0] = _ij3[0];
4033 vinfos[3].indices[1] = _ij3[1];
4034 vinfos[3].maxsolutions = _nj3;
4035 vinfos[4].jointtype = 1;
4036 vinfos[4].foffset = j4;
4037 vinfos[4].indices[0] = _ij4[0];
4038 vinfos[4].indices[1] = _ij4[1];
4039 vinfos[4].maxsolutions = _nj4;
4040 vinfos[5].jointtype = 1;
4041 vinfos[5].foffset = j5;
4042 vinfos[5].indices[0] = _ij5[0];
4043 vinfos[5].indices[1] = _ij5[1];
4044 vinfos[5].maxsolutions = _nj5;
4045 vinfos[6].jointtype = 1;
4046 vinfos[6].foffset = j6;
4047 vinfos[6].indices[0] = _ij6[0];
4048 vinfos[6].indices[1] = _ij6[1];
4049 vinfos[6].maxsolutions = _nj6;
4050 std::vector<int> vfree(0);
4059 IkReal j2array[1], cj2array[1], sj2array[1];
4060 bool j2valid[1] = {
false };
4064 IkReal(((-1.0) * new_r11)),
4076 j2array[0] = ((-1.5707963267949) + (x137.
value) +
4077 (((1.5707963267949) * (x138.
value))));
4078 sj2array[0] =
IKsin(j2array[0]);
4079 cj2array[0] =
IKcos(j2array[0]);
4080 if (j2array[0] >
IKPI)
4082 j2array[0] -=
IK2PI;
4084 else if (j2array[0] < -
IKPI)
4086 j2array[0] +=
IK2PI;
4089 for (
int ij2 = 0; ij2 < 1; ++ij2)
4097 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
4099 if (j2valid[iij2] &&
4100 IKabs(cj2array[ij2] - cj2array[iij2]) <
4102 IKabs(sj2array[ij2] - sj2array[iij2]) <
4105 j2valid[iij2] =
false;
4111 cj2 = cj2array[ij2];
4112 sj2 = sj2array[ij2];
4115 IkReal x139 =
IKsin(j2);
4116 IkReal x140 =
IKcos(j2);
4118 (((-1.0) * (gconst12 * gconst12))))) <
4122 ((1.0) + (((-1.0) * (gconst12 * gconst12)))));
4123 IkReal x142 = ((1.0) * x141);
4125 evalcond[1] = ((-1.0) * x139);
4126 evalcond[2] = (((gconst12 * x139)) + new_r10);
4127 evalcond[3] = (((gconst12 * x140)) + new_r11);
4129 ((((-1.0) * x139 * x142)) + new_r00);
4131 ((((-1.0) * x140 * x142)) + new_r01);
4133 (x139 + (((-1.0) * new_r00 * x142)) +
4134 ((gconst12 * new_r10)));
4135 evalcond[7] = ((((-1.0) * new_r01 * x142)) +
4136 x140 + ((gconst12 * new_r11)));
4151 std::vector<IkSingleDOFSolutionBase<IkReal> >
4153 vinfos[0].jointtype = 1;
4154 vinfos[0].foffset = j0;
4155 vinfos[0].indices[0] = _ij0[0];
4156 vinfos[0].indices[1] = _ij0[1];
4157 vinfos[0].maxsolutions = _nj0;
4158 vinfos[1].jointtype = 1;
4159 vinfos[1].foffset = j1;
4160 vinfos[1].indices[0] = _ij1[0];
4161 vinfos[1].indices[1] = _ij1[1];
4162 vinfos[1].maxsolutions = _nj1;
4163 vinfos[2].jointtype = 1;
4164 vinfos[2].foffset = j2;
4165 vinfos[2].indices[0] = _ij2[0];
4166 vinfos[2].indices[1] = _ij2[1];
4167 vinfos[2].maxsolutions = _nj2;
4168 vinfos[3].jointtype = 1;
4169 vinfos[3].foffset = j3;
4170 vinfos[3].indices[0] = _ij3[0];
4171 vinfos[3].indices[1] = _ij3[1];
4172 vinfos[3].maxsolutions = _nj3;
4173 vinfos[4].jointtype = 1;
4174 vinfos[4].foffset = j4;
4175 vinfos[4].indices[0] = _ij4[0];
4176 vinfos[4].indices[1] = _ij4[1];
4177 vinfos[4].maxsolutions = _nj4;
4178 vinfos[5].jointtype = 1;
4179 vinfos[5].foffset = j5;
4180 vinfos[5].indices[0] = _ij5[0];
4181 vinfos[5].indices[1] = _ij5[1];
4182 vinfos[5].maxsolutions = _nj5;
4183 vinfos[6].jointtype = 1;
4184 vinfos[6].foffset = j6;
4185 vinfos[6].indices[0] = _ij6[0];
4186 vinfos[6].indices[1] = _ij6[1];
4187 vinfos[6].maxsolutions = _nj6;
4188 std::vector<int> vfree(0);
4197 if (bgotonextstatement)
4199 bool bgotonextstatement =
true;
4202 IkReal x143 = new_r22 * new_r22;
4209 if ((((-1.0) * x143 * (x144.
value))) < -0.00001)
4211 IkReal gconst12 =
IKsqrt(((-1.0) * x143 * (x144.
value)));
4213 ((-3.14159265358979) +
4214 (
IKfmod(((3.14159265358979) +
4215 (
IKabs((cj0 + (((-1.0) * gconst12))))) +
4217 6.28318530717959)));
4218 if (
IKabs(evalcond[0]) < 0.0000050000000000)
4220 bgotonextstatement =
false;
4223 IkReal x145 = new_r22 * new_r22;
4228 if ((((1.0) + (((-1.0) * (gconst12 * gconst12))))) <
4233 (((-1.0) * (gconst12 * gconst12)))))));
4238 j0 = ((-1.0) * (
IKacos(gconst12)));
4240 ((1.0) + (((-1.0) * x145))), -1);
4245 if ((((-1.0) * x145 * (x146.
value))) < -0.00001)
4249 j2eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r10)));
4250 if (
IKabs(j2eval[0]) < 0.0000010000000000)
4253 IkReal j2array[1], cj2array[1], sj2array[1];
4254 bool j2valid[1] = {
false };
4262 if ((((1.0) + (((-1.0) * (gconst12 * gconst12))))) <
4265 if (
IKabs(((-1.0) * new_r10 * (x147.
value))) <
4267 IKabs(((((-1.0) * new_r01 *
4269 (((-1.0) * (gconst12 *
4271 (((-1.0) * gconst12 * new_r11)))) <
4274 IKsqr(((((-1.0) * new_r01 *
4279 (((-1.0) * gconst12 * new_r11)))) -
4283 ((-1.0) * new_r10 * (x147.
value)),
4284 ((((-1.0) * new_r01 *
4287 (((-1.0) * (gconst12 * gconst12)))))))) +
4288 (((-1.0) * gconst12 * new_r11))));
4289 sj2array[0] =
IKsin(j2array[0]);
4290 cj2array[0] =
IKcos(j2array[0]);
4291 if (j2array[0] >
IKPI)
4293 j2array[0] -=
IK2PI;
4295 else if (j2array[0] < -
IKPI)
4297 j2array[0] +=
IK2PI;
4300 for (
int ij2 = 0; ij2 < 1; ++ij2)
4308 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
4310 if (j2valid[iij2] &&
4311 IKabs(cj2array[ij2] - cj2array[iij2]) <
4313 IKabs(sj2array[ij2] - sj2array[iij2]) <
4316 j2valid[iij2] =
false;
4322 cj2 = cj2array[ij2];
4323 sj2 = sj2array[ij2];
4326 IkReal x148 =
IKsin(j2);
4327 IkReal x149 =
IKcos(j2);
4329 (((-1.0) * (gconst12 * gconst12))))) <
4334 (((-1.0) * (gconst12 * gconst12)))));
4336 evalcond[1] = ((-1.0) * x148);
4337 evalcond[2] = (((gconst12 * x148)) + new_r10);
4338 evalcond[3] = (((gconst12 * x149)) + new_r11);
4339 evalcond[4] = (((x148 * x150)) + new_r00);
4340 evalcond[5] = (((x149 * x150)) + new_r01);
4341 evalcond[6] = (((new_r00 * x150)) + x148 +
4342 ((gconst12 * new_r10)));
4343 evalcond[7] = (((new_r01 * x150)) + x149 +
4344 ((gconst12 * new_r11)));
4345 if (
IKabs(evalcond[0]) >
4347 IKabs(evalcond[1]) >
4349 IKabs(evalcond[2]) >
4351 IKabs(evalcond[3]) >
4353 IKabs(evalcond[4]) >
4355 IKabs(evalcond[5]) >
4357 IKabs(evalcond[6]) >
4366 std::vector<IkSingleDOFSolutionBase<IkReal> >
4368 vinfos[0].jointtype = 1;
4369 vinfos[0].foffset = j0;
4370 vinfos[0].indices[0] = _ij0[0];
4371 vinfos[0].indices[1] = _ij0[1];
4372 vinfos[0].maxsolutions = _nj0;
4373 vinfos[1].jointtype = 1;
4374 vinfos[1].foffset = j1;
4375 vinfos[1].indices[0] = _ij1[0];
4376 vinfos[1].indices[1] = _ij1[1];
4377 vinfos[1].maxsolutions = _nj1;
4378 vinfos[2].jointtype = 1;
4379 vinfos[2].foffset = j2;
4380 vinfos[2].indices[0] = _ij2[0];
4381 vinfos[2].indices[1] = _ij2[1];
4382 vinfos[2].maxsolutions = _nj2;
4383 vinfos[3].jointtype = 1;
4384 vinfos[3].foffset = j3;
4385 vinfos[3].indices[0] = _ij3[0];
4386 vinfos[3].indices[1] = _ij3[1];
4387 vinfos[3].maxsolutions = _nj3;
4388 vinfos[4].jointtype = 1;
4389 vinfos[4].foffset = j4;
4390 vinfos[4].indices[0] = _ij4[0];
4391 vinfos[4].indices[1] = _ij4[1];
4392 vinfos[4].maxsolutions = _nj4;
4393 vinfos[5].jointtype = 1;
4394 vinfos[5].foffset = j5;
4395 vinfos[5].indices[0] = _ij5[0];
4396 vinfos[5].indices[1] = _ij5[1];
4397 vinfos[5].maxsolutions = _nj5;
4398 vinfos[6].jointtype = 1;
4399 vinfos[6].foffset = j6;
4400 vinfos[6].indices[0] = _ij6[0];
4401 vinfos[6].indices[1] = _ij6[1];
4402 vinfos[6].maxsolutions = _nj6;
4403 std::vector<int> vfree(0);
4412 IkReal j2array[1], cj2array[1], sj2array[1];
4413 bool j2valid[1] = {
false };
4417 IkReal(((-1.0) * new_r11)),
4429 j2array[0] = ((-1.5707963267949) + (x151.
value) +
4430 (((1.5707963267949) * (x152.
value))));
4431 sj2array[0] =
IKsin(j2array[0]);
4432 cj2array[0] =
IKcos(j2array[0]);
4433 if (j2array[0] >
IKPI)
4435 j2array[0] -=
IK2PI;
4437 else if (j2array[0] < -
IKPI)
4439 j2array[0] +=
IK2PI;
4442 for (
int ij2 = 0; ij2 < 1; ++ij2)
4450 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
4452 if (j2valid[iij2] &&
4453 IKabs(cj2array[ij2] - cj2array[iij2]) <
4455 IKabs(sj2array[ij2] - sj2array[iij2]) <
4458 j2valid[iij2] =
false;
4464 cj2 = cj2array[ij2];
4465 sj2 = sj2array[ij2];
4468 IkReal x153 =
IKsin(j2);
4469 IkReal x154 =
IKcos(j2);
4471 (((-1.0) * (gconst12 * gconst12))))) <
4476 (((-1.0) * (gconst12 * gconst12)))));
4478 evalcond[1] = ((-1.0) * x153);
4479 evalcond[2] = (((gconst12 * x153)) + new_r10);
4480 evalcond[3] = (((gconst12 * x154)) + new_r11);
4481 evalcond[4] = (((x153 * x155)) + new_r00);
4482 evalcond[5] = (((x154 * x155)) + new_r01);
4483 evalcond[6] = (((new_r00 * x155)) + x153 +
4484 ((gconst12 * new_r10)));
4485 evalcond[7] = (((new_r01 * x155)) + x154 +
4486 ((gconst12 * new_r11)));
4487 if (
IKabs(evalcond[0]) >
4489 IKabs(evalcond[1]) >
4491 IKabs(evalcond[2]) >
4493 IKabs(evalcond[3]) >
4495 IKabs(evalcond[4]) >
4497 IKabs(evalcond[5]) >
4499 IKabs(evalcond[6]) >
4508 std::vector<IkSingleDOFSolutionBase<IkReal> >
4510 vinfos[0].jointtype = 1;
4511 vinfos[0].foffset = j0;
4512 vinfos[0].indices[0] = _ij0[0];
4513 vinfos[0].indices[1] = _ij0[1];
4514 vinfos[0].maxsolutions = _nj0;
4515 vinfos[1].jointtype = 1;
4516 vinfos[1].foffset = j1;
4517 vinfos[1].indices[0] = _ij1[0];
4518 vinfos[1].indices[1] = _ij1[1];
4519 vinfos[1].maxsolutions = _nj1;
4520 vinfos[2].jointtype = 1;
4521 vinfos[2].foffset = j2;
4522 vinfos[2].indices[0] = _ij2[0];
4523 vinfos[2].indices[1] = _ij2[1];
4524 vinfos[2].maxsolutions = _nj2;
4525 vinfos[3].jointtype = 1;
4526 vinfos[3].foffset = j3;
4527 vinfos[3].indices[0] = _ij3[0];
4528 vinfos[3].indices[1] = _ij3[1];
4529 vinfos[3].maxsolutions = _nj3;
4530 vinfos[4].jointtype = 1;
4531 vinfos[4].foffset = j4;
4532 vinfos[4].indices[0] = _ij4[0];
4533 vinfos[4].indices[1] = _ij4[1];
4534 vinfos[4].maxsolutions = _nj4;
4535 vinfos[5].jointtype = 1;
4536 vinfos[5].foffset = j5;
4537 vinfos[5].indices[0] = _ij5[0];
4538 vinfos[5].indices[1] = _ij5[1];
4539 vinfos[5].maxsolutions = _nj5;
4540 vinfos[6].jointtype = 1;
4541 vinfos[6].foffset = j6;
4542 vinfos[6].indices[0] = _ij6[0];
4543 vinfos[6].indices[1] = _ij6[1];
4544 vinfos[6].maxsolutions = _nj6;
4545 std::vector<int> vfree(0);
4554 if (bgotonextstatement)
4556 bool bgotonextstatement =
true;
4559 IkReal x156 = new_r22 * new_r22;
4561 ((1.0) + (((-1.0) * x156))), -1);
4566 if ((((-1.0) * x156 * (x157.
value))) < -0.00001)
4569 ((-1.0) * (
IKsqrt(((-1.0) * x156 * (x157.
value)))));
4571 ((-3.14159265358979) +
4572 (
IKfmod(((3.14159265358979) +
4573 (
IKabs((cj0 + (((-1.0) * gconst13))))) +
4575 6.28318530717959)));
4576 if (
IKabs(evalcond[0]) < 0.0000050000000000)
4578 bgotonextstatement =
false;
4581 IkReal x158 = new_r22 * new_r22;
4586 if ((((1.0) + (((-1.0) * (gconst13 * gconst13))))) <
4590 ((1.0) + (((-1.0) * (gconst13 * gconst13)))));
4597 ((1.0) + (((-1.0) * x158))), -1);
4602 if ((((-1.0) * x158 * (x159.
value))) < -0.00001)
4607 j2eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r10)));
4608 if (
IKabs(j2eval[0]) < 0.0000010000000000)
4611 IkReal j2array[1], cj2array[1], sj2array[1];
4612 bool j2valid[1] = {
false };
4621 (((-1.0) * (gconst13 * gconst13))))) <
4624 if (
IKabs(((-1.0) * new_r10 * (x160.
value))) <
4627 (((-1.0) * gconst13 * new_r11)) +
4629 (
IKsqrt(((1.0) + (((-1.0) *
4631 gconst13)))))))))) <
4635 IKsqr(((((-1.0) * gconst13 * new_r11)) +
4640 gconst13)))))))))) -
4644 ((-1.0) * new_r10 * (x160.
value)),
4645 ((((-1.0) * gconst13 * new_r11)) +
4649 (gconst13 * gconst13))))))))));
4650 sj2array[0] =
IKsin(j2array[0]);
4651 cj2array[0] =
IKcos(j2array[0]);
4652 if (j2array[0] >
IKPI)
4654 j2array[0] -=
IK2PI;
4656 else if (j2array[0] < -
IKPI)
4658 j2array[0] +=
IK2PI;
4661 for (
int ij2 = 0; ij2 < 1; ++ij2)
4669 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
4671 if (j2valid[iij2] &&
4672 IKabs(cj2array[ij2] - cj2array[iij2]) <
4674 IKabs(sj2array[ij2] - sj2array[iij2]) <
4677 j2valid[iij2] =
false;
4683 cj2 = cj2array[ij2];
4684 sj2 = sj2array[ij2];
4687 IkReal x161 =
IKsin(j2);
4688 IkReal x162 =
IKcos(j2);
4690 (((-1.0) * (gconst13 * gconst13))))) <
4695 (((-1.0) * (gconst13 * gconst13)))));
4696 IkReal x164 = ((1.0) * x163);
4698 evalcond[1] = ((-1.0) * x161);
4699 evalcond[2] = (new_r10 + ((gconst13 * x161)));
4700 evalcond[3] = (new_r11 + ((gconst13 * x162)));
4702 ((((-1.0) * x161 * x164)) + new_r00);
4704 ((((-1.0) * x162 * x164)) + new_r01);
4705 evalcond[6] = ((((-1.0) * new_r00 * x164)) +
4706 x161 + ((gconst13 * new_r10)));
4707 evalcond[7] = (x162 + ((gconst13 * new_r11)) +
4708 (((-1.0) * new_r01 * x164)));
4709 if (
IKabs(evalcond[0]) >
4711 IKabs(evalcond[1]) >
4713 IKabs(evalcond[2]) >
4715 IKabs(evalcond[3]) >
4717 IKabs(evalcond[4]) >
4719 IKabs(evalcond[5]) >
4721 IKabs(evalcond[6]) >
4723 IKabs(evalcond[7]) >
4731 std::vector<IkSingleDOFSolutionBase<IkReal> >
4733 vinfos[0].jointtype = 1;
4734 vinfos[0].foffset = j0;
4735 vinfos[0].indices[0] = _ij0[0];
4736 vinfos[0].indices[1] = _ij0[1];
4737 vinfos[0].maxsolutions = _nj0;
4738 vinfos[1].jointtype = 1;
4739 vinfos[1].foffset = j1;
4740 vinfos[1].indices[0] = _ij1[0];
4741 vinfos[1].indices[1] = _ij1[1];
4742 vinfos[1].maxsolutions = _nj1;
4743 vinfos[2].jointtype = 1;
4744 vinfos[2].foffset = j2;
4745 vinfos[2].indices[0] = _ij2[0];
4746 vinfos[2].indices[1] = _ij2[1];
4747 vinfos[2].maxsolutions = _nj2;
4748 vinfos[3].jointtype = 1;
4749 vinfos[3].foffset = j3;
4750 vinfos[3].indices[0] = _ij3[0];
4751 vinfos[3].indices[1] = _ij3[1];
4752 vinfos[3].maxsolutions = _nj3;
4753 vinfos[4].jointtype = 1;
4754 vinfos[4].foffset = j4;
4755 vinfos[4].indices[0] = _ij4[0];
4756 vinfos[4].indices[1] = _ij4[1];
4757 vinfos[4].maxsolutions = _nj4;
4758 vinfos[5].jointtype = 1;
4759 vinfos[5].foffset = j5;
4760 vinfos[5].indices[0] = _ij5[0];
4761 vinfos[5].indices[1] = _ij5[1];
4762 vinfos[5].maxsolutions = _nj5;
4763 vinfos[6].jointtype = 1;
4764 vinfos[6].foffset = j6;
4765 vinfos[6].indices[0] = _ij6[0];
4766 vinfos[6].indices[1] = _ij6[1];
4767 vinfos[6].maxsolutions = _nj6;
4768 std::vector<int> vfree(0);
4777 IkReal j2array[1], cj2array[1], sj2array[1];
4778 bool j2valid[1] = {
false };
4782 IkReal(((-1.0) * new_r11)),
4795 ((-1.5707963267949) + (x165.
value) +
4796 (((1.5707963267949) * (x166.
value))));
4797 sj2array[0] =
IKsin(j2array[0]);
4798 cj2array[0] =
IKcos(j2array[0]);
4799 if (j2array[0] >
IKPI)
4801 j2array[0] -=
IK2PI;
4803 else if (j2array[0] < -
IKPI)
4805 j2array[0] +=
IK2PI;
4808 for (
int ij2 = 0; ij2 < 1; ++ij2)
4816 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
4818 if (j2valid[iij2] &&
4819 IKabs(cj2array[ij2] - cj2array[iij2]) <
4821 IKabs(sj2array[ij2] - sj2array[iij2]) <
4824 j2valid[iij2] =
false;
4830 cj2 = cj2array[ij2];
4831 sj2 = sj2array[ij2];
4834 IkReal x167 =
IKsin(j2);
4835 IkReal x168 =
IKcos(j2);
4837 (((-1.0) * (gconst13 * gconst13))))) <
4842 (((-1.0) * (gconst13 * gconst13)))));
4843 IkReal x170 = ((1.0) * x169);
4845 evalcond[1] = ((-1.0) * x167);
4846 evalcond[2] = (new_r10 + ((gconst13 * x167)));
4847 evalcond[3] = (new_r11 + ((gconst13 * x168)));
4849 (new_r00 + (((-1.0) * x167 * x170)));
4851 ((((-1.0) * x168 * x170)) + new_r01);
4852 evalcond[6] = (x167 + ((gconst13 * new_r10)) +
4853 (((-1.0) * new_r00 * x170)));
4854 evalcond[7] = (x168 + ((gconst13 * new_r11)) +
4855 (((-1.0) * new_r01 * x170)));
4856 if (
IKabs(evalcond[0]) >
4858 IKabs(evalcond[1]) >
4860 IKabs(evalcond[2]) >
4862 IKabs(evalcond[3]) >
4864 IKabs(evalcond[4]) >
4866 IKabs(evalcond[5]) >
4868 IKabs(evalcond[6]) >
4870 IKabs(evalcond[7]) >
4878 std::vector<IkSingleDOFSolutionBase<IkReal> >
4880 vinfos[0].jointtype = 1;
4881 vinfos[0].foffset = j0;
4882 vinfos[0].indices[0] = _ij0[0];
4883 vinfos[0].indices[1] = _ij0[1];
4884 vinfos[0].maxsolutions = _nj0;
4885 vinfos[1].jointtype = 1;
4886 vinfos[1].foffset = j1;
4887 vinfos[1].indices[0] = _ij1[0];
4888 vinfos[1].indices[1] = _ij1[1];
4889 vinfos[1].maxsolutions = _nj1;
4890 vinfos[2].jointtype = 1;
4891 vinfos[2].foffset = j2;
4892 vinfos[2].indices[0] = _ij2[0];
4893 vinfos[2].indices[1] = _ij2[1];
4894 vinfos[2].maxsolutions = _nj2;
4895 vinfos[3].jointtype = 1;
4896 vinfos[3].foffset = j3;
4897 vinfos[3].indices[0] = _ij3[0];
4898 vinfos[3].indices[1] = _ij3[1];
4899 vinfos[3].maxsolutions = _nj3;
4900 vinfos[4].jointtype = 1;
4901 vinfos[4].foffset = j4;
4902 vinfos[4].indices[0] = _ij4[0];
4903 vinfos[4].indices[1] = _ij4[1];
4904 vinfos[4].maxsolutions = _nj4;
4905 vinfos[5].jointtype = 1;
4906 vinfos[5].foffset = j5;
4907 vinfos[5].indices[0] = _ij5[0];
4908 vinfos[5].indices[1] = _ij5[1];
4909 vinfos[5].maxsolutions = _nj5;
4910 vinfos[6].jointtype = 1;
4911 vinfos[6].foffset = j6;
4912 vinfos[6].indices[0] = _ij6[0];
4913 vinfos[6].indices[1] = _ij6[1];
4914 vinfos[6].maxsolutions = _nj6;
4915 std::vector<int> vfree(0);
4924 if (bgotonextstatement)
4926 bool bgotonextstatement =
true;
4929 IkReal x171 = new_r22 * new_r22;
4931 ((1.0) + (((-1.0) * x171))), -1);
4936 if ((((-1.0) * x171 * (x172.
value))) < -0.00001)
4939 ((-1.0) * (
IKsqrt(((-1.0) * x171 * (x172.
value)))));
4941 ((-3.14159265358979) +
4942 (
IKfmod(((3.14159265358979) +
4944 (
IKabs((cj0 + (((-1.0) * gconst13)))))),
4945 6.28318530717959)));
4946 if (
IKabs(evalcond[0]) < 0.0000050000000000)
4948 bgotonextstatement =
false;
4951 IkReal x173 = new_r22 * new_r22;
4956 if ((((1.0) + (((-1.0) * (gconst13 * gconst13))))) <
4960 (
IKsqrt(((1.0) + (((-1.0) * (gconst13 *
4966 j0 = ((-1.0) * (
IKacos(gconst13)));
4968 ((1.0) + (((-1.0) * x173))), -1);
4973 if ((((-1.0) * x173 * (x174.
value))) < -0.00001)
4978 j2eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r10)));
4979 if (
IKabs(j2eval[0]) < 0.0000010000000000)
4982 IkReal j2array[1], cj2array[1], sj2array[1];
4983 bool j2valid[1] = {
false };
4992 (((-1.0) * (gconst13 * gconst13))))) <
4995 if (
IKabs(((-1.0) * new_r10 * (x175.
value))) <
4997 IKabs(((((-1.0) * gconst13 * new_r11)) +
4998 (((-1.0) * new_r01 *
5002 gconst13)))))))))) <
5007 (((-1.0) * gconst13 * new_r11)) +
5008 (((-1.0) * new_r01 *
5012 gconst13)))))))))) -
5016 ((-1.0) * new_r10 * (x175.
value)),
5017 ((((-1.0) * gconst13 * new_r11)) +
5018 (((-1.0) * new_r01 *
5020 (((-1.0) * (gconst13 *
5022 sj2array[0] =
IKsin(j2array[0]);
5023 cj2array[0] =
IKcos(j2array[0]);
5024 if (j2array[0] >
IKPI)
5026 j2array[0] -=
IK2PI;
5028 else if (j2array[0] < -
IKPI)
5030 j2array[0] +=
IK2PI;
5033 for (
int ij2 = 0; ij2 < 1; ++ij2)
5041 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5043 if (j2valid[iij2] &&
5044 IKabs(cj2array[ij2] - cj2array[iij2]) <
5046 IKabs(sj2array[ij2] - sj2array[iij2]) <
5049 j2valid[iij2] =
false;
5055 cj2 = cj2array[ij2];
5056 sj2 = sj2array[ij2];
5059 IkReal x176 =
IKsin(j2);
5060 IkReal x177 =
IKcos(j2);
5062 (((-1.0) * (gconst13 * gconst13))))) <
5067 (((-1.0) * (gconst13 * gconst13)))));
5069 evalcond[1] = ((-1.0) * x176);
5071 (new_r10 + ((gconst13 * x176)));
5073 (new_r11 + ((gconst13 * x177)));
5074 evalcond[4] = (((x176 * x178)) + new_r00);
5075 evalcond[5] = (new_r01 + ((x177 * x178)));
5076 evalcond[6] = (((new_r00 * x178)) + x176 +
5077 ((gconst13 * new_r10)));
5078 evalcond[7] = (((new_r01 * x178)) + x177 +
5079 ((gconst13 * new_r11)));
5080 if (
IKabs(evalcond[0]) >
5082 IKabs(evalcond[1]) >
5084 IKabs(evalcond[2]) >
5086 IKabs(evalcond[3]) >
5088 IKabs(evalcond[4]) >
5090 IKabs(evalcond[5]) >
5092 IKabs(evalcond[6]) >
5094 IKabs(evalcond[7]) >
5105 vinfos[0].jointtype = 1;
5106 vinfos[0].foffset = j0;
5107 vinfos[0].indices[0] = _ij0[0];
5108 vinfos[0].indices[1] = _ij0[1];
5109 vinfos[0].maxsolutions = _nj0;
5110 vinfos[1].jointtype = 1;
5111 vinfos[1].foffset = j1;
5112 vinfos[1].indices[0] = _ij1[0];
5113 vinfos[1].indices[1] = _ij1[1];
5114 vinfos[1].maxsolutions = _nj1;
5115 vinfos[2].jointtype = 1;
5116 vinfos[2].foffset = j2;
5117 vinfos[2].indices[0] = _ij2[0];
5118 vinfos[2].indices[1] = _ij2[1];
5119 vinfos[2].maxsolutions = _nj2;
5120 vinfos[3].jointtype = 1;
5121 vinfos[3].foffset = j3;
5122 vinfos[3].indices[0] = _ij3[0];
5123 vinfos[3].indices[1] = _ij3[1];
5124 vinfos[3].maxsolutions = _nj3;
5125 vinfos[4].jointtype = 1;
5126 vinfos[4].foffset = j4;
5127 vinfos[4].indices[0] = _ij4[0];
5128 vinfos[4].indices[1] = _ij4[1];
5129 vinfos[4].maxsolutions = _nj4;
5130 vinfos[5].jointtype = 1;
5131 vinfos[5].foffset = j5;
5132 vinfos[5].indices[0] = _ij5[0];
5133 vinfos[5].indices[1] = _ij5[1];
5134 vinfos[5].maxsolutions = _nj5;
5135 vinfos[6].jointtype = 1;
5136 vinfos[6].foffset = j6;
5137 vinfos[6].indices[0] = _ij6[0];
5138 vinfos[6].indices[1] = _ij6[1];
5139 vinfos[6].maxsolutions = _nj6;
5140 std::vector<int> vfree(0);
5149 IkReal j2array[1], cj2array[1], sj2array[1];
5150 bool j2valid[1] = {
false };
5154 IkReal(((-1.0) * new_r11)),
5167 ((-1.5707963267949) + (x179.
value) +
5168 (((1.5707963267949) * (x180.
value))));
5169 sj2array[0] =
IKsin(j2array[0]);
5170 cj2array[0] =
IKcos(j2array[0]);
5171 if (j2array[0] >
IKPI)
5173 j2array[0] -=
IK2PI;
5175 else if (j2array[0] < -
IKPI)
5177 j2array[0] +=
IK2PI;
5180 for (
int ij2 = 0; ij2 < 1; ++ij2)
5188 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5190 if (j2valid[iij2] &&
5191 IKabs(cj2array[ij2] - cj2array[iij2]) <
5193 IKabs(sj2array[ij2] - sj2array[iij2]) <
5196 j2valid[iij2] =
false;
5202 cj2 = cj2array[ij2];
5203 sj2 = sj2array[ij2];
5206 IkReal x181 =
IKsin(j2);
5207 IkReal x182 =
IKcos(j2);
5209 (((-1.0) * (gconst13 * gconst13))))) <
5214 (((-1.0) * (gconst13 * gconst13)))));
5216 evalcond[1] = ((-1.0) * x181);
5218 (((gconst13 * x181)) + new_r10);
5220 (((gconst13 * x182)) + new_r11);
5221 evalcond[4] = (new_r00 + ((x181 * x183)));
5222 evalcond[5] = (new_r01 + ((x182 * x183)));
5223 evalcond[6] = (((new_r00 * x183)) + x181 +
5224 ((gconst13 * new_r10)));
5225 evalcond[7] = (((new_r01 * x183)) + x182 +
5226 ((gconst13 * new_r11)));
5227 if (
IKabs(evalcond[0]) >
5229 IKabs(evalcond[1]) >
5231 IKabs(evalcond[2]) >
5233 IKabs(evalcond[3]) >
5235 IKabs(evalcond[4]) >
5237 IKabs(evalcond[5]) >
5239 IKabs(evalcond[6]) >
5241 IKabs(evalcond[7]) >
5252 vinfos[0].jointtype = 1;
5253 vinfos[0].foffset = j0;
5254 vinfos[0].indices[0] = _ij0[0];
5255 vinfos[0].indices[1] = _ij0[1];
5256 vinfos[0].maxsolutions = _nj0;
5257 vinfos[1].jointtype = 1;
5258 vinfos[1].foffset = j1;
5259 vinfos[1].indices[0] = _ij1[0];
5260 vinfos[1].indices[1] = _ij1[1];
5261 vinfos[1].maxsolutions = _nj1;
5262 vinfos[2].jointtype = 1;
5263 vinfos[2].foffset = j2;
5264 vinfos[2].indices[0] = _ij2[0];
5265 vinfos[2].indices[1] = _ij2[1];
5266 vinfos[2].maxsolutions = _nj2;
5267 vinfos[3].jointtype = 1;
5268 vinfos[3].foffset = j3;
5269 vinfos[3].indices[0] = _ij3[0];
5270 vinfos[3].indices[1] = _ij3[1];
5271 vinfos[3].maxsolutions = _nj3;
5272 vinfos[4].jointtype = 1;
5273 vinfos[4].foffset = j4;
5274 vinfos[4].indices[0] = _ij4[0];
5275 vinfos[4].indices[1] = _ij4[1];
5276 vinfos[4].maxsolutions = _nj4;
5277 vinfos[5].jointtype = 1;
5278 vinfos[5].foffset = j5;
5279 vinfos[5].indices[0] = _ij5[0];
5280 vinfos[5].indices[1] = _ij5[1];
5281 vinfos[5].maxsolutions = _nj5;
5282 vinfos[6].jointtype = 1;
5283 vinfos[6].foffset = j6;
5284 vinfos[6].indices[0] = _ij6[0];
5285 vinfos[6].indices[1] = _ij6[1];
5286 vinfos[6].maxsolutions = _nj6;
5287 std::vector<int> vfree(0);
5296 if (bgotonextstatement)
5298 bool bgotonextstatement =
true;
5303 bgotonextstatement =
false;
5307 if (bgotonextstatement)
5321 IkReal j2array[1], cj2array[1], sj2array[1];
5322 bool j2valid[1] = {
false };
5324 IkReal x184 = (new_r01 * new_r22);
5325 IkReal x185 = (cj0 * new_r11);
5332 ((((new_r22 * sj0 * x185)) + ((x184 * (cj0 * cj0))) +
5333 (((-1.0) * x184)) + (((-1.0) * new_r10)))))) <
5335 IKabs((((new_r01 * sj0)) + (((-1.0) * x185)))) <
5339 ((((new_r22 * sj0 * x185)) + ((x184 * (cj0 * cj0))) +
5340 (((-1.0) * x184)) + (((-1.0) * new_r10)))))) +
5341 IKsqr((((new_r01 * sj0)) + (((-1.0) * x185)))) - 1) <=
5346 ((((new_r22 * sj0 * x185)) + ((x184 * (cj0 * cj0))) +
5347 (((-1.0) * x184)) + (((-1.0) * new_r10))))),
5348 (((new_r01 * sj0)) + (((-1.0) * x185))));
5349 sj2array[0] =
IKsin(j2array[0]);
5350 cj2array[0] =
IKcos(j2array[0]);
5351 if (j2array[0] >
IKPI)
5353 j2array[0] -=
IK2PI;
5355 else if (j2array[0] < -
IKPI)
5357 j2array[0] +=
IK2PI;
5360 for (
int ij2 = 0; ij2 < 1; ++ij2)
5368 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5370 if (j2valid[iij2] &&
5371 IKabs(cj2array[ij2] - cj2array[iij2]) <
5373 IKabs(sj2array[ij2] - sj2array[iij2]) <
5376 j2valid[iij2] =
false;
5382 cj2 = cj2array[ij2];
5383 sj2 = sj2array[ij2];
5385 IkReal evalcond[10];
5386 IkReal x187 =
IKcos(j2);
5387 IkReal x188 =
IKsin(j2);
5388 IkReal x189 = (cj0 * new_r22);
5389 IkReal x190 = ((1.0) * sj0);
5390 IkReal x191 = (new_r22 * sj0);
5391 IkReal x192 = (new_r22 * x188);
5392 IkReal x193 = ((1.0) * x188);
5394 (x188 + (((-1.0) * new_r00 * x190)) + ((cj0 * new_r10)));
5396 (x187 + (((-1.0) * new_r01 * x190)) + ((cj0 * new_r11)));
5397 evalcond[2] = (((new_r10 * sj0)) + ((new_r22 * x187)) +
5399 evalcond[3] = (((new_r10 * x191)) + ((new_r00 * x189)) + x187);
5400 evalcond[4] = (((cj0 * x188)) + ((x187 * x191)) + new_r10);
5402 (((new_r11 * sj0)) + (((-1.0) * x192)) + ((cj0 * new_r01)));
5404 ((((-1.0) * x188 * x190)) + ((x187 * x189)) + new_r00);
5406 (((cj0 * x187)) + (((-1.0) * x190 * x192)) + new_r11);
5407 evalcond[8] = (((new_r11 * x191)) + ((new_r01 * x189)) +
5409 evalcond[9] = ((((-1.0) * x189 * x193)) +
5410 (((-1.0) * x187 * x190)) + new_r01);
5427 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
5428 vinfos[0].jointtype = 1;
5429 vinfos[0].foffset = j0;
5430 vinfos[0].indices[0] = _ij0[0];
5431 vinfos[0].indices[1] = _ij0[1];
5432 vinfos[0].maxsolutions = _nj0;
5433 vinfos[1].jointtype = 1;
5434 vinfos[1].foffset = j1;
5435 vinfos[1].indices[0] = _ij1[0];
5436 vinfos[1].indices[1] = _ij1[1];
5437 vinfos[1].maxsolutions = _nj1;
5438 vinfos[2].jointtype = 1;
5439 vinfos[2].foffset = j2;
5440 vinfos[2].indices[0] = _ij2[0];
5441 vinfos[2].indices[1] = _ij2[1];
5442 vinfos[2].maxsolutions = _nj2;
5443 vinfos[3].jointtype = 1;
5444 vinfos[3].foffset = j3;
5445 vinfos[3].indices[0] = _ij3[0];
5446 vinfos[3].indices[1] = _ij3[1];
5447 vinfos[3].maxsolutions = _nj3;
5448 vinfos[4].jointtype = 1;
5449 vinfos[4].foffset = j4;
5450 vinfos[4].indices[0] = _ij4[0];
5451 vinfos[4].indices[1] = _ij4[1];
5452 vinfos[4].maxsolutions = _nj4;
5453 vinfos[5].jointtype = 1;
5454 vinfos[5].foffset = j5;
5455 vinfos[5].indices[0] = _ij5[0];
5456 vinfos[5].indices[1] = _ij5[1];
5457 vinfos[5].maxsolutions = _nj5;
5458 vinfos[6].jointtype = 1;
5459 vinfos[6].foffset = j6;
5460 vinfos[6].indices[0] = _ij6[0];
5461 vinfos[6].indices[1] = _ij6[1];
5462 vinfos[6].maxsolutions = _nj6;
5463 std::vector<int> vfree(0);
5474 IkReal j2array[1], cj2array[1], sj2array[1];
5475 bool j2valid[1] = {
false };
5477 IkReal x194 = ((1.0) * cj0);
5483 if (
IKabs((((new_r00 * sj0)) + (((-1.0) * new_r10 * x194)))) <
5485 IKabs(((x195.
value) * (((((-1.0) * new_r10 * sj0)) +
5486 (((-1.0) * new_r00 * x194)))))) <
5488 IKabs(
IKsqr((((new_r00 * sj0)) + (((-1.0) * new_r10 * x194)))) +
5489 IKsqr(((x195.
value) * (((((-1.0) * new_r10 * sj0)) +
5490 (((-1.0) * new_r00 * x194)))))) -
5493 j2array[0] =
IKatan2((((new_r00 * sj0)) + (((-1.0) * new_r10 * x194))),
5494 ((x195.
value) * (((((-1.0) * new_r10 * sj0)) +
5495 (((-1.0) * new_r00 * x194))))));
5496 sj2array[0] =
IKsin(j2array[0]);
5497 cj2array[0] =
IKcos(j2array[0]);
5498 if (j2array[0] >
IKPI)
5500 j2array[0] -=
IK2PI;
5502 else if (j2array[0] < -
IKPI)
5504 j2array[0] +=
IK2PI;
5507 for (
int ij2 = 0; ij2 < 1; ++ij2)
5515 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5517 if (j2valid[iij2] &&
5518 IKabs(cj2array[ij2] - cj2array[iij2]) <
5522 j2valid[iij2] =
false;
5528 cj2 = cj2array[ij2];
5529 sj2 = sj2array[ij2];
5531 IkReal evalcond[10];
5532 IkReal x196 =
IKcos(j2);
5533 IkReal x197 =
IKsin(j2);
5534 IkReal x198 = (cj0 * new_r22);
5535 IkReal x199 = ((1.0) * sj0);
5536 IkReal x200 = (new_r22 * sj0);
5537 IkReal x201 = (new_r22 * x197);
5538 IkReal x202 = ((1.0) * x197);
5540 (x197 + (((-1.0) * new_r00 * x199)) + ((cj0 * new_r10)));
5542 (x196 + (((-1.0) * new_r01 * x199)) + ((cj0 * new_r11)));
5544 (((new_r10 * sj0)) + ((new_r22 * x196)) + ((cj0 * new_r00)));
5545 evalcond[3] = (((new_r00 * x198)) + ((new_r10 * x200)) + x196);
5546 evalcond[4] = (((x196 * x200)) + ((cj0 * x197)) + new_r10);
5548 (((new_r11 * sj0)) + ((cj0 * new_r01)) + (((-1.0) * x201)));
5550 ((((-1.0) * x197 * x199)) + ((x196 * x198)) + new_r00);
5551 evalcond[7] = (((cj0 * x196)) + (((-1.0) * x199 * x201)) + new_r11);
5553 (((new_r01 * x198)) + ((new_r11 * x200)) + (((-1.0) * x202)));
5555 ((((-1.0) * x196 * x199)) + (((-1.0) * x198 * x202)) + new_r01);
5572 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
5573 vinfos[0].jointtype = 1;
5574 vinfos[0].foffset = j0;
5575 vinfos[0].indices[0] = _ij0[0];
5576 vinfos[0].indices[1] = _ij0[1];
5577 vinfos[0].maxsolutions = _nj0;
5578 vinfos[1].jointtype = 1;
5579 vinfos[1].foffset = j1;
5580 vinfos[1].indices[0] = _ij1[0];
5581 vinfos[1].indices[1] = _ij1[1];
5582 vinfos[1].maxsolutions = _nj1;
5583 vinfos[2].jointtype = 1;
5584 vinfos[2].foffset = j2;
5585 vinfos[2].indices[0] = _ij2[0];
5586 vinfos[2].indices[1] = _ij2[1];
5587 vinfos[2].maxsolutions = _nj2;
5588 vinfos[3].jointtype = 1;
5589 vinfos[3].foffset = j3;
5590 vinfos[3].indices[0] = _ij3[0];
5591 vinfos[3].indices[1] = _ij3[1];
5592 vinfos[3].maxsolutions = _nj3;
5593 vinfos[4].jointtype = 1;
5594 vinfos[4].foffset = j4;
5595 vinfos[4].indices[0] = _ij4[0];
5596 vinfos[4].indices[1] = _ij4[1];
5597 vinfos[4].maxsolutions = _nj4;
5598 vinfos[5].jointtype = 1;
5599 vinfos[5].foffset = j5;
5600 vinfos[5].indices[0] = _ij5[0];
5601 vinfos[5].indices[1] = _ij5[1];
5602 vinfos[5].maxsolutions = _nj5;
5603 vinfos[6].jointtype = 1;
5604 vinfos[6].foffset = j6;
5605 vinfos[6].indices[0] = _ij6[0];
5606 vinfos[6].indices[1] = _ij6[1];
5607 vinfos[6].maxsolutions = _nj6;
5608 std::vector<int> vfree(0);
5619 IkReal j2array[1], cj2array[1], sj2array[1];
5620 bool j2valid[1] = {
false };
5622 IkReal x203 = cj0 * cj0;
5623 IkReal x204 = new_r22 * new_r22;
5624 IkReal x205 = ((1.0) * cj0);
5625 IkReal x206 = (new_r22 * sj0);
5627 IkReal((((new_r11 * x206)) + (((-1.0) * new_r10 * x205)))),
5628 IkReal(((((-1.0) * new_r11 * x205)) + (((-1.0) * new_r10 * x206)))),
5635 IKsign((x204 + x203 + (((-1.0) * x203 * x204)))), -1);
5640 j2array[0] = ((-1.5707963267949) + (x207.
value) +
5641 (((1.5707963267949) * (x208.
value))));
5642 sj2array[0] =
IKsin(j2array[0]);
5643 cj2array[0] =
IKcos(j2array[0]);
5644 if (j2array[0] >
IKPI)
5646 j2array[0] -=
IK2PI;
5648 else if (j2array[0] < -
IKPI)
5650 j2array[0] +=
IK2PI;
5653 for (
int ij2 = 0; ij2 < 1; ++ij2)
5661 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5663 if (j2valid[iij2] &&
5667 j2valid[iij2] =
false;
5673 cj2 = cj2array[ij2];
5674 sj2 = sj2array[ij2];
5676 IkReal evalcond[10];
5677 IkReal x209 =
IKcos(j2);
5678 IkReal x210 =
IKsin(j2);
5679 IkReal x211 = (cj0 * new_r22);
5680 IkReal x212 = ((1.0) * sj0);
5681 IkReal x213 = (new_r22 * sj0);
5682 IkReal x214 = (new_r22 * x210);
5683 IkReal x215 = ((1.0) * x210);
5684 evalcond[0] = (x210 + (((-1.0) * new_r00 * x212)) + ((cj0 * new_r10)));
5685 evalcond[1] = (x209 + (((-1.0) * new_r01 * x212)) + ((cj0 * new_r11)));
5687 (((new_r10 * sj0)) + ((new_r22 * x209)) + ((cj0 * new_r00)));
5688 evalcond[3] = (x209 + ((new_r00 * x211)) + ((new_r10 * x213)));
5689 evalcond[4] = (((cj0 * x210)) + ((x209 * x213)) + new_r10);
5691 (((new_r11 * sj0)) + (((-1.0) * x214)) + ((cj0 * new_r01)));
5692 evalcond[6] = (((x209 * x211)) + (((-1.0) * x210 * x212)) + new_r00);
5693 evalcond[7] = (((cj0 * x209)) + new_r11 + (((-1.0) * x212 * x214)));
5695 (((new_r01 * x211)) + (((-1.0) * x215)) + ((new_r11 * x213)));
5697 ((((-1.0) * x211 * x215)) + new_r01 + (((-1.0) * x209 * x212)));
5714 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
5715 vinfos[0].jointtype = 1;
5716 vinfos[0].foffset = j0;
5717 vinfos[0].indices[0] = _ij0[0];
5718 vinfos[0].indices[1] = _ij0[1];
5719 vinfos[0].maxsolutions = _nj0;
5720 vinfos[1].jointtype = 1;
5721 vinfos[1].foffset = j1;
5722 vinfos[1].indices[0] = _ij1[0];
5723 vinfos[1].indices[1] = _ij1[1];
5724 vinfos[1].maxsolutions = _nj1;
5725 vinfos[2].jointtype = 1;
5726 vinfos[2].foffset = j2;
5727 vinfos[2].indices[0] = _ij2[0];
5728 vinfos[2].indices[1] = _ij2[1];
5729 vinfos[2].maxsolutions = _nj2;
5730 vinfos[3].jointtype = 1;
5731 vinfos[3].foffset = j3;
5732 vinfos[3].indices[0] = _ij3[0];
5733 vinfos[3].indices[1] = _ij3[1];
5734 vinfos[3].maxsolutions = _nj3;
5735 vinfos[4].jointtype = 1;
5736 vinfos[4].foffset = j4;
5737 vinfos[4].indices[0] = _ij4[0];
5738 vinfos[4].indices[1] = _ij4[1];
5739 vinfos[4].maxsolutions = _nj4;
5740 vinfos[5].jointtype = 1;
5741 vinfos[5].foffset = j5;
5742 vinfos[5].indices[0] = _ij5[0];
5743 vinfos[5].indices[1] = _ij5[1];
5744 vinfos[5].maxsolutions = _nj5;
5745 vinfos[6].jointtype = 1;
5746 vinfos[6].foffset = j6;
5747 vinfos[6].indices[0] = _ij6[0];
5748 vinfos[6].indices[1] = _ij6[1];
5749 vinfos[6].maxsolutions = _nj6;
5750 std::vector<int> vfree(0);
5762 if (bgotonextstatement)
5764 bool bgotonextstatement =
true;
5769 bgotonextstatement =
false;
5773 if (bgotonextstatement)
5784 IkReal j0array[1], cj0array[1], sj0array[1];
5785 bool j0valid[1] = {
false };
5792 IkReal x216 = x217.
value;
5799 (((1.0) + (((-1.0) * (new_r02 * new_r02))) + (((-1.0) * (cj1 * cj1))))))) <
5803 (((1.0) + (((-1.0) * (new_r02 * new_r02))) + (((-1.0) * (cj1 * cj1))))))) +
5807 (((1.0) + (((-1.0) * (new_r02 * new_r02))) + (((-1.0) * (cj1 * cj1)))))),
5809 sj0array[0] =
IKsin(j0array[0]);
5810 cj0array[0] =
IKcos(j0array[0]);
5811 if (j0array[0] >
IKPI)
5813 j0array[0] -=
IK2PI;
5815 else if (j0array[0] < -
IKPI)
5817 j0array[0] +=
IK2PI;
5820 for (
int ij0 = 0; ij0 < 1; ++ij0)
5828 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
5833 j0valid[iij0] =
false;
5839 cj0 = cj0array[ij0];
5840 sj0 = sj0array[ij0];
5843 IkReal x219 =
IKcos(j0);
5844 IkReal x220 =
IKsin(j0);
5845 IkReal x221 = ((1.0) * cj1);
5846 IkReal x222 = ((1.0) * sj1);
5847 IkReal x223 = (new_r12 * x220);
5848 IkReal x224 = (new_r02 * x219);
5849 evalcond[0] = ((((-1.0) * x219 * x222)) + new_r02);
5850 evalcond[1] = ((((-1.0) * x220 * x222)) + new_r12);
5851 evalcond[2] = (((new_r12 * x219)) + (((-1.0) * new_r02 * x220)));
5852 evalcond[3] = (x223 + x224 + (((-1.0) * x222)));
5853 evalcond[4] = (((cj1 * x224)) + ((cj1 * x223)) + (((-1.0) * new_r22 * x222)));
5854 evalcond[5] = ((((-1.0) * new_r10 * x220 * x222)) + (((-1.0) * new_r00 * x219 * x222)) +
5855 (((-1.0) * new_r20 * x221)));
5856 evalcond[6] = ((((-1.0) * new_r11 * x220 * x222)) + (((-1.0) * new_r01 * x219 * x222)) +
5857 (((-1.0) * new_r21 * x221)));
5858 evalcond[7] = ((1.0) + (((-1.0) * x222 * x223)) + (((-1.0) * x222 * x224)) +
5859 (((-1.0) * new_r22 * x221)));
5877 j2eval[2] = ((
IKabs(new_r20)) + (
IKabs(new_r21)));
5878 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000 ||
5879 IKabs(j2eval[2]) < 0.0000010000000000)
5885 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000)
5892 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
5893 IKabs(j2eval[1]) < 0.0000010000000000 ||
IKabs(j2eval[2]) < 0.0000010000000000)
5897 bool bgotonextstatement =
true;
5901 ((-3.14159265358979) +
5902 (
IKfmod(((3.14159265358979) + (
IKabs(j1))), 6.28318530717959)));
5903 evalcond[1] = new_r21;
5904 evalcond[2] = new_r02;
5905 evalcond[3] = new_r12;
5906 evalcond[4] = new_r20;
5907 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
5908 IKabs(evalcond[1]) < 0.0000050000000000 &&
5909 IKabs(evalcond[2]) < 0.0000050000000000 &&
5910 IKabs(evalcond[3]) < 0.0000050000000000 &&
5911 IKabs(evalcond[4]) < 0.0000050000000000)
5913 bgotonextstatement =
false;
5915 IkReal j2array[1], cj2array[1], sj2array[1];
5916 bool j2valid[1] = {
false };
5918 IkReal x225 = ((1.0) * cj0);
5919 if (
IKabs(((((-1.0) * new_r10 * x225)) + ((new_r00 * sj0)))) <
5921 IKabs(((((-1.0) * new_r10 * sj0)) + (((-1.0) * new_r00 * x225)))) <
5923 IKabs(
IKsqr(((((-1.0) * new_r10 * x225)) + ((new_r00 * sj0)))) +
5924 IKsqr(((((-1.0) * new_r10 * sj0)) +
5925 (((-1.0) * new_r00 * x225)))) -
5929 IKatan2(((((-1.0) * new_r10 * x225)) + ((new_r00 * sj0))),
5930 ((((-1.0) * new_r10 * sj0)) + (((-1.0) * new_r00 * x225))));
5931 sj2array[0] =
IKsin(j2array[0]);
5932 cj2array[0] =
IKcos(j2array[0]);
5933 if (j2array[0] >
IKPI)
5935 j2array[0] -=
IK2PI;
5937 else if (j2array[0] < -
IKPI)
5939 j2array[0] +=
IK2PI;
5942 for (
int ij2 = 0; ij2 < 1; ++ij2)
5950 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
5952 if (j2valid[iij2] &&
5956 j2valid[iij2] =
false;
5962 cj2 = cj2array[ij2];
5963 sj2 = sj2array[ij2];
5966 IkReal x226 =
IKcos(j2);
5967 IkReal x227 =
IKsin(j2);
5968 IkReal x228 = ((1.0) * sj0);
5969 IkReal x229 = (cj0 * x226);
5970 IkReal x230 = (cj0 * x227);
5971 IkReal x231 = (x227 * x228);
5972 evalcond[0] = (((new_r10 * sj0)) + x226 + ((cj0 * new_r00)));
5974 (x227 + ((cj0 * new_r10)) + (((-1.0) * new_r00 * x228)));
5976 ((((-1.0) * new_r01 * x228)) + x226 + ((cj0 * new_r11)));
5977 evalcond[3] = (((sj0 * x226)) + x230 + new_r10);
5979 (((new_r11 * sj0)) + ((cj0 * new_r01)) + (((-1.0) * x227)));
5980 evalcond[5] = ((((-1.0) * x231)) + x229 + new_r00);
5981 evalcond[6] = ((((-1.0) * x231)) + x229 + new_r11);
5983 (new_r01 + (((-1.0) * x226 * x228)) + (((-1.0) * x230)));
5998 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
5999 vinfos[0].jointtype = 1;
6000 vinfos[0].foffset = j0;
6001 vinfos[0].indices[0] = _ij0[0];
6002 vinfos[0].indices[1] = _ij0[1];
6003 vinfos[0].maxsolutions = _nj0;
6004 vinfos[1].jointtype = 1;
6005 vinfos[1].foffset = j1;
6006 vinfos[1].indices[0] = _ij1[0];
6007 vinfos[1].indices[1] = _ij1[1];
6008 vinfos[1].maxsolutions = _nj1;
6009 vinfos[2].jointtype = 1;
6010 vinfos[2].foffset = j2;
6011 vinfos[2].indices[0] = _ij2[0];
6012 vinfos[2].indices[1] = _ij2[1];
6013 vinfos[2].maxsolutions = _nj2;
6014 vinfos[3].jointtype = 1;
6015 vinfos[3].foffset = j3;
6016 vinfos[3].indices[0] = _ij3[0];
6017 vinfos[3].indices[1] = _ij3[1];
6018 vinfos[3].maxsolutions = _nj3;
6019 vinfos[4].jointtype = 1;
6020 vinfos[4].foffset = j4;
6021 vinfos[4].indices[0] = _ij4[0];
6022 vinfos[4].indices[1] = _ij4[1];
6023 vinfos[4].maxsolutions = _nj4;
6024 vinfos[5].jointtype = 1;
6025 vinfos[5].foffset = j5;
6026 vinfos[5].indices[0] = _ij5[0];
6027 vinfos[5].indices[1] = _ij5[1];
6028 vinfos[5].maxsolutions = _nj5;
6029 vinfos[6].jointtype = 1;
6030 vinfos[6].foffset = j6;
6031 vinfos[6].indices[0] = _ij6[0];
6032 vinfos[6].indices[1] = _ij6[1];
6033 vinfos[6].maxsolutions = _nj6;
6034 std::vector<int> vfree(0);
6041 if (bgotonextstatement)
6043 bool bgotonextstatement =
true;
6047 ((-3.14159265358979) +
6048 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j1)))),
6049 6.28318530717959)));
6050 evalcond[1] = new_r21;
6051 evalcond[2] = new_r02;
6052 evalcond[3] = new_r12;
6053 evalcond[4] = new_r20;
6054 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6055 IKabs(evalcond[1]) < 0.0000050000000000 &&
6056 IKabs(evalcond[2]) < 0.0000050000000000 &&
6057 IKabs(evalcond[3]) < 0.0000050000000000 &&
6058 IKabs(evalcond[4]) < 0.0000050000000000)
6060 bgotonextstatement =
false;
6062 IkReal j2array[1], cj2array[1], sj2array[1];
6063 bool j2valid[1] = {
false };
6065 IkReal x232 = ((1.0) * cj0);
6066 if (
IKabs(((((-1.0) * new_r11 * sj0)) + (((-1.0) * new_r10 * x232)))) <
6068 IKabs((((new_r10 * sj0)) + (((-1.0) * new_r11 * x232)))) <
6071 (((-1.0) * new_r10 * x232)))) +
6072 IKsqr((((new_r10 * sj0)) + (((-1.0) * new_r11 * x232)))) -
6076 IKatan2(((((-1.0) * new_r11 * sj0)) + (((-1.0) * new_r10 * x232))),
6077 (((new_r10 * sj0)) + (((-1.0) * new_r11 * x232))));
6078 sj2array[0] =
IKsin(j2array[0]);
6079 cj2array[0] =
IKcos(j2array[0]);
6080 if (j2array[0] >
IKPI)
6082 j2array[0] -=
IK2PI;
6084 else if (j2array[0] < -
IKPI)
6086 j2array[0] +=
IK2PI;
6089 for (
int ij2 = 0; ij2 < 1; ++ij2)
6097 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6099 if (j2valid[iij2] &&
6100 IKabs(cj2array[ij2] - cj2array[iij2]) <
6104 j2valid[iij2] =
false;
6110 cj2 = cj2array[ij2];
6111 sj2 = sj2array[ij2];
6114 IkReal x233 =
IKsin(j2);
6115 IkReal x234 =
IKcos(j2);
6116 IkReal x235 = ((1.0) * sj0);
6117 IkReal x236 = (cj0 * x233);
6118 IkReal x237 = ((1.0) * x234);
6119 IkReal x238 = (x234 * x235);
6120 evalcond[0] = (((new_r11 * sj0)) + x233 + ((cj0 * new_r01)));
6122 (x233 + ((cj0 * new_r10)) + (((-1.0) * new_r00 * x235)));
6124 (x234 + (((-1.0) * new_r01 * x235)) + ((cj0 * new_r11)));
6126 (((new_r10 * sj0)) + (((-1.0) * x237)) + ((cj0 * new_r00)));
6127 evalcond[4] = (((sj0 * x233)) + new_r11 + ((cj0 * x234)));
6128 evalcond[5] = ((((-1.0) * x238)) + x236 + new_r10);
6129 evalcond[6] = ((((-1.0) * x238)) + x236 + new_r01);
6131 ((((-1.0) * x233 * x235)) + (((-1.0) * cj0 * x237)) + new_r00);
6146 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6147 vinfos[0].jointtype = 1;
6148 vinfos[0].foffset = j0;
6149 vinfos[0].indices[0] = _ij0[0];
6150 vinfos[0].indices[1] = _ij0[1];
6151 vinfos[0].maxsolutions = _nj0;
6152 vinfos[1].jointtype = 1;
6153 vinfos[1].foffset = j1;
6154 vinfos[1].indices[0] = _ij1[0];
6155 vinfos[1].indices[1] = _ij1[1];
6156 vinfos[1].maxsolutions = _nj1;
6157 vinfos[2].jointtype = 1;
6158 vinfos[2].foffset = j2;
6159 vinfos[2].indices[0] = _ij2[0];
6160 vinfos[2].indices[1] = _ij2[1];
6161 vinfos[2].maxsolutions = _nj2;
6162 vinfos[3].jointtype = 1;
6163 vinfos[3].foffset = j3;
6164 vinfos[3].indices[0] = _ij3[0];
6165 vinfos[3].indices[1] = _ij3[1];
6166 vinfos[3].maxsolutions = _nj3;
6167 vinfos[4].jointtype = 1;
6168 vinfos[4].foffset = j4;
6169 vinfos[4].indices[0] = _ij4[0];
6170 vinfos[4].indices[1] = _ij4[1];
6171 vinfos[4].maxsolutions = _nj4;
6172 vinfos[5].jointtype = 1;
6173 vinfos[5].foffset = j5;
6174 vinfos[5].indices[0] = _ij5[0];
6175 vinfos[5].indices[1] = _ij5[1];
6176 vinfos[5].maxsolutions = _nj5;
6177 vinfos[6].jointtype = 1;
6178 vinfos[6].foffset = j6;
6179 vinfos[6].indices[0] = _ij6[0];
6180 vinfos[6].indices[1] = _ij6[1];
6181 vinfos[6].maxsolutions = _nj6;
6182 std::vector<int> vfree(0);
6189 if (bgotonextstatement)
6191 bool bgotonextstatement =
true;
6195 ((-3.14159265358979) +
6196 (
IKfmod(((3.14159265358979) + (
IKabs(((-1.5707963267949) + j1)))),
6197 6.28318530717959)));
6198 evalcond[1] = new_r22;
6199 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6200 IKabs(evalcond[1]) < 0.0000050000000000)
6202 bgotonextstatement =
false;
6204 IkReal j2array[1], cj2array[1], sj2array[1];
6205 bool j2valid[1] = {
false };
6212 j2array[0] =
IKatan2(((-1.0) * new_r21), new_r20);
6213 sj2array[0] =
IKsin(j2array[0]);
6214 cj2array[0] =
IKcos(j2array[0]);
6215 if (j2array[0] >
IKPI)
6217 j2array[0] -=
IK2PI;
6219 else if (j2array[0] < -
IKPI)
6221 j2array[0] +=
IK2PI;
6224 for (
int ij2 = 0; ij2 < 1; ++ij2)
6232 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6234 if (j2valid[iij2] &&
6235 IKabs(cj2array[ij2] - cj2array[iij2]) <
6237 IKabs(sj2array[ij2] - sj2array[iij2]) <
6240 j2valid[iij2] =
false;
6246 cj2 = cj2array[ij2];
6247 sj2 = sj2array[ij2];
6250 IkReal x239 =
IKsin(j2);
6251 IkReal x240 =
IKcos(j2);
6252 IkReal x241 = ((1.0) * sj0);
6253 evalcond[0] = (x239 + new_r21);
6254 evalcond[1] = ((((-1.0) * x240)) + new_r20);
6255 evalcond[2] = (((new_r02 * x239)) + new_r10);
6256 evalcond[3] = (((cj0 * x240)) + new_r11);
6257 evalcond[4] = (new_r00 + (((-1.0) * x239 * x241)));
6258 evalcond[5] = ((((-1.0) * x240 * x241)) + new_r01);
6260 ((((-1.0) * new_r00 * x241)) + x239 + ((cj0 * new_r10)));
6262 ((((-1.0) * new_r01 * x241)) + x240 + ((cj0 * new_r11)));
6277 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6278 vinfos[0].jointtype = 1;
6279 vinfos[0].foffset = j0;
6280 vinfos[0].indices[0] = _ij0[0];
6281 vinfos[0].indices[1] = _ij0[1];
6282 vinfos[0].maxsolutions = _nj0;
6283 vinfos[1].jointtype = 1;
6284 vinfos[1].foffset = j1;
6285 vinfos[1].indices[0] = _ij1[0];
6286 vinfos[1].indices[1] = _ij1[1];
6287 vinfos[1].maxsolutions = _nj1;
6288 vinfos[2].jointtype = 1;
6289 vinfos[2].foffset = j2;
6290 vinfos[2].indices[0] = _ij2[0];
6291 vinfos[2].indices[1] = _ij2[1];
6292 vinfos[2].maxsolutions = _nj2;
6293 vinfos[3].jointtype = 1;
6294 vinfos[3].foffset = j3;
6295 vinfos[3].indices[0] = _ij3[0];
6296 vinfos[3].indices[1] = _ij3[1];
6297 vinfos[3].maxsolutions = _nj3;
6298 vinfos[4].jointtype = 1;
6299 vinfos[4].foffset = j4;
6300 vinfos[4].indices[0] = _ij4[0];
6301 vinfos[4].indices[1] = _ij4[1];
6302 vinfos[4].maxsolutions = _nj4;
6303 vinfos[5].jointtype = 1;
6304 vinfos[5].foffset = j5;
6305 vinfos[5].indices[0] = _ij5[0];
6306 vinfos[5].indices[1] = _ij5[1];
6307 vinfos[5].maxsolutions = _nj5;
6308 vinfos[6].jointtype = 1;
6309 vinfos[6].foffset = j6;
6310 vinfos[6].indices[0] = _ij6[0];
6311 vinfos[6].indices[1] = _ij6[1];
6312 vinfos[6].maxsolutions = _nj6;
6313 std::vector<int> vfree(0);
6320 if (bgotonextstatement)
6322 bool bgotonextstatement =
true;
6326 ((-3.14159265358979) +
6327 (
IKfmod(((3.14159265358979) + (
IKabs(((1.5707963267949) + j1)))),
6328 6.28318530717959)));
6329 evalcond[1] = new_r22;
6330 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6331 IKabs(evalcond[1]) < 0.0000050000000000)
6333 bgotonextstatement =
false;
6335 IkReal j2array[1], cj2array[1], sj2array[1];
6336 bool j2valid[1] = {
false };
6343 j2array[0] =
IKatan2(new_r21, ((-1.0) * new_r20));
6344 sj2array[0] =
IKsin(j2array[0]);
6345 cj2array[0] =
IKcos(j2array[0]);
6346 if (j2array[0] >
IKPI)
6348 j2array[0] -=
IK2PI;
6350 else if (j2array[0] < -
IKPI)
6352 j2array[0] +=
IK2PI;
6355 for (
int ij2 = 0; ij2 < 1; ++ij2)
6363 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6365 if (j2valid[iij2] &&
6366 IKabs(cj2array[ij2] - cj2array[iij2]) <
6368 IKabs(sj2array[ij2] - sj2array[iij2]) <
6371 j2valid[iij2] =
false;
6377 cj2 = cj2array[ij2];
6378 sj2 = sj2array[ij2];
6381 IkReal x242 =
IKcos(j2);
6382 IkReal x243 =
IKsin(j2);
6383 IkReal x244 = ((1.0) * sj0);
6384 IkReal x245 = ((1.0) * x243);
6385 evalcond[0] = (x242 + new_r20);
6386 evalcond[1] = ((((-1.0) * x245)) + new_r21);
6387 evalcond[2] = (((cj0 * x242)) + new_r11);
6388 evalcond[3] = ((((-1.0) * new_r02 * x245)) + new_r10);
6389 evalcond[4] = ((((-1.0) * x243 * x244)) + new_r00);
6390 evalcond[5] = ((((-1.0) * x242 * x244)) + new_r01);
6392 ((((-1.0) * new_r00 * x244)) + x243 + ((cj0 * new_r10)));
6394 ((((-1.0) * new_r01 * x244)) + x242 + ((cj0 * new_r11)));
6409 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6410 vinfos[0].jointtype = 1;
6411 vinfos[0].foffset = j0;
6412 vinfos[0].indices[0] = _ij0[0];
6413 vinfos[0].indices[1] = _ij0[1];
6414 vinfos[0].maxsolutions = _nj0;
6415 vinfos[1].jointtype = 1;
6416 vinfos[1].foffset = j1;
6417 vinfos[1].indices[0] = _ij1[0];
6418 vinfos[1].indices[1] = _ij1[1];
6419 vinfos[1].maxsolutions = _nj1;
6420 vinfos[2].jointtype = 1;
6421 vinfos[2].foffset = j2;
6422 vinfos[2].indices[0] = _ij2[0];
6423 vinfos[2].indices[1] = _ij2[1];
6424 vinfos[2].maxsolutions = _nj2;
6425 vinfos[3].jointtype = 1;
6426 vinfos[3].foffset = j3;
6427 vinfos[3].indices[0] = _ij3[0];
6428 vinfos[3].indices[1] = _ij3[1];
6429 vinfos[3].maxsolutions = _nj3;
6430 vinfos[4].jointtype = 1;
6431 vinfos[4].foffset = j4;
6432 vinfos[4].indices[0] = _ij4[0];
6433 vinfos[4].indices[1] = _ij4[1];
6434 vinfos[4].maxsolutions = _nj4;
6435 vinfos[5].jointtype = 1;
6436 vinfos[5].foffset = j5;
6437 vinfos[5].indices[0] = _ij5[0];
6438 vinfos[5].indices[1] = _ij5[1];
6439 vinfos[5].maxsolutions = _nj5;
6440 vinfos[6].jointtype = 1;
6441 vinfos[6].foffset = j6;
6442 vinfos[6].indices[0] = _ij6[0];
6443 vinfos[6].indices[1] = _ij6[1];
6444 vinfos[6].maxsolutions = _nj6;
6445 std::vector<int> vfree(0);
6452 if (bgotonextstatement)
6454 bool bgotonextstatement =
true;
6458 ((-3.14159265358979) +
6459 (
IKfmod(((3.14159265358979) + (
IKabs(j0))), 6.28318530717959)));
6460 evalcond[1] = new_r12;
6461 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6462 IKabs(evalcond[1]) < 0.0000050000000000)
6464 bgotonextstatement =
false;
6466 IkReal j2array[1], cj2array[1], sj2array[1];
6467 bool j2valid[1] = {
false };
6474 j2array[0] =
IKatan2(((-1.0) * new_r10), ((-1.0) * new_r11));
6475 sj2array[0] =
IKsin(j2array[0]);
6476 cj2array[0] =
IKcos(j2array[0]);
6477 if (j2array[0] >
IKPI)
6479 j2array[0] -=
IK2PI;
6481 else if (j2array[0] < -
IKPI)
6483 j2array[0] +=
IK2PI;
6486 for (
int ij2 = 0; ij2 < 1; ++ij2)
6494 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6496 if (j2valid[iij2] &&
6497 IKabs(cj2array[ij2] - cj2array[iij2]) <
6499 IKabs(sj2array[ij2] - sj2array[iij2]) <
6502 j2valid[iij2] =
false;
6508 cj2 = cj2array[ij2];
6509 sj2 = sj2array[ij2];
6512 IkReal x246 =
IKsin(j2);
6513 IkReal x247 =
IKcos(j2);
6514 IkReal x248 = ((1.0) * sj1);
6515 IkReal x249 = ((1.0) * x246);
6516 evalcond[0] = (x246 + new_r10);
6517 evalcond[1] = (x247 + new_r11);
6518 evalcond[2] = (new_r21 + ((sj1 * x246)));
6519 evalcond[3] = (((cj1 * x247)) + new_r00);
6520 evalcond[4] = (new_r20 + (((-1.0) * x247 * x248)));
6521 evalcond[5] = ((((-1.0) * cj1 * x249)) + new_r01);
6523 (((cj1 * new_r00)) + x247 + (((-1.0) * new_r20 * x248)));
6524 evalcond[7] = ((((-1.0) * new_r21 * x248)) +
6525 ((cj1 * new_r01)) + (((-1.0) * x249)));
6540 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6541 vinfos[0].jointtype = 1;
6542 vinfos[0].foffset = j0;
6543 vinfos[0].indices[0] = _ij0[0];
6544 vinfos[0].indices[1] = _ij0[1];
6545 vinfos[0].maxsolutions = _nj0;
6546 vinfos[1].jointtype = 1;
6547 vinfos[1].foffset = j1;
6548 vinfos[1].indices[0] = _ij1[0];
6549 vinfos[1].indices[1] = _ij1[1];
6550 vinfos[1].maxsolutions = _nj1;
6551 vinfos[2].jointtype = 1;
6552 vinfos[2].foffset = j2;
6553 vinfos[2].indices[0] = _ij2[0];
6554 vinfos[2].indices[1] = _ij2[1];
6555 vinfos[2].maxsolutions = _nj2;
6556 vinfos[3].jointtype = 1;
6557 vinfos[3].foffset = j3;
6558 vinfos[3].indices[0] = _ij3[0];
6559 vinfos[3].indices[1] = _ij3[1];
6560 vinfos[3].maxsolutions = _nj3;
6561 vinfos[4].jointtype = 1;
6562 vinfos[4].foffset = j4;
6563 vinfos[4].indices[0] = _ij4[0];
6564 vinfos[4].indices[1] = _ij4[1];
6565 vinfos[4].maxsolutions = _nj4;
6566 vinfos[5].jointtype = 1;
6567 vinfos[5].foffset = j5;
6568 vinfos[5].indices[0] = _ij5[0];
6569 vinfos[5].indices[1] = _ij5[1];
6570 vinfos[5].maxsolutions = _nj5;
6571 vinfos[6].jointtype = 1;
6572 vinfos[6].foffset = j6;
6573 vinfos[6].indices[0] = _ij6[0];
6574 vinfos[6].indices[1] = _ij6[1];
6575 vinfos[6].maxsolutions = _nj6;
6576 std::vector<int> vfree(0);
6583 if (bgotonextstatement)
6585 bool bgotonextstatement =
true;
6588 evalcond[0] = ((-3.14159265358979) +
6589 (
IKfmod(((3.14159265358979) +
6590 (
IKabs(((-3.14159265358979) + j0)))),
6591 6.28318530717959)));
6592 evalcond[1] = new_r12;
6593 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6594 IKabs(evalcond[1]) < 0.0000050000000000)
6596 bgotonextstatement =
false;
6598 IkReal j2array[1], cj2array[1], sj2array[1];
6599 bool j2valid[1] = {
false };
6606 j2array[0] =
IKatan2(new_r10, new_r11);
6607 sj2array[0] =
IKsin(j2array[0]);
6608 cj2array[0] =
IKcos(j2array[0]);
6609 if (j2array[0] >
IKPI)
6611 j2array[0] -=
IK2PI;
6613 else if (j2array[0] < -
IKPI)
6615 j2array[0] +=
IK2PI;
6618 for (
int ij2 = 0; ij2 < 1; ++ij2)
6626 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6628 if (j2valid[iij2] &&
6629 IKabs(cj2array[ij2] - cj2array[iij2]) <
6631 IKabs(sj2array[ij2] - sj2array[iij2]) <
6634 j2valid[iij2] =
false;
6640 cj2 = cj2array[ij2];
6641 sj2 = sj2array[ij2];
6644 IkReal x250 =
IKsin(j2);
6645 IkReal x251 =
IKcos(j2);
6646 IkReal x252 = ((1.0) * sj1);
6647 IkReal x253 = ((1.0) * new_r00);
6648 IkReal x254 = ((1.0) * new_r01);
6649 IkReal x255 = ((1.0) * x250);
6650 evalcond[0] = (((sj1 * x250)) + new_r21);
6651 evalcond[1] = (x250 + (((-1.0) * new_r10)));
6652 evalcond[2] = (x251 + (((-1.0) * new_r11)));
6653 evalcond[3] = ((((-1.0) * x251 * x252)) + new_r20);
6654 evalcond[4] = (((cj1 * x251)) + (((-1.0) * x253)));
6655 evalcond[5] = ((((-1.0) * cj1 * x255)) + (((-1.0) * x254)));
6656 evalcond[6] = (x251 + (((-1.0) * cj1 * x253)) +
6657 (((-1.0) * new_r20 * x252)));
6658 evalcond[7] = ((((-1.0) * new_r21 * x252)) +
6659 (((-1.0) * cj1 * x254)) + (((-1.0) * x255)));
6674 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6675 vinfos[0].jointtype = 1;
6676 vinfos[0].foffset = j0;
6677 vinfos[0].indices[0] = _ij0[0];
6678 vinfos[0].indices[1] = _ij0[1];
6679 vinfos[0].maxsolutions = _nj0;
6680 vinfos[1].jointtype = 1;
6681 vinfos[1].foffset = j1;
6682 vinfos[1].indices[0] = _ij1[0];
6683 vinfos[1].indices[1] = _ij1[1];
6684 vinfos[1].maxsolutions = _nj1;
6685 vinfos[2].jointtype = 1;
6686 vinfos[2].foffset = j2;
6687 vinfos[2].indices[0] = _ij2[0];
6688 vinfos[2].indices[1] = _ij2[1];
6689 vinfos[2].maxsolutions = _nj2;
6690 vinfos[3].jointtype = 1;
6691 vinfos[3].foffset = j3;
6692 vinfos[3].indices[0] = _ij3[0];
6693 vinfos[3].indices[1] = _ij3[1];
6694 vinfos[3].maxsolutions = _nj3;
6695 vinfos[4].jointtype = 1;
6696 vinfos[4].foffset = j4;
6697 vinfos[4].indices[0] = _ij4[0];
6698 vinfos[4].indices[1] = _ij4[1];
6699 vinfos[4].maxsolutions = _nj4;
6700 vinfos[5].jointtype = 1;
6701 vinfos[5].foffset = j5;
6702 vinfos[5].indices[0] = _ij5[0];
6703 vinfos[5].indices[1] = _ij5[1];
6704 vinfos[5].maxsolutions = _nj5;
6705 vinfos[6].jointtype = 1;
6706 vinfos[6].foffset = j6;
6707 vinfos[6].indices[0] = _ij6[0];
6708 vinfos[6].indices[1] = _ij6[1];
6709 vinfos[6].maxsolutions = _nj6;
6710 std::vector<int> vfree(0);
6717 if (bgotonextstatement)
6719 bool bgotonextstatement =
true;
6722 evalcond[0] = ((-3.14159265358979) +
6723 (
IKfmod(((3.14159265358979) +
6724 (
IKabs(((-1.5707963267949) + j0)))),
6725 6.28318530717959)));
6726 evalcond[1] = new_r02;
6727 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6728 IKabs(evalcond[1]) < 0.0000050000000000)
6730 bgotonextstatement =
false;
6732 IkReal j2array[1], cj2array[1], sj2array[1];
6733 bool j2valid[1] = {
false };
6740 j2array[0] =
IKatan2(new_r00, new_r01);
6741 sj2array[0] =
IKsin(j2array[0]);
6742 cj2array[0] =
IKcos(j2array[0]);
6743 if (j2array[0] >
IKPI)
6745 j2array[0] -=
IK2PI;
6747 else if (j2array[0] < -
IKPI)
6749 j2array[0] +=
IK2PI;
6752 for (
int ij2 = 0; ij2 < 1; ++ij2)
6760 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6762 if (j2valid[iij2] &&
6763 IKabs(cj2array[ij2] - cj2array[iij2]) <
6765 IKabs(sj2array[ij2] - sj2array[iij2]) <
6768 j2valid[iij2] =
false;
6774 cj2 = cj2array[ij2];
6775 sj2 = sj2array[ij2];
6778 IkReal x256 =
IKsin(j2);
6779 IkReal x257 =
IKcos(j2);
6780 IkReal x258 = ((1.0) * sj1);
6781 IkReal x259 = ((1.0) * x256);
6782 evalcond[0] = (((sj1 * x256)) + new_r21);
6783 evalcond[1] = (x256 + (((-1.0) * new_r00)));
6784 evalcond[2] = (x257 + (((-1.0) * new_r01)));
6785 evalcond[3] = (((cj1 * x257)) + new_r10);
6786 evalcond[4] = ((((-1.0) * x257 * x258)) + new_r20);
6787 evalcond[5] = ((((-1.0) * cj1 * x259)) + new_r11);
6788 evalcond[6] = (((cj1 * new_r10)) + x257 +
6789 (((-1.0) * new_r20 * x258)));
6790 evalcond[7] = ((((-1.0) * new_r21 * x258)) +
6791 ((cj1 * new_r11)) + (((-1.0) * x259)));
6806 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6807 vinfos[0].jointtype = 1;
6808 vinfos[0].foffset = j0;
6809 vinfos[0].indices[0] = _ij0[0];
6810 vinfos[0].indices[1] = _ij0[1];
6811 vinfos[0].maxsolutions = _nj0;
6812 vinfos[1].jointtype = 1;
6813 vinfos[1].foffset = j1;
6814 vinfos[1].indices[0] = _ij1[0];
6815 vinfos[1].indices[1] = _ij1[1];
6816 vinfos[1].maxsolutions = _nj1;
6817 vinfos[2].jointtype = 1;
6818 vinfos[2].foffset = j2;
6819 vinfos[2].indices[0] = _ij2[0];
6820 vinfos[2].indices[1] = _ij2[1];
6821 vinfos[2].maxsolutions = _nj2;
6822 vinfos[3].jointtype = 1;
6823 vinfos[3].foffset = j3;
6824 vinfos[3].indices[0] = _ij3[0];
6825 vinfos[3].indices[1] = _ij3[1];
6826 vinfos[3].maxsolutions = _nj3;
6827 vinfos[4].jointtype = 1;
6828 vinfos[4].foffset = j4;
6829 vinfos[4].indices[0] = _ij4[0];
6830 vinfos[4].indices[1] = _ij4[1];
6831 vinfos[4].maxsolutions = _nj4;
6832 vinfos[5].jointtype = 1;
6833 vinfos[5].foffset = j5;
6834 vinfos[5].indices[0] = _ij5[0];
6835 vinfos[5].indices[1] = _ij5[1];
6836 vinfos[5].maxsolutions = _nj5;
6837 vinfos[6].jointtype = 1;
6838 vinfos[6].foffset = j6;
6839 vinfos[6].indices[0] = _ij6[0];
6840 vinfos[6].indices[1] = _ij6[1];
6841 vinfos[6].maxsolutions = _nj6;
6842 std::vector<int> vfree(0);
6849 if (bgotonextstatement)
6851 bool bgotonextstatement =
true;
6854 evalcond[0] = ((-3.14159265358979) +
6855 (
IKfmod(((3.14159265358979) +
6856 (
IKabs(((1.5707963267949) + j0)))),
6857 6.28318530717959)));
6858 evalcond[1] = new_r02;
6859 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
6860 IKabs(evalcond[1]) < 0.0000050000000000)
6862 bgotonextstatement =
false;
6864 IkReal j2array[1], cj2array[1], sj2array[1];
6865 bool j2valid[1] = {
false };
6870 IKsqr(((-1.0) * new_r01)) - 1) <=
6874 IKatan2(((-1.0) * new_r00), ((-1.0) * new_r01));
6875 sj2array[0] =
IKsin(j2array[0]);
6876 cj2array[0] =
IKcos(j2array[0]);
6877 if (j2array[0] >
IKPI)
6879 j2array[0] -=
IK2PI;
6881 else if (j2array[0] < -
IKPI)
6883 j2array[0] +=
IK2PI;
6886 for (
int ij2 = 0; ij2 < 1; ++ij2)
6894 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
6896 if (j2valid[iij2] &&
6897 IKabs(cj2array[ij2] - cj2array[iij2]) <
6899 IKabs(sj2array[ij2] - sj2array[iij2]) <
6902 j2valid[iij2] =
false;
6908 cj2 = cj2array[ij2];
6909 sj2 = sj2array[ij2];
6912 IkReal x260 =
IKsin(j2);
6913 IkReal x261 =
IKcos(j2);
6914 IkReal x262 = ((1.0) * new_r11);
6915 IkReal x263 = ((1.0) * sj1);
6916 IkReal x264 = ((1.0) * new_r10);
6917 IkReal x265 = ((1.0) * x260);
6918 evalcond[0] = (x260 + new_r00);
6919 evalcond[1] = (x261 + new_r01);
6920 evalcond[2] = (new_r21 + ((sj1 * x260)));
6921 evalcond[3] = ((((-1.0) * x261 * x263)) + new_r20);
6922 evalcond[4] = (((cj1 * x261)) + (((-1.0) * x264)));
6924 ((((-1.0) * cj1 * x265)) + (((-1.0) * x262)));
6925 evalcond[6] = ((((-1.0) * cj1 * x264)) + x261 +
6926 (((-1.0) * new_r20 * x263)));
6928 ((((-1.0) * cj1 * x262)) +
6929 (((-1.0) * new_r21 * x263)) + (((-1.0) * x265)));
6944 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
6945 vinfos[0].jointtype = 1;
6946 vinfos[0].foffset = j0;
6947 vinfos[0].indices[0] = _ij0[0];
6948 vinfos[0].indices[1] = _ij0[1];
6949 vinfos[0].maxsolutions = _nj0;
6950 vinfos[1].jointtype = 1;
6951 vinfos[1].foffset = j1;
6952 vinfos[1].indices[0] = _ij1[0];
6953 vinfos[1].indices[1] = _ij1[1];
6954 vinfos[1].maxsolutions = _nj1;
6955 vinfos[2].jointtype = 1;
6956 vinfos[2].foffset = j2;
6957 vinfos[2].indices[0] = _ij2[0];
6958 vinfos[2].indices[1] = _ij2[1];
6959 vinfos[2].maxsolutions = _nj2;
6960 vinfos[3].jointtype = 1;
6961 vinfos[3].foffset = j3;
6962 vinfos[3].indices[0] = _ij3[0];
6963 vinfos[3].indices[1] = _ij3[1];
6964 vinfos[3].maxsolutions = _nj3;
6965 vinfos[4].jointtype = 1;
6966 vinfos[4].foffset = j4;
6967 vinfos[4].indices[0] = _ij4[0];
6968 vinfos[4].indices[1] = _ij4[1];
6969 vinfos[4].maxsolutions = _nj4;
6970 vinfos[5].jointtype = 1;
6971 vinfos[5].foffset = j5;
6972 vinfos[5].indices[0] = _ij5[0];
6973 vinfos[5].indices[1] = _ij5[1];
6974 vinfos[5].maxsolutions = _nj5;
6975 vinfos[6].jointtype = 1;
6976 vinfos[6].foffset = j6;
6977 vinfos[6].indices[0] = _ij6[0];
6978 vinfos[6].indices[1] = _ij6[1];
6979 vinfos[6].maxsolutions = _nj6;
6980 std::vector<int> vfree(0);
6987 if (bgotonextstatement)
6989 bool bgotonextstatement =
true;
6992 evalcond[0] = ((
IKabs(new_r20)) + (
IKabs(new_r21)));
6993 if (
IKabs(evalcond[0]) < 0.0000050000000000)
6995 bgotonextstatement =
false;
7002 j2eval[0] =
IKabs(new_r22);
7003 if (
IKabs(j2eval[0]) < 0.0000000100000000)
7009 IkReal op[2 + 1], zeror[2];
7011 op[0] = ((-1.0) * new_r22);
7014 polyroots2(op, zeror, numroots);
7015 IkReal j2array[2], cj2array[2], sj2array[2],
7017 int numsolutions = 0;
7018 for (
int ij2 = 0; ij2 < numroots; ++ij2)
7020 IkReal htj2 = zeror[ij2];
7021 tempj2array[0] = ((2.0) * (atan(htj2)));
7022 for (
int kj2 = 0; kj2 < 1; ++kj2)
7024 j2array[numsolutions] = tempj2array[kj2];
7025 if (j2array[numsolutions] >
IKPI)
7027 j2array[numsolutions] -=
IK2PI;
7029 else if (j2array[numsolutions] < -
IKPI)
7031 j2array[numsolutions] +=
IK2PI;
7033 sj2array[numsolutions] =
7034 IKsin(j2array[numsolutions]);
7035 cj2array[numsolutions] =
7036 IKcos(j2array[numsolutions]);
7040 bool j2valid[2] = {
true,
true };
7042 for (
int ij2 = 0; ij2 < numsolutions; ++ij2)
7049 cj2 = cj2array[ij2];
7050 sj2 = sj2array[ij2];
7051 htj2 =
IKtan(j2 / 2);
7055 for (
int iij2 = ij2 + 1; iij2 < numsolutions; ++iij2)
7057 if (j2valid[iij2] &&
7058 IKabs(cj2array[ij2] - cj2array[iij2]) <
7060 IKabs(sj2array[ij2] - sj2array[iij2]) <
7063 j2valid[iij2] =
false;
7069 std::vector<IkSingleDOFSolutionBase<IkReal> >
7071 vinfos[0].jointtype = 1;
7072 vinfos[0].foffset = j0;
7073 vinfos[0].indices[0] = _ij0[0];
7074 vinfos[0].indices[1] = _ij0[1];
7075 vinfos[0].maxsolutions = _nj0;
7076 vinfos[1].jointtype = 1;
7077 vinfos[1].foffset = j1;
7078 vinfos[1].indices[0] = _ij1[0];
7079 vinfos[1].indices[1] = _ij1[1];
7080 vinfos[1].maxsolutions = _nj1;
7081 vinfos[2].jointtype = 1;
7082 vinfos[2].foffset = j2;
7083 vinfos[2].indices[0] = _ij2[0];
7084 vinfos[2].indices[1] = _ij2[1];
7085 vinfos[2].maxsolutions = _nj2;
7086 vinfos[3].jointtype = 1;
7087 vinfos[3].foffset = j3;
7088 vinfos[3].indices[0] = _ij3[0];
7089 vinfos[3].indices[1] = _ij3[1];
7090 vinfos[3].maxsolutions = _nj3;
7091 vinfos[4].jointtype = 1;
7092 vinfos[4].foffset = j4;
7093 vinfos[4].indices[0] = _ij4[0];
7094 vinfos[4].indices[1] = _ij4[1];
7095 vinfos[4].maxsolutions = _nj4;
7096 vinfos[5].jointtype = 1;
7097 vinfos[5].foffset = j5;
7098 vinfos[5].indices[0] = _ij5[0];
7099 vinfos[5].indices[1] = _ij5[1];
7100 vinfos[5].maxsolutions = _nj5;
7101 vinfos[6].jointtype = 1;
7102 vinfos[6].foffset = j6;
7103 vinfos[6].indices[0] = _ij6[0];
7104 vinfos[6].indices[1] = _ij6[1];
7105 vinfos[6].maxsolutions = _nj6;
7106 std::vector<int> vfree(0);
7114 if (bgotonextstatement)
7116 bool bgotonextstatement =
true;
7121 bgotonextstatement =
false;
7125 if (bgotonextstatement)
7142 IkReal j2array[1], cj2array[1], sj2array[1];
7143 bool j2valid[1] = {
false };
7150 IkReal x266 = x267.
value;
7163 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1)))))) <
7167 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1)))))) -
7170 j2array[0] =
IKatan2(((-1.0) * new_r21 * x266),
7172 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1))))));
7173 sj2array[0] =
IKsin(j2array[0]);
7174 cj2array[0] =
IKcos(j2array[0]);
7175 if (j2array[0] >
IKPI)
7177 j2array[0] -=
IK2PI;
7179 else if (j2array[0] < -
IKPI)
7181 j2array[0] +=
IK2PI;
7184 for (
int ij2 = 0; ij2 < 1; ++ij2)
7192 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
7194 if (j2valid[iij2] &&
7198 j2valid[iij2] =
false;
7204 cj2 = cj2array[ij2];
7205 sj2 = sj2array[ij2];
7207 IkReal evalcond[12];
7208 IkReal x270 =
IKsin(j2);
7209 IkReal x271 =
IKcos(j2);
7210 IkReal x272 = ((1.0) * sj0);
7211 IkReal x273 = ((1.0) * sj1);
7212 IkReal x274 = (cj0 * new_r00);
7213 IkReal x275 = (cj1 * sj0);
7214 IkReal x276 = (cj0 * new_r01);
7215 IkReal x277 = (cj1 * x271);
7216 IkReal x278 = (cj1 * x270);
7217 evalcond[0] = (new_r21 + ((sj1 * x270)));
7218 evalcond[1] = ((((-1.0) * x271 * x273)) + new_r20);
7219 evalcond[2] = ((((-1.0) * new_r00 * x272)) + x270 + ((cj0 * new_r10)));
7220 evalcond[3] = ((((-1.0) * new_r01 * x272)) + x271 + ((cj0 * new_r11)));
7221 evalcond[4] = (((new_r10 * sj0)) + x277 + x274);
7222 evalcond[5] = (((x271 * x275)) + new_r10 + ((cj0 * x270)));
7223 evalcond[6] = ((((-1.0) * x278)) + ((new_r11 * sj0)) + x276);
7224 evalcond[7] = ((((-1.0) * x270 * x272)) + new_r00 + ((cj0 * x277)));
7225 evalcond[8] = ((((-1.0) * x272 * x278)) + new_r11 + ((cj0 * x271)));
7227 ((((-1.0) * cj0 * x278)) + (((-1.0) * x271 * x272)) + new_r01);
7228 evalcond[10] = (((cj1 * x274)) + x271 + (((-1.0) * new_r20 * x273)) +
7229 ((new_r10 * x275)));
7230 evalcond[11] = ((((-1.0) * x270)) + ((cj1 * x276)) +
7231 (((-1.0) * new_r21 * x273)) + ((new_r11 * x275)));
7250 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
7251 vinfos[0].jointtype = 1;
7252 vinfos[0].foffset = j0;
7253 vinfos[0].indices[0] = _ij0[0];
7254 vinfos[0].indices[1] = _ij0[1];
7255 vinfos[0].maxsolutions = _nj0;
7256 vinfos[1].jointtype = 1;
7257 vinfos[1].foffset = j1;
7258 vinfos[1].indices[0] = _ij1[0];
7259 vinfos[1].indices[1] = _ij1[1];
7260 vinfos[1].maxsolutions = _nj1;
7261 vinfos[2].jointtype = 1;
7262 vinfos[2].foffset = j2;
7263 vinfos[2].indices[0] = _ij2[0];
7264 vinfos[2].indices[1] = _ij2[1];
7265 vinfos[2].maxsolutions = _nj2;
7266 vinfos[3].jointtype = 1;
7267 vinfos[3].foffset = j3;
7268 vinfos[3].indices[0] = _ij3[0];
7269 vinfos[3].indices[1] = _ij3[1];
7270 vinfos[3].maxsolutions = _nj3;
7271 vinfos[4].jointtype = 1;
7272 vinfos[4].foffset = j4;
7273 vinfos[4].indices[0] = _ij4[0];
7274 vinfos[4].indices[1] = _ij4[1];
7275 vinfos[4].maxsolutions = _nj4;
7276 vinfos[5].jointtype = 1;
7277 vinfos[5].foffset = j5;
7278 vinfos[5].indices[0] = _ij5[0];
7279 vinfos[5].indices[1] = _ij5[1];
7280 vinfos[5].maxsolutions = _nj5;
7281 vinfos[6].jointtype = 1;
7282 vinfos[6].foffset = j6;
7283 vinfos[6].indices[0] = _ij6[0];
7284 vinfos[6].indices[1] = _ij6[1];
7285 vinfos[6].maxsolutions = _nj6;
7286 std::vector<int> vfree(0);
7297 IkReal j2array[1], cj2array[1], sj2array[1];
7298 bool j2valid[1] = {
false };
7305 IkReal x279 = x280.
value;
7313 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1)))))) <
7316 IKsqr(((-1.0) * new_r21 * x279)) +
7318 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1)))))) -
7322 IKatan2(((-1.0) * new_r21 * x279),
7323 (x279 * (x281.
value) *
7324 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1))))));
7325 sj2array[0] =
IKsin(j2array[0]);
7326 cj2array[0] =
IKcos(j2array[0]);
7327 if (j2array[0] >
IKPI)
7329 j2array[0] -=
IK2PI;
7331 else if (j2array[0] < -
IKPI)
7333 j2array[0] +=
IK2PI;
7336 for (
int ij2 = 0; ij2 < 1; ++ij2)
7344 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
7346 if (j2valid[iij2] &&
7350 j2valid[iij2] =
false;
7356 cj2 = cj2array[ij2];
7357 sj2 = sj2array[ij2];
7359 IkReal evalcond[12];
7360 IkReal x282 =
IKsin(j2);
7361 IkReal x283 =
IKcos(j2);
7362 IkReal x284 = ((1.0) * sj0);
7363 IkReal x285 = ((1.0) * sj1);
7364 IkReal x286 = (cj0 * new_r00);
7365 IkReal x287 = (cj1 * sj0);
7366 IkReal x288 = (cj0 * new_r01);
7367 IkReal x289 = (cj1 * x283);
7368 IkReal x290 = (cj1 * x282);
7369 evalcond[0] = (new_r21 + ((sj1 * x282)));
7370 evalcond[1] = (new_r20 + (((-1.0) * x283 * x285)));
7371 evalcond[2] = ((((-1.0) * new_r00 * x284)) + x282 + ((cj0 * new_r10)));
7372 evalcond[3] = (x283 + (((-1.0) * new_r01 * x284)) + ((cj0 * new_r11)));
7373 evalcond[4] = (((new_r10 * sj0)) + x289 + x286);
7374 evalcond[5] = (((cj0 * x282)) + new_r10 + ((x283 * x287)));
7375 evalcond[6] = ((((-1.0) * x290)) + ((new_r11 * sj0)) + x288);
7376 evalcond[7] = (((cj0 * x289)) + (((-1.0) * x282 * x284)) + new_r00);
7377 evalcond[8] = ((((-1.0) * x284 * x290)) + ((cj0 * x283)) + new_r11);
7378 evalcond[9] = ((((-1.0) * cj0 * x290)) + new_r01 + (((-1.0) * x283 * x284)));
7380 (x283 + (((-1.0) * new_r20 * x285)) + ((cj1 * x286)) + ((new_r10 * x287)));
7381 evalcond[11] = ((((-1.0) * x282)) + (((-1.0) * new_r21 * x285)) +
7382 ((new_r11 * x287)) + ((cj1 * x288)));
7401 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
7402 vinfos[0].jointtype = 1;
7403 vinfos[0].foffset = j0;
7404 vinfos[0].indices[0] = _ij0[0];
7405 vinfos[0].indices[1] = _ij0[1];
7406 vinfos[0].maxsolutions = _nj0;
7407 vinfos[1].jointtype = 1;
7408 vinfos[1].foffset = j1;
7409 vinfos[1].indices[0] = _ij1[0];
7410 vinfos[1].indices[1] = _ij1[1];
7411 vinfos[1].maxsolutions = _nj1;
7412 vinfos[2].jointtype = 1;
7413 vinfos[2].foffset = j2;
7414 vinfos[2].indices[0] = _ij2[0];
7415 vinfos[2].indices[1] = _ij2[1];
7416 vinfos[2].maxsolutions = _nj2;
7417 vinfos[3].jointtype = 1;
7418 vinfos[3].foffset = j3;
7419 vinfos[3].indices[0] = _ij3[0];
7420 vinfos[3].indices[1] = _ij3[1];
7421 vinfos[3].maxsolutions = _nj3;
7422 vinfos[4].jointtype = 1;
7423 vinfos[4].foffset = j4;
7424 vinfos[4].indices[0] = _ij4[0];
7425 vinfos[4].indices[1] = _ij4[1];
7426 vinfos[4].maxsolutions = _nj4;
7427 vinfos[5].jointtype = 1;
7428 vinfos[5].foffset = j5;
7429 vinfos[5].indices[0] = _ij5[0];
7430 vinfos[5].indices[1] = _ij5[1];
7431 vinfos[5].maxsolutions = _nj5;
7432 vinfos[6].jointtype = 1;
7433 vinfos[6].foffset = j6;
7434 vinfos[6].indices[0] = _ij6[0];
7435 vinfos[6].indices[1] = _ij6[1];
7436 vinfos[6].maxsolutions = _nj6;
7437 std::vector<int> vfree(0);
7448 IkReal j2array[1], cj2array[1], sj2array[1];
7449 bool j2valid[1] = {
false };
7462 j2array[0] = ((-1.5707963267949) + (x291.
value) + (((1.5707963267949) * (x292.
value))));
7463 sj2array[0] =
IKsin(j2array[0]);
7464 cj2array[0] =
IKcos(j2array[0]);
7465 if (j2array[0] >
IKPI)
7467 j2array[0] -=
IK2PI;
7469 else if (j2array[0] < -
IKPI)
7471 j2array[0] +=
IK2PI;
7474 for (
int ij2 = 0; ij2 < 1; ++ij2)
7482 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
7484 if (j2valid[iij2] &&
7488 j2valid[iij2] =
false;
7494 cj2 = cj2array[ij2];
7495 sj2 = sj2array[ij2];
7497 IkReal evalcond[12];
7498 IkReal x293 =
IKsin(j2);
7499 IkReal x294 =
IKcos(j2);
7500 IkReal x295 = ((1.0) * sj0);
7501 IkReal x296 = ((1.0) * sj1);
7502 IkReal x297 = (cj0 * new_r00);
7503 IkReal x298 = (cj1 * sj0);
7504 IkReal x299 = (cj0 * new_r01);
7505 IkReal x300 = (cj1 * x294);
7506 IkReal x301 = (cj1 * x293);
7507 evalcond[0] = (((sj1 * x293)) + new_r21);
7508 evalcond[1] = (new_r20 + (((-1.0) * x294 * x296)));
7509 evalcond[2] = (x293 + ((cj0 * new_r10)) + (((-1.0) * new_r00 * x295)));
7510 evalcond[3] = ((((-1.0) * new_r01 * x295)) + x294 + ((cj0 * new_r11)));
7511 evalcond[4] = (((new_r10 * sj0)) + x300 + x297);
7512 evalcond[5] = (((x294 * x298)) + new_r10 + ((cj0 * x293)));
7513 evalcond[6] = (((new_r11 * sj0)) + (((-1.0) * x301)) + x299);
7514 evalcond[7] = ((((-1.0) * x293 * x295)) + ((cj0 * x300)) + new_r00);
7515 evalcond[8] = ((((-1.0) * x295 * x301)) + new_r11 + ((cj0 * x294)));
7516 evalcond[9] = ((((-1.0) * cj0 * x301)) + new_r01 + (((-1.0) * x294 * x295)));
7518 ((((-1.0) * new_r20 * x296)) + ((cj1 * x297)) + ((new_r10 * x298)) + x294);
7519 evalcond[11] = ((((-1.0) * x293)) + (((-1.0) * new_r21 * x296)) +
7520 ((new_r11 * x298)) + ((cj1 * x299)));
7539 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
7540 vinfos[0].jointtype = 1;
7541 vinfos[0].foffset = j0;
7542 vinfos[0].indices[0] = _ij0[0];
7543 vinfos[0].indices[1] = _ij0[1];
7544 vinfos[0].maxsolutions = _nj0;
7545 vinfos[1].jointtype = 1;
7546 vinfos[1].foffset = j1;
7547 vinfos[1].indices[0] = _ij1[0];
7548 vinfos[1].indices[1] = _ij1[1];
7549 vinfos[1].maxsolutions = _nj1;
7550 vinfos[2].jointtype = 1;
7551 vinfos[2].foffset = j2;
7552 vinfos[2].indices[0] = _ij2[0];
7553 vinfos[2].indices[1] = _ij2[1];
7554 vinfos[2].maxsolutions = _nj2;
7555 vinfos[3].jointtype = 1;
7556 vinfos[3].foffset = j3;
7557 vinfos[3].indices[0] = _ij3[0];
7558 vinfos[3].indices[1] = _ij3[1];
7559 vinfos[3].maxsolutions = _nj3;
7560 vinfos[4].jointtype = 1;
7561 vinfos[4].foffset = j4;
7562 vinfos[4].indices[0] = _ij4[0];
7563 vinfos[4].indices[1] = _ij4[1];
7564 vinfos[4].maxsolutions = _nj4;
7565 vinfos[5].jointtype = 1;
7566 vinfos[5].foffset = j5;
7567 vinfos[5].indices[0] = _ij5[0];
7568 vinfos[5].indices[1] = _ij5[1];
7569 vinfos[5].maxsolutions = _nj5;
7570 vinfos[6].jointtype = 1;
7571 vinfos[6].foffset = j6;
7572 vinfos[6].indices[0] = _ij6[0];
7573 vinfos[6].indices[1] = _ij6[1];
7574 vinfos[6].maxsolutions = _nj6;
7575 std::vector<int> vfree(0);
7590 IkReal j2array[1], cj2array[1], sj2array[1];
7591 bool j2valid[1] = {
false };
7604 j2array[0] = ((-1.5707963267949) + (x302.
value) + (((1.5707963267949) * (x303.
value))));
7605 sj2array[0] =
IKsin(j2array[0]);
7606 cj2array[0] =
IKcos(j2array[0]);
7607 if (j2array[0] >
IKPI)
7609 j2array[0] -=
IK2PI;
7611 else if (j2array[0] < -
IKPI)
7613 j2array[0] +=
IK2PI;
7616 for (
int ij2 = 0; ij2 < 1; ++ij2)
7624 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
7629 j2valid[iij2] =
false;
7635 cj2 = cj2array[ij2];
7636 sj2 = sj2array[ij2];
7639 evalcond[0] = (((sj1 * (
IKsin(j2)))) + new_r21);
7640 evalcond[1] = ((((-1.0) * sj1 * (
IKcos(j2)))) + new_r20);
7650 j0eval[1] = ((
IKabs(new_r12)) + (
IKabs(new_r02)));
7652 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
IKabs(j0eval[1]) < 0.0000010000000000 ||
7653 IKabs(j0eval[2]) < 0.0000010000000000)
7657 j0eval[0] = new_r00;
7659 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
IKabs(j0eval[1]) < 0.0000010000000000)
7663 bool bgotonextstatement =
true;
7666 evalcond[0] = ((-3.14159265358979) +
7667 (
IKfmod(((3.14159265358979) + (
IKabs(j1))), 6.28318530717959)));
7668 evalcond[1] = new_r21;
7669 evalcond[2] = new_r02;
7670 evalcond[3] = new_r12;
7671 evalcond[4] = new_r20;
7672 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
7673 IKabs(evalcond[1]) < 0.0000050000000000 &&
7674 IKabs(evalcond[2]) < 0.0000050000000000 &&
7675 IKabs(evalcond[3]) < 0.0000050000000000 &&
7676 IKabs(evalcond[4]) < 0.0000050000000000)
7678 bgotonextstatement =
false;
7684 IkReal x304 = ((1.0) * cj2);
7685 IkReal x305 = ((new_r10 * new_r10) + (new_r00 * new_r00));
7687 j0eval[1] = ((
IKabs((((new_r00 * sj2)) + (((-1.0) * new_r10 * x304))))) +
7688 (
IKabs(((((-1.0) * new_r10 * sj2)) + (((-1.0) * new_r00 * x304))))));
7689 j0eval[2] =
IKsign(x305);
7690 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
7691 IKabs(j0eval[1]) < 0.0000010000000000 ||
7692 IKabs(j0eval[2]) < 0.0000010000000000)
7699 IkReal x306 = ((1.0) * cj2);
7700 IkReal x307 = (((new_r10 * new_r11)) + ((new_r00 * new_r01)));
7703 ((
IKabs(((((-1.0) * new_r01 * x306)) + (((-1.0) * new_r10 * x306))))) +
7704 (
IKabs((((cj2 * new_r00)) + (((-1.0) * new_r11 * x306))))));
7705 j0eval[2] =
IKsign(x307);
7706 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
7707 IKabs(j0eval[1]) < 0.0000010000000000 ||
7708 IKabs(j0eval[2]) < 0.0000010000000000)
7715 IkReal x308 = ((1.0) * new_r10);
7716 IkReal x309 = ((((-1.0) * sj2 * x308)) + ((cj2 * new_r00)));
7718 j0eval[1] =
IKsign(x309);
7719 j0eval[2] = ((
IKabs(((((-1.0) * (cj2 * cj2))) + (new_r10 * new_r10)))) +
7720 (
IKabs((((cj2 * sj2)) + (((-1.0) * new_r00 * x308))))));
7721 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
7722 IKabs(j0eval[1]) < 0.0000010000000000 ||
7723 IKabs(j0eval[2]) < 0.0000010000000000)
7727 bool bgotonextstatement =
true;
7730 IkReal x312 = ((new_r10 * new_r10) + (new_r00 * new_r00));
7731 if (
IKabs(x312) == 0)
7735 IkReal x310 = pow(x312, -0.5);
7736 IkReal x311 = ((-1.0) * x310);
7739 IkReal(((-1.0) * new_r10)),
7745 IkReal gconst0 = ((-1.0) * (x313.
value));
7746 IkReal gconst1 = (new_r00 * x311);
7747 IkReal gconst2 = (new_r10 * x311);
7750 IkReal(((-1.0) * new_r10)),
7757 ((-3.14159265358979) +
7759 6.28318530717959)));
7760 if (
IKabs(evalcond[0]) < 0.0000050000000000)
7762 bgotonextstatement =
false;
7767 IkReal(((-1.0) * new_r10)),
7773 IkReal x315 = ((-1.0) * (x318.
value));
7775 IkReal x317 = ((-1.0) * x316);
7782 IkReal gconst0 = x315;
7783 IkReal gconst1 = (new_r00 * x317);
7784 IkReal gconst2 = (new_r10 * x317);
7785 IkReal x319 = ((new_r10 * new_r10) + (new_r00 * new_r00));
7787 j0eval[1] =
IKsign(x319);
7788 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
7789 IKabs(j0eval[1]) < 0.0000010000000000)
7795 IkReal(((-1.0) * new_r10)),
7801 IkReal x320 = ((-1.0) * (x323.
value));
7803 IkReal x322 = ((-1.0) * x321);
7810 IkReal gconst0 = x320;
7811 IkReal gconst1 = (new_r00 * x322);
7812 IkReal gconst2 = (new_r10 * x322);
7813 IkReal x324 = new_r10 * new_r10;
7815 (((new_r10 * new_r11)) + ((new_r00 * new_r01)));
7817 IkReal x327 = (new_r10 * x326);
7819 j0eval[1] =
IKsign(x325);
7821 ((
IKabs(((((-1.0) * new_r00 * x327)) +
7822 ((new_r11 * x327))))) +
7823 (
IKabs((((new_r01 * x327)) + ((x324 * x326))))));
7824 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
7825 IKabs(j0eval[1]) < 0.0000010000000000 ||
7826 IKabs(j0eval[2]) < 0.0000010000000000)
7832 IkReal(((-1.0) * new_r10)),
7838 IkReal x328 = ((-1.0) * (x331.
value));
7840 IkReal x330 = ((-1.0) * x329);
7847 IkReal gconst0 = x328;
7848 IkReal gconst1 = (new_r00 * x330);
7849 IkReal gconst2 = (new_r10 * x330);
7850 IkReal x332 = new_r10 * new_r10;
7851 IkReal x333 = new_r00 * new_r00;
7858 IkReal x334 = x340.
value;
7859 IkReal x335 = (x332 * x334);
7861 ((((-1.0) * x332)) + (((-1.0) * x333))), -1);
7866 IkReal x336 = x341.
value;
7867 IkReal x337 = ((1.0) * x336);
7868 IkReal x338 = (new_r00 * x337);
7869 IkReal x339 = (new_r10 * x337);
7871 ((
IKabs(((((-1.0) * new_r10 * x338)) +
7873 (new_r10 * new_r10 * new_r10))) +
7874 (((-1.0) * new_r10 * x338 *
7875 (new_r00 * new_r00)))))) +
7876 (
IKabs((((x334 * (x333 * x333))) +
7877 (((-1.0) * x335)) + ((x333 * x335))))));
7878 if (
IKabs(j0eval[0]) < 0.0000010000000000)
7885 IkReal j0array[1], cj0array[1], sj0array[1];
7886 bool j0valid[1] = {
false };
7889 IkReal(((((-1.0) * (gconst2 * gconst2))) +
7890 (new_r00 * new_r00))),
7891 IkReal(((((-1.0) * gconst1 * gconst2)) +
7892 (((-1.0) * new_r00 * new_r10)))),
7899 IKsign((((gconst2 * new_r10)) +
7900 ((gconst1 * new_r00)))),
7906 j0array[0] = ((-1.5707963267949) + (x342.
value) +
7907 (((1.5707963267949) * (x343.
value))));
7908 sj0array[0] =
IKsin(j0array[0]);
7909 cj0array[0] =
IKcos(j0array[0]);
7910 if (j0array[0] >
IKPI)
7912 j0array[0] -=
IK2PI;
7914 else if (j0array[0] < -
IKPI)
7916 j0array[0] +=
IK2PI;
7919 for (
int ij0 = 0; ij0 < 1; ++ij0)
7927 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
7929 if (j0valid[iij0] &&
7930 IKabs(cj0array[ij0] - cj0array[iij0]) <
7932 IKabs(sj0array[ij0] - sj0array[iij0]) <
7935 j0valid[iij0] =
false;
7941 cj0 = cj0array[ij0];
7942 sj0 = sj0array[ij0];
7945 IkReal x344 =
IKcos(j0);
7946 IkReal x345 =
IKsin(j0);
7947 IkReal x346 = ((1.0) * gconst1);
7948 IkReal x347 = (gconst2 * x344);
7949 IkReal x348 = (gconst1 * x344);
7950 IkReal x349 = (gconst2 * x345);
7951 IkReal x350 = ((1.0) * x345);
7952 IkReal x351 = (x345 * x346);
7953 evalcond[0] = (gconst2 + ((new_r00 * x344)) +
7954 ((new_r10 * x345)));
7955 evalcond[1] = (x348 + x349 + new_r10);
7956 evalcond[2] = (gconst1 + ((new_r10 * x344)) +
7957 (((-1.0) * new_r00 * x350)));
7958 evalcond[3] = (gconst2 + ((new_r11 * x344)) +
7959 (((-1.0) * new_r01 * x350)));
7961 ((((-1.0) * x351)) + x347 + new_r00);
7963 ((((-1.0) * x351)) + x347 + new_r11);
7965 (((new_r11 * x345)) + ((new_r01 * x344)) +
7967 evalcond[7] = ((((-1.0) * x344 * x346)) +
7968 new_r01 + (((-1.0) * x349)));
7969 if (
IKabs(evalcond[0]) >
7971 IKabs(evalcond[1]) >
7973 IKabs(evalcond[2]) >
7975 IKabs(evalcond[3]) >
7977 IKabs(evalcond[4]) >
7979 IKabs(evalcond[5]) >
7981 IKabs(evalcond[6]) >
7990 std::vector<IkSingleDOFSolutionBase<IkReal> >
7992 vinfos[0].jointtype = 1;
7993 vinfos[0].foffset = j0;
7994 vinfos[0].indices[0] = _ij0[0];
7995 vinfos[0].indices[1] = _ij0[1];
7996 vinfos[0].maxsolutions = _nj0;
7997 vinfos[1].jointtype = 1;
7998 vinfos[1].foffset = j1;
7999 vinfos[1].indices[0] = _ij1[0];
8000 vinfos[1].indices[1] = _ij1[1];
8001 vinfos[1].maxsolutions = _nj1;
8002 vinfos[2].jointtype = 1;
8003 vinfos[2].foffset = j2;
8004 vinfos[2].indices[0] = _ij2[0];
8005 vinfos[2].indices[1] = _ij2[1];
8006 vinfos[2].maxsolutions = _nj2;
8007 vinfos[3].jointtype = 1;
8008 vinfos[3].foffset = j3;
8009 vinfos[3].indices[0] = _ij3[0];
8010 vinfos[3].indices[1] = _ij3[1];
8011 vinfos[3].maxsolutions = _nj3;
8012 vinfos[4].jointtype = 1;
8013 vinfos[4].foffset = j4;
8014 vinfos[4].indices[0] = _ij4[0];
8015 vinfos[4].indices[1] = _ij4[1];
8016 vinfos[4].maxsolutions = _nj4;
8017 vinfos[5].jointtype = 1;
8018 vinfos[5].foffset = j5;
8019 vinfos[5].indices[0] = _ij5[0];
8020 vinfos[5].indices[1] = _ij5[1];
8021 vinfos[5].maxsolutions = _nj5;
8022 vinfos[6].jointtype = 1;
8023 vinfos[6].foffset = j6;
8024 vinfos[6].indices[0] = _ij6[0];
8025 vinfos[6].indices[1] = _ij6[1];
8026 vinfos[6].maxsolutions = _nj6;
8027 std::vector<int> vfree(0);
8038 IkReal j0array[1], cj0array[1], sj0array[1];
8039 bool j0valid[1] = {
false };
8041 IkReal x352 = ((1.0) * gconst2);
8043 IkReal((((gconst2 * new_r00)) +
8044 (((-1.0) * new_r11 * x352)))),
8045 IkReal(((((-1.0) * new_r01 * x352)) +
8046 (((-1.0) * new_r10 * x352)))),
8053 IKsign((((new_r10 * new_r11)) +
8054 ((new_r00 * new_r01)))),
8060 j0array[0] = ((-1.5707963267949) + (x353.
value) +
8061 (((1.5707963267949) * (x354.
value))));
8062 sj0array[0] =
IKsin(j0array[0]);
8063 cj0array[0] =
IKcos(j0array[0]);
8064 if (j0array[0] >
IKPI)
8066 j0array[0] -=
IK2PI;
8068 else if (j0array[0] < -
IKPI)
8070 j0array[0] +=
IK2PI;
8073 for (
int ij0 = 0; ij0 < 1; ++ij0)
8081 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8083 if (j0valid[iij0] &&
8084 IKabs(cj0array[ij0] - cj0array[iij0]) <
8086 IKabs(sj0array[ij0] - sj0array[iij0]) <
8089 j0valid[iij0] =
false;
8095 cj0 = cj0array[ij0];
8096 sj0 = sj0array[ij0];
8099 IkReal x355 =
IKcos(j0);
8100 IkReal x356 =
IKsin(j0);
8101 IkReal x357 = ((1.0) * gconst1);
8102 IkReal x358 = (gconst2 * x355);
8103 IkReal x359 = (gconst1 * x355);
8104 IkReal x360 = (gconst2 * x356);
8105 IkReal x361 = ((1.0) * x356);
8106 IkReal x362 = (x356 * x357);
8107 evalcond[0] = (gconst2 + ((new_r10 * x356)) +
8108 ((new_r00 * x355)));
8109 evalcond[1] = (x359 + x360 + new_r10);
8110 evalcond[2] = ((((-1.0) * new_r00 * x361)) +
8111 gconst1 + ((new_r10 * x355)));
8112 evalcond[3] = (gconst2 + ((new_r11 * x355)) +
8113 (((-1.0) * new_r01 * x361)));
8114 evalcond[4] = ((((-1.0) * x362)) + x358 + new_r00);
8115 evalcond[5] = ((((-1.0) * x362)) + x358 + new_r11);
8117 (((new_r01 * x355)) + (((-1.0) * x357)) +
8118 ((new_r11 * x356)));
8119 evalcond[7] = ((((-1.0) * x360)) + new_r01 +
8120 (((-1.0) * x355 * x357)));
8135 std::vector<IkSingleDOFSolutionBase<IkReal> >
8137 vinfos[0].jointtype = 1;
8138 vinfos[0].foffset = j0;
8139 vinfos[0].indices[0] = _ij0[0];
8140 vinfos[0].indices[1] = _ij0[1];
8141 vinfos[0].maxsolutions = _nj0;
8142 vinfos[1].jointtype = 1;
8143 vinfos[1].foffset = j1;
8144 vinfos[1].indices[0] = _ij1[0];
8145 vinfos[1].indices[1] = _ij1[1];
8146 vinfos[1].maxsolutions = _nj1;
8147 vinfos[2].jointtype = 1;
8148 vinfos[2].foffset = j2;
8149 vinfos[2].indices[0] = _ij2[0];
8150 vinfos[2].indices[1] = _ij2[1];
8151 vinfos[2].maxsolutions = _nj2;
8152 vinfos[3].jointtype = 1;
8153 vinfos[3].foffset = j3;
8154 vinfos[3].indices[0] = _ij3[0];
8155 vinfos[3].indices[1] = _ij3[1];
8156 vinfos[3].maxsolutions = _nj3;
8157 vinfos[4].jointtype = 1;
8158 vinfos[4].foffset = j4;
8159 vinfos[4].indices[0] = _ij4[0];
8160 vinfos[4].indices[1] = _ij4[1];
8161 vinfos[4].maxsolutions = _nj4;
8162 vinfos[5].jointtype = 1;
8163 vinfos[5].foffset = j5;
8164 vinfos[5].indices[0] = _ij5[0];
8165 vinfos[5].indices[1] = _ij5[1];
8166 vinfos[5].maxsolutions = _nj5;
8167 vinfos[6].jointtype = 1;
8168 vinfos[6].foffset = j6;
8169 vinfos[6].indices[0] = _ij6[0];
8170 vinfos[6].indices[1] = _ij6[1];
8171 vinfos[6].maxsolutions = _nj6;
8172 std::vector<int> vfree(0);
8183 IkReal j0array[1], cj0array[1], sj0array[1];
8184 bool j0valid[1] = {
false };
8186 IkReal x363 = ((1.0) * new_r10);
8188 IKsign(((new_r10 * new_r10) + (new_r00 * new_r00))),
8195 IkReal((((gconst1 * new_r00)) +
8196 (((-1.0) * gconst2 * x363)))),
8197 IkReal(((((-1.0) * gconst1 * x363)) +
8198 (((-1.0) * gconst2 * new_r00)))),
8205 ((-1.5707963267949) +
8206 (((1.5707963267949) * (x364.
value))) + (x365.
value));
8207 sj0array[0] =
IKsin(j0array[0]);
8208 cj0array[0] =
IKcos(j0array[0]);
8209 if (j0array[0] >
IKPI)
8211 j0array[0] -=
IK2PI;
8213 else if (j0array[0] < -
IKPI)
8215 j0array[0] +=
IK2PI;
8218 for (
int ij0 = 0; ij0 < 1; ++ij0)
8226 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8228 if (j0valid[iij0] &&
8229 IKabs(cj0array[ij0] - cj0array[iij0]) <
8231 IKabs(sj0array[ij0] - sj0array[iij0]) <
8234 j0valid[iij0] =
false;
8240 cj0 = cj0array[ij0];
8241 sj0 = sj0array[ij0];
8244 IkReal x366 =
IKcos(j0);
8245 IkReal x367 =
IKsin(j0);
8246 IkReal x368 = ((1.0) * gconst1);
8247 IkReal x369 = (gconst2 * x366);
8248 IkReal x370 = (gconst1 * x366);
8249 IkReal x371 = (gconst2 * x367);
8250 IkReal x372 = ((1.0) * x367);
8251 IkReal x373 = (x367 * x368);
8253 (gconst2 + ((new_r00 * x366)) + ((new_r10 * x367)));
8254 evalcond[1] = (x371 + x370 + new_r10);
8255 evalcond[2] = ((((-1.0) * new_r00 * x372)) + gconst1 +
8256 ((new_r10 * x366)));
8257 evalcond[3] = (gconst2 + (((-1.0) * new_r01 * x372)) +
8258 ((new_r11 * x366)));
8259 evalcond[4] = ((((-1.0) * x373)) + x369 + new_r00);
8260 evalcond[5] = ((((-1.0) * x373)) + x369 + new_r11);
8261 evalcond[6] = ((((-1.0) * x368)) + ((new_r01 * x366)) +
8262 ((new_r11 * x367)));
8263 evalcond[7] = ((((-1.0) * x371)) +
8264 (((-1.0) * x366 * x368)) + new_r01);
8279 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
8280 vinfos[0].jointtype = 1;
8281 vinfos[0].foffset = j0;
8282 vinfos[0].indices[0] = _ij0[0];
8283 vinfos[0].indices[1] = _ij0[1];
8284 vinfos[0].maxsolutions = _nj0;
8285 vinfos[1].jointtype = 1;
8286 vinfos[1].foffset = j1;
8287 vinfos[1].indices[0] = _ij1[0];
8288 vinfos[1].indices[1] = _ij1[1];
8289 vinfos[1].maxsolutions = _nj1;
8290 vinfos[2].jointtype = 1;
8291 vinfos[2].foffset = j2;
8292 vinfos[2].indices[0] = _ij2[0];
8293 vinfos[2].indices[1] = _ij2[1];
8294 vinfos[2].maxsolutions = _nj2;
8295 vinfos[3].jointtype = 1;
8296 vinfos[3].foffset = j3;
8297 vinfos[3].indices[0] = _ij3[0];
8298 vinfos[3].indices[1] = _ij3[1];
8299 vinfos[3].maxsolutions = _nj3;
8300 vinfos[4].jointtype = 1;
8301 vinfos[4].foffset = j4;
8302 vinfos[4].indices[0] = _ij4[0];
8303 vinfos[4].indices[1] = _ij4[1];
8304 vinfos[4].maxsolutions = _nj4;
8305 vinfos[5].jointtype = 1;
8306 vinfos[5].foffset = j5;
8307 vinfos[5].indices[0] = _ij5[0];
8308 vinfos[5].indices[1] = _ij5[1];
8309 vinfos[5].maxsolutions = _nj5;
8310 vinfos[6].jointtype = 1;
8311 vinfos[6].foffset = j6;
8312 vinfos[6].indices[0] = _ij6[0];
8313 vinfos[6].indices[1] = _ij6[1];
8314 vinfos[6].maxsolutions = _nj6;
8315 std::vector<int> vfree(0);
8324 if (bgotonextstatement)
8326 bool bgotonextstatement =
true;
8329 IkReal x376 = ((new_r10 * new_r10) + (new_r00 * new_r00));
8330 if (
IKabs(x376) == 0)
8334 IkReal x374 = pow(x376, -0.5);
8335 IkReal x375 = ((1.0) * x374);
8338 IkReal(((-1.0) * new_r10)),
8344 IkReal gconst3 = ((3.14159265358979) + (((-1.0) * (x377.
value))));
8345 IkReal gconst4 = (new_r00 * x375);
8346 IkReal gconst5 = (new_r10 * x375);
8349 IkReal(((-1.0) * new_r10)),
8356 ((-3.14159265358979) +
8357 (
IKfmod(((3.14159265358979) +
8358 (
IKabs(((-3.14159265358979) + (x378.
value) + j2)))),
8359 6.28318530717959)));
8360 if (
IKabs(evalcond[0]) < 0.0000050000000000)
8362 bgotonextstatement =
false;
8367 IkReal(((-1.0) * new_r10)),
8373 IkReal x379 = ((1.0) * (x382.
value));
8375 IkReal x381 = ((1.0) * x380);
8381 j2 = ((3.14159265) + (((-1.0) * x379)));
8382 IkReal gconst3 = ((3.14159265358979) + (((-1.0) * x379)));
8383 IkReal gconst4 = (new_r00 * x381);
8384 IkReal gconst5 = (new_r10 * x381);
8385 IkReal x383 = ((new_r10 * new_r10) + (new_r00 * new_r00));
8387 j0eval[1] =
IKsign(x383);
8388 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
8389 IKabs(j0eval[1]) < 0.0000010000000000)
8395 IkReal(((-1.0) * new_r10)),
8401 IkReal x384 = ((1.0) * (x387.
value));
8403 IkReal x386 = ((1.0) * x385);
8409 j2 = ((3.14159265) + (((-1.0) * x384)));
8410 IkReal gconst3 = ((3.14159265358979) + (((-1.0) * x384)));
8411 IkReal gconst4 = (new_r00 * x386);
8412 IkReal gconst5 = (new_r10 * x386);
8413 IkReal x388 = new_r10 * new_r10;
8414 IkReal x389 = (new_r10 * new_r11);
8415 IkReal x390 = (((new_r00 * new_r01)) + x389);
8417 IkReal x392 = ((1.0) * x391);
8420 ((
IKabs(((((-1.0) * new_r01 * new_r10 * x392)) +
8421 (((-1.0) * x388 * x392))))) +
8422 (
IKabs(((((-1.0) * x389 * x392)) +
8423 ((new_r00 * new_r10 * x391))))));
8424 j0eval[2] =
IKsign(x390);
8425 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
8426 IKabs(j0eval[1]) < 0.0000010000000000 ||
8427 IKabs(j0eval[2]) < 0.0000010000000000)
8433 IkReal(((-1.0) * new_r10)),
8439 IkReal x393 = ((1.0) * (x396.
value));
8441 IkReal x395 = ((1.0) * x394);
8447 j2 = ((3.14159265) + (((-1.0) * x393)));
8449 ((3.14159265358979) + (((-1.0) * x393)));
8450 IkReal gconst4 = (new_r00 * x395);
8451 IkReal gconst5 = (new_r10 * x395);
8452 IkReal x397 = new_r10 * new_r10;
8453 IkReal x398 = new_r00 * new_r00;
8460 IkReal x399 = x405.
value;
8461 IkReal x400 = (x397 * x399);
8463 ((((-1.0) * x398)) + (((-1.0) * x397))), -1);
8468 IkReal x401 = x406.
value;
8469 IkReal x402 = ((1.0) * x401);
8470 IkReal x403 = (new_r00 * x402);
8471 IkReal x404 = (new_r10 * x402);
8473 ((
IKabs((((x399 * (x398 * x398))) +
8474 ((x398 * x400)) + (((-1.0) * x400))))) +
8475 (
IKabs(((((-1.0) * x403 *
8476 (new_r10 * new_r10 * new_r10))) +
8477 (((-1.0) * new_r10 * x403)) +
8478 (((-1.0) * new_r10 * x403 *
8479 (new_r00 * new_r00)))))));
8480 if (
IKabs(j0eval[0]) < 0.0000010000000000)
8487 IkReal j0array[1], cj0array[1], sj0array[1];
8488 bool j0valid[1] = {
false };
8491 IKsign((((gconst4 * new_r00)) +
8492 ((gconst5 * new_r10)))),
8499 IkReal(((((-1.0) * (gconst5 * gconst5))) +
8500 (new_r00 * new_r00))),
8501 IkReal(((((-1.0) * gconst4 * gconst5)) +
8502 (((-1.0) * new_r00 * new_r10)))),
8509 ((-1.5707963267949) +
8510 (((1.5707963267949) * (x407.
value))) +
8512 sj0array[0] =
IKsin(j0array[0]);
8513 cj0array[0] =
IKcos(j0array[0]);
8514 if (j0array[0] >
IKPI)
8516 j0array[0] -=
IK2PI;
8518 else if (j0array[0] < -
IKPI)
8520 j0array[0] +=
IK2PI;
8523 for (
int ij0 = 0; ij0 < 1; ++ij0)
8531 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8533 if (j0valid[iij0] &&
8534 IKabs(cj0array[ij0] - cj0array[iij0]) <
8536 IKabs(sj0array[ij0] - sj0array[iij0]) <
8539 j0valid[iij0] =
false;
8545 cj0 = cj0array[ij0];
8546 sj0 = sj0array[ij0];
8549 IkReal x409 =
IKcos(j0);
8550 IkReal x410 =
IKsin(j0);
8551 IkReal x411 = ((1.0) * gconst4);
8552 IkReal x412 = (gconst5 * x409);
8553 IkReal x413 = ((1.0) * x410);
8554 IkReal x414 = (x410 * x411);
8555 evalcond[0] = (gconst5 + ((new_r10 * x410)) +
8556 ((new_r00 * x409)));
8557 evalcond[1] = (((gconst5 * x410)) +
8558 ((gconst4 * x409)) + new_r10);
8559 evalcond[2] = (gconst4 + ((new_r10 * x409)) +
8560 (((-1.0) * new_r00 * x413)));
8561 evalcond[3] = (gconst5 + ((new_r11 * x409)) +
8562 (((-1.0) * new_r01 * x413)));
8564 (x412 + new_r00 + (((-1.0) * x414)));
8566 (x412 + new_r11 + (((-1.0) * x414)));
8568 (((new_r11 * x410)) + ((new_r01 * x409)) +
8571 ((((-1.0) * gconst5 * x413)) + new_r01 +
8572 (((-1.0) * x409 * x411)));
8573 if (
IKabs(evalcond[0]) >
8575 IKabs(evalcond[1]) >
8577 IKabs(evalcond[2]) >
8579 IKabs(evalcond[3]) >
8581 IKabs(evalcond[4]) >
8583 IKabs(evalcond[5]) >
8585 IKabs(evalcond[6]) >
8587 IKabs(evalcond[7]) >
8595 std::vector<IkSingleDOFSolutionBase<IkReal> >
8597 vinfos[0].jointtype = 1;
8598 vinfos[0].foffset = j0;
8599 vinfos[0].indices[0] = _ij0[0];
8600 vinfos[0].indices[1] = _ij0[1];
8601 vinfos[0].maxsolutions = _nj0;
8602 vinfos[1].jointtype = 1;
8603 vinfos[1].foffset = j1;
8604 vinfos[1].indices[0] = _ij1[0];
8605 vinfos[1].indices[1] = _ij1[1];
8606 vinfos[1].maxsolutions = _nj1;
8607 vinfos[2].jointtype = 1;
8608 vinfos[2].foffset = j2;
8609 vinfos[2].indices[0] = _ij2[0];
8610 vinfos[2].indices[1] = _ij2[1];
8611 vinfos[2].maxsolutions = _nj2;
8612 vinfos[3].jointtype = 1;
8613 vinfos[3].foffset = j3;
8614 vinfos[3].indices[0] = _ij3[0];
8615 vinfos[3].indices[1] = _ij3[1];
8616 vinfos[3].maxsolutions = _nj3;
8617 vinfos[4].jointtype = 1;
8618 vinfos[4].foffset = j4;
8619 vinfos[4].indices[0] = _ij4[0];
8620 vinfos[4].indices[1] = _ij4[1];
8621 vinfos[4].maxsolutions = _nj4;
8622 vinfos[5].jointtype = 1;
8623 vinfos[5].foffset = j5;
8624 vinfos[5].indices[0] = _ij5[0];
8625 vinfos[5].indices[1] = _ij5[1];
8626 vinfos[5].maxsolutions = _nj5;
8627 vinfos[6].jointtype = 1;
8628 vinfos[6].foffset = j6;
8629 vinfos[6].indices[0] = _ij6[0];
8630 vinfos[6].indices[1] = _ij6[1];
8631 vinfos[6].maxsolutions = _nj6;
8632 std::vector<int> vfree(0);
8643 IkReal j0array[1], cj0array[1], sj0array[1];
8644 bool j0valid[1] = {
false };
8646 IkReal x415 = ((1.0) * gconst5);
8648 IkReal((((gconst5 * new_r00)) +
8649 (((-1.0) * new_r11 * x415)))),
8650 IkReal(((((-1.0) * new_r10 * x415)) +
8651 (((-1.0) * new_r01 * x415)))),
8658 IKsign((((new_r10 * new_r11)) +
8659 ((new_r00 * new_r01)))),
8665 j0array[0] = ((-1.5707963267949) + (x416.
value) +
8666 (((1.5707963267949) * (x417.
value))));
8667 sj0array[0] =
IKsin(j0array[0]);
8668 cj0array[0] =
IKcos(j0array[0]);
8669 if (j0array[0] >
IKPI)
8671 j0array[0] -=
IK2PI;
8673 else if (j0array[0] < -
IKPI)
8675 j0array[0] +=
IK2PI;
8678 for (
int ij0 = 0; ij0 < 1; ++ij0)
8686 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8688 if (j0valid[iij0] &&
8689 IKabs(cj0array[ij0] - cj0array[iij0]) <
8691 IKabs(sj0array[ij0] - sj0array[iij0]) <
8694 j0valid[iij0] =
false;
8700 cj0 = cj0array[ij0];
8701 sj0 = sj0array[ij0];
8704 IkReal x418 =
IKcos(j0);
8705 IkReal x419 =
IKsin(j0);
8706 IkReal x420 = ((1.0) * gconst4);
8707 IkReal x421 = (gconst5 * x418);
8708 IkReal x422 = ((1.0) * x419);
8709 IkReal x423 = (x419 * x420);
8710 evalcond[0] = (gconst5 + ((new_r10 * x419)) +
8711 ((new_r00 * x418)));
8712 evalcond[1] = (((gconst5 * x419)) + new_r10 +
8713 ((gconst4 * x418)));
8714 evalcond[2] = ((((-1.0) * new_r00 * x422)) +
8715 gconst4 + ((new_r10 * x418)));
8716 evalcond[3] = (gconst5 + ((new_r11 * x418)) +
8717 (((-1.0) * new_r01 * x422)));
8719 ((((-1.0) * x423)) + x421 + new_r00);
8721 ((((-1.0) * x423)) + x421 + new_r11);
8723 ((((-1.0) * x420)) + ((new_r11 * x419)) +
8724 ((new_r01 * x418)));
8726 ((((-1.0) * x418 * x420)) + new_r01 +
8727 (((-1.0) * gconst5 * x422)));
8742 std::vector<IkSingleDOFSolutionBase<IkReal> >
8744 vinfos[0].jointtype = 1;
8745 vinfos[0].foffset = j0;
8746 vinfos[0].indices[0] = _ij0[0];
8747 vinfos[0].indices[1] = _ij0[1];
8748 vinfos[0].maxsolutions = _nj0;
8749 vinfos[1].jointtype = 1;
8750 vinfos[1].foffset = j1;
8751 vinfos[1].indices[0] = _ij1[0];
8752 vinfos[1].indices[1] = _ij1[1];
8753 vinfos[1].maxsolutions = _nj1;
8754 vinfos[2].jointtype = 1;
8755 vinfos[2].foffset = j2;
8756 vinfos[2].indices[0] = _ij2[0];
8757 vinfos[2].indices[1] = _ij2[1];
8758 vinfos[2].maxsolutions = _nj2;
8759 vinfos[3].jointtype = 1;
8760 vinfos[3].foffset = j3;
8761 vinfos[3].indices[0] = _ij3[0];
8762 vinfos[3].indices[1] = _ij3[1];
8763 vinfos[3].maxsolutions = _nj3;
8764 vinfos[4].jointtype = 1;
8765 vinfos[4].foffset = j4;
8766 vinfos[4].indices[0] = _ij4[0];
8767 vinfos[4].indices[1] = _ij4[1];
8768 vinfos[4].maxsolutions = _nj4;
8769 vinfos[5].jointtype = 1;
8770 vinfos[5].foffset = j5;
8771 vinfos[5].indices[0] = _ij5[0];
8772 vinfos[5].indices[1] = _ij5[1];
8773 vinfos[5].maxsolutions = _nj5;
8774 vinfos[6].jointtype = 1;
8775 vinfos[6].foffset = j6;
8776 vinfos[6].indices[0] = _ij6[0];
8777 vinfos[6].indices[1] = _ij6[1];
8778 vinfos[6].maxsolutions = _nj6;
8779 std::vector<int> vfree(0);
8790 IkReal j0array[1], cj0array[1], sj0array[1];
8791 bool j0valid[1] = {
false };
8793 IkReal x424 = ((1.0) * new_r10);
8795 IkReal((((gconst4 * new_r00)) +
8796 (((-1.0) * gconst5 * x424)))),
8797 IkReal(((((-1.0) * gconst4 * x424)) +
8798 (((-1.0) * gconst5 * new_r00)))),
8805 IKsign(((new_r10 * new_r10) + (new_r00 * new_r00))),
8811 j0array[0] = ((-1.5707963267949) + (x425.
value) +
8812 (((1.5707963267949) * (x426.
value))));
8813 sj0array[0] =
IKsin(j0array[0]);
8814 cj0array[0] =
IKcos(j0array[0]);
8815 if (j0array[0] >
IKPI)
8817 j0array[0] -=
IK2PI;
8819 else if (j0array[0] < -
IKPI)
8821 j0array[0] +=
IK2PI;
8824 for (
int ij0 = 0; ij0 < 1; ++ij0)
8832 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8834 if (j0valid[iij0] &&
8835 IKabs(cj0array[ij0] - cj0array[iij0]) <
8837 IKabs(sj0array[ij0] - sj0array[iij0]) <
8840 j0valid[iij0] =
false;
8846 cj0 = cj0array[ij0];
8847 sj0 = sj0array[ij0];
8850 IkReal x427 =
IKcos(j0);
8851 IkReal x428 =
IKsin(j0);
8852 IkReal x429 = ((1.0) * gconst4);
8853 IkReal x430 = (gconst5 * x427);
8854 IkReal x431 = ((1.0) * x428);
8855 IkReal x432 = (x428 * x429);
8856 evalcond[0] = (gconst5 + ((new_r10 * x428)) +
8857 ((new_r00 * x427)));
8858 evalcond[1] = (((gconst4 * x427)) +
8859 ((gconst5 * x428)) + new_r10);
8860 evalcond[2] = ((((-1.0) * new_r00 * x431)) + gconst4 +
8861 ((new_r10 * x427)));
8862 evalcond[3] = ((((-1.0) * new_r01 * x431)) + gconst5 +
8863 ((new_r11 * x427)));
8864 evalcond[4] = ((((-1.0) * x432)) + x430 + new_r00);
8865 evalcond[5] = ((((-1.0) * x432)) + x430 + new_r11);
8867 ((((-1.0) * x429)) + ((new_r11 * x428)) +
8868 ((new_r01 * x427)));
8869 evalcond[7] = ((((-1.0) * x427 * x429)) +
8870 (((-1.0) * gconst5 * x431)) + new_r01);
8885 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(
8887 vinfos[0].jointtype = 1;
8888 vinfos[0].foffset = j0;
8889 vinfos[0].indices[0] = _ij0[0];
8890 vinfos[0].indices[1] = _ij0[1];
8891 vinfos[0].maxsolutions = _nj0;
8892 vinfos[1].jointtype = 1;
8893 vinfos[1].foffset = j1;
8894 vinfos[1].indices[0] = _ij1[0];
8895 vinfos[1].indices[1] = _ij1[1];
8896 vinfos[1].maxsolutions = _nj1;
8897 vinfos[2].jointtype = 1;
8898 vinfos[2].foffset = j2;
8899 vinfos[2].indices[0] = _ij2[0];
8900 vinfos[2].indices[1] = _ij2[1];
8901 vinfos[2].maxsolutions = _nj2;
8902 vinfos[3].jointtype = 1;
8903 vinfos[3].foffset = j3;
8904 vinfos[3].indices[0] = _ij3[0];
8905 vinfos[3].indices[1] = _ij3[1];
8906 vinfos[3].maxsolutions = _nj3;
8907 vinfos[4].jointtype = 1;
8908 vinfos[4].foffset = j4;
8909 vinfos[4].indices[0] = _ij4[0];
8910 vinfos[4].indices[1] = _ij4[1];
8911 vinfos[4].maxsolutions = _nj4;
8912 vinfos[5].jointtype = 1;
8913 vinfos[5].foffset = j5;
8914 vinfos[5].indices[0] = _ij5[0];
8915 vinfos[5].indices[1] = _ij5[1];
8916 vinfos[5].maxsolutions = _nj5;
8917 vinfos[6].jointtype = 1;
8918 vinfos[6].foffset = j6;
8919 vinfos[6].indices[0] = _ij6[0];
8920 vinfos[6].indices[1] = _ij6[1];
8921 vinfos[6].maxsolutions = _nj6;
8922 std::vector<int> vfree(0);
8931 if (bgotonextstatement)
8933 bool bgotonextstatement =
true;
8936 evalcond[0] = ((-3.14159265358979) +
8937 (
IKfmod(((3.14159265358979) +
8938 (
IKabs(((-1.5707963267949) + j2)))),
8939 6.28318530717959)));
8940 if (
IKabs(evalcond[0]) < 0.0000050000000000)
8942 bgotonextstatement =
false;
8944 IkReal j0array[1], cj0array[1], sj0array[1];
8945 bool j0valid[1] = {
false };
8952 j0array[0] =
IKatan2(new_r00, ((-1.0) * new_r10));
8953 sj0array[0] =
IKsin(j0array[0]);
8954 cj0array[0] =
IKcos(j0array[0]);
8955 if (j0array[0] >
IKPI)
8957 j0array[0] -=
IK2PI;
8959 else if (j0array[0] < -
IKPI)
8961 j0array[0] +=
IK2PI;
8964 for (
int ij0 = 0; ij0 < 1; ++ij0)
8972 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
8974 if (j0valid[iij0] &&
8975 IKabs(cj0array[ij0] - cj0array[iij0]) <
8977 IKabs(sj0array[ij0] - sj0array[iij0]) <
8980 j0valid[iij0] =
false;
8986 cj0 = cj0array[ij0];
8987 sj0 = sj0array[ij0];
8990 IkReal x433 =
IKcos(j0);
8991 IkReal x434 =
IKsin(j0);
8992 IkReal x435 = ((1.0) * x434);
8993 evalcond[0] = (x433 + new_r10);
8994 evalcond[1] = ((((-1.0) * x435)) + new_r00);
8995 evalcond[2] = ((((-1.0) * x435)) + new_r11);
8996 evalcond[3] = ((((-1.0) * x433)) + new_r01);
8997 evalcond[4] = (((new_r00 * x433)) + ((new_r10 * x434)));
8999 ((((-1.0) * new_r01 * x435)) + ((new_r11 * x433)));
9001 ((-1.0) + ((new_r01 * x433)) + ((new_r11 * x434)));
9002 evalcond[7] = ((1.0) + (((-1.0) * new_r00 * x435)) +
9003 ((new_r10 * x433)));
9018 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
9019 vinfos[0].jointtype = 1;
9020 vinfos[0].foffset = j0;
9021 vinfos[0].indices[0] = _ij0[0];
9022 vinfos[0].indices[1] = _ij0[1];
9023 vinfos[0].maxsolutions = _nj0;
9024 vinfos[1].jointtype = 1;
9025 vinfos[1].foffset = j1;
9026 vinfos[1].indices[0] = _ij1[0];
9027 vinfos[1].indices[1] = _ij1[1];
9028 vinfos[1].maxsolutions = _nj1;
9029 vinfos[2].jointtype = 1;
9030 vinfos[2].foffset = j2;
9031 vinfos[2].indices[0] = _ij2[0];
9032 vinfos[2].indices[1] = _ij2[1];
9033 vinfos[2].maxsolutions = _nj2;
9034 vinfos[3].jointtype = 1;
9035 vinfos[3].foffset = j3;
9036 vinfos[3].indices[0] = _ij3[0];
9037 vinfos[3].indices[1] = _ij3[1];
9038 vinfos[3].maxsolutions = _nj3;
9039 vinfos[4].jointtype = 1;
9040 vinfos[4].foffset = j4;
9041 vinfos[4].indices[0] = _ij4[0];
9042 vinfos[4].indices[1] = _ij4[1];
9043 vinfos[4].maxsolutions = _nj4;
9044 vinfos[5].jointtype = 1;
9045 vinfos[5].foffset = j5;
9046 vinfos[5].indices[0] = _ij5[0];
9047 vinfos[5].indices[1] = _ij5[1];
9048 vinfos[5].maxsolutions = _nj5;
9049 vinfos[6].jointtype = 1;
9050 vinfos[6].foffset = j6;
9051 vinfos[6].indices[0] = _ij6[0];
9052 vinfos[6].indices[1] = _ij6[1];
9053 vinfos[6].maxsolutions = _nj6;
9054 std::vector<int> vfree(0);
9061 if (bgotonextstatement)
9063 bool bgotonextstatement =
true;
9066 evalcond[0] = ((-3.14159265358979) +
9067 (
IKfmod(((3.14159265358979) +
9068 (
IKabs(((1.5707963267949) + j2)))),
9069 6.28318530717959)));
9070 if (
IKabs(evalcond[0]) < 0.0000050000000000)
9072 bgotonextstatement =
false;
9074 IkReal j0array[1], cj0array[1], sj0array[1];
9075 bool j0valid[1] = {
false };
9080 IKsqr(((-1.0) * new_r01)) - 1) <=
9084 IKatan2(((-1.0) * new_r00), ((-1.0) * new_r01));
9085 sj0array[0] =
IKsin(j0array[0]);
9086 cj0array[0] =
IKcos(j0array[0]);
9087 if (j0array[0] >
IKPI)
9089 j0array[0] -=
IK2PI;
9091 else if (j0array[0] < -
IKPI)
9093 j0array[0] +=
IK2PI;
9096 for (
int ij0 = 0; ij0 < 1; ++ij0)
9104 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
9106 if (j0valid[iij0] &&
9107 IKabs(cj0array[ij0] - cj0array[iij0]) <
9109 IKabs(sj0array[ij0] - sj0array[iij0]) <
9112 j0valid[iij0] =
false;
9118 cj0 = cj0array[ij0];
9119 sj0 = sj0array[ij0];
9122 IkReal x436 =
IKsin(j0);
9123 IkReal x437 =
IKcos(j0);
9124 IkReal x438 = ((1.0) * x436);
9125 evalcond[0] = (x436 + new_r00);
9126 evalcond[1] = (x436 + new_r11);
9127 evalcond[2] = (x437 + new_r01);
9128 evalcond[3] = ((((-1.0) * x437)) + new_r10);
9130 (((new_r00 * x437)) + ((new_r10 * x436)));
9131 evalcond[5] = ((((-1.0) * new_r01 * x438)) +
9132 ((new_r11 * x437)));
9134 ((1.0) + ((new_r01 * x437)) + ((new_r11 * x436)));
9135 evalcond[7] = ((-1.0) + (((-1.0) * new_r00 * x438)) +
9136 ((new_r10 * x437)));
9151 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(
9153 vinfos[0].jointtype = 1;
9154 vinfos[0].foffset = j0;
9155 vinfos[0].indices[0] = _ij0[0];
9156 vinfos[0].indices[1] = _ij0[1];
9157 vinfos[0].maxsolutions = _nj0;
9158 vinfos[1].jointtype = 1;
9159 vinfos[1].foffset = j1;
9160 vinfos[1].indices[0] = _ij1[0];
9161 vinfos[1].indices[1] = _ij1[1];
9162 vinfos[1].maxsolutions = _nj1;
9163 vinfos[2].jointtype = 1;
9164 vinfos[2].foffset = j2;
9165 vinfos[2].indices[0] = _ij2[0];
9166 vinfos[2].indices[1] = _ij2[1];
9167 vinfos[2].maxsolutions = _nj2;
9168 vinfos[3].jointtype = 1;
9169 vinfos[3].foffset = j3;
9170 vinfos[3].indices[0] = _ij3[0];
9171 vinfos[3].indices[1] = _ij3[1];
9172 vinfos[3].maxsolutions = _nj3;
9173 vinfos[4].jointtype = 1;
9174 vinfos[4].foffset = j4;
9175 vinfos[4].indices[0] = _ij4[0];
9176 vinfos[4].indices[1] = _ij4[1];
9177 vinfos[4].maxsolutions = _nj4;
9178 vinfos[5].jointtype = 1;
9179 vinfos[5].foffset = j5;
9180 vinfos[5].indices[0] = _ij5[0];
9181 vinfos[5].indices[1] = _ij5[1];
9182 vinfos[5].maxsolutions = _nj5;
9183 vinfos[6].jointtype = 1;
9184 vinfos[6].foffset = j6;
9185 vinfos[6].indices[0] = _ij6[0];
9186 vinfos[6].indices[1] = _ij6[1];
9187 vinfos[6].maxsolutions = _nj6;
9188 std::vector<int> vfree(0);
9195 if (bgotonextstatement)
9197 bool bgotonextstatement =
true;
9200 evalcond[0] = ((new_r10 * new_r10) + (new_r00 * new_r00));
9201 if (
IKabs(evalcond[0]) < 0.0000050000000000)
9203 bgotonextstatement =
false;
9211 j0eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r01)));
9212 if (
IKabs(j0eval[0]) < 0.0000010000000000)
9219 IkReal j0array[2], cj0array[2], sj0array[2];
9220 bool j0valid[2] = {
false };
9230 IkReal x439 = x440.
value;
9231 j0array[0] = ((-1.0) * x439);
9232 sj0array[0] =
IKsin(j0array[0]);
9233 cj0array[0] =
IKcos(j0array[0]);
9235 ((3.14159265358979) + (((-1.0) * x439)));
9236 sj0array[1] =
IKsin(j0array[1]);
9237 cj0array[1] =
IKcos(j0array[1]);
9238 if (j0array[0] >
IKPI)
9240 j0array[0] -=
IK2PI;
9242 else if (j0array[0] < -
IKPI)
9244 j0array[0] +=
IK2PI;
9247 if (j0array[1] >
IKPI)
9249 j0array[1] -=
IK2PI;
9251 else if (j0array[1] < -
IKPI)
9253 j0array[1] +=
IK2PI;
9256 for (
int ij0 = 0; ij0 < 2; ++ij0)
9264 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
9266 if (j0valid[iij0] &&
9267 IKabs(cj0array[ij0] - cj0array[iij0]) <
9269 IKabs(sj0array[ij0] - sj0array[iij0]) <
9272 j0valid[iij0] =
false;
9278 cj0 = cj0array[ij0];
9279 sj0 = sj0array[ij0];
9283 (((new_r11 * (
IKcos(j0)))) +
9284 (((-1.0) * new_r01 * (
IKsin(j0)))));
9292 std::vector<IkSingleDOFSolutionBase<IkReal> >
9294 vinfos[0].jointtype = 1;
9295 vinfos[0].foffset = j0;
9296 vinfos[0].indices[0] = _ij0[0];
9297 vinfos[0].indices[1] = _ij0[1];
9298 vinfos[0].maxsolutions = _nj0;
9299 vinfos[1].jointtype = 1;
9300 vinfos[1].foffset = j1;
9301 vinfos[1].indices[0] = _ij1[0];
9302 vinfos[1].indices[1] = _ij1[1];
9303 vinfos[1].maxsolutions = _nj1;
9304 vinfos[2].jointtype = 1;
9305 vinfos[2].foffset = j2;
9306 vinfos[2].indices[0] = _ij2[0];
9307 vinfos[2].indices[1] = _ij2[1];
9308 vinfos[2].maxsolutions = _nj2;
9309 vinfos[3].jointtype = 1;
9310 vinfos[3].foffset = j3;
9311 vinfos[3].indices[0] = _ij3[0];
9312 vinfos[3].indices[1] = _ij3[1];
9313 vinfos[3].maxsolutions = _nj3;
9314 vinfos[4].jointtype = 1;
9315 vinfos[4].foffset = j4;
9316 vinfos[4].indices[0] = _ij4[0];
9317 vinfos[4].indices[1] = _ij4[1];
9318 vinfos[4].maxsolutions = _nj4;
9319 vinfos[5].jointtype = 1;
9320 vinfos[5].foffset = j5;
9321 vinfos[5].indices[0] = _ij5[0];
9322 vinfos[5].indices[1] = _ij5[1];
9323 vinfos[5].maxsolutions = _nj5;
9324 vinfos[6].jointtype = 1;
9325 vinfos[6].foffset = j6;
9326 vinfos[6].indices[0] = _ij6[0];
9327 vinfos[6].indices[1] = _ij6[1];
9328 vinfos[6].maxsolutions = _nj6;
9329 std::vector<int> vfree(0);
9338 if (bgotonextstatement)
9340 bool bgotonextstatement =
true;
9343 evalcond[0] = ((
IKabs(new_r10)) + (
IKabs(new_r00)));
9344 if (
IKabs(evalcond[0]) < 0.0000050000000000)
9346 bgotonextstatement =
false;
9356 j0eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r01)));
9357 if (
IKabs(j0eval[0]) < 0.0000010000000000)
9364 IkReal j0array[2], cj0array[2], sj0array[2];
9365 bool j0valid[2] = {
false };
9375 IkReal x441 = x442.
value;
9376 j0array[0] = ((-1.0) * x441);
9377 sj0array[0] =
IKsin(j0array[0]);
9378 cj0array[0] =
IKcos(j0array[0]);
9380 ((3.14159265358979) + (((-1.0) * x441)));
9381 sj0array[1] =
IKsin(j0array[1]);
9382 cj0array[1] =
IKcos(j0array[1]);
9383 if (j0array[0] >
IKPI)
9385 j0array[0] -=
IK2PI;
9387 else if (j0array[0] < -
IKPI)
9389 j0array[0] +=
IK2PI;
9392 if (j0array[1] >
IKPI)
9394 j0array[1] -=
IK2PI;
9396 else if (j0array[1] < -
IKPI)
9398 j0array[1] +=
IK2PI;
9401 for (
int ij0 = 0; ij0 < 2; ++ij0)
9409 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
9411 if (j0valid[iij0] &&
9412 IKabs(cj0array[ij0] - cj0array[iij0]) <
9414 IKabs(sj0array[ij0] - sj0array[iij0]) <
9417 j0valid[iij0] =
false;
9423 cj0 = cj0array[ij0];
9424 sj0 = sj0array[ij0];
9428 (((new_r11 * (
IKcos(j0)))) +
9429 (((-1.0) * new_r01 * (
IKsin(j0)))));
9430 if (
IKabs(evalcond[0]) >
9438 std::vector<IkSingleDOFSolutionBase<IkReal> >
9440 vinfos[0].jointtype = 1;
9441 vinfos[0].foffset = j0;
9442 vinfos[0].indices[0] = _ij0[0];
9443 vinfos[0].indices[1] = _ij0[1];
9444 vinfos[0].maxsolutions = _nj0;
9445 vinfos[1].jointtype = 1;
9446 vinfos[1].foffset = j1;
9447 vinfos[1].indices[0] = _ij1[0];
9448 vinfos[1].indices[1] = _ij1[1];
9449 vinfos[1].maxsolutions = _nj1;
9450 vinfos[2].jointtype = 1;
9451 vinfos[2].foffset = j2;
9452 vinfos[2].indices[0] = _ij2[0];
9453 vinfos[2].indices[1] = _ij2[1];
9454 vinfos[2].maxsolutions = _nj2;
9455 vinfos[3].jointtype = 1;
9456 vinfos[3].foffset = j3;
9457 vinfos[3].indices[0] = _ij3[0];
9458 vinfos[3].indices[1] = _ij3[1];
9459 vinfos[3].maxsolutions = _nj3;
9460 vinfos[4].jointtype = 1;
9461 vinfos[4].foffset = j4;
9462 vinfos[4].indices[0] = _ij4[0];
9463 vinfos[4].indices[1] = _ij4[1];
9464 vinfos[4].maxsolutions = _nj4;
9465 vinfos[5].jointtype = 1;
9466 vinfos[5].foffset = j5;
9467 vinfos[5].indices[0] = _ij5[0];
9468 vinfos[5].indices[1] = _ij5[1];
9469 vinfos[5].maxsolutions = _nj5;
9470 vinfos[6].jointtype = 1;
9471 vinfos[6].foffset = j6;
9472 vinfos[6].indices[0] = _ij6[0];
9473 vinfos[6].indices[1] = _ij6[1];
9474 vinfos[6].maxsolutions = _nj6;
9475 std::vector<int> vfree(0);
9484 if (bgotonextstatement)
9486 bool bgotonextstatement =
true;
9491 bgotonextstatement =
false;
9495 if (bgotonextstatement)
9509 IkReal j0array[1], cj0array[1], sj0array[1];
9510 bool j0valid[1] = {
false };
9512 IkReal x443 = ((1.0) * new_r10);
9514 IkReal((((cj2 * sj2)) + (((-1.0) * new_r00 * x443)))),
9515 IkReal(((((-1.0) * (cj2 * cj2))) + (new_r10 * new_r10))),
9522 IKsign(((((-1.0) * sj2 * x443)) + ((cj2 * new_r00)))), -1);
9527 j0array[0] = ((-1.5707963267949) + (x444.
value) +
9528 (((1.5707963267949) * (x445.
value))));
9529 sj0array[0] =
IKsin(j0array[0]);
9530 cj0array[0] =
IKcos(j0array[0]);
9531 if (j0array[0] >
IKPI)
9533 j0array[0] -=
IK2PI;
9535 else if (j0array[0] < -
IKPI)
9537 j0array[0] +=
IK2PI;
9540 for (
int ij0 = 0; ij0 < 1; ++ij0)
9548 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
9550 if (j0valid[iij0] &&
9551 IKabs(cj0array[ij0] - cj0array[iij0]) <
9553 IKabs(sj0array[ij0] - sj0array[iij0]) <
9556 j0valid[iij0] =
false;
9562 cj0 = cj0array[ij0];
9563 sj0 = sj0array[ij0];
9566 IkReal x446 =
IKcos(j0);
9567 IkReal x447 =
IKsin(j0);
9568 IkReal x448 = ((1.0) * sj2);
9569 IkReal x449 = (cj2 * x446);
9570 IkReal x450 = ((1.0) * x447);
9571 IkReal x451 = (x447 * x448);
9572 evalcond[0] = (((new_r00 * x446)) + cj2 + ((new_r10 * x447)));
9573 evalcond[1] = (((cj2 * x447)) + ((sj2 * x446)) + new_r10);
9575 (sj2 + (((-1.0) * new_r00 * x450)) + ((new_r10 * x446)));
9577 (cj2 + (((-1.0) * new_r01 * x450)) + ((new_r11 * x446)));
9578 evalcond[4] = ((((-1.0) * x451)) + x449 + new_r00);
9579 evalcond[5] = ((((-1.0) * x451)) + x449 + new_r11);
9581 ((((-1.0) * x448)) + ((new_r01 * x446)) + ((new_r11 * x447)));
9582 evalcond[7] = (new_r01 + (((-1.0) * cj2 * x450)) +
9583 (((-1.0) * x446 * x448)));
9598 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
9599 vinfos[0].jointtype = 1;
9600 vinfos[0].foffset = j0;
9601 vinfos[0].indices[0] = _ij0[0];
9602 vinfos[0].indices[1] = _ij0[1];
9603 vinfos[0].maxsolutions = _nj0;
9604 vinfos[1].jointtype = 1;
9605 vinfos[1].foffset = j1;
9606 vinfos[1].indices[0] = _ij1[0];
9607 vinfos[1].indices[1] = _ij1[1];
9608 vinfos[1].maxsolutions = _nj1;
9609 vinfos[2].jointtype = 1;
9610 vinfos[2].foffset = j2;
9611 vinfos[2].indices[0] = _ij2[0];
9612 vinfos[2].indices[1] = _ij2[1];
9613 vinfos[2].maxsolutions = _nj2;
9614 vinfos[3].jointtype = 1;
9615 vinfos[3].foffset = j3;
9616 vinfos[3].indices[0] = _ij3[0];
9617 vinfos[3].indices[1] = _ij3[1];
9618 vinfos[3].maxsolutions = _nj3;
9619 vinfos[4].jointtype = 1;
9620 vinfos[4].foffset = j4;
9621 vinfos[4].indices[0] = _ij4[0];
9622 vinfos[4].indices[1] = _ij4[1];
9623 vinfos[4].maxsolutions = _nj4;
9624 vinfos[5].jointtype = 1;
9625 vinfos[5].foffset = j5;
9626 vinfos[5].indices[0] = _ij5[0];
9627 vinfos[5].indices[1] = _ij5[1];
9628 vinfos[5].maxsolutions = _nj5;
9629 vinfos[6].jointtype = 1;
9630 vinfos[6].foffset = j6;
9631 vinfos[6].indices[0] = _ij6[0];
9632 vinfos[6].indices[1] = _ij6[1];
9633 vinfos[6].maxsolutions = _nj6;
9634 std::vector<int> vfree(0);
9645 IkReal j0array[1], cj0array[1], sj0array[1];
9646 bool j0valid[1] = {
false };
9648 IkReal x452 = ((1.0) * cj2);
9650 IkReal(((((-1.0) * new_r11 * x452)) + ((cj2 * new_r00)))),
9651 IkReal(((((-1.0) * new_r10 * x452)) + (((-1.0) * new_r01 * x452)))),
9658 IKsign((((new_r10 * new_r11)) + ((new_r00 * new_r01)))), -1);
9663 j0array[0] = ((-1.5707963267949) + (x453.
value) +
9664 (((1.5707963267949) * (x454.
value))));
9665 sj0array[0] =
IKsin(j0array[0]);
9666 cj0array[0] =
IKcos(j0array[0]);
9667 if (j0array[0] >
IKPI)
9669 j0array[0] -=
IK2PI;
9671 else if (j0array[0] < -
IKPI)
9673 j0array[0] +=
IK2PI;
9676 for (
int ij0 = 0; ij0 < 1; ++ij0)
9684 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
9686 if (j0valid[iij0] &&
9690 j0valid[iij0] =
false;
9696 cj0 = cj0array[ij0];
9697 sj0 = sj0array[ij0];
9700 IkReal x455 =
IKcos(j0);
9701 IkReal x456 =
IKsin(j0);
9702 IkReal x457 = ((1.0) * sj2);
9703 IkReal x458 = (cj2 * x455);
9704 IkReal x459 = ((1.0) * x456);
9705 IkReal x460 = (x456 * x457);
9706 evalcond[0] = (((new_r10 * x456)) + cj2 + ((new_r00 * x455)));
9707 evalcond[1] = (((sj2 * x455)) + ((cj2 * x456)) + new_r10);
9709 (((new_r10 * x455)) + sj2 + (((-1.0) * new_r00 * x459)));
9711 (((new_r11 * x455)) + cj2 + (((-1.0) * new_r01 * x459)));
9712 evalcond[4] = ((((-1.0) * x460)) + x458 + new_r00);
9713 evalcond[5] = ((((-1.0) * x460)) + x458 + new_r11);
9715 (((new_r11 * x456)) + ((new_r01 * x455)) + (((-1.0) * x457)));
9717 ((((-1.0) * x455 * x457)) + new_r01 + (((-1.0) * cj2 * x459)));
9732 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
9733 vinfos[0].jointtype = 1;
9734 vinfos[0].foffset = j0;
9735 vinfos[0].indices[0] = _ij0[0];
9736 vinfos[0].indices[1] = _ij0[1];
9737 vinfos[0].maxsolutions = _nj0;
9738 vinfos[1].jointtype = 1;
9739 vinfos[1].foffset = j1;
9740 vinfos[1].indices[0] = _ij1[0];
9741 vinfos[1].indices[1] = _ij1[1];
9742 vinfos[1].maxsolutions = _nj1;
9743 vinfos[2].jointtype = 1;
9744 vinfos[2].foffset = j2;
9745 vinfos[2].indices[0] = _ij2[0];
9746 vinfos[2].indices[1] = _ij2[1];
9747 vinfos[2].maxsolutions = _nj2;
9748 vinfos[3].jointtype = 1;
9749 vinfos[3].foffset = j3;
9750 vinfos[3].indices[0] = _ij3[0];
9751 vinfos[3].indices[1] = _ij3[1];
9752 vinfos[3].maxsolutions = _nj3;
9753 vinfos[4].jointtype = 1;
9754 vinfos[4].foffset = j4;
9755 vinfos[4].indices[0] = _ij4[0];
9756 vinfos[4].indices[1] = _ij4[1];
9757 vinfos[4].maxsolutions = _nj4;
9758 vinfos[5].jointtype = 1;
9759 vinfos[5].foffset = j5;
9760 vinfos[5].indices[0] = _ij5[0];
9761 vinfos[5].indices[1] = _ij5[1];
9762 vinfos[5].maxsolutions = _nj5;
9763 vinfos[6].jointtype = 1;
9764 vinfos[6].foffset = j6;
9765 vinfos[6].indices[0] = _ij6[0];
9766 vinfos[6].indices[1] = _ij6[1];
9767 vinfos[6].maxsolutions = _nj6;
9768 std::vector<int> vfree(0);
9779 IkReal j0array[1], cj0array[1], sj0array[1];
9780 bool j0valid[1] = {
false };
9782 IkReal x461 = ((1.0) * cj2);
9784 IKsign(((new_r10 * new_r10) + (new_r00 * new_r00))), -1);
9790 IkReal(((((-1.0) * new_r10 * x461)) + ((new_r00 * sj2)))),
9791 IkReal(((((-1.0) * new_r00 * x461)) + (((-1.0) * new_r10 * sj2)))),
9797 j0array[0] = ((-1.5707963267949) + (((1.5707963267949) * (x462.
value))) +
9799 sj0array[0] =
IKsin(j0array[0]);
9800 cj0array[0] =
IKcos(j0array[0]);
9801 if (j0array[0] >
IKPI)
9803 j0array[0] -=
IK2PI;
9805 else if (j0array[0] < -
IKPI)
9807 j0array[0] +=
IK2PI;
9810 for (
int ij0 = 0; ij0 < 1; ++ij0)
9818 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
9820 if (j0valid[iij0] &&
9824 j0valid[iij0] =
false;
9830 cj0 = cj0array[ij0];
9831 sj0 = sj0array[ij0];
9834 IkReal x464 =
IKcos(j0);
9835 IkReal x465 =
IKsin(j0);
9836 IkReal x466 = ((1.0) * sj2);
9837 IkReal x467 = (cj2 * x464);
9838 IkReal x468 = ((1.0) * x465);
9839 IkReal x469 = (x465 * x466);
9840 evalcond[0] = (((new_r10 * x465)) + cj2 + ((new_r00 * x464)));
9841 evalcond[1] = (((cj2 * x465)) + new_r10 + ((sj2 * x464)));
9842 evalcond[2] = (sj2 + ((new_r10 * x464)) + (((-1.0) * new_r00 * x468)));
9843 evalcond[3] = (((new_r11 * x464)) + cj2 + (((-1.0) * new_r01 * x468)));
9844 evalcond[4] = ((((-1.0) * x469)) + x467 + new_r00);
9845 evalcond[5] = ((((-1.0) * x469)) + x467 + new_r11);
9847 (((new_r11 * x465)) + ((new_r01 * x464)) + (((-1.0) * x466)));
9849 ((((-1.0) * x464 * x466)) + new_r01 + (((-1.0) * cj2 * x468)));
9864 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
9865 vinfos[0].jointtype = 1;
9866 vinfos[0].foffset = j0;
9867 vinfos[0].indices[0] = _ij0[0];
9868 vinfos[0].indices[1] = _ij0[1];
9869 vinfos[0].maxsolutions = _nj0;
9870 vinfos[1].jointtype = 1;
9871 vinfos[1].foffset = j1;
9872 vinfos[1].indices[0] = _ij1[0];
9873 vinfos[1].indices[1] = _ij1[1];
9874 vinfos[1].maxsolutions = _nj1;
9875 vinfos[2].jointtype = 1;
9876 vinfos[2].foffset = j2;
9877 vinfos[2].indices[0] = _ij2[0];
9878 vinfos[2].indices[1] = _ij2[1];
9879 vinfos[2].maxsolutions = _nj2;
9880 vinfos[3].jointtype = 1;
9881 vinfos[3].foffset = j3;
9882 vinfos[3].indices[0] = _ij3[0];
9883 vinfos[3].indices[1] = _ij3[1];
9884 vinfos[3].maxsolutions = _nj3;
9885 vinfos[4].jointtype = 1;
9886 vinfos[4].foffset = j4;
9887 vinfos[4].indices[0] = _ij4[0];
9888 vinfos[4].indices[1] = _ij4[1];
9889 vinfos[4].maxsolutions = _nj4;
9890 vinfos[5].jointtype = 1;
9891 vinfos[5].foffset = j5;
9892 vinfos[5].indices[0] = _ij5[0];
9893 vinfos[5].indices[1] = _ij5[1];
9894 vinfos[5].maxsolutions = _nj5;
9895 vinfos[6].jointtype = 1;
9896 vinfos[6].foffset = j6;
9897 vinfos[6].indices[0] = _ij6[0];
9898 vinfos[6].indices[1] = _ij6[1];
9899 vinfos[6].maxsolutions = _nj6;
9900 std::vector<int> vfree(0);
9909 if (bgotonextstatement)
9911 bool bgotonextstatement =
true;
9914 evalcond[0] = ((-3.14159265358979) +
9915 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j1)))),
9916 6.28318530717959)));
9917 evalcond[1] = new_r21;
9918 evalcond[2] = new_r02;
9919 evalcond[3] = new_r12;
9920 evalcond[4] = new_r20;
9921 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
9922 IKabs(evalcond[1]) < 0.0000050000000000 &&
9923 IKabs(evalcond[2]) < 0.0000050000000000 &&
9924 IKabs(evalcond[3]) < 0.0000050000000000 &&
9925 IKabs(evalcond[4]) < 0.0000050000000000)
9927 bgotonextstatement =
false;
9932 j1 = 3.14159265358979;
9933 IkReal x470 = ((1.0) * sj2);
9934 IkReal x471 = (((new_r10 * new_r11)) + ((new_r00 * new_r01)));
9937 ((
IKabs(((((-1.0) * new_r00 * x470)) + (((-1.0) * new_r11 * x470))))) +
9938 (
IKabs((((new_r01 * sj2)) + (((-1.0) * new_r10 * x470))))));
9939 j0eval[2] =
IKsign(x471);
9940 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
9941 IKabs(j0eval[1]) < 0.0000010000000000 ||
9942 IKabs(j0eval[2]) < 0.0000010000000000)
9948 j1 = 3.14159265358979;
9949 IkReal x472 = ((1.0) * new_r11);
9950 IkReal x473 = ((new_r01 * new_r01) + (new_r11 * new_r11));
9953 ((
IKabs(((((-1.0) * sj2 * x472)) + ((cj2 * new_r01))))) +
9954 (
IKabs(((((-1.0) * new_r01 * sj2)) + (((-1.0) * cj2 * x472))))));
9955 j0eval[2] =
IKsign(x473);
9956 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
9957 IKabs(j0eval[1]) < 0.0000010000000000 ||
9958 IKabs(j0eval[2]) < 0.0000010000000000)
9964 j1 = 3.14159265358979;
9965 IkReal x474 = (((new_r11 * sj2)) + ((cj2 * new_r01)));
9967 j0eval[1] =
IKsign(x474);
9968 j0eval[2] = ((
IKabs(((((-1.0) * cj2 * sj2)) +
9969 (((-1.0) * new_r10 * new_r11))))) +
9970 (
IKabs(((-1.0) + (cj2 * cj2) + ((new_r01 * new_r10))))));
9971 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
9972 IKabs(j0eval[1]) < 0.0000010000000000 ||
9973 IKabs(j0eval[2]) < 0.0000010000000000)
9977 bool bgotonextstatement =
true;
9980 IkReal x476 = ((new_r01 * new_r01) + (new_r11 * new_r11));
9981 if (
IKabs(x476) == 0)
9985 IkReal x475 = pow(x476, -0.5);
9992 IkReal gconst6 = ((-1.0) * (x477.
value));
9993 IkReal gconst7 = ((-1.0) * new_r01 * x475);
9994 IkReal gconst8 = (new_r11 * x475);
10002 ((-3.14159265358979) +
10004 6.28318530717959)));
10005 if (
IKabs(evalcond[0]) < 0.0000050000000000)
10007 bgotonextstatement =
false;
10016 IkReal x479 = ((-1.0) * (x481.
value));
10017 IkReal x480 = x475;
10020 j1 = 3.14159265358979;
10024 IkReal gconst6 = x479;
10025 IkReal gconst7 = ((-1.0) * new_r01 * x480);
10026 IkReal gconst8 = (new_r11 * x480);
10027 IkReal x482 = new_r01 * new_r01;
10028 IkReal x483 = (new_r00 * new_r01);
10029 IkReal x484 = (((new_r10 * new_r11)) + x483);
10030 IkReal x485 = x475;
10031 IkReal x486 = (new_r01 * x485);
10033 j0eval[1] =
IKsign(x484);
10034 j0eval[2] = ((
IKabs((((new_r10 * x486)) +
10035 (((-1.0) * x482 * x485))))) +
10036 (
IKabs((((x483 * x485)) + ((new_r11 * x486))))));
10037 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
10038 IKabs(j0eval[1]) < 0.0000010000000000 ||
10039 IKabs(j0eval[2]) < 0.0000010000000000)
10051 IkReal x487 = ((-1.0) * (x489.
value));
10052 IkReal x488 = x475;
10055 j1 = 3.14159265358979;
10059 IkReal gconst6 = x487;
10060 IkReal gconst7 = ((-1.0) * new_r01 * x488);
10061 IkReal gconst8 = (new_r11 * x488);
10062 IkReal x490 = ((new_r01 * new_r01) + (new_r11 * new_r11));
10064 j0eval[1] =
IKsign(x490);
10065 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
10066 IKabs(j0eval[1]) < 0.0000010000000000)
10078 IkReal x491 = ((-1.0) * (x493.
value));
10079 IkReal x492 = x475;
10082 j1 = 3.14159265358979;
10086 IkReal gconst6 = x491;
10087 IkReal gconst7 = ((-1.0) * new_r01 * x492);
10088 IkReal gconst8 = (new_r11 * x492);
10089 IkReal x494 = new_r01 * new_r01;
10090 IkReal x495 = new_r11 * new_r11;
10091 IkReal x496 = ((1.0) * x494);
10098 IkReal x497 = x502.
value;
10100 ((((-1.0) * x496)) + (((-1.0) * x495))), -1);
10105 IkReal x498 = x503.
value;
10106 IkReal x499 = ((1.0) * x498);
10107 IkReal x500 = (new_r11 * x499);
10108 IkReal x501 = (new_r01 * x499);
10110 ((
IKabs((((x494 * x495 * x497)) +
10111 (((-1.0) * x496 * x497)) +
10112 ((x497 * (x495 * x495)))))) +
10113 (
IKabs(((((-1.0) * new_r01 * x500)) +
10115 (new_r01 * new_r01 * new_r01))) +
10116 (((-1.0) * new_r01 * x500 *
10117 (new_r11 * new_r11)))))));
10118 if (
IKabs(j0eval[0]) < 0.0000010000000000)
10121 IkReal evalcond[3];
10122 bool bgotonextstatement =
true;
10127 if (
IKabs(evalcond[0]) < 0.0000050000000000)
10129 bgotonextstatement =
false;
10140 IkReal x504 = ((-1.0) * (x505.
value));
10143 j1 = 3.14159265358979;
10149 IkReal gconst6 = x504;
10150 IkReal x506 = new_r01 * new_r01;
10151 if (
IKabs(x506) == 0)
10156 ((-1.0) * new_r01 * (pow(x506, -0.5)));
10157 IkReal gconst8 = 0;
10158 j0eval[0] = new_r10;
10159 if (
IKabs(j0eval[0]) < 0.0000010000000000)
10162 IkReal j0array[2], cj0array[2],
10164 bool j0valid[2] = {
false };
10173 ((-1.0) * new_r10 * (x507.
value));
10179 j0valid[0] = j0valid[1] =
true;
10180 j0array[0] =
IKacos(cj0array[0]);
10181 sj0array[0] =
IKsin(j0array[0]);
10182 cj0array[1] = cj0array[0];
10183 j0array[1] = -j0array[0];
10184 sj0array[1] = -sj0array[0];
10186 else if (isnan(cj0array[0]))
10194 for (
int ij0 = 0; ij0 < 2; ++ij0)
10202 for (
int iij0 = ij0 + 1; iij0 < 2;
10205 if (j0valid[iij0] &&
10206 IKabs(cj0array[ij0] -
10209 IKabs(sj0array[ij0] -
10213 j0valid[iij0] =
false;
10219 cj0 = cj0array[ij0];
10220 sj0 = sj0array[ij0];
10222 IkReal evalcond[6];
10223 IkReal x508 =
IKsin(j0);
10224 IkReal x509 =
IKcos(j0);
10225 IkReal x510 = ((-1.0) * x508);
10226 evalcond[0] = (new_r10 * x508);
10227 evalcond[1] = (new_r01 * x510);
10228 evalcond[2] = (gconst7 * x510);
10230 (gconst7 + ((new_r10 * x509)));
10232 (gconst7 + ((new_r01 * x509)));
10234 (((gconst7 * x509)) + new_r01);
10235 if (
IKabs(evalcond[0]) >
10237 IKabs(evalcond[1]) >
10239 IKabs(evalcond[2]) >
10241 IKabs(evalcond[3]) >
10243 IKabs(evalcond[4]) >
10245 IKabs(evalcond[5]) >
10256 vinfos[0].jointtype = 1;
10257 vinfos[0].foffset = j0;
10258 vinfos[0].indices[0] = _ij0[0];
10259 vinfos[0].indices[1] = _ij0[1];
10260 vinfos[0].maxsolutions = _nj0;
10261 vinfos[1].jointtype = 1;
10262 vinfos[1].foffset = j1;
10263 vinfos[1].indices[0] = _ij1[0];
10264 vinfos[1].indices[1] = _ij1[1];
10265 vinfos[1].maxsolutions = _nj1;
10266 vinfos[2].jointtype = 1;
10267 vinfos[2].foffset = j2;
10268 vinfos[2].indices[0] = _ij2[0];
10269 vinfos[2].indices[1] = _ij2[1];
10270 vinfos[2].maxsolutions = _nj2;
10271 vinfos[3].jointtype = 1;
10272 vinfos[3].foffset = j3;
10273 vinfos[3].indices[0] = _ij3[0];
10274 vinfos[3].indices[1] = _ij3[1];
10275 vinfos[3].maxsolutions = _nj3;
10276 vinfos[4].jointtype = 1;
10277 vinfos[4].foffset = j4;
10278 vinfos[4].indices[0] = _ij4[0];
10279 vinfos[4].indices[1] = _ij4[1];
10280 vinfos[4].maxsolutions = _nj4;
10281 vinfos[5].jointtype = 1;
10282 vinfos[5].foffset = j5;
10283 vinfos[5].indices[0] = _ij5[0];
10284 vinfos[5].indices[1] = _ij5[1];
10285 vinfos[5].maxsolutions = _nj5;
10286 vinfos[6].jointtype = 1;
10287 vinfos[6].foffset = j6;
10288 vinfos[6].indices[0] = _ij6[0];
10289 vinfos[6].indices[1] = _ij6[1];
10290 vinfos[6].maxsolutions = _nj6;
10291 std::vector<int> vfree(0);
10301 IkReal j0array[2], cj0array[2],
10303 bool j0valid[2] = {
false };
10312 ((-1.0) * gconst7 * (x511.
value));
10318 j0valid[0] = j0valid[1] =
true;
10319 j0array[0] =
IKacos(cj0array[0]);
10320 sj0array[0] =
IKsin(j0array[0]);
10321 cj0array[1] = cj0array[0];
10322 j0array[1] = -j0array[0];
10323 sj0array[1] = -sj0array[0];
10325 else if (isnan(cj0array[0]))
10333 for (
int ij0 = 0; ij0 < 2; ++ij0)
10341 for (
int iij0 = ij0 + 1; iij0 < 2;
10344 if (j0valid[iij0] &&
10345 IKabs(cj0array[ij0] -
10348 IKabs(sj0array[ij0] -
10352 j0valid[iij0] =
false;
10358 cj0 = cj0array[ij0];
10359 sj0 = sj0array[ij0];
10361 IkReal evalcond[6];
10362 IkReal x512 =
IKsin(j0);
10363 IkReal x513 =
IKcos(j0);
10364 IkReal x514 = (gconst7 * x513);
10365 IkReal x515 = ((-1.0) * x512);
10366 evalcond[0] = (new_r10 * x512);
10367 evalcond[1] = (new_r01 * x515);
10368 evalcond[2] = (gconst7 * x515);
10369 evalcond[3] = (x514 + new_r10);
10371 (((new_r01 * x513)) + gconst7);
10372 evalcond[5] = (x514 + new_r01);
10373 if (
IKabs(evalcond[0]) >
10375 IKabs(evalcond[1]) >
10377 IKabs(evalcond[2]) >
10379 IKabs(evalcond[3]) >
10381 IKabs(evalcond[4]) >
10383 IKabs(evalcond[5]) >
10394 vinfos[0].jointtype = 1;
10395 vinfos[0].foffset = j0;
10396 vinfos[0].indices[0] = _ij0[0];
10397 vinfos[0].indices[1] = _ij0[1];
10398 vinfos[0].maxsolutions = _nj0;
10399 vinfos[1].jointtype = 1;
10400 vinfos[1].foffset = j1;
10401 vinfos[1].indices[0] = _ij1[0];
10402 vinfos[1].indices[1] = _ij1[1];
10403 vinfos[1].maxsolutions = _nj1;
10404 vinfos[2].jointtype = 1;
10405 vinfos[2].foffset = j2;
10406 vinfos[2].indices[0] = _ij2[0];
10407 vinfos[2].indices[1] = _ij2[1];
10408 vinfos[2].maxsolutions = _nj2;
10409 vinfos[3].jointtype = 1;
10410 vinfos[3].foffset = j3;
10411 vinfos[3].indices[0] = _ij3[0];
10412 vinfos[3].indices[1] = _ij3[1];
10413 vinfos[3].maxsolutions = _nj3;
10414 vinfos[4].jointtype = 1;
10415 vinfos[4].foffset = j4;
10416 vinfos[4].indices[0] = _ij4[0];
10417 vinfos[4].indices[1] = _ij4[1];
10418 vinfos[4].maxsolutions = _nj4;
10419 vinfos[5].jointtype = 1;
10420 vinfos[5].foffset = j5;
10421 vinfos[5].indices[0] = _ij5[0];
10422 vinfos[5].indices[1] = _ij5[1];
10423 vinfos[5].maxsolutions = _nj5;
10424 vinfos[6].jointtype = 1;
10425 vinfos[6].foffset = j6;
10426 vinfos[6].indices[0] = _ij6[0];
10427 vinfos[6].indices[1] = _ij6[1];
10428 vinfos[6].maxsolutions = _nj6;
10429 std::vector<int> vfree(0);
10439 if (bgotonextstatement)
10441 bool bgotonextstatement =
true;
10446 evalcond[1] = gconst7;
10447 evalcond[2] = gconst8;
10448 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
10449 IKabs(evalcond[1]) < 0.0000050000000000 &&
10450 IKabs(evalcond[2]) < 0.0000050000000000)
10452 bgotonextstatement =
false;
10464 IkReal x516 = ((-1.0) * (x517.
value));
10467 j1 = 3.14159265358979;
10475 IkReal gconst6 = x516;
10476 IkReal gconst7 = ((-1.0) * new_r01);
10477 IkReal gconst8 = new_r11;
10480 ((
IKabs((new_r01 * new_r11))) +
10483 (new_r01 * new_r01)))))));
10485 if (
IKabs(j0eval[0]) <
10486 0.0000010000000000 ||
10488 0.0000010000000000 ||
10489 IKabs(j0eval[2]) < 0.0000010000000000)
10502 IkReal x518 = ((-1.0) * (x519.
value));
10505 j1 = 3.14159265358979;
10513 IkReal gconst6 = x518;
10514 IkReal gconst7 = ((-1.0) * new_r01);
10515 IkReal gconst8 = new_r11;
10518 ((
IKabs((new_r01 * new_r11))) +
10522 (new_r01 * new_r01)))))));
10524 if (
IKabs(j0eval[0]) <
10525 0.0000010000000000 ||
10527 0.0000010000000000 ||
10529 0.0000010000000000)
10543 ((-1.0) * (x521.
value));
10546 j1 = 3.14159265358979;
10554 IkReal gconst6 = x520;
10556 ((-1.0) * new_r01);
10557 IkReal gconst8 = new_r11;
10567 (new_r01 * new_r11))));
10569 if (
IKabs(j0eval[0]) <
10570 0.0000010000000000 ||
10572 0.0000010000000000 ||
10574 0.0000010000000000)
10582 cj0array[1], sj0array[1];
10583 bool j0valid[1] = {
false };
10589 IkReal((((gconst8 *
10617 ((-1.5707963267949) +
10619 (((1.5707963267949) *
10625 if (j0array[0] >
IKPI)
10627 j0array[0] -=
IK2PI;
10629 else if (j0array[0] < -
IKPI)
10631 j0array[0] +=
IK2PI;
10634 for (
int ij0 = 0; ij0 < 1;
10643 for (
int iij0 = ij0 + 1;
10647 if (j0valid[iij0] &&
10657 j0valid[iij0] =
false;
10663 cj0 = cj0array[ij0];
10664 sj0 = sj0array[ij0];
10666 IkReal evalcond[6];
10667 IkReal x525 =
IKsin(j0);
10668 IkReal x526 =
IKcos(j0);
10678 ((((-1.0) * x530)) +
10681 (((new_r01 * x526)) +
10683 ((new_r11 * x525)));
10685 (((gconst7 * x525)) +
10689 ((new_r11 * x526)) +
10690 (((-1.0) * new_r01 *
10693 ((((-1.0) * x529)) +
10694 (((-1.0) * gconst7 *
10697 ((((-1.0) * x530)) +
10699 if (
IKabs(evalcond[0]) >
10701 IKabs(evalcond[1]) >
10703 IKabs(evalcond[2]) >
10705 IKabs(evalcond[3]) >
10707 IKabs(evalcond[4]) >
10709 IKabs(evalcond[5]) >
10721 vinfos[0].jointtype = 1;
10722 vinfos[0].foffset = j0;
10723 vinfos[0].indices[0] =
10725 vinfos[0].indices[1] =
10727 vinfos[0].maxsolutions =
10729 vinfos[1].jointtype = 1;
10730 vinfos[1].foffset = j1;
10731 vinfos[1].indices[0] =
10733 vinfos[1].indices[1] =
10735 vinfos[1].maxsolutions =
10737 vinfos[2].jointtype = 1;
10738 vinfos[2].foffset = j2;
10739 vinfos[2].indices[0] =
10741 vinfos[2].indices[1] =
10743 vinfos[2].maxsolutions =
10745 vinfos[3].jointtype = 1;
10746 vinfos[3].foffset = j3;
10747 vinfos[3].indices[0] =
10749 vinfos[3].indices[1] =
10751 vinfos[3].maxsolutions =
10753 vinfos[4].jointtype = 1;
10754 vinfos[4].foffset = j4;
10755 vinfos[4].indices[0] =
10757 vinfos[4].indices[1] =
10759 vinfos[4].maxsolutions =
10761 vinfos[5].jointtype = 1;
10762 vinfos[5].foffset = j5;
10763 vinfos[5].indices[0] =
10765 vinfos[5].indices[1] =
10767 vinfos[5].maxsolutions =
10769 vinfos[6].jointtype = 1;
10770 vinfos[6].foffset = j6;
10771 vinfos[6].indices[0] =
10773 vinfos[6].indices[1] =
10775 vinfos[6].maxsolutions =
10777 std::vector<int> vfree(0);
10789 IkReal j0array[1], cj0array[1],
10791 bool j0valid[1] = {
false };
10796 (gconst7 * new_r11)),
10798 (gconst8 * new_r11)),
10818 ((-1.5707963267949) +
10820 (((1.5707963267949) *
10822 sj0array[0] =
IKsin(j0array[0]);
10823 cj0array[0] =
IKcos(j0array[0]);
10824 if (j0array[0] >
IKPI)
10826 j0array[0] -=
IK2PI;
10828 else if (j0array[0] < -
IKPI)
10830 j0array[0] +=
IK2PI;
10833 for (
int ij0 = 0; ij0 < 1; ++ij0)
10841 for (
int iij0 = ij0 + 1;
10845 if (j0valid[iij0] &&
10846 IKabs(cj0array[ij0] -
10849 IKabs(sj0array[ij0] -
10853 j0valid[iij0] =
false;
10859 cj0 = cj0array[ij0];
10860 sj0 = sj0array[ij0];
10862 IkReal evalcond[6];
10863 IkReal x533 =
IKsin(j0);
10864 IkReal x534 =
IKcos(j0);
10867 IkReal x536 = ((1.0) * x533);
10873 ((((-1.0) * x538)) +
10876 (((new_r01 * x534)) +
10878 ((new_r11 * x533)));
10880 (((gconst7 * x533)) +
10884 ((new_r11 * x534)) +
10885 (((-1.0) * new_r01 *
10888 ((((-1.0) * x537)) +
10889 (((-1.0) * gconst7 *
10892 ((((-1.0) * x538)) +
10894 if (
IKabs(evalcond[0]) >
10896 IKabs(evalcond[1]) >
10898 IKabs(evalcond[2]) >
10900 IKabs(evalcond[3]) >
10902 IKabs(evalcond[4]) >
10904 IKabs(evalcond[5]) >
10916 vinfos[0].jointtype = 1;
10917 vinfos[0].foffset = j0;
10918 vinfos[0].indices[0] =
10920 vinfos[0].indices[1] =
10922 vinfos[0].maxsolutions = _nj0;
10923 vinfos[1].jointtype = 1;
10924 vinfos[1].foffset = j1;
10925 vinfos[1].indices[0] =
10927 vinfos[1].indices[1] =
10929 vinfos[1].maxsolutions = _nj1;
10930 vinfos[2].jointtype = 1;
10931 vinfos[2].foffset = j2;
10932 vinfos[2].indices[0] =
10934 vinfos[2].indices[1] =
10936 vinfos[2].maxsolutions = _nj2;
10937 vinfos[3].jointtype = 1;
10938 vinfos[3].foffset = j3;
10939 vinfos[3].indices[0] =
10941 vinfos[3].indices[1] =
10943 vinfos[3].maxsolutions = _nj3;
10944 vinfos[4].jointtype = 1;
10945 vinfos[4].foffset = j4;
10946 vinfos[4].indices[0] =
10948 vinfos[4].indices[1] =
10950 vinfos[4].maxsolutions = _nj4;
10951 vinfos[5].jointtype = 1;
10952 vinfos[5].foffset = j5;
10953 vinfos[5].indices[0] =
10955 vinfos[5].indices[1] =
10957 vinfos[5].maxsolutions = _nj5;
10958 vinfos[6].jointtype = 1;
10959 vinfos[6].foffset = j6;
10960 vinfos[6].indices[0] =
10962 vinfos[6].indices[1] =
10964 vinfos[6].maxsolutions = _nj6;
10965 std::vector<int> vfree(0);
10977 IkReal j0array[1], cj0array[1],
10979 bool j0valid[1] = {
false };
10983 IkReal((gconst7 * gconst8)),
10984 IkReal(gconst8 * gconst8),
10993 ((((-1.0) * gconst8 *
10995 ((gconst7 * new_r01)))),
11001 j0array[0] = ((-1.5707963267949) +
11003 (((1.5707963267949) *
11005 sj0array[0] =
IKsin(j0array[0]);
11006 cj0array[0] =
IKcos(j0array[0]);
11007 if (j0array[0] >
IKPI)
11009 j0array[0] -=
IK2PI;
11011 else if (j0array[0] < -
IKPI)
11013 j0array[0] +=
IK2PI;
11016 for (
int ij0 = 0; ij0 < 1; ++ij0)
11024 for (
int iij0 = ij0 + 1; iij0 < 1;
11027 if (j0valid[iij0] &&
11028 IKabs(cj0array[ij0] -
11031 IKabs(sj0array[ij0] -
11035 j0valid[iij0] =
false;
11041 cj0 = cj0array[ij0];
11042 sj0 = sj0array[ij0];
11044 IkReal evalcond[6];
11045 IkReal x541 =
IKsin(j0);
11046 IkReal x542 =
IKcos(j0);
11047 IkReal x543 = (gconst7 * x542);
11048 IkReal x544 = ((1.0) * x541);
11049 IkReal x545 = (gconst8 * x542);
11050 IkReal x546 = (gconst8 * x544);
11052 ((((-1.0) * x546)) + x543);
11055 ((new_r11 * x541)) +
11056 ((new_r01 * x542)));
11058 (x545 + ((gconst7 * x541)) +
11062 ((new_r11 * x542)) +
11063 (((-1.0) * new_r01 * x544)));
11065 ((((-1.0) * x545)) +
11066 (((-1.0) * gconst7 * x544)));
11067 evalcond[5] = ((((-1.0) * x546)) +
11069 if (
IKabs(evalcond[0]) >
11071 IKabs(evalcond[1]) >
11073 IKabs(evalcond[2]) >
11075 IKabs(evalcond[3]) >
11077 IKabs(evalcond[4]) >
11079 IKabs(evalcond[5]) >
11091 vinfos[0].jointtype = 1;
11092 vinfos[0].foffset = j0;
11093 vinfos[0].indices[0] = _ij0[0];
11094 vinfos[0].indices[1] = _ij0[1];
11095 vinfos[0].maxsolutions = _nj0;
11096 vinfos[1].jointtype = 1;
11097 vinfos[1].foffset = j1;
11098 vinfos[1].indices[0] = _ij1[0];
11099 vinfos[1].indices[1] = _ij1[1];
11100 vinfos[1].maxsolutions = _nj1;
11101 vinfos[2].jointtype = 1;
11102 vinfos[2].foffset = j2;
11103 vinfos[2].indices[0] = _ij2[0];
11104 vinfos[2].indices[1] = _ij2[1];
11105 vinfos[2].maxsolutions = _nj2;
11106 vinfos[3].jointtype = 1;
11107 vinfos[3].foffset = j3;
11108 vinfos[3].indices[0] = _ij3[0];
11109 vinfos[3].indices[1] = _ij3[1];
11110 vinfos[3].maxsolutions = _nj3;
11111 vinfos[4].jointtype = 1;
11112 vinfos[4].foffset = j4;
11113 vinfos[4].indices[0] = _ij4[0];
11114 vinfos[4].indices[1] = _ij4[1];
11115 vinfos[4].maxsolutions = _nj4;
11116 vinfos[5].jointtype = 1;
11117 vinfos[5].foffset = j5;
11118 vinfos[5].indices[0] = _ij5[0];
11119 vinfos[5].indices[1] = _ij5[1];
11120 vinfos[5].maxsolutions = _nj5;
11121 vinfos[6].jointtype = 1;
11122 vinfos[6].foffset = j6;
11123 vinfos[6].indices[0] = _ij6[0];
11124 vinfos[6].indices[1] = _ij6[1];
11125 vinfos[6].maxsolutions = _nj6;
11126 std::vector<int> vfree(0);
11136 if (bgotonextstatement)
11138 bool bgotonextstatement =
true;
11143 if (
IKabs(evalcond[0]) < 0.0000050000000000)
11145 bgotonextstatement =
false;
11147 IkReal j0array[2], cj0array[2],
11149 bool j0valid[2] = {
false };
11157 cj0array[0] = (new_r00 * (x547.
value));
11163 j0valid[0] = j0valid[1] =
true;
11164 j0array[0] =
IKacos(cj0array[0]);
11165 sj0array[0] =
IKsin(j0array[0]);
11166 cj0array[1] = cj0array[0];
11167 j0array[1] = -j0array[0];
11168 sj0array[1] = -sj0array[0];
11170 else if (isnan(cj0array[0]))
11178 for (
int ij0 = 0; ij0 < 2; ++ij0)
11186 for (
int iij0 = ij0 + 1; iij0 < 2;
11189 if (j0valid[iij0] &&
11190 IKabs(cj0array[ij0] -
11193 IKabs(sj0array[ij0] -
11197 j0valid[iij0] =
false;
11203 cj0 = cj0array[ij0];
11204 sj0 = sj0array[ij0];
11206 IkReal evalcond[6];
11207 IkReal x548 =
IKsin(j0);
11208 IkReal x549 =
IKcos(j0);
11209 IkReal x550 = ((-1.0) * x548);
11210 evalcond[0] = (new_r11 * x548);
11211 evalcond[1] = (new_r00 * x550);
11212 evalcond[2] = (gconst8 * x550);
11214 (gconst8 + ((new_r11 * x549)));
11216 (((gconst8 * x549)) + new_r11);
11218 (((new_r00 * x549)) +
11219 (((-1.0) * gconst8)));
11220 if (
IKabs(evalcond[0]) >
11222 IKabs(evalcond[1]) >
11224 IKabs(evalcond[2]) >
11226 IKabs(evalcond[3]) >
11228 IKabs(evalcond[4]) >
11230 IKabs(evalcond[5]) >
11241 vinfos[0].jointtype = 1;
11242 vinfos[0].foffset = j0;
11243 vinfos[0].indices[0] = _ij0[0];
11244 vinfos[0].indices[1] = _ij0[1];
11245 vinfos[0].maxsolutions = _nj0;
11246 vinfos[1].jointtype = 1;
11247 vinfos[1].foffset = j1;
11248 vinfos[1].indices[0] = _ij1[0];
11249 vinfos[1].indices[1] = _ij1[1];
11250 vinfos[1].maxsolutions = _nj1;
11251 vinfos[2].jointtype = 1;
11252 vinfos[2].foffset = j2;
11253 vinfos[2].indices[0] = _ij2[0];
11254 vinfos[2].indices[1] = _ij2[1];
11255 vinfos[2].maxsolutions = _nj2;
11256 vinfos[3].jointtype = 1;
11257 vinfos[3].foffset = j3;
11258 vinfos[3].indices[0] = _ij3[0];
11259 vinfos[3].indices[1] = _ij3[1];
11260 vinfos[3].maxsolutions = _nj3;
11261 vinfos[4].jointtype = 1;
11262 vinfos[4].foffset = j4;
11263 vinfos[4].indices[0] = _ij4[0];
11264 vinfos[4].indices[1] = _ij4[1];
11265 vinfos[4].maxsolutions = _nj4;
11266 vinfos[5].jointtype = 1;
11267 vinfos[5].foffset = j5;
11268 vinfos[5].indices[0] = _ij5[0];
11269 vinfos[5].indices[1] = _ij5[1];
11270 vinfos[5].maxsolutions = _nj5;
11271 vinfos[6].jointtype = 1;
11272 vinfos[6].foffset = j6;
11273 vinfos[6].indices[0] = _ij6[0];
11274 vinfos[6].indices[1] = _ij6[1];
11275 vinfos[6].maxsolutions = _nj6;
11276 std::vector<int> vfree(0);
11284 if (bgotonextstatement)
11286 bool bgotonextstatement =
true;
11291 if (
IKabs(evalcond[0]) <
11292 0.0000050000000000)
11294 bgotonextstatement =
false;
11306 IkReal x551 = ((-1.0) * (x552.
value));
11309 j1 = 3.14159265358979;
11317 IkReal gconst6 = x551;
11318 IkReal gconst7 = 0;
11320 ((1.0) + (((-1.0) *
11321 (new_r10 * new_r10))));
11322 if (
IKabs(x553) == 0)
11327 (new_r11 * (pow(x553, -0.5)));
11328 j0eval[0] = ((
IKabs(new_r11)) +
11330 if (
IKabs(j0eval[0]) <
11331 0.0000010000000000)
11345 ((-1.0) * (x555.
value));
11348 j1 = 3.14159265358979;
11356 IkReal gconst6 = x554;
11357 IkReal gconst7 = 0;
11361 (new_r10 * new_r10))));
11362 if (
IKabs(x556) == 0)
11367 (new_r11 * (pow(x556, -0.5)));
11368 j0eval[0] = new_r11;
11369 if (
IKabs(j0eval[0]) <
11370 0.0000010000000000)
11384 ((-1.0) * (x558.
value));
11387 j1 = 3.14159265358979;
11395 IkReal gconst6 = x557;
11396 IkReal gconst7 = 0;
11400 (new_r10 * new_r10))));
11401 if (
IKabs(x559) == 0)
11407 (pow(x559, -0.5)));
11408 j0eval[0] = new_r10;
11409 j0eval[1] = new_r11;
11410 if (
IKabs(j0eval[0]) <
11411 0.0000010000000000 ||
11413 0.0000010000000000)
11424 bool j0valid[1] = {
11464 ((-1.0) * gconst8 *
11470 if (j0array[0] >
IKPI)
11472 j0array[0] -=
IK2PI;
11474 else if (j0array[0] <
11477 j0array[0] +=
IK2PI;
11480 for (
int ij0 = 0; ij0 < 1;
11489 for (
int iij0 = ij0 + 1;
11493 if (j0valid[iij0] &&
11514 cj0 = cj0array[ij0];
11515 sj0 = sj0array[ij0];
11517 IkReal evalcond[8];
11583 vinfos[0].jointtype =
11585 vinfos[0].foffset =
11587 vinfos[0].indices[0] =
11589 vinfos[0].indices[1] =
11594 vinfos[1].jointtype =
11596 vinfos[1].foffset =
11598 vinfos[1].indices[0] =
11600 vinfos[1].indices[1] =
11605 vinfos[2].jointtype =
11607 vinfos[2].foffset =
11609 vinfos[2].indices[0] =
11611 vinfos[2].indices[1] =
11616 vinfos[3].jointtype =
11618 vinfos[3].foffset =
11620 vinfos[3].indices[0] =
11622 vinfos[3].indices[1] =
11627 vinfos[4].jointtype =
11629 vinfos[4].foffset =
11631 vinfos[4].indices[0] =
11633 vinfos[4].indices[1] =
11638 vinfos[5].jointtype =
11640 vinfos[5].foffset =
11642 vinfos[5].indices[0] =
11644 vinfos[5].indices[1] =
11649 vinfos[6].jointtype =
11651 vinfos[6].foffset =
11653 vinfos[6].indices[0] =
11655 vinfos[6].indices[1] =
11674 cj0array[1], sj0array[1];
11675 bool j0valid[1] = {
false };
11691 if (
IKabs((new_r10 *
11694 IKabs(((-1.0) * gconst8 *
11708 (new_r10 * (x566.
value)),
11709 ((-1.0) * gconst8 *
11715 if (j0array[0] >
IKPI)
11717 j0array[0] -=
IK2PI;
11719 else if (j0array[0] < -
IKPI)
11721 j0array[0] +=
IK2PI;
11724 for (
int ij0 = 0; ij0 < 1;
11733 for (
int iij0 = ij0 + 1;
11737 if (j0valid[iij0] &&
11747 j0valid[iij0] =
false;
11753 cj0 = cj0array[ij0];
11754 sj0 = sj0array[ij0];
11756 IkReal evalcond[8];
11757 IkReal x568 =
IKcos(j0);
11758 IkReal x569 =
IKsin(j0);
11773 ((new_r11 * x568)));
11777 ((((-1.0) * x570)) +
11782 ((new_r10 * x569)));
11783 if (
IKabs(evalcond[0]) >
11785 IKabs(evalcond[1]) >
11787 IKabs(evalcond[2]) >
11789 IKabs(evalcond[3]) >
11791 IKabs(evalcond[4]) >
11793 IKabs(evalcond[5]) >
11795 IKabs(evalcond[6]) >
11797 IKabs(evalcond[7]) >
11809 vinfos[0].jointtype = 1;
11810 vinfos[0].foffset = j0;
11811 vinfos[0].indices[0] =
11813 vinfos[0].indices[1] =
11815 vinfos[0].maxsolutions =
11817 vinfos[1].jointtype = 1;
11818 vinfos[1].foffset = j1;
11819 vinfos[1].indices[0] =
11821 vinfos[1].indices[1] =
11823 vinfos[1].maxsolutions =
11825 vinfos[2].jointtype = 1;
11826 vinfos[2].foffset = j2;
11827 vinfos[2].indices[0] =
11829 vinfos[2].indices[1] =
11831 vinfos[2].maxsolutions =
11833 vinfos[3].jointtype = 1;
11834 vinfos[3].foffset = j3;
11835 vinfos[3].indices[0] =
11837 vinfos[3].indices[1] =
11839 vinfos[3].maxsolutions =
11841 vinfos[4].jointtype = 1;
11842 vinfos[4].foffset = j4;
11843 vinfos[4].indices[0] =
11845 vinfos[4].indices[1] =
11847 vinfos[4].maxsolutions =
11849 vinfos[5].jointtype = 1;
11850 vinfos[5].foffset = j5;
11851 vinfos[5].indices[0] =
11853 vinfos[5].indices[1] =
11855 vinfos[5].maxsolutions =
11857 vinfos[6].jointtype = 1;
11858 vinfos[6].foffset = j6;
11859 vinfos[6].indices[0] =
11861 vinfos[6].indices[1] =
11863 vinfos[6].maxsolutions =
11865 std::vector<int> vfree(0);
11877 IkReal j0array[1], cj0array[1],
11879 bool j0valid[1] = {
false };
11885 ((-1.0) * new_r11)),
11899 ((-1.5707963267949) +
11901 (((1.5707963267949) *
11903 sj0array[0] =
IKsin(j0array[0]);
11904 cj0array[0] =
IKcos(j0array[0]);
11905 if (j0array[0] >
IKPI)
11907 j0array[0] -=
IK2PI;
11909 else if (j0array[0] < -
IKPI)
11911 j0array[0] +=
IK2PI;
11914 for (
int ij0 = 0; ij0 < 1; ++ij0)
11922 for (
int iij0 = ij0 + 1;
11926 if (j0valid[iij0] &&
11927 IKabs(cj0array[ij0] -
11930 IKabs(sj0array[ij0] -
11934 j0valid[iij0] =
false;
11940 cj0 = cj0array[ij0];
11941 sj0 = sj0array[ij0];
11943 IkReal evalcond[8];
11944 IkReal x574 =
IKcos(j0);
11945 IkReal x575 =
IKsin(j0);
11954 evalcond[2] = ((-1.0) * x577);
11955 evalcond[3] = ((-1.0) * x576);
11957 (((new_r11 * x574)) +
11962 ((((-1.0) * x576)) +
11965 (((new_r10 * x575)) +
11966 (((-1.0) * gconst8)));
11967 if (
IKabs(evalcond[0]) >
11969 IKabs(evalcond[1]) >
11971 IKabs(evalcond[2]) >
11973 IKabs(evalcond[3]) >
11975 IKabs(evalcond[4]) >
11977 IKabs(evalcond[5]) >
11979 IKabs(evalcond[6]) >
11981 IKabs(evalcond[7]) >
11993 vinfos[0].jointtype = 1;
11994 vinfos[0].foffset = j0;
11995 vinfos[0].indices[0] =
11997 vinfos[0].indices[1] =
11999 vinfos[0].maxsolutions = _nj0;
12000 vinfos[1].jointtype = 1;
12001 vinfos[1].foffset = j1;
12002 vinfos[1].indices[0] =
12004 vinfos[1].indices[1] =
12006 vinfos[1].maxsolutions = _nj1;
12007 vinfos[2].jointtype = 1;
12008 vinfos[2].foffset = j2;
12009 vinfos[2].indices[0] =
12011 vinfos[2].indices[1] =
12013 vinfos[2].maxsolutions = _nj2;
12014 vinfos[3].jointtype = 1;
12015 vinfos[3].foffset = j3;
12016 vinfos[3].indices[0] =
12018 vinfos[3].indices[1] =
12020 vinfos[3].maxsolutions = _nj3;
12021 vinfos[4].jointtype = 1;
12022 vinfos[4].foffset = j4;
12023 vinfos[4].indices[0] =
12025 vinfos[4].indices[1] =
12027 vinfos[4].maxsolutions = _nj4;
12028 vinfos[5].jointtype = 1;
12029 vinfos[5].foffset = j5;
12030 vinfos[5].indices[0] =
12032 vinfos[5].indices[1] =
12034 vinfos[5].maxsolutions = _nj5;
12035 vinfos[6].jointtype = 1;
12036 vinfos[6].foffset = j6;
12037 vinfos[6].indices[0] =
12039 vinfos[6].indices[1] =
12041 vinfos[6].maxsolutions = _nj6;
12042 std::vector<int> vfree(0);
12052 if (bgotonextstatement)
12054 bool bgotonextstatement =
true;
12057 evalcond[0] =
IKabs(new_r01);
12058 if (
IKabs(evalcond[0]) <
12059 0.0000050000000000)
12061 bgotonextstatement =
false;
12074 ((-1.0) * (x579.
value));
12077 j1 = 3.14159265358979;
12082 IkReal gconst6 = x578;
12083 IkReal gconst7 = 0;
12084 IkReal x580 = new_r11 * new_r11;
12085 if (
IKabs(x580) == 0)
12090 (new_r11 * (pow(x580, -0.5)));
12091 j0eval[0] = ((
IKabs(new_r10)) +
12093 if (
IKabs(j0eval[0]) <
12094 0.0000010000000000)
12108 ((-1.0) * (x582.
value));
12111 j1 = 3.14159265358979;
12116 IkReal gconst6 = x581;
12117 IkReal gconst7 = 0;
12118 IkReal x583 = new_r11 * new_r11;
12119 if (
IKabs(x583) == 0)
12125 (pow(x583, -0.5)));
12126 j0eval[0] = ((
IKabs(new_r11)) +
12128 if (
IKabs(j0eval[0]) <
12129 0.0000010000000000)
12143 ((-1.0) * (x585.
value));
12146 j1 = 3.14159265358979;
12151 IkReal gconst6 = x584;
12152 IkReal gconst7 = 0;
12155 if (
IKabs(x586) == 0)
12161 (pow(x586, -0.5)));
12162 j0eval[0] = new_r11;
12163 if (
IKabs(j0eval[0]) <
12164 0.0000010000000000)
12175 bool j0valid[1] = {
12216 ((-1.0) * gconst8 *
12222 if (j0array[0] >
IKPI)
12224 j0array[0] -=
IK2PI;
12226 else if (j0array[0] <
12229 j0array[0] +=
IK2PI;
12247 if (j0valid[iij0] &&
12268 cj0 = cj0array[ij0];
12269 sj0 = sj0array[ij0];
12271 IkReal evalcond[8];
12355 vinfos[0].foffset =
12368 vinfos[1].foffset =
12381 vinfos[2].foffset =
12394 vinfos[3].foffset =
12407 vinfos[4].foffset =
12420 vinfos[5].foffset =
12433 vinfos[6].foffset =
12462 bool j0valid[1] = {
false };
12483 ((-1.5707963267949) +
12485 (((1.5707963267949) *
12491 if (j0array[0] >
IKPI)
12493 j0array[0] -=
IK2PI;
12495 else if (j0array[0] < -
IKPI)
12497 j0array[0] +=
IK2PI;
12500 for (
int ij0 = 0; ij0 < 1;
12509 for (
int iij0 = ij0 + 1;
12513 if (j0valid[iij0] &&
12525 j0valid[iij0] =
false;
12531 cj0 = cj0array[ij0];
12532 sj0 = sj0array[ij0];
12534 IkReal evalcond[8];
12535 IkReal x595 =
IKsin(j0);
12536 IkReal x596 =
IKcos(j0);
12544 ((-1.0) * gconst8 *
12573 (((-1.0) * x597)));
12574 if (
IKabs(evalcond[0]) >
12576 IKabs(evalcond[1]) >
12578 IKabs(evalcond[2]) >
12580 IKabs(evalcond[3]) >
12582 IKabs(evalcond[4]) >
12584 IKabs(evalcond[5]) >
12586 IKabs(evalcond[6]) >
12588 IKabs(evalcond[7]) >
12600 vinfos[0].jointtype = 1;
12601 vinfos[0].foffset = j0;
12602 vinfos[0].indices[0] =
12604 vinfos[0].indices[1] =
12606 vinfos[0].maxsolutions =
12608 vinfos[1].jointtype = 1;
12609 vinfos[1].foffset = j1;
12610 vinfos[1].indices[0] =
12612 vinfos[1].indices[1] =
12614 vinfos[1].maxsolutions =
12616 vinfos[2].jointtype = 1;
12617 vinfos[2].foffset = j2;
12618 vinfos[2].indices[0] =
12620 vinfos[2].indices[1] =
12622 vinfos[2].maxsolutions =
12624 vinfos[3].jointtype = 1;
12625 vinfos[3].foffset = j3;
12626 vinfos[3].indices[0] =
12628 vinfos[3].indices[1] =
12630 vinfos[3].maxsolutions =
12632 vinfos[4].jointtype = 1;
12633 vinfos[4].foffset = j4;
12634 vinfos[4].indices[0] =
12636 vinfos[4].indices[1] =
12638 vinfos[4].maxsolutions =
12640 vinfos[5].jointtype = 1;
12641 vinfos[5].foffset = j5;
12642 vinfos[5].indices[0] =
12644 vinfos[5].indices[1] =
12646 vinfos[5].maxsolutions =
12648 vinfos[6].jointtype = 1;
12649 vinfos[6].foffset = j6;
12650 vinfos[6].indices[0] =
12652 vinfos[6].indices[1] =
12654 vinfos[6].maxsolutions =
12656 std::vector<int> vfree(
12669 IkReal j0array[1], cj0array[1],
12671 bool j0valid[1] = {
false };
12690 ((-1.5707963267949) +
12691 (((1.5707963267949) *
12694 sj0array[0] =
IKsin(j0array[0]);
12695 cj0array[0] =
IKcos(j0array[0]);
12696 if (j0array[0] >
IKPI)
12698 j0array[0] -=
IK2PI;
12700 else if (j0array[0] < -
IKPI)
12702 j0array[0] +=
IK2PI;
12705 for (
int ij0 = 0; ij0 < 1;
12714 for (
int iij0 = ij0 + 1;
12718 if (j0valid[iij0] &&
12719 IKabs(cj0array[ij0] -
12722 IKabs(sj0array[ij0] -
12726 j0valid[iij0] =
false;
12732 cj0 = cj0array[ij0];
12733 sj0 = sj0array[ij0];
12735 IkReal evalcond[8];
12736 IkReal x601 =
IKsin(j0);
12737 IkReal x602 =
IKcos(j0);
12745 ((-1.0) * gconst8 *
12749 ((new_r11 * x602)));
12751 (((gconst8 * x602)) +
12762 (((new_r10 * x602)) +
12763 (((-1.0) * new_r00 *
12766 (((new_r10 * x601)) +
12767 ((new_r00 * x602)) +
12768 (((-1.0) * x603)));
12769 if (
IKabs(evalcond[0]) >
12771 IKabs(evalcond[1]) >
12773 IKabs(evalcond[2]) >
12775 IKabs(evalcond[3]) >
12777 IKabs(evalcond[4]) >
12779 IKabs(evalcond[5]) >
12781 IKabs(evalcond[6]) >
12783 IKabs(evalcond[7]) >
12795 vinfos[0].jointtype = 1;
12796 vinfos[0].foffset = j0;
12797 vinfos[0].indices[0] =
12799 vinfos[0].indices[1] =
12801 vinfos[0].maxsolutions =
12803 vinfos[1].jointtype = 1;
12804 vinfos[1].foffset = j1;
12805 vinfos[1].indices[0] =
12807 vinfos[1].indices[1] =
12809 vinfos[1].maxsolutions =
12811 vinfos[2].jointtype = 1;
12812 vinfos[2].foffset = j2;
12813 vinfos[2].indices[0] =
12815 vinfos[2].indices[1] =
12817 vinfos[2].maxsolutions =
12819 vinfos[3].jointtype = 1;
12820 vinfos[3].foffset = j3;
12821 vinfos[3].indices[0] =
12823 vinfos[3].indices[1] =
12825 vinfos[3].maxsolutions =
12827 vinfos[4].jointtype = 1;
12828 vinfos[4].foffset = j4;
12829 vinfos[4].indices[0] =
12831 vinfos[4].indices[1] =
12833 vinfos[4].maxsolutions =
12835 vinfos[5].jointtype = 1;
12836 vinfos[5].foffset = j5;
12837 vinfos[5].indices[0] =
12839 vinfos[5].indices[1] =
12841 vinfos[5].maxsolutions =
12843 vinfos[6].jointtype = 1;
12844 vinfos[6].foffset = j6;
12845 vinfos[6].indices[0] =
12847 vinfos[6].indices[1] =
12849 vinfos[6].maxsolutions =
12851 std::vector<int> vfree(0);
12861 if (bgotonextstatement)
12863 bool bgotonextstatement =
true;
12868 bgotonextstatement =
false;
12872 if (bgotonextstatement)
12885 IkReal j0array[1], cj0array[1], sj0array[1];
12886 bool j0valid[1] = {
false };
12888 IkReal x605 = ((1.0) * new_r11);
12890 IkReal(((((-1.0) * new_r01 * x605)) +
12891 ((gconst7 * gconst8)))),
12892 IkReal(((((-1.0) * (gconst7 * gconst7))) +
12893 (new_r11 * new_r11))),
12900 IKsign(((((-1.0) * gconst8 * x605)) +
12901 ((gconst7 * new_r01)))),
12908 ((-1.5707963267949) + (x606.
value) +
12909 (((1.5707963267949) * (x607.
value))));
12910 sj0array[0] =
IKsin(j0array[0]);
12911 cj0array[0] =
IKcos(j0array[0]);
12912 if (j0array[0] >
IKPI)
12914 j0array[0] -=
IK2PI;
12916 else if (j0array[0] < -
IKPI)
12918 j0array[0] +=
IK2PI;
12921 for (
int ij0 = 0; ij0 < 1; ++ij0)
12929 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
12931 if (j0valid[iij0] &&
12932 IKabs(cj0array[ij0] - cj0array[iij0]) <
12934 IKabs(sj0array[ij0] - sj0array[iij0]) <
12937 j0valid[iij0] =
false;
12943 cj0 = cj0array[ij0];
12944 sj0 = sj0array[ij0];
12946 IkReal evalcond[8];
12947 IkReal x608 =
IKcos(j0);
12948 IkReal x609 =
IKsin(j0);
12949 IkReal x610 = (gconst7 * x608);
12950 IkReal x611 = ((1.0) * x609);
12951 IkReal x612 = (gconst8 * x608);
12952 IkReal x613 = (gconst8 * x611);
12953 evalcond[0] = (gconst7 + ((new_r11 * x609)) +
12954 ((new_r01 * x608)));
12956 (((gconst7 * x609)) + x612 + new_r11);
12957 evalcond[2] = (gconst7 + ((new_r10 * x608)) +
12958 (((-1.0) * new_r00 * x611)));
12959 evalcond[3] = (gconst8 + ((new_r11 * x608)) +
12960 (((-1.0) * new_r01 * x611)));
12962 ((((-1.0) * x613)) + x610 + new_r10);
12964 ((((-1.0) * x613)) + x610 + new_r01);
12966 ((((-1.0) * gconst8)) +
12967 ((new_r10 * x609)) + ((new_r00 * x608)));
12968 evalcond[7] = ((((-1.0) * x612)) + new_r00 +
12969 (((-1.0) * gconst7 * x611)));
12970 if (
IKabs(evalcond[0]) >
12972 IKabs(evalcond[1]) >
12974 IKabs(evalcond[2]) >
12976 IKabs(evalcond[3]) >
12978 IKabs(evalcond[4]) >
12980 IKabs(evalcond[5]) >
12982 IKabs(evalcond[6]) >
12984 IKabs(evalcond[7]) >
12992 std::vector<IkSingleDOFSolutionBase<IkReal> >
12994 vinfos[0].jointtype = 1;
12995 vinfos[0].foffset = j0;
12996 vinfos[0].indices[0] = _ij0[0];
12997 vinfos[0].indices[1] = _ij0[1];
12998 vinfos[0].maxsolutions = _nj0;
12999 vinfos[1].jointtype = 1;
13000 vinfos[1].foffset = j1;
13001 vinfos[1].indices[0] = _ij1[0];
13002 vinfos[1].indices[1] = _ij1[1];
13003 vinfos[1].maxsolutions = _nj1;
13004 vinfos[2].jointtype = 1;
13005 vinfos[2].foffset = j2;
13006 vinfos[2].indices[0] = _ij2[0];
13007 vinfos[2].indices[1] = _ij2[1];
13008 vinfos[2].maxsolutions = _nj2;
13009 vinfos[3].jointtype = 1;
13010 vinfos[3].foffset = j3;
13011 vinfos[3].indices[0] = _ij3[0];
13012 vinfos[3].indices[1] = _ij3[1];
13013 vinfos[3].maxsolutions = _nj3;
13014 vinfos[4].jointtype = 1;
13015 vinfos[4].foffset = j4;
13016 vinfos[4].indices[0] = _ij4[0];
13017 vinfos[4].indices[1] = _ij4[1];
13018 vinfos[4].maxsolutions = _nj4;
13019 vinfos[5].jointtype = 1;
13020 vinfos[5].foffset = j5;
13021 vinfos[5].indices[0] = _ij5[0];
13022 vinfos[5].indices[1] = _ij5[1];
13023 vinfos[5].maxsolutions = _nj5;
13024 vinfos[6].jointtype = 1;
13025 vinfos[6].foffset = j6;
13026 vinfos[6].indices[0] = _ij6[0];
13027 vinfos[6].indices[1] = _ij6[1];
13028 vinfos[6].maxsolutions = _nj6;
13029 std::vector<int> vfree(0);
13040 IkReal j0array[1], cj0array[1], sj0array[1];
13041 bool j0valid[1] = {
false };
13043 IkReal x614 = ((1.0) * new_r11);
13046 ((new_r01 * new_r01) + (new_r11 * new_r11))),
13053 IkReal((((gconst8 * new_r01)) +
13054 (((-1.0) * gconst7 * x614)))),
13055 IkReal(((((-1.0) * gconst7 * new_r01)) +
13056 (((-1.0) * gconst8 * x614)))),
13062 j0array[0] = ((-1.5707963267949) +
13063 (((1.5707963267949) * (x615.
value))) +
13065 sj0array[0] =
IKsin(j0array[0]);
13066 cj0array[0] =
IKcos(j0array[0]);
13067 if (j0array[0] >
IKPI)
13069 j0array[0] -=
IK2PI;
13071 else if (j0array[0] < -
IKPI)
13073 j0array[0] +=
IK2PI;
13076 for (
int ij0 = 0; ij0 < 1; ++ij0)
13084 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
13086 if (j0valid[iij0] &&
13087 IKabs(cj0array[ij0] - cj0array[iij0]) <
13089 IKabs(sj0array[ij0] - sj0array[iij0]) <
13092 j0valid[iij0] =
false;
13098 cj0 = cj0array[ij0];
13099 sj0 = sj0array[ij0];
13101 IkReal evalcond[8];
13102 IkReal x617 =
IKcos(j0);
13103 IkReal x618 =
IKsin(j0);
13104 IkReal x619 = (gconst7 * x617);
13105 IkReal x620 = ((1.0) * x618);
13106 IkReal x621 = (gconst8 * x617);
13107 IkReal x622 = (gconst8 * x620);
13108 evalcond[0] = (gconst7 + ((new_r11 * x618)) +
13109 ((new_r01 * x617)));
13111 (((gconst7 * x618)) + x621 + new_r11);
13112 evalcond[2] = ((((-1.0) * new_r00 * x620)) +
13113 gconst7 + ((new_r10 * x617)));
13114 evalcond[3] = ((((-1.0) * new_r01 * x620)) +
13115 gconst8 + ((new_r11 * x617)));
13117 ((((-1.0) * x622)) + x619 + new_r10);
13119 ((((-1.0) * x622)) + x619 + new_r01);
13121 ((((-1.0) * gconst8)) + ((new_r10 * x618)) +
13122 ((new_r00 * x617)));
13123 evalcond[7] = ((((-1.0) * gconst7 * x620)) +
13124 (((-1.0) * x621)) + new_r00);
13139 std::vector<IkSingleDOFSolutionBase<IkReal> >
13141 vinfos[0].jointtype = 1;
13142 vinfos[0].foffset = j0;
13143 vinfos[0].indices[0] = _ij0[0];
13144 vinfos[0].indices[1] = _ij0[1];
13145 vinfos[0].maxsolutions = _nj0;
13146 vinfos[1].jointtype = 1;
13147 vinfos[1].foffset = j1;
13148 vinfos[1].indices[0] = _ij1[0];
13149 vinfos[1].indices[1] = _ij1[1];
13150 vinfos[1].maxsolutions = _nj1;
13151 vinfos[2].jointtype = 1;
13152 vinfos[2].foffset = j2;
13153 vinfos[2].indices[0] = _ij2[0];
13154 vinfos[2].indices[1] = _ij2[1];
13155 vinfos[2].maxsolutions = _nj2;
13156 vinfos[3].jointtype = 1;
13157 vinfos[3].foffset = j3;
13158 vinfos[3].indices[0] = _ij3[0];
13159 vinfos[3].indices[1] = _ij3[1];
13160 vinfos[3].maxsolutions = _nj3;
13161 vinfos[4].jointtype = 1;
13162 vinfos[4].foffset = j4;
13163 vinfos[4].indices[0] = _ij4[0];
13164 vinfos[4].indices[1] = _ij4[1];
13165 vinfos[4].maxsolutions = _nj4;
13166 vinfos[5].jointtype = 1;
13167 vinfos[5].foffset = j5;
13168 vinfos[5].indices[0] = _ij5[0];
13169 vinfos[5].indices[1] = _ij5[1];
13170 vinfos[5].maxsolutions = _nj5;
13171 vinfos[6].jointtype = 1;
13172 vinfos[6].foffset = j6;
13173 vinfos[6].indices[0] = _ij6[0];
13174 vinfos[6].indices[1] = _ij6[1];
13175 vinfos[6].maxsolutions = _nj6;
13176 std::vector<int> vfree(0);
13187 IkReal j0array[1], cj0array[1], sj0array[1];
13188 bool j0valid[1] = {
false };
13190 IkReal x623 = ((1.0) * gconst7);
13192 IkReal(((((-1.0) * new_r10 * x623)) +
13193 ((gconst7 * new_r01)))),
13194 IkReal(((((-1.0) * new_r00 * x623)) +
13195 (((-1.0) * new_r11 * x623)))),
13203 ((new_r00 * new_r01)))),
13209 j0array[0] = ((-1.5707963267949) + (x624.
value) +
13210 (((1.5707963267949) * (x625.
value))));
13211 sj0array[0] =
IKsin(j0array[0]);
13212 cj0array[0] =
IKcos(j0array[0]);
13213 if (j0array[0] >
IKPI)
13215 j0array[0] -=
IK2PI;
13217 else if (j0array[0] < -
IKPI)
13219 j0array[0] +=
IK2PI;
13222 for (
int ij0 = 0; ij0 < 1; ++ij0)
13230 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
13232 if (j0valid[iij0] &&
13233 IKabs(cj0array[ij0] - cj0array[iij0]) <
13235 IKabs(sj0array[ij0] - sj0array[iij0]) <
13238 j0valid[iij0] =
false;
13244 cj0 = cj0array[ij0];
13245 sj0 = sj0array[ij0];
13247 IkReal evalcond[8];
13248 IkReal x626 =
IKcos(j0);
13249 IkReal x627 =
IKsin(j0);
13250 IkReal x628 = (gconst7 * x626);
13251 IkReal x629 = ((1.0) * x627);
13252 IkReal x630 = (gconst8 * x626);
13253 IkReal x631 = (gconst8 * x629);
13254 evalcond[0] = (gconst7 + ((new_r01 * x626)) +
13255 ((new_r11 * x627)));
13256 evalcond[1] = (x630 + new_r11 + ((gconst7 * x627)));
13257 evalcond[2] = ((((-1.0) * new_r00 * x629)) + gconst7 +
13258 ((new_r10 * x626)));
13259 evalcond[3] = ((((-1.0) * new_r01 * x629)) + gconst8 +
13260 ((new_r11 * x626)));
13261 evalcond[4] = ((((-1.0) * x631)) + x628 + new_r10);
13262 evalcond[5] = ((((-1.0) * x631)) + x628 + new_r01);
13264 ((((-1.0) * gconst8)) + ((new_r00 * x626)) +
13265 ((new_r10 * x627)));
13266 evalcond[7] = ((((-1.0) * gconst7 * x629)) +
13267 (((-1.0) * x630)) + new_r00);
13282 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(
13284 vinfos[0].jointtype = 1;
13285 vinfos[0].foffset = j0;
13286 vinfos[0].indices[0] = _ij0[0];
13287 vinfos[0].indices[1] = _ij0[1];
13288 vinfos[0].maxsolutions = _nj0;
13289 vinfos[1].jointtype = 1;
13290 vinfos[1].foffset = j1;
13291 vinfos[1].indices[0] = _ij1[0];
13292 vinfos[1].indices[1] = _ij1[1];
13293 vinfos[1].maxsolutions = _nj1;
13294 vinfos[2].jointtype = 1;
13295 vinfos[2].foffset = j2;
13296 vinfos[2].indices[0] = _ij2[0];
13297 vinfos[2].indices[1] = _ij2[1];
13298 vinfos[2].maxsolutions = _nj2;
13299 vinfos[3].jointtype = 1;
13300 vinfos[3].foffset = j3;
13301 vinfos[3].indices[0] = _ij3[0];
13302 vinfos[3].indices[1] = _ij3[1];
13303 vinfos[3].maxsolutions = _nj3;
13304 vinfos[4].jointtype = 1;
13305 vinfos[4].foffset = j4;
13306 vinfos[4].indices[0] = _ij4[0];
13307 vinfos[4].indices[1] = _ij4[1];
13308 vinfos[4].maxsolutions = _nj4;
13309 vinfos[5].jointtype = 1;
13310 vinfos[5].foffset = j5;
13311 vinfos[5].indices[0] = _ij5[0];
13312 vinfos[5].indices[1] = _ij5[1];
13313 vinfos[5].maxsolutions = _nj5;
13314 vinfos[6].jointtype = 1;
13315 vinfos[6].foffset = j6;
13316 vinfos[6].indices[0] = _ij6[0];
13317 vinfos[6].indices[1] = _ij6[1];
13318 vinfos[6].maxsolutions = _nj6;
13319 std::vector<int> vfree(0);
13328 if (bgotonextstatement)
13330 bool bgotonextstatement =
true;
13333 IkReal x633 = ((new_r01 * new_r01) + (new_r11 * new_r11));
13334 if (
IKabs(x633) == 0)
13338 IkReal x632 = pow(x633, -0.5);
13346 ((3.14159265358979) + (((-1.0) * (x634.
value))));
13347 IkReal gconst10 = ((1.0) * new_r01 * x632);
13348 IkReal gconst11 = ((-1.0) * new_r11 * x632);
13356 ((-3.14159265358979) +
13358 ((3.14159265358979) +
13359 (
IKabs(((-3.14159265358979) + (x635.
value) + j2)))),
13360 6.28318530717959)));
13361 if (
IKabs(evalcond[0]) < 0.0000050000000000)
13363 bgotonextstatement =
false;
13374 IkReal x636 = ((1.0) * (x638.
value));
13375 IkReal x637 = x632;
13378 j1 = 3.14159265358979;
13381 j2 = ((3.14159265) + (((-1.0) * x636)));
13382 IkReal gconst9 = ((3.14159265358979) + (((-1.0) * x636)));
13383 IkReal gconst10 = ((1.0) * new_r01 * x637);
13384 IkReal gconst11 = ((-1.0) * new_r11 * x637);
13385 IkReal x639 = new_r01 * new_r01;
13387 (((new_r10 * new_r11)) + ((new_r00 * new_r01)));
13388 IkReal x641 = x632;
13389 IkReal x642 = ((1.0) * new_r01 * x641);
13391 j0eval[1] = ((
IKabs((((x639 * x641)) +
13392 (((-1.0) * new_r10 * x642))))) +
13393 (
IKabs(((((-1.0) * new_r11 * x642)) +
13394 (((-1.0) * new_r00 * x642))))));
13395 j0eval[2] =
IKsign(x640);
13396 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
13397 IKabs(j0eval[1]) < 0.0000010000000000 ||
13398 IKabs(j0eval[2]) < 0.0000010000000000)
13410 IkReal x643 = ((1.0) * (x645.
value));
13411 IkReal x644 = x632;
13414 j1 = 3.14159265358979;
13417 j2 = ((3.14159265) + (((-1.0) * x643)));
13419 ((3.14159265358979) + (((-1.0) * x643)));
13420 IkReal gconst10 = ((1.0) * new_r01 * x644);
13421 IkReal gconst11 = ((-1.0) * new_r11 * x644);
13423 ((new_r01 * new_r01) + (new_r11 * new_r11));
13425 j0eval[1] =
IKsign(x646);
13426 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
13427 IKabs(j0eval[1]) < 0.0000010000000000)
13439 IkReal x647 = ((1.0) * (x649.
value));
13440 IkReal x648 = x632;
13443 j1 = 3.14159265358979;
13446 j2 = ((3.14159265) + (((-1.0) * x647)));
13448 ((3.14159265358979) + (((-1.0) * x647)));
13449 IkReal gconst10 = ((1.0) * new_r01 * x648);
13450 IkReal gconst11 = ((-1.0) * new_r11 * x648);
13451 IkReal x650 = new_r01 * new_r01;
13452 IkReal x651 = new_r11 * new_r11;
13453 IkReal x652 = ((1.0) * x650);
13460 IkReal x653 = x658.
value;
13462 ((((-1.0) * x651)) + (((-1.0) * x652))), -1);
13467 IkReal x654 = x659.
value;
13468 IkReal x655 = ((1.0) * x654);
13469 IkReal x656 = (new_r11 * x655);
13470 IkReal x657 = (new_r01 * x655);
13472 ((
IKabs(((((-1.0) * new_r01 * x656)) +
13474 (new_r01 * new_r01 * new_r01))) +
13475 (((-1.0) * new_r01 * x656 *
13476 (new_r11 * new_r11)))))) +
13477 (
IKabs((((x650 * x651 * x653)) +
13478 ((x653 * (x651 * x651))) +
13479 (((-1.0) * x652 * x653))))));
13480 if (
IKabs(j0eval[0]) < 0.0000010000000000)
13483 IkReal evalcond[3];
13484 bool bgotonextstatement =
true;
13489 if (
IKabs(evalcond[0]) < 0.0000050000000000)
13491 bgotonextstatement =
false;
13503 IkReal x660 = ((1.0) * (x661.
value));
13506 j1 = 3.14159265358979;
13509 j2 = ((3.14159265) + (((-1.0) * x660)));
13512 IkReal gconst9 = ((3.14159265358979) +
13513 (((-1.0) * x660)));
13514 IkReal x662 = new_r01 * new_r01;
13515 if (
IKabs(x662) == 0)
13520 ((1.0) * new_r01 * (pow(x662, -0.5)));
13521 IkReal gconst11 = 0;
13522 j0eval[0] = new_r10;
13523 if (
IKabs(j0eval[0]) < 0.0000010000000000)
13526 IkReal j0array[2], cj0array[2],
13528 bool j0valid[2] = {
false };
13538 ((-1.0) * new_r10 * (x663.
value));
13544 j0valid[0] = j0valid[1] =
true;
13545 j0array[0] =
IKacos(cj0array[0]);
13546 sj0array[0] =
IKsin(j0array[0]);
13547 cj0array[1] = cj0array[0];
13548 j0array[1] = -j0array[0];
13549 sj0array[1] = -sj0array[0];
13551 else if (isnan(cj0array[0]))
13559 for (
int ij0 = 0; ij0 < 2; ++ij0)
13567 for (
int iij0 = ij0 + 1; iij0 < 2;
13570 if (j0valid[iij0] &&
13571 IKabs(cj0array[ij0] -
13574 IKabs(sj0array[ij0] -
13578 j0valid[iij0] =
false;
13584 cj0 = cj0array[ij0];
13585 sj0 = sj0array[ij0];
13587 IkReal evalcond[6];
13588 IkReal x664 =
IKsin(j0);
13589 IkReal x665 =
IKcos(j0);
13590 IkReal x666 = ((-1.0) * x664);
13591 evalcond[0] = (new_r10 * x664);
13592 evalcond[1] = (new_r01 * x666);
13593 evalcond[2] = (gconst10 * x666);
13596 ((new_r10 * x665)));
13599 ((new_r01 * x665)));
13602 ((gconst10 * x665)));
13603 if (
IKabs(evalcond[0]) >
13605 IKabs(evalcond[1]) >
13607 IKabs(evalcond[2]) >
13609 IKabs(evalcond[3]) >
13611 IKabs(evalcond[4]) >
13613 IKabs(evalcond[5]) >
13625 vinfos[0].jointtype = 1;
13626 vinfos[0].foffset = j0;
13627 vinfos[0].indices[0] = _ij0[0];
13628 vinfos[0].indices[1] = _ij0[1];
13629 vinfos[0].maxsolutions = _nj0;
13630 vinfos[1].jointtype = 1;
13631 vinfos[1].foffset = j1;
13632 vinfos[1].indices[0] = _ij1[0];
13633 vinfos[1].indices[1] = _ij1[1];
13634 vinfos[1].maxsolutions = _nj1;
13635 vinfos[2].jointtype = 1;
13636 vinfos[2].foffset = j2;
13637 vinfos[2].indices[0] = _ij2[0];
13638 vinfos[2].indices[1] = _ij2[1];
13639 vinfos[2].maxsolutions = _nj2;
13640 vinfos[3].jointtype = 1;
13641 vinfos[3].foffset = j3;
13642 vinfos[3].indices[0] = _ij3[0];
13643 vinfos[3].indices[1] = _ij3[1];
13644 vinfos[3].maxsolutions = _nj3;
13645 vinfos[4].jointtype = 1;
13646 vinfos[4].foffset = j4;
13647 vinfos[4].indices[0] = _ij4[0];
13648 vinfos[4].indices[1] = _ij4[1];
13649 vinfos[4].maxsolutions = _nj4;
13650 vinfos[5].jointtype = 1;
13651 vinfos[5].foffset = j5;
13652 vinfos[5].indices[0] = _ij5[0];
13653 vinfos[5].indices[1] = _ij5[1];
13654 vinfos[5].maxsolutions = _nj5;
13655 vinfos[6].jointtype = 1;
13656 vinfos[6].foffset = j6;
13657 vinfos[6].indices[0] = _ij6[0];
13658 vinfos[6].indices[1] = _ij6[1];
13659 vinfos[6].maxsolutions = _nj6;
13660 std::vector<int> vfree(0);
13670 IkReal j0array[2], cj0array[2],
13672 bool j0valid[2] = {
false };
13681 cj0array[0] = ((-1.0) * gconst10 *
13688 j0valid[0] = j0valid[1] =
true;
13689 j0array[0] =
IKacos(cj0array[0]);
13690 sj0array[0] =
IKsin(j0array[0]);
13691 cj0array[1] = cj0array[0];
13692 j0array[1] = -j0array[0];
13693 sj0array[1] = -sj0array[0];
13695 else if (isnan(cj0array[0]))
13703 for (
int ij0 = 0; ij0 < 2; ++ij0)
13711 for (
int iij0 = ij0 + 1; iij0 < 2;
13714 if (j0valid[iij0] &&
13715 IKabs(cj0array[ij0] -
13718 IKabs(sj0array[ij0] -
13722 j0valid[iij0] =
false;
13728 cj0 = cj0array[ij0];
13729 sj0 = sj0array[ij0];
13731 IkReal evalcond[6];
13732 IkReal x668 =
IKsin(j0);
13733 IkReal x669 =
IKcos(j0);
13734 IkReal x670 = (gconst10 * x669);
13735 IkReal x671 = ((-1.0) * x668);
13736 evalcond[0] = (new_r10 * x668);
13737 evalcond[1] = (new_r01 * x671);
13738 evalcond[2] = (gconst10 * x671);
13739 evalcond[3] = (x670 + new_r10);
13742 ((new_r01 * x669)));
13743 evalcond[5] = (x670 + new_r01);
13744 if (
IKabs(evalcond[0]) >
13746 IKabs(evalcond[1]) >
13748 IKabs(evalcond[2]) >
13750 IKabs(evalcond[3]) >
13752 IKabs(evalcond[4]) >
13754 IKabs(evalcond[5]) >
13766 vinfos[0].jointtype = 1;
13767 vinfos[0].foffset = j0;
13768 vinfos[0].indices[0] = _ij0[0];
13769 vinfos[0].indices[1] = _ij0[1];
13770 vinfos[0].maxsolutions = _nj0;
13771 vinfos[1].jointtype = 1;
13772 vinfos[1].foffset = j1;
13773 vinfos[1].indices[0] = _ij1[0];
13774 vinfos[1].indices[1] = _ij1[1];
13775 vinfos[1].maxsolutions = _nj1;
13776 vinfos[2].jointtype = 1;
13777 vinfos[2].foffset = j2;
13778 vinfos[2].indices[0] = _ij2[0];
13779 vinfos[2].indices[1] = _ij2[1];
13780 vinfos[2].maxsolutions = _nj2;
13781 vinfos[3].jointtype = 1;
13782 vinfos[3].foffset = j3;
13783 vinfos[3].indices[0] = _ij3[0];
13784 vinfos[3].indices[1] = _ij3[1];
13785 vinfos[3].maxsolutions = _nj3;
13786 vinfos[4].jointtype = 1;
13787 vinfos[4].foffset = j4;
13788 vinfos[4].indices[0] = _ij4[0];
13789 vinfos[4].indices[1] = _ij4[1];
13790 vinfos[4].maxsolutions = _nj4;
13791 vinfos[5].jointtype = 1;
13792 vinfos[5].foffset = j5;
13793 vinfos[5].indices[0] = _ij5[0];
13794 vinfos[5].indices[1] = _ij5[1];
13795 vinfos[5].maxsolutions = _nj5;
13796 vinfos[6].jointtype = 1;
13797 vinfos[6].foffset = j6;
13798 vinfos[6].indices[0] = _ij6[0];
13799 vinfos[6].indices[1] = _ij6[1];
13800 vinfos[6].maxsolutions = _nj6;
13801 std::vector<int> vfree(0);
13811 if (bgotonextstatement)
13813 bool bgotonextstatement =
true;
13818 evalcond[1] = gconst10;
13819 evalcond[2] = gconst11;
13820 if (
IKabs(evalcond[0]) <
13821 0.0000050000000000 &&
13822 IKabs(evalcond[1]) <
13823 0.0000050000000000 &&
13824 IKabs(evalcond[2]) < 0.0000050000000000)
13826 bgotonextstatement =
false;
13838 IkReal x672 = ((1.0) * (x673.
value));
13841 j1 = 3.14159265358979;
13844 j2 = ((3.14159265) + (((-1.0) * x672)));
13849 IkReal gconst9 = ((3.14159265358979) +
13850 (((-1.0) * x672)));
13851 IkReal gconst10 = ((1.0) * new_r01);
13852 IkReal gconst11 = ((-1.0) * new_r11);
13857 (((-1.0) * (new_r01 *
13860 ((1.0) * new_r01 * new_r11))));
13861 if (
IKabs(j0eval[0]) <
13862 0.0000010000000000 ||
13864 0.0000010000000000 ||
13866 0.0000010000000000)
13880 ((1.0) * (x675.
value));
13883 j1 = 3.14159265358979;
13886 j2 = ((3.14159265) +
13887 (((-1.0) * x674)));
13893 ((3.14159265358979) +
13894 (((-1.0) * x674)));
13895 IkReal gconst10 = ((1.0) * new_r01);
13897 ((-1.0) * new_r11);
13901 ((
IKabs(((-1.0) + (new_r01 *
13903 (
IKabs(((1.0) * new_r01 *
13905 if (
IKabs(j0eval[0]) <
13906 0.0000010000000000 ||
13908 0.0000010000000000 ||
13910 0.0000010000000000)
13924 ((1.0) * (x677.
value));
13927 j1 = 3.14159265358979;
13930 j2 = ((3.14159265) +
13931 (((-1.0) * x676)));
13937 ((3.14159265358979) +
13938 (((-1.0) * x676)));
13942 ((-1.0) * new_r11);
13946 ((
IKabs(((2.0) * new_r01 *
13952 if (
IKabs(j0eval[0]) <
13953 0.0000010000000000 ||
13955 0.0000010000000000 ||
13957 0.0000010000000000)
13967 bool j0valid[1] = {
false };
14003 ((-1.5707963267949) +
14005 (((1.5707963267949) *
14011 if (j0array[0] >
IKPI)
14013 j0array[0] -=
IK2PI;
14015 else if (j0array[0] < -
IKPI)
14017 j0array[0] +=
IK2PI;
14020 for (
int ij0 = 0; ij0 < 1;
14029 for (
int iij0 = ij0 + 1;
14033 if (j0valid[iij0] &&
14045 j0valid[iij0] =
false;
14051 cj0 = cj0array[ij0];
14052 sj0 = sj0array[ij0];
14054 IkReal evalcond[6];
14055 IkReal x681 =
IKsin(j0);
14056 IkReal x682 =
IKcos(j0);
14068 ((((-1.0) * x687)) +
14087 ((((-1.0) * x685)) +
14088 (((-1.0) * x684)));
14090 ((((-1.0) * x687)) +
14092 if (
IKabs(evalcond[0]) >
14094 IKabs(evalcond[1]) >
14096 IKabs(evalcond[2]) >
14098 IKabs(evalcond[3]) >
14100 IKabs(evalcond[4]) >
14102 IKabs(evalcond[5]) >
14114 vinfos[0].jointtype = 1;
14115 vinfos[0].foffset = j0;
14116 vinfos[0].indices[0] =
14118 vinfos[0].indices[1] =
14120 vinfos[0].maxsolutions =
14122 vinfos[1].jointtype = 1;
14123 vinfos[1].foffset = j1;
14124 vinfos[1].indices[0] =
14126 vinfos[1].indices[1] =
14128 vinfos[1].maxsolutions =
14130 vinfos[2].jointtype = 1;
14131 vinfos[2].foffset = j2;
14132 vinfos[2].indices[0] =
14134 vinfos[2].indices[1] =
14136 vinfos[2].maxsolutions =
14138 vinfos[3].jointtype = 1;
14139 vinfos[3].foffset = j3;
14140 vinfos[3].indices[0] =
14142 vinfos[3].indices[1] =
14144 vinfos[3].maxsolutions =
14146 vinfos[4].jointtype = 1;
14147 vinfos[4].foffset = j4;
14148 vinfos[4].indices[0] =
14150 vinfos[4].indices[1] =
14152 vinfos[4].maxsolutions =
14154 vinfos[5].jointtype = 1;
14155 vinfos[5].foffset = j5;
14156 vinfos[5].indices[0] =
14158 vinfos[5].indices[1] =
14160 vinfos[5].maxsolutions =
14162 vinfos[6].jointtype = 1;
14163 vinfos[6].foffset = j6;
14164 vinfos[6].indices[0] =
14166 vinfos[6].indices[1] =
14168 vinfos[6].maxsolutions =
14170 std::vector<int> vfree(
14183 IkReal j0array[1], cj0array[1],
14185 bool j0valid[1] = {
false };
14213 ((-1.5707963267949) +
14214 (((1.5707963267949) *
14217 sj0array[0] =
IKsin(j0array[0]);
14218 cj0array[0] =
IKcos(j0array[0]);
14219 if (j0array[0] >
IKPI)
14221 j0array[0] -=
IK2PI;
14223 else if (j0array[0] < -
IKPI)
14225 j0array[0] +=
IK2PI;
14228 for (
int ij0 = 0; ij0 < 1;
14237 for (
int iij0 = ij0 + 1;
14241 if (j0valid[iij0] &&
14242 IKabs(cj0array[ij0] -
14245 IKabs(sj0array[ij0] -
14249 j0valid[iij0] =
false;
14255 cj0 = cj0array[ij0];
14256 sj0 = sj0array[ij0];
14258 IkReal evalcond[6];
14259 IkReal x690 =
IKsin(j0);
14260 IkReal x691 =
IKcos(j0);
14273 (((-1.0) * x696)));
14276 ((new_r11 * x690)) +
14277 ((new_r01 * x691)));
14279 (x694 + x693 + new_r11);
14281 ((((-1.0) * new_r01 *
14284 ((new_r11 * x691)));
14286 ((((-1.0) * x693)) +
14287 (((-1.0) * x694)));
14290 (((-1.0) * x696)) +
14292 if (
IKabs(evalcond[0]) >
14294 IKabs(evalcond[1]) >
14296 IKabs(evalcond[2]) >
14298 IKabs(evalcond[3]) >
14300 IKabs(evalcond[4]) >
14302 IKabs(evalcond[5]) >
14314 vinfos[0].jointtype = 1;
14315 vinfos[0].foffset = j0;
14316 vinfos[0].indices[0] =
14318 vinfos[0].indices[1] =
14320 vinfos[0].maxsolutions =
14322 vinfos[1].jointtype = 1;
14323 vinfos[1].foffset = j1;
14324 vinfos[1].indices[0] =
14326 vinfos[1].indices[1] =
14328 vinfos[1].maxsolutions =
14330 vinfos[2].jointtype = 1;
14331 vinfos[2].foffset = j2;
14332 vinfos[2].indices[0] =
14334 vinfos[2].indices[1] =
14336 vinfos[2].maxsolutions =
14338 vinfos[3].jointtype = 1;
14339 vinfos[3].foffset = j3;
14340 vinfos[3].indices[0] =
14342 vinfos[3].indices[1] =
14344 vinfos[3].maxsolutions =
14346 vinfos[4].jointtype = 1;
14347 vinfos[4].foffset = j4;
14348 vinfos[4].indices[0] =
14350 vinfos[4].indices[1] =
14352 vinfos[4].maxsolutions =
14354 vinfos[5].jointtype = 1;
14355 vinfos[5].foffset = j5;
14356 vinfos[5].indices[0] =
14358 vinfos[5].indices[1] =
14360 vinfos[5].maxsolutions =
14362 vinfos[6].jointtype = 1;
14363 vinfos[6].foffset = j6;
14364 vinfos[6].indices[0] =
14366 vinfos[6].indices[1] =
14368 vinfos[6].maxsolutions =
14370 std::vector<int> vfree(0);
14382 IkReal j0array[1], cj0array[1],
14384 bool j0valid[1] = {
false };
14389 ((gconst10 * new_r01)) +
14390 (((-1.0) * gconst11 *
14400 (gconst10 * gconst11)),
14401 IkReal(gconst11 * gconst11),
14407 j0array[0] = ((-1.5707963267949) +
14408 (((1.5707963267949) *
14411 sj0array[0] =
IKsin(j0array[0]);
14412 cj0array[0] =
IKcos(j0array[0]);
14413 if (j0array[0] >
IKPI)
14415 j0array[0] -=
IK2PI;
14417 else if (j0array[0] < -
IKPI)
14419 j0array[0] +=
IK2PI;
14422 for (
int ij0 = 0; ij0 < 1; ++ij0)
14430 for (
int iij0 = ij0 + 1; iij0 < 1;
14433 if (j0valid[iij0] &&
14434 IKabs(cj0array[ij0] -
14437 IKabs(sj0array[ij0] -
14441 j0valid[iij0] =
false;
14447 cj0 = cj0array[ij0];
14448 sj0 = sj0array[ij0];
14450 IkReal evalcond[6];
14451 IkReal x699 =
IKsin(j0);
14452 IkReal x700 =
IKcos(j0);
14453 IkReal x701 = (gconst10 * x700);
14454 IkReal x702 = (gconst11 * x700);
14455 IkReal x703 = (gconst10 * x699);
14456 IkReal x704 = ((1.0) * x699);
14457 IkReal x705 = (gconst11 * x704);
14459 ((((-1.0) * x705)) + x701);
14461 (((new_r01 * x700)) +
14463 ((new_r11 * x699)));
14465 (x702 + x703 + new_r11);
14468 ((new_r11 * x700)) +
14469 (((-1.0) * new_r01 *
14472 ((((-1.0) * x702)) +
14473 (((-1.0) * x703)));
14475 ((((-1.0) * x705)) + x701 +
14477 if (
IKabs(evalcond[0]) >
14479 IKabs(evalcond[1]) >
14481 IKabs(evalcond[2]) >
14483 IKabs(evalcond[3]) >
14485 IKabs(evalcond[4]) >
14487 IKabs(evalcond[5]) >
14499 vinfos[0].jointtype = 1;
14500 vinfos[0].foffset = j0;
14501 vinfos[0].indices[0] = _ij0[0];
14502 vinfos[0].indices[1] = _ij0[1];
14503 vinfos[0].maxsolutions = _nj0;
14504 vinfos[1].jointtype = 1;
14505 vinfos[1].foffset = j1;
14506 vinfos[1].indices[0] = _ij1[0];
14507 vinfos[1].indices[1] = _ij1[1];
14508 vinfos[1].maxsolutions = _nj1;
14509 vinfos[2].jointtype = 1;
14510 vinfos[2].foffset = j2;
14511 vinfos[2].indices[0] = _ij2[0];
14512 vinfos[2].indices[1] = _ij2[1];
14513 vinfos[2].maxsolutions = _nj2;
14514 vinfos[3].jointtype = 1;
14515 vinfos[3].foffset = j3;
14516 vinfos[3].indices[0] = _ij3[0];
14517 vinfos[3].indices[1] = _ij3[1];
14518 vinfos[3].maxsolutions = _nj3;
14519 vinfos[4].jointtype = 1;
14520 vinfos[4].foffset = j4;
14521 vinfos[4].indices[0] = _ij4[0];
14522 vinfos[4].indices[1] = _ij4[1];
14523 vinfos[4].maxsolutions = _nj4;
14524 vinfos[5].jointtype = 1;
14525 vinfos[5].foffset = j5;
14526 vinfos[5].indices[0] = _ij5[0];
14527 vinfos[5].indices[1] = _ij5[1];
14528 vinfos[5].maxsolutions = _nj5;
14529 vinfos[6].jointtype = 1;
14530 vinfos[6].foffset = j6;
14531 vinfos[6].indices[0] = _ij6[0];
14532 vinfos[6].indices[1] = _ij6[1];
14533 vinfos[6].maxsolutions = _nj6;
14534 std::vector<int> vfree(0);
14544 if (bgotonextstatement)
14546 bool bgotonextstatement =
true;
14551 if (
IKabs(evalcond[0]) <
14552 0.0000050000000000)
14554 bgotonextstatement =
false;
14556 IkReal j0array[2], cj0array[2],
14558 bool j0valid[2] = {
false };
14568 (new_r00 * (x706.
value));
14574 j0valid[0] = j0valid[1] =
true;
14575 j0array[0] =
IKacos(cj0array[0]);
14576 sj0array[0] =
IKsin(j0array[0]);
14577 cj0array[1] = cj0array[0];
14578 j0array[1] = -j0array[0];
14579 sj0array[1] = -sj0array[0];
14581 else if (isnan(cj0array[0]))
14589 for (
int ij0 = 0; ij0 < 2; ++ij0)
14597 for (
int iij0 = ij0 + 1; iij0 < 2;
14600 if (j0valid[iij0] &&
14601 IKabs(cj0array[ij0] -
14604 IKabs(sj0array[ij0] -
14608 j0valid[iij0] =
false;
14614 cj0 = cj0array[ij0];
14615 sj0 = sj0array[ij0];
14617 IkReal evalcond[6];
14618 IkReal x707 =
IKsin(j0);
14619 IkReal x708 =
IKcos(j0);
14620 IkReal x709 = ((-1.0) * x707);
14621 evalcond[0] = (new_r11 * x707);
14622 evalcond[1] = (new_r00 * x709);
14623 evalcond[2] = (gconst11 * x709);
14626 ((new_r11 * x708)));
14629 ((gconst11 * x708)));
14631 (((new_r00 * x708)) +
14632 (((-1.0) * gconst11)));
14633 if (
IKabs(evalcond[0]) >
14635 IKabs(evalcond[1]) >
14637 IKabs(evalcond[2]) >
14639 IKabs(evalcond[3]) >
14641 IKabs(evalcond[4]) >
14643 IKabs(evalcond[5]) >
14655 vinfos[0].jointtype = 1;
14656 vinfos[0].foffset = j0;
14657 vinfos[0].indices[0] = _ij0[0];
14658 vinfos[0].indices[1] = _ij0[1];
14659 vinfos[0].maxsolutions = _nj0;
14660 vinfos[1].jointtype = 1;
14661 vinfos[1].foffset = j1;
14662 vinfos[1].indices[0] = _ij1[0];
14663 vinfos[1].indices[1] = _ij1[1];
14664 vinfos[1].maxsolutions = _nj1;
14665 vinfos[2].jointtype = 1;
14666 vinfos[2].foffset = j2;
14667 vinfos[2].indices[0] = _ij2[0];
14668 vinfos[2].indices[1] = _ij2[1];
14669 vinfos[2].maxsolutions = _nj2;
14670 vinfos[3].jointtype = 1;
14671 vinfos[3].foffset = j3;
14672 vinfos[3].indices[0] = _ij3[0];
14673 vinfos[3].indices[1] = _ij3[1];
14674 vinfos[3].maxsolutions = _nj3;
14675 vinfos[4].jointtype = 1;
14676 vinfos[4].foffset = j4;
14677 vinfos[4].indices[0] = _ij4[0];
14678 vinfos[4].indices[1] = _ij4[1];
14679 vinfos[4].maxsolutions = _nj4;
14680 vinfos[5].jointtype = 1;
14681 vinfos[5].foffset = j5;
14682 vinfos[5].indices[0] = _ij5[0];
14683 vinfos[5].indices[1] = _ij5[1];
14684 vinfos[5].maxsolutions = _nj5;
14685 vinfos[6].jointtype = 1;
14686 vinfos[6].foffset = j6;
14687 vinfos[6].indices[0] = _ij6[0];
14688 vinfos[6].indices[1] = _ij6[1];
14689 vinfos[6].maxsolutions = _nj6;
14690 std::vector<int> vfree(0);
14698 if (bgotonextstatement)
14700 bool bgotonextstatement =
true;
14703 evalcond[0] = ((
IKabs(new_r00)) +
14705 if (
IKabs(evalcond[0]) <
14706 0.0000050000000000)
14708 bgotonextstatement =
false;
14721 ((1.0) * (x711.
value));
14724 j1 = 3.14159265358979;
14727 j2 = ((3.14159265) +
14728 (((-1.0) * x710)));
14734 ((3.14159265358979) +
14735 (((-1.0) * x710)));
14736 IkReal gconst10 = 0;
14740 (new_r10 * new_r10))));
14741 if (
IKabs(x712) == 0)
14746 ((-1.0) * new_r11 *
14747 (pow(x712, -0.5)));
14748 j0eval[0] = ((
IKabs(new_r11)) +
14750 if (
IKabs(j0eval[0]) <
14751 0.0000010000000000)
14765 ((1.0) * (x714.
value));
14768 j1 = 3.14159265358979;
14771 j2 = ((3.14159265) +
14772 (((-1.0) * x713)));
14778 ((3.14159265358979) +
14779 (((-1.0) * x713)));
14780 IkReal gconst10 = 0;
14784 (new_r10 * new_r10))));
14785 if (
IKabs(x715) == 0)
14790 ((-1.0) * new_r11 *
14791 (pow(x715, -0.5)));
14792 j0eval[0] = new_r11;
14793 if (
IKabs(j0eval[0]) <
14794 0.0000010000000000)
14808 ((1.0) * (x717.
value));
14811 j1 = 3.14159265358979;
14814 j2 = ((3.14159265) +
14815 (((-1.0) * x716)));
14821 ((3.14159265358979) +
14822 (((-1.0) * x716)));
14823 IkReal gconst10 = 0;
14825 ((1.0) + (((-1.0) *
14828 if (
IKabs(x718) == 0)
14833 ((-1.0) * new_r11 *
14834 (pow(x718, -0.5)));
14835 j0eval[0] = new_r10;
14836 j0eval[1] = new_r11;
14837 if (
IKabs(j0eval[0]) <
14838 0.0000010000000000 ||
14840 0.0000010000000000)
14851 bool j0valid[1] = {
14892 ((-1.0) * gconst11 *
14898 if (j0array[0] >
IKPI)
14900 j0array[0] -=
IK2PI;
14902 else if (j0array[0] <
14905 j0array[0] +=
IK2PI;
14923 if (j0valid[iij0] &&
14944 cj0 = cj0array[ij0];
14945 sj0 = sj0array[ij0];
14947 IkReal evalcond[8];
15022 vinfos[0].foffset =
15035 vinfos[1].foffset =
15048 vinfos[2].foffset =
15061 vinfos[3].foffset =
15074 vinfos[4].foffset =
15087 vinfos[5].foffset =
15100 vinfos[6].foffset =
15129 bool j0valid[1] = {
false };
15145 if (
IKabs((new_r10 *
15149 ((-1.0) * gconst11 *
15166 ((-1.0) * gconst11 *
15172 if (j0array[0] >
IKPI)
15174 j0array[0] -=
IK2PI;
15176 else if (j0array[0] < -
IKPI)
15178 j0array[0] +=
IK2PI;
15181 for (
int ij0 = 0; ij0 < 1;
15190 for (
int iij0 = ij0 + 1;
15194 if (j0valid[iij0] &&
15206 j0valid[iij0] =
false;
15212 cj0 = cj0array[ij0];
15213 sj0 = sj0array[ij0];
15215 IkReal evalcond[8];
15216 IkReal x727 =
IKcos(j0);
15217 IkReal x728 =
IKsin(j0);
15219 ((1.0) * gconst11);
15221 ((-1.0) * gconst11);
15243 ((((-1.0) * x729)) +
15246 if (
IKabs(evalcond[0]) >
15248 IKabs(evalcond[1]) >
15250 IKabs(evalcond[2]) >
15252 IKabs(evalcond[3]) >
15254 IKabs(evalcond[4]) >
15256 IKabs(evalcond[5]) >
15258 IKabs(evalcond[6]) >
15260 IKabs(evalcond[7]) >
15272 vinfos[0].jointtype = 1;
15273 vinfos[0].foffset = j0;
15274 vinfos[0].indices[0] =
15276 vinfos[0].indices[1] =
15278 vinfos[0].maxsolutions =
15280 vinfos[1].jointtype = 1;
15281 vinfos[1].foffset = j1;
15282 vinfos[1].indices[0] =
15284 vinfos[1].indices[1] =
15286 vinfos[1].maxsolutions =
15288 vinfos[2].jointtype = 1;
15289 vinfos[2].foffset = j2;
15290 vinfos[2].indices[0] =
15292 vinfos[2].indices[1] =
15294 vinfos[2].maxsolutions =
15296 vinfos[3].jointtype = 1;
15297 vinfos[3].foffset = j3;
15298 vinfos[3].indices[0] =
15300 vinfos[3].indices[1] =
15302 vinfos[3].maxsolutions =
15304 vinfos[4].jointtype = 1;
15305 vinfos[4].foffset = j4;
15306 vinfos[4].indices[0] =
15308 vinfos[4].indices[1] =
15310 vinfos[4].maxsolutions =
15312 vinfos[5].jointtype = 1;
15313 vinfos[5].foffset = j5;
15314 vinfos[5].indices[0] =
15316 vinfos[5].indices[1] =
15318 vinfos[5].maxsolutions =
15320 vinfos[6].jointtype = 1;
15321 vinfos[6].foffset = j6;
15322 vinfos[6].indices[0] =
15324 vinfos[6].indices[1] =
15326 vinfos[6].maxsolutions =
15328 std::vector<int> vfree(
15341 IkReal j0array[1], cj0array[1],
15343 bool j0valid[1] = {
false };
15356 ((-1.0) * new_r11)),
15363 ((-1.5707963267949) +
15364 (((1.5707963267949) *
15367 sj0array[0] =
IKsin(j0array[0]);
15368 cj0array[0] =
IKcos(j0array[0]);
15369 if (j0array[0] >
IKPI)
15371 j0array[0] -=
IK2PI;
15373 else if (j0array[0] < -
IKPI)
15375 j0array[0] +=
IK2PI;
15378 for (
int ij0 = 0; ij0 < 1;
15387 for (
int iij0 = ij0 + 1;
15391 if (j0valid[iij0] &&
15392 IKabs(cj0array[ij0] -
15395 IKabs(sj0array[ij0] -
15399 j0valid[iij0] =
false;
15405 cj0 = cj0array[ij0];
15406 sj0 = sj0array[ij0];
15408 IkReal evalcond[8];
15409 IkReal x733 =
IKcos(j0);
15410 IkReal x734 =
IKsin(j0);
15412 ((1.0) * gconst11);
15414 ((-1.0) * gconst11);
15419 evalcond[2] = (x733 * x736);
15420 evalcond[3] = (x734 * x736);
15423 ((new_r11 * x733)));
15426 ((gconst11 * x733)));
15432 ((((-1.0) * x735)) +
15433 ((new_r10 * x734)));
15434 if (
IKabs(evalcond[0]) >
15436 IKabs(evalcond[1]) >
15438 IKabs(evalcond[2]) >
15440 IKabs(evalcond[3]) >
15442 IKabs(evalcond[4]) >
15444 IKabs(evalcond[5]) >
15446 IKabs(evalcond[6]) >
15448 IKabs(evalcond[7]) >
15460 vinfos[0].jointtype = 1;
15461 vinfos[0].foffset = j0;
15462 vinfos[0].indices[0] =
15464 vinfos[0].indices[1] =
15466 vinfos[0].maxsolutions =
15468 vinfos[1].jointtype = 1;
15469 vinfos[1].foffset = j1;
15470 vinfos[1].indices[0] =
15472 vinfos[1].indices[1] =
15474 vinfos[1].maxsolutions =
15476 vinfos[2].jointtype = 1;
15477 vinfos[2].foffset = j2;
15478 vinfos[2].indices[0] =
15480 vinfos[2].indices[1] =
15482 vinfos[2].maxsolutions =
15484 vinfos[3].jointtype = 1;
15485 vinfos[3].foffset = j3;
15486 vinfos[3].indices[0] =
15488 vinfos[3].indices[1] =
15490 vinfos[3].maxsolutions =
15492 vinfos[4].jointtype = 1;
15493 vinfos[4].foffset = j4;
15494 vinfos[4].indices[0] =
15496 vinfos[4].indices[1] =
15498 vinfos[4].maxsolutions =
15500 vinfos[5].jointtype = 1;
15501 vinfos[5].foffset = j5;
15502 vinfos[5].indices[0] =
15504 vinfos[5].indices[1] =
15506 vinfos[5].maxsolutions =
15508 vinfos[6].jointtype = 1;
15509 vinfos[6].foffset = j6;
15510 vinfos[6].indices[0] =
15512 vinfos[6].indices[1] =
15514 vinfos[6].maxsolutions =
15516 std::vector<int> vfree(0);
15526 if (bgotonextstatement)
15528 bool bgotonextstatement =
true;
15531 evalcond[0] =
IKabs(new_r01);
15532 if (
IKabs(evalcond[0]) <
15533 0.0000050000000000)
15535 bgotonextstatement =
false;
15548 ((1.0) * (x738.
value));
15551 j1 = 3.14159265358979;
15554 j2 = ((3.14159265) +
15555 (((-1.0) * x737)));
15558 ((3.14159265358979) +
15559 (((-1.0) * x737)));
15560 IkReal gconst10 = 0;
15561 IkReal x739 = new_r11 * new_r11;
15562 if (
IKabs(x739) == 0)
15567 ((-1.0) * new_r11 *
15568 (pow(x739, -0.5)));
15569 j0eval[0] = ((
IKabs(new_r10)) +
15571 if (
IKabs(j0eval[0]) <
15572 0.0000010000000000)
15586 ((1.0) * (x741.
value));
15589 j1 = 3.14159265358979;
15592 j2 = ((3.14159265) +
15593 (((-1.0) * x740)));
15596 ((3.14159265358979) +
15597 (((-1.0) * x740)));
15598 IkReal gconst10 = 0;
15601 if (
IKabs(x742) == 0)
15606 ((-1.0) * new_r11 *
15607 (pow(x742, -0.5)));
15609 ((
IKabs(new_r11)) +
15611 if (
IKabs(j0eval[0]) <
15612 0.0000010000000000)
15630 j1 = 3.14159265358979;
15633 j2 = ((3.14159265) +
15634 (((-1.0) * x743)));
15637 ((3.14159265358979) +
15638 (((-1.0) * x743)));
15639 IkReal gconst10 = 0;
15642 if (
IKabs(x745) == 0)
15647 ((-1.0) * new_r11 *
15648 (pow(x745, -0.5)));
15649 j0eval[0] = new_r11;
15650 if (
IKabs(j0eval[0]) <
15651 0.0000010000000000)
15662 bool j0valid[1] = {
15710 if (j0array[0] >
IKPI)
15712 j0array[0] -=
IK2PI;
15714 else if (j0array[0] <
15717 j0array[0] +=
IK2PI;
15757 cj0 = cj0array[ij0];
15758 sj0 = sj0array[ij0];
15964 bool j0valid[1] = {
15987 ((-1.5707963267949) +
15988 (((1.5707963267949) *
15995 if (j0array[0] >
IKPI)
15997 j0array[0] -=
IK2PI;
15999 else if (j0array[0] <
16002 j0array[0] +=
IK2PI;
16005 for (
int ij0 = 0; ij0 < 1;
16014 for (
int iij0 = ij0 + 1;
16018 if (j0valid[iij0] &&
16039 cj0 = cj0array[ij0];
16040 sj0 = sj0array[ij0];
16042 IkReal evalcond[8];
16116 vinfos[0].jointtype =
16118 vinfos[0].foffset =
16120 vinfos[0].indices[0] =
16122 vinfos[0].indices[1] =
16127 vinfos[1].jointtype =
16129 vinfos[1].foffset =
16131 vinfos[1].indices[0] =
16133 vinfos[1].indices[1] =
16138 vinfos[2].jointtype =
16140 vinfos[2].foffset =
16142 vinfos[2].indices[0] =
16144 vinfos[2].indices[1] =
16149 vinfos[3].jointtype =
16151 vinfos[3].foffset =
16153 vinfos[3].indices[0] =
16155 vinfos[3].indices[1] =
16160 vinfos[4].jointtype =
16162 vinfos[4].foffset =
16164 vinfos[4].indices[0] =
16166 vinfos[4].indices[1] =
16171 vinfos[5].jointtype =
16173 vinfos[5].foffset =
16175 vinfos[5].indices[0] =
16177 vinfos[5].indices[1] =
16182 vinfos[6].jointtype =
16184 vinfos[6].foffset =
16186 vinfos[6].indices[0] =
16188 vinfos[6].indices[1] =
16207 cj0array[1], sj0array[1];
16208 bool j0valid[1] = {
false };
16227 ((-1.5707963267949) +
16228 (((1.5707963267949) *
16235 if (j0array[0] >
IKPI)
16237 j0array[0] -=
IK2PI;
16239 else if (j0array[0] < -
IKPI)
16241 j0array[0] +=
IK2PI;
16244 for (
int ij0 = 0; ij0 < 1;
16253 for (
int iij0 = ij0 + 1;
16257 if (j0valid[iij0] &&
16267 j0valid[iij0] =
false;
16273 cj0 = cj0array[ij0];
16274 sj0 = sj0array[ij0];
16276 IkReal evalcond[8];
16277 IkReal x760 =
IKsin(j0);
16278 IkReal x761 =
IKcos(j0);
16288 (((new_r11 * x761)) +
16293 ((((-1.0) * x762)) +
16296 ((((-1.0) * x763)) +
16299 (((new_r10 * x761)) +
16300 (((-1.0) * new_r00 *
16303 (((new_r10 * x760)) +
16304 ((new_r00 * x761)) +
16307 if (
IKabs(evalcond[0]) >
16309 IKabs(evalcond[1]) >
16311 IKabs(evalcond[2]) >
16313 IKabs(evalcond[3]) >
16315 IKabs(evalcond[4]) >
16317 IKabs(evalcond[5]) >
16319 IKabs(evalcond[6]) >
16321 IKabs(evalcond[7]) >
16333 vinfos[0].jointtype = 1;
16334 vinfos[0].foffset = j0;
16335 vinfos[0].indices[0] =
16337 vinfos[0].indices[1] =
16339 vinfos[0].maxsolutions =
16341 vinfos[1].jointtype = 1;
16342 vinfos[1].foffset = j1;
16343 vinfos[1].indices[0] =
16345 vinfos[1].indices[1] =
16347 vinfos[1].maxsolutions =
16349 vinfos[2].jointtype = 1;
16350 vinfos[2].foffset = j2;
16351 vinfos[2].indices[0] =
16353 vinfos[2].indices[1] =
16355 vinfos[2].maxsolutions =
16357 vinfos[3].jointtype = 1;
16358 vinfos[3].foffset = j3;
16359 vinfos[3].indices[0] =
16361 vinfos[3].indices[1] =
16363 vinfos[3].maxsolutions =
16365 vinfos[4].jointtype = 1;
16366 vinfos[4].foffset = j4;
16367 vinfos[4].indices[0] =
16369 vinfos[4].indices[1] =
16371 vinfos[4].maxsolutions =
16373 vinfos[5].jointtype = 1;
16374 vinfos[5].foffset = j5;
16375 vinfos[5].indices[0] =
16377 vinfos[5].indices[1] =
16379 vinfos[5].maxsolutions =
16381 vinfos[6].jointtype = 1;
16382 vinfos[6].foffset = j6;
16383 vinfos[6].indices[0] =
16385 vinfos[6].indices[1] =
16387 vinfos[6].maxsolutions =
16389 std::vector<int> vfree(0);
16399 if (bgotonextstatement)
16401 bool bgotonextstatement =
true;
16406 bgotonextstatement =
false;
16410 if (bgotonextstatement)
16423 IkReal j0array[1], cj0array[1], sj0array[1];
16424 bool j0valid[1] = {
false };
16426 IkReal x764 = ((1.0) * new_r11);
16428 IKsign(((((-1.0) * gconst11 * x764)) +
16429 ((gconst10 * new_r01)))),
16436 IkReal((((gconst10 * gconst11)) +
16437 (((-1.0) * new_r01 * x764)))),
16439 ((new_r11 * new_r11) +
16440 (((-1.0) * (gconst10 * gconst10))))),
16447 ((-1.5707963267949) +
16448 (((1.5707963267949) * (x765.
value))) +
16450 sj0array[0] =
IKsin(j0array[0]);
16451 cj0array[0] =
IKcos(j0array[0]);
16452 if (j0array[0] >
IKPI)
16454 j0array[0] -=
IK2PI;
16456 else if (j0array[0] < -
IKPI)
16458 j0array[0] +=
IK2PI;
16461 for (
int ij0 = 0; ij0 < 1; ++ij0)
16469 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
16471 if (j0valid[iij0] &&
16472 IKabs(cj0array[ij0] - cj0array[iij0]) <
16474 IKabs(sj0array[ij0] - sj0array[iij0]) <
16477 j0valid[iij0] =
false;
16483 cj0 = cj0array[ij0];
16484 sj0 = sj0array[ij0];
16486 IkReal evalcond[8];
16487 IkReal x767 =
IKcos(j0);
16488 IkReal x768 =
IKsin(j0);
16489 IkReal x769 = (gconst10 * x767);
16490 IkReal x770 = (gconst11 * x767);
16491 IkReal x771 = ((1.0) * x768);
16492 IkReal x772 = (gconst11 * x771);
16494 (((new_r11 * x768)) + gconst10 +
16495 ((new_r01 * x767)));
16497 (((gconst10 * x768)) + x770 + new_r11);
16498 evalcond[2] = (((new_r10 * x767)) +
16499 (((-1.0) * new_r00 * x771)) +
16501 evalcond[3] = (((new_r11 * x767)) +
16502 (((-1.0) * new_r01 * x771)) +
16505 (x769 + (((-1.0) * x772)) + new_r10);
16507 (x769 + (((-1.0) * x772)) + new_r01);
16508 evalcond[6] = (((new_r10 * x768)) +
16509 ((new_r00 * x767)) +
16510 (((-1.0) * gconst11)));
16512 ((((-1.0) * gconst10 * x771)) +
16513 new_r00 + (((-1.0) * x770)));
16514 if (
IKabs(evalcond[0]) >
16516 IKabs(evalcond[1]) >
16518 IKabs(evalcond[2]) >
16520 IKabs(evalcond[3]) >
16522 IKabs(evalcond[4]) >
16524 IKabs(evalcond[5]) >
16526 IKabs(evalcond[6]) >
16528 IKabs(evalcond[7]) >
16539 vinfos[0].jointtype = 1;
16540 vinfos[0].foffset = j0;
16541 vinfos[0].indices[0] = _ij0[0];
16542 vinfos[0].indices[1] = _ij0[1];
16543 vinfos[0].maxsolutions = _nj0;
16544 vinfos[1].jointtype = 1;
16545 vinfos[1].foffset = j1;
16546 vinfos[1].indices[0] = _ij1[0];
16547 vinfos[1].indices[1] = _ij1[1];
16548 vinfos[1].maxsolutions = _nj1;
16549 vinfos[2].jointtype = 1;
16550 vinfos[2].foffset = j2;
16551 vinfos[2].indices[0] = _ij2[0];
16552 vinfos[2].indices[1] = _ij2[1];
16553 vinfos[2].maxsolutions = _nj2;
16554 vinfos[3].jointtype = 1;
16555 vinfos[3].foffset = j3;
16556 vinfos[3].indices[0] = _ij3[0];
16557 vinfos[3].indices[1] = _ij3[1];
16558 vinfos[3].maxsolutions = _nj3;
16559 vinfos[4].jointtype = 1;
16560 vinfos[4].foffset = j4;
16561 vinfos[4].indices[0] = _ij4[0];
16562 vinfos[4].indices[1] = _ij4[1];
16563 vinfos[4].maxsolutions = _nj4;
16564 vinfos[5].jointtype = 1;
16565 vinfos[5].foffset = j5;
16566 vinfos[5].indices[0] = _ij5[0];
16567 vinfos[5].indices[1] = _ij5[1];
16568 vinfos[5].maxsolutions = _nj5;
16569 vinfos[6].jointtype = 1;
16570 vinfos[6].foffset = j6;
16571 vinfos[6].indices[0] = _ij6[0];
16572 vinfos[6].indices[1] = _ij6[1];
16573 vinfos[6].maxsolutions = _nj6;
16574 std::vector<int> vfree(0);
16585 IkReal j0array[1], cj0array[1], sj0array[1];
16586 bool j0valid[1] = {
false };
16588 IkReal x773 = ((1.0) * new_r11);
16590 IKsign(((new_r01 * new_r01) +
16591 (new_r11 * new_r11))),
16598 IkReal((((gconst11 * new_r01)) +
16599 (((-1.0) * gconst10 * x773)))),
16600 IkReal(((((-1.0) * gconst10 * new_r01)) +
16601 (((-1.0) * gconst11 * x773)))),
16607 j0array[0] = ((-1.5707963267949) +
16608 (((1.5707963267949) * (x774.
value))) +
16610 sj0array[0] =
IKsin(j0array[0]);
16611 cj0array[0] =
IKcos(j0array[0]);
16612 if (j0array[0] >
IKPI)
16614 j0array[0] -=
IK2PI;
16616 else if (j0array[0] < -
IKPI)
16618 j0array[0] +=
IK2PI;
16621 for (
int ij0 = 0; ij0 < 1; ++ij0)
16629 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
16631 if (j0valid[iij0] &&
16632 IKabs(cj0array[ij0] - cj0array[iij0]) <
16634 IKabs(sj0array[ij0] - sj0array[iij0]) <
16637 j0valid[iij0] =
false;
16643 cj0 = cj0array[ij0];
16644 sj0 = sj0array[ij0];
16646 IkReal evalcond[8];
16647 IkReal x776 =
IKcos(j0);
16648 IkReal x777 =
IKsin(j0);
16649 IkReal x778 = (gconst10 * x776);
16650 IkReal x779 = (gconst11 * x776);
16651 IkReal x780 = ((1.0) * x777);
16652 IkReal x781 = (gconst11 * x780);
16653 evalcond[0] = (gconst10 + ((new_r11 * x777)) +
16654 ((new_r01 * x776)));
16656 (x779 + new_r11 + ((gconst10 * x777)));
16657 evalcond[2] = (gconst10 + ((new_r10 * x776)) +
16658 (((-1.0) * new_r00 * x780)));
16659 evalcond[3] = ((((-1.0) * new_r01 * x780)) +
16660 gconst11 + ((new_r11 * x776)));
16662 ((((-1.0) * x781)) + x778 + new_r10);
16664 ((((-1.0) * x781)) + x778 + new_r01);
16666 (((new_r00 * x776)) + ((new_r10 * x777)) +
16667 (((-1.0) * gconst11)));
16668 evalcond[7] = (new_r00 + (((-1.0) * x779)) +
16669 (((-1.0) * gconst10 * x780)));
16670 if (
IKabs(evalcond[0]) >
16672 IKabs(evalcond[1]) >
16674 IKabs(evalcond[2]) >
16676 IKabs(evalcond[3]) >
16678 IKabs(evalcond[4]) >
16680 IKabs(evalcond[5]) >
16682 IKabs(evalcond[6]) >
16691 std::vector<IkSingleDOFSolutionBase<IkReal> >
16693 vinfos[0].jointtype = 1;
16694 vinfos[0].foffset = j0;
16695 vinfos[0].indices[0] = _ij0[0];
16696 vinfos[0].indices[1] = _ij0[1];
16697 vinfos[0].maxsolutions = _nj0;
16698 vinfos[1].jointtype = 1;
16699 vinfos[1].foffset = j1;
16700 vinfos[1].indices[0] = _ij1[0];
16701 vinfos[1].indices[1] = _ij1[1];
16702 vinfos[1].maxsolutions = _nj1;
16703 vinfos[2].jointtype = 1;
16704 vinfos[2].foffset = j2;
16705 vinfos[2].indices[0] = _ij2[0];
16706 vinfos[2].indices[1] = _ij2[1];
16707 vinfos[2].maxsolutions = _nj2;
16708 vinfos[3].jointtype = 1;
16709 vinfos[3].foffset = j3;
16710 vinfos[3].indices[0] = _ij3[0];
16711 vinfos[3].indices[1] = _ij3[1];
16712 vinfos[3].maxsolutions = _nj3;
16713 vinfos[4].jointtype = 1;
16714 vinfos[4].foffset = j4;
16715 vinfos[4].indices[0] = _ij4[0];
16716 vinfos[4].indices[1] = _ij4[1];
16717 vinfos[4].maxsolutions = _nj4;
16718 vinfos[5].jointtype = 1;
16719 vinfos[5].foffset = j5;
16720 vinfos[5].indices[0] = _ij5[0];
16721 vinfos[5].indices[1] = _ij5[1];
16722 vinfos[5].maxsolutions = _nj5;
16723 vinfos[6].jointtype = 1;
16724 vinfos[6].foffset = j6;
16725 vinfos[6].indices[0] = _ij6[0];
16726 vinfos[6].indices[1] = _ij6[1];
16727 vinfos[6].maxsolutions = _nj6;
16728 std::vector<int> vfree(0);
16739 IkReal j0array[1], cj0array[1], sj0array[1];
16740 bool j0valid[1] = {
false };
16742 IkReal x782 = ((1.0) * gconst10);
16744 IkReal(((((-1.0) * new_r10 * x782)) +
16745 ((gconst10 * new_r01)))),
16746 IkReal(((((-1.0) * new_r11 * x782)) +
16747 (((-1.0) * new_r00 * x782)))),
16754 IKsign((((new_r10 * new_r11)) +
16755 ((new_r00 * new_r01)))),
16761 j0array[0] = ((-1.5707963267949) + (x783.
value) +
16762 (((1.5707963267949) * (x784.
value))));
16763 sj0array[0] =
IKsin(j0array[0]);
16764 cj0array[0] =
IKcos(j0array[0]);
16765 if (j0array[0] >
IKPI)
16767 j0array[0] -=
IK2PI;
16769 else if (j0array[0] < -
IKPI)
16771 j0array[0] +=
IK2PI;
16774 for (
int ij0 = 0; ij0 < 1; ++ij0)
16782 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
16784 if (j0valid[iij0] &&
16785 IKabs(cj0array[ij0] - cj0array[iij0]) <
16787 IKabs(sj0array[ij0] - sj0array[iij0]) <
16790 j0valid[iij0] =
false;
16796 cj0 = cj0array[ij0];
16797 sj0 = sj0array[ij0];
16799 IkReal evalcond[8];
16800 IkReal x785 =
IKcos(j0);
16801 IkReal x786 =
IKsin(j0);
16802 IkReal x787 = (gconst10 * x785);
16803 IkReal x788 = (gconst11 * x785);
16804 IkReal x789 = ((1.0) * x786);
16805 IkReal x790 = (gconst11 * x789);
16806 evalcond[0] = (((new_r11 * x786)) + gconst10 +
16807 ((new_r01 * x785)));
16809 (((gconst10 * x786)) + x788 + new_r11);
16810 evalcond[2] = (((new_r10 * x785)) + gconst10 +
16811 (((-1.0) * new_r00 * x789)));
16812 evalcond[3] = ((((-1.0) * new_r01 * x789)) +
16813 ((new_r11 * x785)) + gconst11);
16814 evalcond[4] = ((((-1.0) * x790)) + x787 + new_r10);
16815 evalcond[5] = ((((-1.0) * x790)) + x787 + new_r01);
16817 (((new_r10 * x786)) + ((new_r00 * x785)) +
16818 (((-1.0) * gconst11)));
16819 evalcond[7] = ((((-1.0) * x788)) + new_r00 +
16820 (((-1.0) * gconst10 * x789)));
16835 std::vector<IkSingleDOFSolutionBase<IkReal> >
16837 vinfos[0].jointtype = 1;
16838 vinfos[0].foffset = j0;
16839 vinfos[0].indices[0] = _ij0[0];
16840 vinfos[0].indices[1] = _ij0[1];
16841 vinfos[0].maxsolutions = _nj0;
16842 vinfos[1].jointtype = 1;
16843 vinfos[1].foffset = j1;
16844 vinfos[1].indices[0] = _ij1[0];
16845 vinfos[1].indices[1] = _ij1[1];
16846 vinfos[1].maxsolutions = _nj1;
16847 vinfos[2].jointtype = 1;
16848 vinfos[2].foffset = j2;
16849 vinfos[2].indices[0] = _ij2[0];
16850 vinfos[2].indices[1] = _ij2[1];
16851 vinfos[2].maxsolutions = _nj2;
16852 vinfos[3].jointtype = 1;
16853 vinfos[3].foffset = j3;
16854 vinfos[3].indices[0] = _ij3[0];
16855 vinfos[3].indices[1] = _ij3[1];
16856 vinfos[3].maxsolutions = _nj3;
16857 vinfos[4].jointtype = 1;
16858 vinfos[4].foffset = j4;
16859 vinfos[4].indices[0] = _ij4[0];
16860 vinfos[4].indices[1] = _ij4[1];
16861 vinfos[4].maxsolutions = _nj4;
16862 vinfos[5].jointtype = 1;
16863 vinfos[5].foffset = j5;
16864 vinfos[5].indices[0] = _ij5[0];
16865 vinfos[5].indices[1] = _ij5[1];
16866 vinfos[5].maxsolutions = _nj5;
16867 vinfos[6].jointtype = 1;
16868 vinfos[6].foffset = j6;
16869 vinfos[6].indices[0] = _ij6[0];
16870 vinfos[6].indices[1] = _ij6[1];
16871 vinfos[6].maxsolutions = _nj6;
16872 std::vector<int> vfree(0);
16881 if (bgotonextstatement)
16883 bool bgotonextstatement =
true;
16886 evalcond[0] = ((new_r01 * new_r01) + (new_r11 * new_r11));
16887 if (
IKabs(evalcond[0]) < 0.0000050000000000)
16889 bgotonextstatement =
false;
16894 j1 = 3.14159265358979;
16897 j0eval[0] = ((
IKabs(new_r10)) + (
IKabs(new_r00)));
16898 if (
IKabs(j0eval[0]) < 0.0000010000000000)
16905 IkReal j0array[2], cj0array[2], sj0array[2];
16906 bool j0valid[2] = {
false };
16916 IkReal x791 = x792.
value;
16917 j0array[0] = ((-1.0) * x791);
16918 sj0array[0] =
IKsin(j0array[0]);
16919 cj0array[0] =
IKcos(j0array[0]);
16920 j0array[1] = ((3.14159265358979) + (((-1.0) * x791)));
16921 sj0array[1] =
IKsin(j0array[1]);
16922 cj0array[1] =
IKcos(j0array[1]);
16923 if (j0array[0] >
IKPI)
16925 j0array[0] -=
IK2PI;
16927 else if (j0array[0] < -
IKPI)
16929 j0array[0] +=
IK2PI;
16932 if (j0array[1] >
IKPI)
16934 j0array[1] -=
IK2PI;
16936 else if (j0array[1] < -
IKPI)
16938 j0array[1] +=
IK2PI;
16941 for (
int ij0 = 0; ij0 < 2; ++ij0)
16949 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
16951 if (j0valid[iij0] &&
16952 IKabs(cj0array[ij0] - cj0array[iij0]) <
16954 IKabs(sj0array[ij0] - sj0array[iij0]) <
16957 j0valid[iij0] =
false;
16963 cj0 = cj0array[ij0];
16964 sj0 = sj0array[ij0];
16966 IkReal evalcond[1];
16968 ((((-1.0) * new_r00 * (
IKsin(j0)))) +
16969 ((new_r10 * (
IKcos(j0)))));
16977 std::vector<IkSingleDOFSolutionBase<IkReal> >
16979 vinfos[0].jointtype = 1;
16980 vinfos[0].foffset = j0;
16981 vinfos[0].indices[0] = _ij0[0];
16982 vinfos[0].indices[1] = _ij0[1];
16983 vinfos[0].maxsolutions = _nj0;
16984 vinfos[1].jointtype = 1;
16985 vinfos[1].foffset = j1;
16986 vinfos[1].indices[0] = _ij1[0];
16987 vinfos[1].indices[1] = _ij1[1];
16988 vinfos[1].maxsolutions = _nj1;
16989 vinfos[2].jointtype = 1;
16990 vinfos[2].foffset = j2;
16991 vinfos[2].indices[0] = _ij2[0];
16992 vinfos[2].indices[1] = _ij2[1];
16993 vinfos[2].maxsolutions = _nj2;
16994 vinfos[3].jointtype = 1;
16995 vinfos[3].foffset = j3;
16996 vinfos[3].indices[0] = _ij3[0];
16997 vinfos[3].indices[1] = _ij3[1];
16998 vinfos[3].maxsolutions = _nj3;
16999 vinfos[4].jointtype = 1;
17000 vinfos[4].foffset = j4;
17001 vinfos[4].indices[0] = _ij4[0];
17002 vinfos[4].indices[1] = _ij4[1];
17003 vinfos[4].maxsolutions = _nj4;
17004 vinfos[5].jointtype = 1;
17005 vinfos[5].foffset = j5;
17006 vinfos[5].indices[0] = _ij5[0];
17007 vinfos[5].indices[1] = _ij5[1];
17008 vinfos[5].maxsolutions = _nj5;
17009 vinfos[6].jointtype = 1;
17010 vinfos[6].foffset = j6;
17011 vinfos[6].indices[0] = _ij6[0];
17012 vinfos[6].indices[1] = _ij6[1];
17013 vinfos[6].maxsolutions = _nj6;
17014 std::vector<int> vfree(0);
17023 if (bgotonextstatement)
17025 bool bgotonextstatement =
true;
17028 evalcond[0] = ((-3.14159265358979) +
17030 6.28318530717959)));
17031 if (
IKabs(evalcond[0]) < 0.0000050000000000)
17033 bgotonextstatement =
false;
17035 IkReal j0array[1], cj0array[1], sj0array[1];
17036 bool j0valid[1] = {
false };
17039 IKabs(((-1.0) * new_r11)) <
17044 j0array[0] =
IKatan2(new_r10, ((-1.0) * new_r11));
17045 sj0array[0] =
IKsin(j0array[0]);
17046 cj0array[0] =
IKcos(j0array[0]);
17047 if (j0array[0] >
IKPI)
17049 j0array[0] -=
IK2PI;
17051 else if (j0array[0] < -
IKPI)
17053 j0array[0] +=
IK2PI;
17056 for (
int ij0 = 0; ij0 < 1; ++ij0)
17064 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
17066 if (j0valid[iij0] &&
17067 IKabs(cj0array[ij0] - cj0array[iij0]) <
17069 IKabs(sj0array[ij0] - sj0array[iij0]) <
17072 j0valid[iij0] =
false;
17078 cj0 = cj0array[ij0];
17079 sj0 = sj0array[ij0];
17081 IkReal evalcond[8];
17082 IkReal x793 =
IKcos(j0);
17083 IkReal x794 =
IKsin(j0);
17084 IkReal x795 = ((1.0) * x794);
17085 evalcond[0] = (x793 + new_r11);
17086 evalcond[1] = ((((-1.0) * x795)) + new_r10);
17087 evalcond[2] = ((((-1.0) * x793)) + new_r00);
17088 evalcond[3] = ((((-1.0) * x795)) + new_r01);
17090 (((new_r11 * x794)) + ((new_r01 * x793)));
17091 evalcond[5] = (((new_r10 * x793)) +
17092 (((-1.0) * new_r00 * x795)));
17093 evalcond[6] = ((-1.0) + ((new_r10 * x794)) +
17094 ((new_r00 * x793)));
17095 evalcond[7] = ((1.0) + (((-1.0) * new_r01 * x795)) +
17096 ((new_r11 * x793)));
17111 std::vector<IkSingleDOFSolutionBase<IkReal> >
17113 vinfos[0].jointtype = 1;
17114 vinfos[0].foffset = j0;
17115 vinfos[0].indices[0] = _ij0[0];
17116 vinfos[0].indices[1] = _ij0[1];
17117 vinfos[0].maxsolutions = _nj0;
17118 vinfos[1].jointtype = 1;
17119 vinfos[1].foffset = j1;
17120 vinfos[1].indices[0] = _ij1[0];
17121 vinfos[1].indices[1] = _ij1[1];
17122 vinfos[1].maxsolutions = _nj1;
17123 vinfos[2].jointtype = 1;
17124 vinfos[2].foffset = j2;
17125 vinfos[2].indices[0] = _ij2[0];
17126 vinfos[2].indices[1] = _ij2[1];
17127 vinfos[2].maxsolutions = _nj2;
17128 vinfos[3].jointtype = 1;
17129 vinfos[3].foffset = j3;
17130 vinfos[3].indices[0] = _ij3[0];
17131 vinfos[3].indices[1] = _ij3[1];
17132 vinfos[3].maxsolutions = _nj3;
17133 vinfos[4].jointtype = 1;
17134 vinfos[4].foffset = j4;
17135 vinfos[4].indices[0] = _ij4[0];
17136 vinfos[4].indices[1] = _ij4[1];
17137 vinfos[4].maxsolutions = _nj4;
17138 vinfos[5].jointtype = 1;
17139 vinfos[5].foffset = j5;
17140 vinfos[5].indices[0] = _ij5[0];
17141 vinfos[5].indices[1] = _ij5[1];
17142 vinfos[5].maxsolutions = _nj5;
17143 vinfos[6].jointtype = 1;
17144 vinfos[6].foffset = j6;
17145 vinfos[6].indices[0] = _ij6[0];
17146 vinfos[6].indices[1] = _ij6[1];
17147 vinfos[6].maxsolutions = _nj6;
17148 std::vector<int> vfree(0);
17155 if (bgotonextstatement)
17157 bool bgotonextstatement =
true;
17161 ((-3.14159265358979) +
17162 (
IKfmod(((3.14159265358979) +
17163 (
IKabs(((-3.14159265358979) + j2)))),
17164 6.28318530717959)));
17165 if (
IKabs(evalcond[0]) < 0.0000050000000000)
17167 bgotonextstatement =
false;
17169 IkReal j0array[1], cj0array[1], sj0array[1];
17170 bool j0valid[1] = {
false };
17172 if (
IKabs(((-1.0) * new_r10)) <
17174 IKabs(((-1.0) * new_r00)) <
17177 IKsqr(((-1.0) * new_r00)) - 1) <=
17181 IKatan2(((-1.0) * new_r10), ((-1.0) * new_r00));
17182 sj0array[0] =
IKsin(j0array[0]);
17183 cj0array[0] =
IKcos(j0array[0]);
17184 if (j0array[0] >
IKPI)
17186 j0array[0] -=
IK2PI;
17188 else if (j0array[0] < -
IKPI)
17190 j0array[0] +=
IK2PI;
17193 for (
int ij0 = 0; ij0 < 1; ++ij0)
17201 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
17203 if (j0valid[iij0] &&
17204 IKabs(cj0array[ij0] - cj0array[iij0]) <
17206 IKabs(sj0array[ij0] - sj0array[iij0]) <
17209 j0valid[iij0] =
false;
17215 cj0 = cj0array[ij0];
17216 sj0 = sj0array[ij0];
17218 IkReal evalcond[8];
17219 IkReal x796 =
IKsin(j0);
17220 IkReal x797 =
IKcos(j0);
17221 IkReal x798 = ((1.0) * x796);
17222 evalcond[0] = (x796 + new_r10);
17223 evalcond[1] = (x797 + new_r00);
17224 evalcond[2] = (x796 + new_r01);
17225 evalcond[3] = ((((-1.0) * x797)) + new_r11);
17227 (((new_r11 * x796)) + ((new_r01 * x797)));
17228 evalcond[5] = (((new_r10 * x797)) +
17229 (((-1.0) * new_r00 * x798)));
17230 evalcond[6] = ((1.0) + ((new_r10 * x796)) +
17231 ((new_r00 * x797)));
17233 ((-1.0) + (((-1.0) * new_r01 * x798)) +
17234 ((new_r11 * x797)));
17249 std::vector<IkSingleDOFSolutionBase<IkReal> >
17251 vinfos[0].jointtype = 1;
17252 vinfos[0].foffset = j0;
17253 vinfos[0].indices[0] = _ij0[0];
17254 vinfos[0].indices[1] = _ij0[1];
17255 vinfos[0].maxsolutions = _nj0;
17256 vinfos[1].jointtype = 1;
17257 vinfos[1].foffset = j1;
17258 vinfos[1].indices[0] = _ij1[0];
17259 vinfos[1].indices[1] = _ij1[1];
17260 vinfos[1].maxsolutions = _nj1;
17261 vinfos[2].jointtype = 1;
17262 vinfos[2].foffset = j2;
17263 vinfos[2].indices[0] = _ij2[0];
17264 vinfos[2].indices[1] = _ij2[1];
17265 vinfos[2].maxsolutions = _nj2;
17266 vinfos[3].jointtype = 1;
17267 vinfos[3].foffset = j3;
17268 vinfos[3].indices[0] = _ij3[0];
17269 vinfos[3].indices[1] = _ij3[1];
17270 vinfos[3].maxsolutions = _nj3;
17271 vinfos[4].jointtype = 1;
17272 vinfos[4].foffset = j4;
17273 vinfos[4].indices[0] = _ij4[0];
17274 vinfos[4].indices[1] = _ij4[1];
17275 vinfos[4].maxsolutions = _nj4;
17276 vinfos[5].jointtype = 1;
17277 vinfos[5].foffset = j5;
17278 vinfos[5].indices[0] = _ij5[0];
17279 vinfos[5].indices[1] = _ij5[1];
17280 vinfos[5].maxsolutions = _nj5;
17281 vinfos[6].jointtype = 1;
17282 vinfos[6].foffset = j6;
17283 vinfos[6].indices[0] = _ij6[0];
17284 vinfos[6].indices[1] = _ij6[1];
17285 vinfos[6].maxsolutions = _nj6;
17286 std::vector<int> vfree(0);
17293 if (bgotonextstatement)
17295 bool bgotonextstatement =
true;
17298 evalcond[0] = ((
IKabs(new_r11)) + (
IKabs(new_r00)));
17299 if (
IKabs(evalcond[0]) < 0.0000050000000000)
17301 bgotonextstatement =
false;
17306 j1 = 3.14159265358979;
17309 j0eval[0] = new_r01;
17310 j0eval[1] =
IKsign(new_r01);
17312 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
17313 IKabs(j0eval[1]) < 0.0000010000000000 ||
17314 IKabs(j0eval[2]) < 0.0000010000000000)
17320 j1 = 3.14159265358979;
17323 j0eval[0] = new_r10;
17325 j0eval[2] =
IKsign(new_r10);
17326 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
17327 IKabs(j0eval[1]) < 0.0000010000000000 ||
17328 IKabs(j0eval[2]) < 0.0000010000000000)
17334 j1 = 3.14159265358979;
17337 j0eval[0] = new_r01;
17338 j0eval[1] = new_r10;
17339 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
17340 IKabs(j0eval[1]) < 0.0000010000000000)
17347 IkReal j0array[1], cj0array[1],
17349 bool j0valid[1] = {
false };
17366 ((-1.0) * sj2 * (x800.
value))) <
17369 IKsqr(((-1.0) * sj2 *
17374 (cj2 * (x799.
value)),
17375 ((-1.0) * sj2 * (x800.
value)));
17376 sj0array[0] =
IKsin(j0array[0]);
17377 cj0array[0] =
IKcos(j0array[0]);
17378 if (j0array[0] >
IKPI)
17380 j0array[0] -=
IK2PI;
17382 else if (j0array[0] < -
IKPI)
17384 j0array[0] +=
IK2PI;
17387 for (
int ij0 = 0; ij0 < 1; ++ij0)
17395 for (
int iij0 = ij0 + 1; iij0 < 1;
17398 if (j0valid[iij0] &&
17399 IKabs(cj0array[ij0] -
17402 IKabs(sj0array[ij0] -
17406 j0valid[iij0] =
false;
17412 cj0 = cj0array[ij0];
17413 sj0 = sj0array[ij0];
17415 IkReal evalcond[7];
17416 IkReal x801 =
IKcos(j0);
17417 IkReal x802 =
IKsin(j0);
17418 IkReal x803 = ((1.0) * cj2);
17419 IkReal x804 = (sj2 * x801);
17420 IkReal x805 = ((1.0) * x802);
17421 IkReal x806 = (x802 * x803);
17423 (sj2 + ((new_r10 * x801)));
17425 (sj2 + ((new_r01 * x801)));
17427 ((((-1.0) * new_r01 * x805)) +
17429 evalcond[3] = (((new_r10 * x802)) +
17430 (((-1.0) * x803)));
17431 evalcond[4] = (new_r10 + x804 +
17432 (((-1.0) * x806)));
17434 ((((-1.0) * sj2 * x805)) +
17435 (((-1.0) * x801 * x803)));
17436 evalcond[6] = (new_r01 + x804 +
17437 (((-1.0) * x806)));
17438 if (
IKabs(evalcond[0]) >
17440 IKabs(evalcond[1]) >
17442 IKabs(evalcond[2]) >
17444 IKabs(evalcond[3]) >
17446 IKabs(evalcond[4]) >
17448 IKabs(evalcond[5]) >
17450 IKabs(evalcond[6]) >
17461 vinfos[0].jointtype = 1;
17462 vinfos[0].foffset = j0;
17463 vinfos[0].indices[0] = _ij0[0];
17464 vinfos[0].indices[1] = _ij0[1];
17465 vinfos[0].maxsolutions = _nj0;
17466 vinfos[1].jointtype = 1;
17467 vinfos[1].foffset = j1;
17468 vinfos[1].indices[0] = _ij1[0];
17469 vinfos[1].indices[1] = _ij1[1];
17470 vinfos[1].maxsolutions = _nj1;
17471 vinfos[2].jointtype = 1;
17472 vinfos[2].foffset = j2;
17473 vinfos[2].indices[0] = _ij2[0];
17474 vinfos[2].indices[1] = _ij2[1];
17475 vinfos[2].maxsolutions = _nj2;
17476 vinfos[3].jointtype = 1;
17477 vinfos[3].foffset = j3;
17478 vinfos[3].indices[0] = _ij3[0];
17479 vinfos[3].indices[1] = _ij3[1];
17480 vinfos[3].maxsolutions = _nj3;
17481 vinfos[4].jointtype = 1;
17482 vinfos[4].foffset = j4;
17483 vinfos[4].indices[0] = _ij4[0];
17484 vinfos[4].indices[1] = _ij4[1];
17485 vinfos[4].maxsolutions = _nj4;
17486 vinfos[5].jointtype = 1;
17487 vinfos[5].foffset = j5;
17488 vinfos[5].indices[0] = _ij5[0];
17489 vinfos[5].indices[1] = _ij5[1];
17490 vinfos[5].maxsolutions = _nj5;
17491 vinfos[6].jointtype = 1;
17492 vinfos[6].foffset = j6;
17493 vinfos[6].indices[0] = _ij6[0];
17494 vinfos[6].indices[1] = _ij6[1];
17495 vinfos[6].maxsolutions = _nj6;
17496 std::vector<int> vfree(0);
17508 IkReal j0array[1], cj0array[1], sj0array[1];
17509 bool j0valid[1] = {
false };
17520 IkReal(((-1.0) * sj2)),
17527 ((-1.5707963267949) +
17528 (((1.5707963267949) * (x807.
value))) +
17530 sj0array[0] =
IKsin(j0array[0]);
17531 cj0array[0] =
IKcos(j0array[0]);
17532 if (j0array[0] >
IKPI)
17534 j0array[0] -=
IK2PI;
17536 else if (j0array[0] < -
IKPI)
17538 j0array[0] +=
IK2PI;
17541 for (
int ij0 = 0; ij0 < 1; ++ij0)
17549 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
17551 if (j0valid[iij0] &&
17552 IKabs(cj0array[ij0] -
17555 IKabs(sj0array[ij0] -
17559 j0valid[iij0] =
false;
17565 cj0 = cj0array[ij0];
17566 sj0 = sj0array[ij0];
17568 IkReal evalcond[7];
17569 IkReal x809 =
IKcos(j0);
17570 IkReal x810 =
IKsin(j0);
17571 IkReal x811 = ((1.0) * cj2);
17572 IkReal x812 = (sj2 * x809);
17573 IkReal x813 = ((1.0) * x810);
17574 IkReal x814 = (x810 * x811);
17576 (sj2 + ((new_r10 * x809)));
17578 (sj2 + ((new_r01 * x809)));
17580 (cj2 + (((-1.0) * new_r01 * x813)));
17581 evalcond[3] = (((new_r10 * x810)) +
17582 (((-1.0) * x811)));
17583 evalcond[4] = ((((-1.0) * x814)) +
17586 ((((-1.0) * x809 * x811)) +
17587 (((-1.0) * sj2 * x813)));
17588 evalcond[6] = ((((-1.0) * x814)) +
17590 if (
IKabs(evalcond[0]) >
17592 IKabs(evalcond[1]) >
17594 IKabs(evalcond[2]) >
17596 IKabs(evalcond[3]) >
17598 IKabs(evalcond[4]) >
17600 IKabs(evalcond[5]) >
17602 IKabs(evalcond[6]) >
17613 vinfos[0].jointtype = 1;
17614 vinfos[0].foffset = j0;
17615 vinfos[0].indices[0] = _ij0[0];
17616 vinfos[0].indices[1] = _ij0[1];
17617 vinfos[0].maxsolutions = _nj0;
17618 vinfos[1].jointtype = 1;
17619 vinfos[1].foffset = j1;
17620 vinfos[1].indices[0] = _ij1[0];
17621 vinfos[1].indices[1] = _ij1[1];
17622 vinfos[1].maxsolutions = _nj1;
17623 vinfos[2].jointtype = 1;
17624 vinfos[2].foffset = j2;
17625 vinfos[2].indices[0] = _ij2[0];
17626 vinfos[2].indices[1] = _ij2[1];
17627 vinfos[2].maxsolutions = _nj2;
17628 vinfos[3].jointtype = 1;
17629 vinfos[3].foffset = j3;
17630 vinfos[3].indices[0] = _ij3[0];
17631 vinfos[3].indices[1] = _ij3[1];
17632 vinfos[3].maxsolutions = _nj3;
17633 vinfos[4].jointtype = 1;
17634 vinfos[4].foffset = j4;
17635 vinfos[4].indices[0] = _ij4[0];
17636 vinfos[4].indices[1] = _ij4[1];
17637 vinfos[4].maxsolutions = _nj4;
17638 vinfos[5].jointtype = 1;
17639 vinfos[5].foffset = j5;
17640 vinfos[5].indices[0] = _ij5[0];
17641 vinfos[5].indices[1] = _ij5[1];
17642 vinfos[5].maxsolutions = _nj5;
17643 vinfos[6].jointtype = 1;
17644 vinfos[6].foffset = j6;
17645 vinfos[6].indices[0] = _ij6[0];
17646 vinfos[6].indices[1] = _ij6[1];
17647 vinfos[6].maxsolutions = _nj6;
17648 std::vector<int> vfree(0);
17659 IkReal j0array[1], cj0array[1], sj0array[1];
17660 bool j0valid[1] = {
false };
17670 IkReal(((-1.0) * sj2)),
17677 ((-1.5707963267949) +
17678 (((1.5707963267949) * (x815.
value))) +
17680 sj0array[0] =
IKsin(j0array[0]);
17681 cj0array[0] =
IKcos(j0array[0]);
17682 if (j0array[0] >
IKPI)
17684 j0array[0] -=
IK2PI;
17686 else if (j0array[0] < -
IKPI)
17688 j0array[0] +=
IK2PI;
17691 for (
int ij0 = 0; ij0 < 1; ++ij0)
17699 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
17701 if (j0valid[iij0] &&
17702 IKabs(cj0array[ij0] - cj0array[iij0]) <
17704 IKabs(sj0array[ij0] - sj0array[iij0]) <
17707 j0valid[iij0] =
false;
17713 cj0 = cj0array[ij0];
17714 sj0 = sj0array[ij0];
17716 IkReal evalcond[7];
17717 IkReal x817 =
IKcos(j0);
17718 IkReal x818 =
IKsin(j0);
17719 IkReal x819 = ((1.0) * cj2);
17720 IkReal x820 = (sj2 * x817);
17721 IkReal x821 = ((1.0) * x818);
17722 IkReal x822 = (x818 * x819);
17723 evalcond[0] = (sj2 + ((new_r10 * x817)));
17724 evalcond[1] = (sj2 + ((new_r01 * x817)));
17726 (cj2 + (((-1.0) * new_r01 * x821)));
17727 evalcond[3] = (((new_r10 * x818)) +
17728 (((-1.0) * x819)));
17730 ((((-1.0) * x822)) + new_r10 + x820);
17731 evalcond[5] = ((((-1.0) * x817 * x819)) +
17732 (((-1.0) * sj2 * x821)));
17734 ((((-1.0) * x822)) + new_r01 + x820);
17735 if (
IKabs(evalcond[0]) >
17737 IKabs(evalcond[1]) >
17739 IKabs(evalcond[2]) >
17741 IKabs(evalcond[3]) >
17743 IKabs(evalcond[4]) >
17745 IKabs(evalcond[5]) >
17747 IKabs(evalcond[6]) >
17758 vinfos[0].jointtype = 1;
17759 vinfos[0].foffset = j0;
17760 vinfos[0].indices[0] = _ij0[0];
17761 vinfos[0].indices[1] = _ij0[1];
17762 vinfos[0].maxsolutions = _nj0;
17763 vinfos[1].jointtype = 1;
17764 vinfos[1].foffset = j1;
17765 vinfos[1].indices[0] = _ij1[0];
17766 vinfos[1].indices[1] = _ij1[1];
17767 vinfos[1].maxsolutions = _nj1;
17768 vinfos[2].jointtype = 1;
17769 vinfos[2].foffset = j2;
17770 vinfos[2].indices[0] = _ij2[0];
17771 vinfos[2].indices[1] = _ij2[1];
17772 vinfos[2].maxsolutions = _nj2;
17773 vinfos[3].jointtype = 1;
17774 vinfos[3].foffset = j3;
17775 vinfos[3].indices[0] = _ij3[0];
17776 vinfos[3].indices[1] = _ij3[1];
17777 vinfos[3].maxsolutions = _nj3;
17778 vinfos[4].jointtype = 1;
17779 vinfos[4].foffset = j4;
17780 vinfos[4].indices[0] = _ij4[0];
17781 vinfos[4].indices[1] = _ij4[1];
17782 vinfos[4].maxsolutions = _nj4;
17783 vinfos[5].jointtype = 1;
17784 vinfos[5].foffset = j5;
17785 vinfos[5].indices[0] = _ij5[0];
17786 vinfos[5].indices[1] = _ij5[1];
17787 vinfos[5].maxsolutions = _nj5;
17788 vinfos[6].jointtype = 1;
17789 vinfos[6].foffset = j6;
17790 vinfos[6].indices[0] = _ij6[0];
17791 vinfos[6].indices[1] = _ij6[1];
17792 vinfos[6].maxsolutions = _nj6;
17793 std::vector<int> vfree(0);
17802 if (bgotonextstatement)
17804 bool bgotonextstatement =
true;
17807 evalcond[0] = ((
IKabs(new_r11)) + (
IKabs(new_r01)));
17808 if (
IKabs(evalcond[0]) < 0.0000050000000000)
17810 bgotonextstatement =
false;
17815 j1 = 3.14159265358979;
17820 j0eval[0] = ((
IKabs(new_r10)) + (
IKabs(new_r00)));
17821 if (
IKabs(j0eval[0]) < 0.0000010000000000)
17828 IkReal j0array[2], cj0array[2], sj0array[2];
17829 bool j0valid[2] = {
false };
17839 IkReal x823 = x824.
value;
17840 j0array[0] = ((-1.0) * x823);
17841 sj0array[0] =
IKsin(j0array[0]);
17842 cj0array[0] =
IKcos(j0array[0]);
17844 ((3.14159265358979) + (((-1.0) * x823)));
17845 sj0array[1] =
IKsin(j0array[1]);
17846 cj0array[1] =
IKcos(j0array[1]);
17847 if (j0array[0] >
IKPI)
17849 j0array[0] -=
IK2PI;
17851 else if (j0array[0] < -
IKPI)
17853 j0array[0] +=
IK2PI;
17856 if (j0array[1] >
IKPI)
17858 j0array[1] -=
IK2PI;
17860 else if (j0array[1] < -
IKPI)
17862 j0array[1] +=
IK2PI;
17865 for (
int ij0 = 0; ij0 < 2; ++ij0)
17873 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
17875 if (j0valid[iij0] &&
17876 IKabs(cj0array[ij0] -
17879 IKabs(sj0array[ij0] -
17883 j0valid[iij0] =
false;
17889 cj0 = cj0array[ij0];
17890 sj0 = sj0array[ij0];
17892 IkReal evalcond[1];
17894 ((((-1.0) * new_r00 * (
IKsin(j0)))) +
17895 ((new_r10 * (
IKcos(j0)))));
17896 if (
IKabs(evalcond[0]) >
17907 vinfos[0].jointtype = 1;
17908 vinfos[0].foffset = j0;
17909 vinfos[0].indices[0] = _ij0[0];
17910 vinfos[0].indices[1] = _ij0[1];
17911 vinfos[0].maxsolutions = _nj0;
17912 vinfos[1].jointtype = 1;
17913 vinfos[1].foffset = j1;
17914 vinfos[1].indices[0] = _ij1[0];
17915 vinfos[1].indices[1] = _ij1[1];
17916 vinfos[1].maxsolutions = _nj1;
17917 vinfos[2].jointtype = 1;
17918 vinfos[2].foffset = j2;
17919 vinfos[2].indices[0] = _ij2[0];
17920 vinfos[2].indices[1] = _ij2[1];
17921 vinfos[2].maxsolutions = _nj2;
17922 vinfos[3].jointtype = 1;
17923 vinfos[3].foffset = j3;
17924 vinfos[3].indices[0] = _ij3[0];
17925 vinfos[3].indices[1] = _ij3[1];
17926 vinfos[3].maxsolutions = _nj3;
17927 vinfos[4].jointtype = 1;
17928 vinfos[4].foffset = j4;
17929 vinfos[4].indices[0] = _ij4[0];
17930 vinfos[4].indices[1] = _ij4[1];
17931 vinfos[4].maxsolutions = _nj4;
17932 vinfos[5].jointtype = 1;
17933 vinfos[5].foffset = j5;
17934 vinfos[5].indices[0] = _ij5[0];
17935 vinfos[5].indices[1] = _ij5[1];
17936 vinfos[5].maxsolutions = _nj5;
17937 vinfos[6].jointtype = 1;
17938 vinfos[6].foffset = j6;
17939 vinfos[6].indices[0] = _ij6[0];
17940 vinfos[6].indices[1] = _ij6[1];
17941 vinfos[6].maxsolutions = _nj6;
17942 std::vector<int> vfree(0);
17951 if (bgotonextstatement)
17953 bool bgotonextstatement =
true;
17956 evalcond[0] = ((
IKabs(new_r10)) + (
IKabs(new_r00)));
17957 if (
IKabs(evalcond[0]) < 0.0000050000000000)
17959 bgotonextstatement =
false;
17964 j1 = 3.14159265358979;
17971 if (
IKabs(j0eval[0]) < 0.0000010000000000)
17978 IkReal j0array[2], cj0array[2], sj0array[2];
17979 bool j0valid[2] = {
false };
17989 IkReal x825 = x826.
value;
17990 j0array[0] = ((-1.0) * x825);
17991 sj0array[0] =
IKsin(j0array[0]);
17992 cj0array[0] =
IKcos(j0array[0]);
17993 j0array[1] = ((3.14159265358979) +
17994 (((-1.0) * x825)));
17995 sj0array[1] =
IKsin(j0array[1]);
17996 cj0array[1] =
IKcos(j0array[1]);
17997 if (j0array[0] >
IKPI)
17999 j0array[0] -=
IK2PI;
18001 else if (j0array[0] < -
IKPI)
18003 j0array[0] +=
IK2PI;
18006 if (j0array[1] >
IKPI)
18008 j0array[1] -=
IK2PI;
18010 else if (j0array[1] < -
IKPI)
18012 j0array[1] +=
IK2PI;
18015 for (
int ij0 = 0; ij0 < 2; ++ij0)
18023 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
18025 if (j0valid[iij0] &&
18026 IKabs(cj0array[ij0] -
18029 IKabs(sj0array[ij0] -
18033 j0valid[iij0] =
false;
18039 cj0 = cj0array[ij0];
18040 sj0 = sj0array[ij0];
18042 IkReal evalcond[1];
18044 (((new_r11 * (
IKcos(j0)))) +
18045 (((-1.0) * new_r01 *
18047 if (
IKabs(evalcond[0]) >
18058 vinfos[0].jointtype = 1;
18059 vinfos[0].foffset = j0;
18060 vinfos[0].indices[0] = _ij0[0];
18061 vinfos[0].indices[1] = _ij0[1];
18062 vinfos[0].maxsolutions = _nj0;
18063 vinfos[1].jointtype = 1;
18064 vinfos[1].foffset = j1;
18065 vinfos[1].indices[0] = _ij1[0];
18066 vinfos[1].indices[1] = _ij1[1];
18067 vinfos[1].maxsolutions = _nj1;
18068 vinfos[2].jointtype = 1;
18069 vinfos[2].foffset = j2;
18070 vinfos[2].indices[0] = _ij2[0];
18071 vinfos[2].indices[1] = _ij2[1];
18072 vinfos[2].maxsolutions = _nj2;
18073 vinfos[3].jointtype = 1;
18074 vinfos[3].foffset = j3;
18075 vinfos[3].indices[0] = _ij3[0];
18076 vinfos[3].indices[1] = _ij3[1];
18077 vinfos[3].maxsolutions = _nj3;
18078 vinfos[4].jointtype = 1;
18079 vinfos[4].foffset = j4;
18080 vinfos[4].indices[0] = _ij4[0];
18081 vinfos[4].indices[1] = _ij4[1];
18082 vinfos[4].maxsolutions = _nj4;
18083 vinfos[5].jointtype = 1;
18084 vinfos[5].foffset = j5;
18085 vinfos[5].indices[0] = _ij5[0];
18086 vinfos[5].indices[1] = _ij5[1];
18087 vinfos[5].maxsolutions = _nj5;
18088 vinfos[6].jointtype = 1;
18089 vinfos[6].foffset = j6;
18090 vinfos[6].indices[0] = _ij6[0];
18091 vinfos[6].indices[1] = _ij6[1];
18092 vinfos[6].maxsolutions = _nj6;
18093 std::vector<int> vfree(0);
18102 if (bgotonextstatement)
18104 bool bgotonextstatement =
true;
18109 if (
IKabs(evalcond[0]) < 0.0000050000000000)
18111 bgotonextstatement =
false;
18116 j1 = 3.14159265358979;
18119 j0eval[0] = new_r11;
18120 j0eval[1] =
IKsign(new_r11);
18122 if (
IKabs(j0eval[0]) < 0.0000010000000000 ||
18123 IKabs(j0eval[1]) < 0.0000010000000000 ||
18124 IKabs(j0eval[2]) < 0.0000010000000000)
18130 j1 = 3.14159265358979;
18133 j0eval[0] = new_r00;
18134 j0eval[1] = new_r11;
18135 if (
IKabs(j0eval[0]) <
18136 0.0000010000000000 ||
18137 IKabs(j0eval[1]) < 0.0000010000000000)
18144 IkReal j0array[1], cj0array[1],
18146 bool j0valid[1] = {
false };
18164 IKabs(((-1.0) * cj2 *
18169 IKsqr(((-1.0) * cj2 *
18174 (sj2 * (x827.
value)),
18175 ((-1.0) * cj2 * (x828.
value)));
18176 sj0array[0] =
IKsin(j0array[0]);
18177 cj0array[0] =
IKcos(j0array[0]);
18178 if (j0array[0] >
IKPI)
18180 j0array[0] -=
IK2PI;
18182 else if (j0array[0] < -
IKPI)
18184 j0array[0] +=
IK2PI;
18187 for (
int ij0 = 0; ij0 < 1; ++ij0)
18195 for (
int iij0 = ij0 + 1; iij0 < 1;
18198 if (j0valid[iij0] &&
18199 IKabs(cj0array[ij0] -
18202 IKabs(sj0array[ij0] -
18206 j0valid[iij0] =
false;
18212 cj0 = cj0array[ij0];
18213 sj0 = sj0array[ij0];
18215 IkReal evalcond[7];
18216 IkReal x829 =
IKsin(j0);
18217 IkReal x830 =
IKcos(j0);
18218 IkReal x831 = ((1.0) * cj2);
18219 IkReal x832 = (sj2 * x829);
18221 (((new_r11 * x830)) + cj2);
18223 (sj2 + ((new_r11 * x829)));
18226 (((-1.0) * new_r00 * x829)));
18228 (((new_r00 * x830)) +
18229 (((-1.0) * x831)));
18232 (((-1.0) * x829 * x831)));
18233 evalcond[5] = (new_r11 + x832 +
18236 ((((-1.0) * x830 * x831)) +
18237 (((-1.0) * x832)) + new_r00);
18238 if (
IKabs(evalcond[0]) >
18240 IKabs(evalcond[1]) >
18242 IKabs(evalcond[2]) >
18244 IKabs(evalcond[3]) >
18246 IKabs(evalcond[4]) >
18248 IKabs(evalcond[5]) >
18250 IKabs(evalcond[6]) >
18262 vinfos[0].jointtype = 1;
18263 vinfos[0].foffset = j0;
18264 vinfos[0].indices[0] = _ij0[0];
18265 vinfos[0].indices[1] = _ij0[1];
18266 vinfos[0].maxsolutions = _nj0;
18267 vinfos[1].jointtype = 1;
18268 vinfos[1].foffset = j1;
18269 vinfos[1].indices[0] = _ij1[0];
18270 vinfos[1].indices[1] = _ij1[1];
18271 vinfos[1].maxsolutions = _nj1;
18272 vinfos[2].jointtype = 1;
18273 vinfos[2].foffset = j2;
18274 vinfos[2].indices[0] = _ij2[0];
18275 vinfos[2].indices[1] = _ij2[1];
18276 vinfos[2].maxsolutions = _nj2;
18277 vinfos[3].jointtype = 1;
18278 vinfos[3].foffset = j3;
18279 vinfos[3].indices[0] = _ij3[0];
18280 vinfos[3].indices[1] = _ij3[1];
18281 vinfos[3].maxsolutions = _nj3;
18282 vinfos[4].jointtype = 1;
18283 vinfos[4].foffset = j4;
18284 vinfos[4].indices[0] = _ij4[0];
18285 vinfos[4].indices[1] = _ij4[1];
18286 vinfos[4].maxsolutions = _nj4;
18287 vinfos[5].jointtype = 1;
18288 vinfos[5].foffset = j5;
18289 vinfos[5].indices[0] = _ij5[0];
18290 vinfos[5].indices[1] = _ij5[1];
18291 vinfos[5].maxsolutions = _nj5;
18292 vinfos[6].jointtype = 1;
18293 vinfos[6].foffset = j6;
18294 vinfos[6].indices[0] = _ij6[0];
18295 vinfos[6].indices[1] = _ij6[1];
18296 vinfos[6].maxsolutions = _nj6;
18297 std::vector<int> vfree(0);
18309 IkReal j0array[1], cj0array[1],
18311 bool j0valid[1] = {
false };
18322 IkReal(((-1.0) * sj2)),
18323 IkReal(((-1.0) * cj2)),
18329 j0array[0] = ((-1.5707963267949) +
18330 (((1.5707963267949) *
18333 sj0array[0] =
IKsin(j0array[0]);
18334 cj0array[0] =
IKcos(j0array[0]);
18335 if (j0array[0] >
IKPI)
18337 j0array[0] -=
IK2PI;
18339 else if (j0array[0] < -
IKPI)
18341 j0array[0] +=
IK2PI;
18344 for (
int ij0 = 0; ij0 < 1; ++ij0)
18352 for (
int iij0 = ij0 + 1; iij0 < 1;
18355 if (j0valid[iij0] &&
18356 IKabs(cj0array[ij0] -
18359 IKabs(sj0array[ij0] -
18363 j0valid[iij0] =
false;
18369 cj0 = cj0array[ij0];
18370 sj0 = sj0array[ij0];
18372 IkReal evalcond[7];
18373 IkReal x835 =
IKsin(j0);
18374 IkReal x836 =
IKcos(j0);
18375 IkReal x837 = ((1.0) * cj2);
18376 IkReal x838 = (sj2 * x835);
18378 (((new_r11 * x836)) + cj2);
18380 (((new_r11 * x835)) + sj2);
18383 (((-1.0) * new_r00 * x835)));
18384 evalcond[3] = (((new_r00 * x836)) +
18385 (((-1.0) * x837)));
18387 ((((-1.0) * x835 * x837)) +
18390 (new_r11 + x838 + ((cj2 * x836)));
18392 ((((-1.0) * x836 * x837)) +
18393 (((-1.0) * x838)) + new_r00);
18394 if (
IKabs(evalcond[0]) >
18396 IKabs(evalcond[1]) >
18398 IKabs(evalcond[2]) >
18400 IKabs(evalcond[3]) >
18402 IKabs(evalcond[4]) >
18404 IKabs(evalcond[5]) >
18406 IKabs(evalcond[6]) >
18417 vinfos[0].jointtype = 1;
18418 vinfos[0].foffset = j0;
18419 vinfos[0].indices[0] = _ij0[0];
18420 vinfos[0].indices[1] = _ij0[1];
18421 vinfos[0].maxsolutions = _nj0;
18422 vinfos[1].jointtype = 1;
18423 vinfos[1].foffset = j1;
18424 vinfos[1].indices[0] = _ij1[0];
18425 vinfos[1].indices[1] = _ij1[1];
18426 vinfos[1].maxsolutions = _nj1;
18427 vinfos[2].jointtype = 1;
18428 vinfos[2].foffset = j2;
18429 vinfos[2].indices[0] = _ij2[0];
18430 vinfos[2].indices[1] = _ij2[1];
18431 vinfos[2].maxsolutions = _nj2;
18432 vinfos[3].jointtype = 1;
18433 vinfos[3].foffset = j3;
18434 vinfos[3].indices[0] = _ij3[0];
18435 vinfos[3].indices[1] = _ij3[1];
18436 vinfos[3].maxsolutions = _nj3;
18437 vinfos[4].jointtype = 1;
18438 vinfos[4].foffset = j4;
18439 vinfos[4].indices[0] = _ij4[0];
18440 vinfos[4].indices[1] = _ij4[1];
18441 vinfos[4].maxsolutions = _nj4;
18442 vinfos[5].jointtype = 1;
18443 vinfos[5].foffset = j5;
18444 vinfos[5].indices[0] = _ij5[0];
18445 vinfos[5].indices[1] = _ij5[1];
18446 vinfos[5].maxsolutions = _nj5;
18447 vinfos[6].jointtype = 1;
18448 vinfos[6].foffset = j6;
18449 vinfos[6].indices[0] = _ij6[0];
18450 vinfos[6].indices[1] = _ij6[1];
18451 vinfos[6].maxsolutions = _nj6;
18452 std::vector<int> vfree(0);
18461 if (bgotonextstatement)
18463 bool bgotonextstatement =
true;
18468 bgotonextstatement =
false;
18472 if (bgotonextstatement)
18489 IkReal j0array[1], cj0array[1], sj0array[1];
18490 bool j0valid[1] = {
false };
18493 IKsign((((new_r11 * sj2)) + ((cj2 * new_r01)))), -1);
18499 IkReal(((-1.0) + (cj2 * cj2) + ((new_r01 * new_r10)))),
18501 ((((-1.0) * cj2 * sj2)) + (((-1.0) * new_r10 * new_r11)))),
18507 j0array[0] = ((-1.5707963267949) +
18508 (((1.5707963267949) * (x839.
value))) + (x840.
value));
18509 sj0array[0] =
IKsin(j0array[0]);
18510 cj0array[0] =
IKcos(j0array[0]);
18511 if (j0array[0] >
IKPI)
18513 j0array[0] -=
IK2PI;
18515 else if (j0array[0] < -
IKPI)
18517 j0array[0] +=
IK2PI;
18520 for (
int ij0 = 0; ij0 < 1; ++ij0)
18528 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
18530 if (j0valid[iij0] &&
18531 IKabs(cj0array[ij0] - cj0array[iij0]) <
18533 IKabs(sj0array[ij0] - sj0array[iij0]) <
18536 j0valid[iij0] =
false;
18542 cj0 = cj0array[ij0];
18543 sj0 = sj0array[ij0];
18545 IkReal evalcond[8];
18546 IkReal x841 =
IKcos(j0);
18547 IkReal x842 =
IKsin(j0);
18548 IkReal x843 = ((1.0) * cj2);
18549 IkReal x844 = (sj2 * x841);
18550 IkReal x845 = (sj2 * x842);
18551 IkReal x846 = ((1.0) * x842);
18552 IkReal x847 = (x842 * x843);
18553 evalcond[0] = (sj2 + ((new_r01 * x841)) + ((new_r11 * x842)));
18554 evalcond[1] = (((cj2 * x841)) + new_r11 + x845);
18556 (((new_r10 * x841)) + sj2 + (((-1.0) * new_r00 * x846)));
18558 (cj2 + (((-1.0) * new_r01 * x846)) + ((new_r11 * x841)));
18559 evalcond[4] = ((((-1.0) * x847)) + new_r10 + x844);
18560 evalcond[5] = ((((-1.0) * x847)) + new_r01 + x844);
18561 evalcond[6] = (((new_r10 * x842)) + ((new_r00 * x841)) +
18562 (((-1.0) * x843)));
18564 ((((-1.0) * x841 * x843)) + (((-1.0) * x845)) + new_r00);
18579 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
18580 vinfos[0].jointtype = 1;
18581 vinfos[0].foffset = j0;
18582 vinfos[0].indices[0] = _ij0[0];
18583 vinfos[0].indices[1] = _ij0[1];
18584 vinfos[0].maxsolutions = _nj0;
18585 vinfos[1].jointtype = 1;
18586 vinfos[1].foffset = j1;
18587 vinfos[1].indices[0] = _ij1[0];
18588 vinfos[1].indices[1] = _ij1[1];
18589 vinfos[1].maxsolutions = _nj1;
18590 vinfos[2].jointtype = 1;
18591 vinfos[2].foffset = j2;
18592 vinfos[2].indices[0] = _ij2[0];
18593 vinfos[2].indices[1] = _ij2[1];
18594 vinfos[2].maxsolutions = _nj2;
18595 vinfos[3].jointtype = 1;
18596 vinfos[3].foffset = j3;
18597 vinfos[3].indices[0] = _ij3[0];
18598 vinfos[3].indices[1] = _ij3[1];
18599 vinfos[3].maxsolutions = _nj3;
18600 vinfos[4].jointtype = 1;
18601 vinfos[4].foffset = j4;
18602 vinfos[4].indices[0] = _ij4[0];
18603 vinfos[4].indices[1] = _ij4[1];
18604 vinfos[4].maxsolutions = _nj4;
18605 vinfos[5].jointtype = 1;
18606 vinfos[5].foffset = j5;
18607 vinfos[5].indices[0] = _ij5[0];
18608 vinfos[5].indices[1] = _ij5[1];
18609 vinfos[5].maxsolutions = _nj5;
18610 vinfos[6].jointtype = 1;
18611 vinfos[6].foffset = j6;
18612 vinfos[6].indices[0] = _ij6[0];
18613 vinfos[6].indices[1] = _ij6[1];
18614 vinfos[6].maxsolutions = _nj6;
18615 std::vector<int> vfree(0);
18626 IkReal j0array[1], cj0array[1], sj0array[1];
18627 bool j0valid[1] = {
false };
18629 IkReal x848 = ((1.0) * new_r11);
18631 IKsign(((new_r01 * new_r01) + (new_r11 * new_r11))), -1);
18637 IkReal(((((-1.0) * sj2 * x848)) + ((cj2 * new_r01)))),
18638 IkReal(((((-1.0) * new_r01 * sj2)) + (((-1.0) * cj2 * x848)))),
18644 j0array[0] = ((-1.5707963267949) +
18645 (((1.5707963267949) * (x849.
value))) + (x850.
value));
18646 sj0array[0] =
IKsin(j0array[0]);
18647 cj0array[0] =
IKcos(j0array[0]);
18648 if (j0array[0] >
IKPI)
18650 j0array[0] -=
IK2PI;
18652 else if (j0array[0] < -
IKPI)
18654 j0array[0] +=
IK2PI;
18657 for (
int ij0 = 0; ij0 < 1; ++ij0)
18665 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
18667 if (j0valid[iij0] &&
18668 IKabs(cj0array[ij0] - cj0array[iij0]) <
18672 j0valid[iij0] =
false;
18678 cj0 = cj0array[ij0];
18679 sj0 = sj0array[ij0];
18681 IkReal evalcond[8];
18682 IkReal x851 =
IKcos(j0);
18683 IkReal x852 =
IKsin(j0);
18684 IkReal x853 = ((1.0) * cj2);
18685 IkReal x854 = (sj2 * x851);
18686 IkReal x855 = (sj2 * x852);
18687 IkReal x856 = ((1.0) * x852);
18688 IkReal x857 = (x852 * x853);
18689 evalcond[0] = (sj2 + ((new_r11 * x852)) + ((new_r01 * x851)));
18690 evalcond[1] = (((cj2 * x851)) + new_r11 + x855);
18692 (sj2 + (((-1.0) * new_r00 * x856)) + ((new_r10 * x851)));
18694 (cj2 + (((-1.0) * new_r01 * x856)) + ((new_r11 * x851)));
18695 evalcond[4] = ((((-1.0) * x857)) + new_r10 + x854);
18696 evalcond[5] = ((((-1.0) * x857)) + new_r01 + x854);
18698 ((((-1.0) * x853)) + ((new_r10 * x852)) + ((new_r00 * x851)));
18700 ((((-1.0) * x855)) + new_r00 + (((-1.0) * x851 * x853)));
18715 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
18716 vinfos[0].jointtype = 1;
18717 vinfos[0].foffset = j0;
18718 vinfos[0].indices[0] = _ij0[0];
18719 vinfos[0].indices[1] = _ij0[1];
18720 vinfos[0].maxsolutions = _nj0;
18721 vinfos[1].jointtype = 1;
18722 vinfos[1].foffset = j1;
18723 vinfos[1].indices[0] = _ij1[0];
18724 vinfos[1].indices[1] = _ij1[1];
18725 vinfos[1].maxsolutions = _nj1;
18726 vinfos[2].jointtype = 1;
18727 vinfos[2].foffset = j2;
18728 vinfos[2].indices[0] = _ij2[0];
18729 vinfos[2].indices[1] = _ij2[1];
18730 vinfos[2].maxsolutions = _nj2;
18731 vinfos[3].jointtype = 1;
18732 vinfos[3].foffset = j3;
18733 vinfos[3].indices[0] = _ij3[0];
18734 vinfos[3].indices[1] = _ij3[1];
18735 vinfos[3].maxsolutions = _nj3;
18736 vinfos[4].jointtype = 1;
18737 vinfos[4].foffset = j4;
18738 vinfos[4].indices[0] = _ij4[0];
18739 vinfos[4].indices[1] = _ij4[1];
18740 vinfos[4].maxsolutions = _nj4;
18741 vinfos[5].jointtype = 1;
18742 vinfos[5].foffset = j5;
18743 vinfos[5].indices[0] = _ij5[0];
18744 vinfos[5].indices[1] = _ij5[1];
18745 vinfos[5].maxsolutions = _nj5;
18746 vinfos[6].jointtype = 1;
18747 vinfos[6].foffset = j6;
18748 vinfos[6].indices[0] = _ij6[0];
18749 vinfos[6].indices[1] = _ij6[1];
18750 vinfos[6].maxsolutions = _nj6;
18751 std::vector<int> vfree(0);
18762 IkReal j0array[1], cj0array[1], sj0array[1];
18763 bool j0valid[1] = {
false };
18765 IkReal x858 = ((1.0) * sj2);
18767 IkReal((((new_r01 * sj2)) + (((-1.0) * new_r10 * x858)))),
18768 IkReal(((((-1.0) * new_r00 * x858)) + (((-1.0) * new_r11 * x858)))),
18775 IKsign((((new_r10 * new_r11)) + ((new_r00 * new_r01)))), -1);
18780 j0array[0] = ((-1.5707963267949) + (x859.
value) +
18781 (((1.5707963267949) * (x860.
value))));
18782 sj0array[0] =
IKsin(j0array[0]);
18783 cj0array[0] =
IKcos(j0array[0]);
18784 if (j0array[0] >
IKPI)
18786 j0array[0] -=
IK2PI;
18788 else if (j0array[0] < -
IKPI)
18790 j0array[0] +=
IK2PI;
18793 for (
int ij0 = 0; ij0 < 1; ++ij0)
18801 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
18803 if (j0valid[iij0] &&
18807 j0valid[iij0] =
false;
18813 cj0 = cj0array[ij0];
18814 sj0 = sj0array[ij0];
18816 IkReal evalcond[8];
18817 IkReal x861 =
IKcos(j0);
18818 IkReal x862 =
IKsin(j0);
18819 IkReal x863 = ((1.0) * cj2);
18820 IkReal x864 = (sj2 * x861);
18821 IkReal x865 = (sj2 * x862);
18822 IkReal x866 = ((1.0) * x862);
18823 IkReal x867 = (x862 * x863);
18824 evalcond[0] = (((new_r01 * x861)) + sj2 + ((new_r11 * x862)));
18825 evalcond[1] = (((cj2 * x861)) + new_r11 + x865);
18826 evalcond[2] = (sj2 + (((-1.0) * new_r00 * x866)) + ((new_r10 * x861)));
18827 evalcond[3] = (cj2 + (((-1.0) * new_r01 * x866)) + ((new_r11 * x861)));
18828 evalcond[4] = ((((-1.0) * x867)) + new_r10 + x864);
18829 evalcond[5] = ((((-1.0) * x867)) + new_r01 + x864);
18831 ((((-1.0) * x863)) + ((new_r00 * x861)) + ((new_r10 * x862)));
18832 evalcond[7] = ((((-1.0) * x865)) + (((-1.0) * x861 * x863)) + new_r00);
18847 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
18848 vinfos[0].jointtype = 1;
18849 vinfos[0].foffset = j0;
18850 vinfos[0].indices[0] = _ij0[0];
18851 vinfos[0].indices[1] = _ij0[1];
18852 vinfos[0].maxsolutions = _nj0;
18853 vinfos[1].jointtype = 1;
18854 vinfos[1].foffset = j1;
18855 vinfos[1].indices[0] = _ij1[0];
18856 vinfos[1].indices[1] = _ij1[1];
18857 vinfos[1].maxsolutions = _nj1;
18858 vinfos[2].jointtype = 1;
18859 vinfos[2].foffset = j2;
18860 vinfos[2].indices[0] = _ij2[0];
18861 vinfos[2].indices[1] = _ij2[1];
18862 vinfos[2].maxsolutions = _nj2;
18863 vinfos[3].jointtype = 1;
18864 vinfos[3].foffset = j3;
18865 vinfos[3].indices[0] = _ij3[0];
18866 vinfos[3].indices[1] = _ij3[1];
18867 vinfos[3].maxsolutions = _nj3;
18868 vinfos[4].jointtype = 1;
18869 vinfos[4].foffset = j4;
18870 vinfos[4].indices[0] = _ij4[0];
18871 vinfos[4].indices[1] = _ij4[1];
18872 vinfos[4].maxsolutions = _nj4;
18873 vinfos[5].jointtype = 1;
18874 vinfos[5].foffset = j5;
18875 vinfos[5].indices[0] = _ij5[0];
18876 vinfos[5].indices[1] = _ij5[1];
18877 vinfos[5].maxsolutions = _nj5;
18878 vinfos[6].jointtype = 1;
18879 vinfos[6].foffset = j6;
18880 vinfos[6].indices[0] = _ij6[0];
18881 vinfos[6].indices[1] = _ij6[1];
18882 vinfos[6].maxsolutions = _nj6;
18883 std::vector<int> vfree(0);
18892 if (bgotonextstatement)
18894 bool bgotonextstatement =
true;
18897 evalcond[0] = ((
IKabs(new_r12)) + (
IKabs(new_r02)));
18898 if (
IKabs(evalcond[0]) < 0.0000050000000000)
18900 bgotonextstatement =
false;
18907 j0eval[0] = ((
IKabs(new_r10)) + (
IKabs(new_r00)));
18908 if (
IKabs(j0eval[0]) < 0.0000010000000000)
18916 j0eval[0] = ((
IKabs(new_r11)) + (
IKabs(new_r01)));
18917 if (
IKabs(j0eval[0]) < 0.0000010000000000)
18926 ((
IKabs((new_r10 * new_r22))) + (
IKabs((new_r00 * new_r22))));
18927 if (
IKabs(j0eval[0]) < 0.0000010000000000)
18934 IkReal j0array[2], cj0array[2], sj0array[2];
18935 bool j0valid[2] = {
false };
18939 IkReal((new_r10 * new_r22)),
18945 IkReal x868 = x869.
value;
18946 j0array[0] = ((-1.0) * x868);
18947 sj0array[0] =
IKsin(j0array[0]);
18948 cj0array[0] =
IKcos(j0array[0]);
18949 j0array[1] = ((3.14159265358979) + (((-1.0) * x868)));
18950 sj0array[1] =
IKsin(j0array[1]);
18951 cj0array[1] =
IKcos(j0array[1]);
18952 if (j0array[0] >
IKPI)
18954 j0array[0] -=
IK2PI;
18956 else if (j0array[0] < -
IKPI)
18958 j0array[0] +=
IK2PI;
18961 if (j0array[1] >
IKPI)
18963 j0array[1] -=
IK2PI;
18965 else if (j0array[1] < -
IKPI)
18967 j0array[1] +=
IK2PI;
18970 for (
int ij0 = 0; ij0 < 2; ++ij0)
18978 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
18980 if (j0valid[iij0] &&
18981 IKabs(cj0array[ij0] - cj0array[iij0]) <
18983 IKabs(sj0array[ij0] - sj0array[iij0]) <
18986 j0valid[iij0] =
false;
18992 cj0 = cj0array[ij0];
18993 sj0 = sj0array[ij0];
18995 IkReal evalcond[5];
18996 IkReal x870 =
IKsin(j0);
18997 IkReal x871 =
IKcos(j0);
18998 IkReal x872 = ((1.0) * x870);
18999 IkReal x873 = (new_r11 * x870);
19000 IkReal x874 = (new_r01 * x871);
19001 evalcond[0] = (((new_r00 * x871)) + ((new_r10 * x870)));
19002 evalcond[1] = (x873 + x874);
19004 ((((-1.0) * new_r00 * x872)) + ((new_r10 * x871)));
19006 ((((-1.0) * new_r01 * x872)) + ((new_r11 * x871)));
19007 evalcond[4] = (((new_r22 * x874)) + ((new_r22 * x873)));
19019 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19020 vinfos[0].jointtype = 1;
19021 vinfos[0].foffset = j0;
19022 vinfos[0].indices[0] = _ij0[0];
19023 vinfos[0].indices[1] = _ij0[1];
19024 vinfos[0].maxsolutions = _nj0;
19025 vinfos[1].jointtype = 1;
19026 vinfos[1].foffset = j1;
19027 vinfos[1].indices[0] = _ij1[0];
19028 vinfos[1].indices[1] = _ij1[1];
19029 vinfos[1].maxsolutions = _nj1;
19030 vinfos[2].jointtype = 1;
19031 vinfos[2].foffset = j2;
19032 vinfos[2].indices[0] = _ij2[0];
19033 vinfos[2].indices[1] = _ij2[1];
19034 vinfos[2].maxsolutions = _nj2;
19035 vinfos[3].jointtype = 1;
19036 vinfos[3].foffset = j3;
19037 vinfos[3].indices[0] = _ij3[0];
19038 vinfos[3].indices[1] = _ij3[1];
19039 vinfos[3].maxsolutions = _nj3;
19040 vinfos[4].jointtype = 1;
19041 vinfos[4].foffset = j4;
19042 vinfos[4].indices[0] = _ij4[0];
19043 vinfos[4].indices[1] = _ij4[1];
19044 vinfos[4].maxsolutions = _nj4;
19045 vinfos[5].jointtype = 1;
19046 vinfos[5].foffset = j5;
19047 vinfos[5].indices[0] = _ij5[0];
19048 vinfos[5].indices[1] = _ij5[1];
19049 vinfos[5].maxsolutions = _nj5;
19050 vinfos[6].jointtype = 1;
19051 vinfos[6].foffset = j6;
19052 vinfos[6].indices[0] = _ij6[0];
19053 vinfos[6].indices[1] = _ij6[1];
19054 vinfos[6].maxsolutions = _nj6;
19055 std::vector<int> vfree(0);
19066 IkReal j0array[2], cj0array[2], sj0array[2];
19067 bool j0valid[2] = {
false };
19075 IkReal x875 = x876.
value;
19076 j0array[0] = ((-1.0) * x875);
19077 sj0array[0] =
IKsin(j0array[0]);
19078 cj0array[0] =
IKcos(j0array[0]);
19079 j0array[1] = ((3.14159265358979) + (((-1.0) * x875)));
19080 sj0array[1] =
IKsin(j0array[1]);
19081 cj0array[1] =
IKcos(j0array[1]);
19082 if (j0array[0] >
IKPI)
19084 j0array[0] -=
IK2PI;
19086 else if (j0array[0] < -
IKPI)
19088 j0array[0] +=
IK2PI;
19091 if (j0array[1] >
IKPI)
19093 j0array[1] -=
IK2PI;
19095 else if (j0array[1] < -
IKPI)
19097 j0array[1] +=
IK2PI;
19100 for (
int ij0 = 0; ij0 < 2; ++ij0)
19108 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
19110 if (j0valid[iij0] &&
19111 IKabs(cj0array[ij0] - cj0array[iij0]) <
19113 IKabs(sj0array[ij0] - sj0array[iij0]) <
19116 j0valid[iij0] =
false;
19122 cj0 = cj0array[ij0];
19123 sj0 = sj0array[ij0];
19125 IkReal evalcond[5];
19126 IkReal x877 =
IKcos(j0);
19127 IkReal x878 =
IKsin(j0);
19128 IkReal x879 = (new_r10 * x878);
19129 IkReal x880 = ((1.0) * x878);
19130 IkReal x881 = (new_r00 * x877);
19131 evalcond[0] = (x879 + x881);
19132 evalcond[1] = ((((-1.0) * new_r00 * x880)) + ((new_r10 * x877)));
19133 evalcond[2] = ((((-1.0) * new_r01 * x880)) + ((new_r11 * x877)));
19134 evalcond[3] = (((new_r22 * x881)) + ((new_r22 * x879)));
19136 (((new_r11 * new_r22 * x878)) + ((new_r01 * new_r22 * x877)));
19148 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19149 vinfos[0].jointtype = 1;
19150 vinfos[0].foffset = j0;
19151 vinfos[0].indices[0] = _ij0[0];
19152 vinfos[0].indices[1] = _ij0[1];
19153 vinfos[0].maxsolutions = _nj0;
19154 vinfos[1].jointtype = 1;
19155 vinfos[1].foffset = j1;
19156 vinfos[1].indices[0] = _ij1[0];
19157 vinfos[1].indices[1] = _ij1[1];
19158 vinfos[1].maxsolutions = _nj1;
19159 vinfos[2].jointtype = 1;
19160 vinfos[2].foffset = j2;
19161 vinfos[2].indices[0] = _ij2[0];
19162 vinfos[2].indices[1] = _ij2[1];
19163 vinfos[2].maxsolutions = _nj2;
19164 vinfos[3].jointtype = 1;
19165 vinfos[3].foffset = j3;
19166 vinfos[3].indices[0] = _ij3[0];
19167 vinfos[3].indices[1] = _ij3[1];
19168 vinfos[3].maxsolutions = _nj3;
19169 vinfos[4].jointtype = 1;
19170 vinfos[4].foffset = j4;
19171 vinfos[4].indices[0] = _ij4[0];
19172 vinfos[4].indices[1] = _ij4[1];
19173 vinfos[4].maxsolutions = _nj4;
19174 vinfos[5].jointtype = 1;
19175 vinfos[5].foffset = j5;
19176 vinfos[5].indices[0] = _ij5[0];
19177 vinfos[5].indices[1] = _ij5[1];
19178 vinfos[5].maxsolutions = _nj5;
19179 vinfos[6].jointtype = 1;
19180 vinfos[6].foffset = j6;
19181 vinfos[6].indices[0] = _ij6[0];
19182 vinfos[6].indices[1] = _ij6[1];
19183 vinfos[6].maxsolutions = _nj6;
19184 std::vector<int> vfree(0);
19195 IkReal j0array[2], cj0array[2], sj0array[2];
19196 bool j0valid[2] = {
false };
19204 IkReal x882 = x883.
value;
19205 j0array[0] = ((-1.0) * x882);
19206 sj0array[0] =
IKsin(j0array[0]);
19207 cj0array[0] =
IKcos(j0array[0]);
19208 j0array[1] = ((3.14159265358979) + (((-1.0) * x882)));
19209 sj0array[1] =
IKsin(j0array[1]);
19210 cj0array[1] =
IKcos(j0array[1]);
19211 if (j0array[0] >
IKPI)
19213 j0array[0] -=
IK2PI;
19215 else if (j0array[0] < -
IKPI)
19217 j0array[0] +=
IK2PI;
19220 if (j0array[1] >
IKPI)
19222 j0array[1] -=
IK2PI;
19224 else if (j0array[1] < -
IKPI)
19226 j0array[1] +=
IK2PI;
19229 for (
int ij0 = 0; ij0 < 2; ++ij0)
19237 for (
int iij0 = ij0 + 1; iij0 < 2; ++iij0)
19239 if (j0valid[iij0] &&
19243 j0valid[iij0] =
false;
19249 cj0 = cj0array[ij0];
19250 sj0 = sj0array[ij0];
19252 IkReal evalcond[5];
19253 IkReal x884 =
IKcos(j0);
19254 IkReal x885 =
IKsin(j0);
19255 IkReal x886 = ((1.0) * x885);
19256 IkReal x887 = (new_r11 * x885);
19257 IkReal x888 = (new_r22 * x884);
19258 evalcond[0] = (((new_r01 * x884)) + x887);
19259 evalcond[1] = (((new_r10 * x884)) + (((-1.0) * new_r00 * x886)));
19260 evalcond[2] = (((new_r11 * x884)) + (((-1.0) * new_r01 * x886)));
19261 evalcond[3] = (((new_r00 * x888)) + ((new_r10 * new_r22 * x885)));
19262 evalcond[4] = (((new_r01 * x888)) + ((new_r22 * x887)));
19274 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19275 vinfos[0].jointtype = 1;
19276 vinfos[0].foffset = j0;
19277 vinfos[0].indices[0] = _ij0[0];
19278 vinfos[0].indices[1] = _ij0[1];
19279 vinfos[0].maxsolutions = _nj0;
19280 vinfos[1].jointtype = 1;
19281 vinfos[1].foffset = j1;
19282 vinfos[1].indices[0] = _ij1[0];
19283 vinfos[1].indices[1] = _ij1[1];
19284 vinfos[1].maxsolutions = _nj1;
19285 vinfos[2].jointtype = 1;
19286 vinfos[2].foffset = j2;
19287 vinfos[2].indices[0] = _ij2[0];
19288 vinfos[2].indices[1] = _ij2[1];
19289 vinfos[2].maxsolutions = _nj2;
19290 vinfos[3].jointtype = 1;
19291 vinfos[3].foffset = j3;
19292 vinfos[3].indices[0] = _ij3[0];
19293 vinfos[3].indices[1] = _ij3[1];
19294 vinfos[3].maxsolutions = _nj3;
19295 vinfos[4].jointtype = 1;
19296 vinfos[4].foffset = j4;
19297 vinfos[4].indices[0] = _ij4[0];
19298 vinfos[4].indices[1] = _ij4[1];
19299 vinfos[4].maxsolutions = _nj4;
19300 vinfos[5].jointtype = 1;
19301 vinfos[5].foffset = j5;
19302 vinfos[5].indices[0] = _ij5[0];
19303 vinfos[5].indices[1] = _ij5[1];
19304 vinfos[5].maxsolutions = _nj5;
19305 vinfos[6].jointtype = 1;
19306 vinfos[6].foffset = j6;
19307 vinfos[6].indices[0] = _ij6[0];
19308 vinfos[6].indices[1] = _ij6[1];
19309 vinfos[6].maxsolutions = _nj6;
19310 std::vector<int> vfree(0);
19319 if (bgotonextstatement)
19321 bool bgotonextstatement =
true;
19326 bgotonextstatement =
false;
19330 if (bgotonextstatement)
19341 IkReal j0array[1], cj0array[1], sj0array[1];
19342 bool j0valid[1] = {
false };
19349 IkReal x889 = x890.
value;
19355 if (
IKabs((x889 * (x891.
value) * ((((sj1 * sj2)) + ((new_r02 * new_r10)))))) <
19358 IKabs(
IKsqr((x889 * (x891.
value) * ((((sj1 * sj2)) + ((new_r02 * new_r10)))))) +
19361 j0array[0] =
IKatan2((x889 * (x891.
value) * ((((sj1 * sj2)) + ((new_r02 * new_r10))))),
19363 sj0array[0] =
IKsin(j0array[0]);
19364 cj0array[0] =
IKcos(j0array[0]);
19365 if (j0array[0] >
IKPI)
19367 j0array[0] -=
IK2PI;
19369 else if (j0array[0] < -
IKPI)
19371 j0array[0] +=
IK2PI;
19374 for (
int ij0 = 0; ij0 < 1; ++ij0)
19382 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
19384 if (j0valid[iij0] &&
19388 j0valid[iij0] =
false;
19394 cj0 = cj0array[ij0];
19395 sj0 = sj0array[ij0];
19397 IkReal evalcond[18];
19398 IkReal x892 =
IKcos(j0);
19399 IkReal x893 =
IKsin(j0);
19400 IkReal x894 = ((1.0) * sj1);
19401 IkReal x895 = ((1.0) * sj2);
19402 IkReal x896 = ((1.0) * cj1);
19403 IkReal x897 = (new_r10 * x893);
19404 IkReal x898 = (cj1 * x892);
19405 IkReal x899 = (cj1 * x893);
19406 IkReal x900 = (new_r00 * x892);
19407 IkReal x901 = ((1.0) * x893);
19408 IkReal x902 = (new_r11 * x893);
19409 IkReal x903 = (new_r12 * x893);
19410 IkReal x904 = (new_r02 * x892);
19411 IkReal x905 = (new_r01 * x892);
19412 evalcond[0] = ((((-1.0) * x892 * x894)) + new_r02);
19413 evalcond[1] = ((((-1.0) * x893 * x894)) + new_r12);
19414 evalcond[2] = ((((-1.0) * new_r02 * x901)) + ((new_r12 * x892)));
19415 evalcond[3] = (sj2 + ((new_r10 * x892)) + (((-1.0) * new_r00 * x901)));
19416 evalcond[4] = (((new_r11 * x892)) + cj2 + (((-1.0) * new_r01 * x901)));
19417 evalcond[5] = (((cj2 * x899)) + ((sj2 * x892)) + new_r10);
19418 evalcond[6] = ((((-1.0) * x894)) + x904 + x903);
19419 evalcond[7] = (((cj1 * cj2)) + x897 + x900);
19420 evalcond[8] = (((cj2 * x898)) + (((-1.0) * x893 * x895)) + new_r00);
19421 evalcond[9] = (((cj2 * x892)) + (((-1.0) * x895 * x899)) + new_r11);
19422 evalcond[10] = ((((-1.0) * cj1 * x895)) + x905 + x902);
19423 evalcond[11] = ((((-1.0) * x895 * x898)) + new_r01 + (((-1.0) * cj2 * x901)));
19425 (((new_r12 * x899)) + ((new_r02 * x898)) + (((-1.0) * new_r22 * x894)));
19427 (cj2 + ((new_r00 * x898)) + (((-1.0) * new_r20 * x894)) + ((cj1 * x897)));
19428 evalcond[14] = ((((-1.0) * x894 * x900)) + (((-1.0) * new_r20 * x896)) +
19429 (((-1.0) * x894 * x897)));
19430 evalcond[15] = ((((-1.0) * x894 * x902)) + (((-1.0) * x894 * x905)) +
19431 (((-1.0) * new_r21 * x896)));
19432 evalcond[16] = ((1.0) + (((-1.0) * x894 * x903)) + (((-1.0) * x894 * x904)) +
19433 (((-1.0) * new_r22 * x896)));
19434 evalcond[17] = (((new_r11 * x899)) + ((new_r01 * x898)) +
19435 (((-1.0) * new_r21 * x894)) + (((-1.0) * x895)));
19460 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19461 vinfos[0].jointtype = 1;
19462 vinfos[0].foffset = j0;
19463 vinfos[0].indices[0] = _ij0[0];
19464 vinfos[0].indices[1] = _ij0[1];
19465 vinfos[0].maxsolutions = _nj0;
19466 vinfos[1].jointtype = 1;
19467 vinfos[1].foffset = j1;
19468 vinfos[1].indices[0] = _ij1[0];
19469 vinfos[1].indices[1] = _ij1[1];
19470 vinfos[1].maxsolutions = _nj1;
19471 vinfos[2].jointtype = 1;
19472 vinfos[2].foffset = j2;
19473 vinfos[2].indices[0] = _ij2[0];
19474 vinfos[2].indices[1] = _ij2[1];
19475 vinfos[2].maxsolutions = _nj2;
19476 vinfos[3].jointtype = 1;
19477 vinfos[3].foffset = j3;
19478 vinfos[3].indices[0] = _ij3[0];
19479 vinfos[3].indices[1] = _ij3[1];
19480 vinfos[3].maxsolutions = _nj3;
19481 vinfos[4].jointtype = 1;
19482 vinfos[4].foffset = j4;
19483 vinfos[4].indices[0] = _ij4[0];
19484 vinfos[4].indices[1] = _ij4[1];
19485 vinfos[4].maxsolutions = _nj4;
19486 vinfos[5].jointtype = 1;
19487 vinfos[5].foffset = j5;
19488 vinfos[5].indices[0] = _ij5[0];
19489 vinfos[5].indices[1] = _ij5[1];
19490 vinfos[5].maxsolutions = _nj5;
19491 vinfos[6].jointtype = 1;
19492 vinfos[6].foffset = j6;
19493 vinfos[6].indices[0] = _ij6[0];
19494 vinfos[6].indices[1] = _ij6[1];
19495 vinfos[6].maxsolutions = _nj6;
19496 std::vector<int> vfree(0);
19507 IkReal j0array[1], cj0array[1], sj0array[1];
19508 bool j0valid[1] = {
false };
19521 j0array[0] = ((-1.5707963267949) + (((1.5707963267949) * (x906.
value))) + (x907.
value));
19522 sj0array[0] =
IKsin(j0array[0]);
19523 cj0array[0] =
IKcos(j0array[0]);
19524 if (j0array[0] >
IKPI)
19526 j0array[0] -=
IK2PI;
19528 else if (j0array[0] < -
IKPI)
19530 j0array[0] +=
IK2PI;
19533 for (
int ij0 = 0; ij0 < 1; ++ij0)
19541 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
19546 j0valid[iij0] =
false;
19552 cj0 = cj0array[ij0];
19553 sj0 = sj0array[ij0];
19555 IkReal evalcond[18];
19556 IkReal x908 =
IKcos(j0);
19557 IkReal x909 =
IKsin(j0);
19558 IkReal x910 = ((1.0) * sj1);
19559 IkReal x911 = ((1.0) * sj2);
19560 IkReal x912 = ((1.0) * cj1);
19561 IkReal x913 = (new_r10 * x909);
19562 IkReal x914 = (cj1 * x908);
19563 IkReal x915 = (cj1 * x909);
19564 IkReal x916 = (new_r00 * x908);
19565 IkReal x917 = ((1.0) * x909);
19566 IkReal x918 = (new_r11 * x909);
19567 IkReal x919 = (new_r12 * x909);
19568 IkReal x920 = (new_r02 * x908);
19569 IkReal x921 = (new_r01 * x908);
19570 evalcond[0] = ((((-1.0) * x908 * x910)) + new_r02);
19571 evalcond[1] = (new_r12 + (((-1.0) * x909 * x910)));
19572 evalcond[2] = ((((-1.0) * new_r02 * x917)) + ((new_r12 * x908)));
19573 evalcond[3] = (sj2 + ((new_r10 * x908)) + (((-1.0) * new_r00 * x917)));
19574 evalcond[4] = (cj2 + ((new_r11 * x908)) + (((-1.0) * new_r01 * x917)));
19575 evalcond[5] = (((sj2 * x908)) + ((cj2 * x915)) + new_r10);
19576 evalcond[6] = ((((-1.0) * x910)) + x920 + x919);
19577 evalcond[7] = (((cj1 * cj2)) + x913 + x916);
19578 evalcond[8] = (((cj2 * x914)) + new_r00 + (((-1.0) * x909 * x911)));
19579 evalcond[9] = (((cj2 * x908)) + new_r11 + (((-1.0) * x911 * x915)));
19580 evalcond[10] = ((((-1.0) * cj1 * x911)) + x921 + x918);
19581 evalcond[11] = (new_r01 + (((-1.0) * x911 * x914)) + (((-1.0) * cj2 * x917)));
19582 evalcond[12] = ((((-1.0) * new_r22 * x910)) + ((new_r12 * x915)) + ((new_r02 * x914)));
19584 (cj2 + (((-1.0) * new_r20 * x910)) + ((new_r00 * x914)) + ((cj1 * x913)));
19586 ((((-1.0) * new_r20 * x912)) + (((-1.0) * x910 * x913)) + (((-1.0) * x910 * x916)));
19588 ((((-1.0) * new_r21 * x912)) + (((-1.0) * x910 * x918)) + (((-1.0) * x910 * x921)));
19589 evalcond[16] = ((1.0) + (((-1.0) * new_r22 * x912)) + (((-1.0) * x910 * x919)) +
19590 (((-1.0) * x910 * x920)));
19591 evalcond[17] = ((((-1.0) * new_r21 * x910)) + ((new_r11 * x915)) + (((-1.0) * x911)) +
19592 ((new_r01 * x914)));
19617 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19618 vinfos[0].jointtype = 1;
19619 vinfos[0].foffset = j0;
19620 vinfos[0].indices[0] = _ij0[0];
19621 vinfos[0].indices[1] = _ij0[1];
19622 vinfos[0].maxsolutions = _nj0;
19623 vinfos[1].jointtype = 1;
19624 vinfos[1].foffset = j1;
19625 vinfos[1].indices[0] = _ij1[0];
19626 vinfos[1].indices[1] = _ij1[1];
19627 vinfos[1].maxsolutions = _nj1;
19628 vinfos[2].jointtype = 1;
19629 vinfos[2].foffset = j2;
19630 vinfos[2].indices[0] = _ij2[0];
19631 vinfos[2].indices[1] = _ij2[1];
19632 vinfos[2].maxsolutions = _nj2;
19633 vinfos[3].jointtype = 1;
19634 vinfos[3].foffset = j3;
19635 vinfos[3].indices[0] = _ij3[0];
19636 vinfos[3].indices[1] = _ij3[1];
19637 vinfos[3].maxsolutions = _nj3;
19638 vinfos[4].jointtype = 1;
19639 vinfos[4].foffset = j4;
19640 vinfos[4].indices[0] = _ij4[0];
19641 vinfos[4].indices[1] = _ij4[1];
19642 vinfos[4].maxsolutions = _nj4;
19643 vinfos[5].jointtype = 1;
19644 vinfos[5].foffset = j5;
19645 vinfos[5].indices[0] = _ij5[0];
19646 vinfos[5].indices[1] = _ij5[1];
19647 vinfos[5].maxsolutions = _nj5;
19648 vinfos[6].jointtype = 1;
19649 vinfos[6].foffset = j6;
19650 vinfos[6].indices[0] = _ij6[0];
19651 vinfos[6].indices[1] = _ij6[1];
19652 vinfos[6].maxsolutions = _nj6;
19653 std::vector<int> vfree(0);
19668 IkReal j0array[1], cj0array[1], sj0array[1];
19669 bool j0valid[1] = {
false };
19681 j0array[0] = ((-1.5707963267949) + (((1.5707963267949) * (x922.
value))) + (x923.
value));
19682 sj0array[0] =
IKsin(j0array[0]);
19683 cj0array[0] =
IKcos(j0array[0]);
19684 if (j0array[0] >
IKPI)
19686 j0array[0] -=
IK2PI;
19688 else if (j0array[0] < -
IKPI)
19690 j0array[0] +=
IK2PI;
19693 for (
int ij0 = 0; ij0 < 1; ++ij0)
19701 for (
int iij0 = ij0 + 1; iij0 < 1; ++iij0)
19706 j0valid[iij0] =
false;
19712 cj0 = cj0array[ij0];
19713 sj0 = sj0array[ij0];
19715 IkReal evalcond[8];
19716 IkReal x924 =
IKcos(j0);
19717 IkReal x925 =
IKsin(j0);
19718 IkReal x926 = ((1.0) * cj1);
19719 IkReal x927 = ((1.0) * sj1);
19720 IkReal x928 = (new_r12 * x925);
19721 IkReal x929 = (new_r02 * x924);
19722 evalcond[0] = ((((-1.0) * x924 * x927)) + new_r02);
19723 evalcond[1] = ((((-1.0) * x925 * x927)) + new_r12);
19724 evalcond[2] = ((((-1.0) * new_r02 * x925)) + ((new_r12 * x924)));
19725 evalcond[3] = ((((-1.0) * x927)) + x928 + x929);
19726 evalcond[4] = ((((-1.0) * new_r22 * x927)) + ((cj1 * x929)) + ((cj1 * x928)));
19727 evalcond[5] = ((((-1.0) * new_r10 * x925 * x927)) + (((-1.0) * new_r00 * x924 * x927)) +
19728 (((-1.0) * new_r20 * x926)));
19729 evalcond[6] = ((((-1.0) * new_r21 * x926)) + (((-1.0) * new_r01 * x924 * x927)) +
19730 (((-1.0) * new_r11 * x925 * x927)));
19732 ((1.0) + (((-1.0) * x927 * x928)) + (((-1.0) * x927 * x929)) + (((-1.0) * new_r22 * x926)));
19745 j2eval[1] =
IKsign(sj1);
19746 j2eval[2] = ((
IKabs(new_r20)) + (
IKabs(new_r21)));
19747 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000 ||
19748 IKabs(j2eval[2]) < 0.0000010000000000)
19754 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000)
19761 if (
IKabs(j2eval[0]) < 0.0000010000000000 ||
IKabs(j2eval[1]) < 0.0000010000000000 ||
19762 IKabs(j2eval[2]) < 0.0000010000000000)
19765 IkReal evalcond[5];
19766 bool bgotonextstatement =
true;
19769 evalcond[0] = ((-3.14159265358979) +
19770 (
IKfmod(((3.14159265358979) + (
IKabs(j1))), 6.28318530717959)));
19771 evalcond[1] = new_r21;
19772 evalcond[2] = new_r02;
19773 evalcond[3] = new_r12;
19774 evalcond[4] = new_r20;
19775 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
19776 IKabs(evalcond[1]) < 0.0000050000000000 &&
19777 IKabs(evalcond[2]) < 0.0000050000000000 &&
19778 IKabs(evalcond[3]) < 0.0000050000000000 &&
19779 IKabs(evalcond[4]) < 0.0000050000000000)
19781 bgotonextstatement =
false;
19783 IkReal j2array[1], cj2array[1], sj2array[1];
19784 bool j2valid[1] = {
false };
19786 IkReal x930 = ((1.0) * cj0);
19787 if (
IKabs((((new_r00 * sj0)) + (((-1.0) * new_r10 * x930)))) <
19789 IKabs(((((-1.0) * new_r00 * x930)) + (((-1.0) * new_r10 * sj0)))) <
19791 IKabs(
IKsqr((((new_r00 * sj0)) + (((-1.0) * new_r10 * x930)))) +
19792 IKsqr(((((-1.0) * new_r00 * x930)) + (((-1.0) * new_r10 * sj0)))) -
19795 j2array[0] =
IKatan2((((new_r00 * sj0)) + (((-1.0) * new_r10 * x930))),
19796 ((((-1.0) * new_r00 * x930)) + (((-1.0) * new_r10 * sj0))));
19797 sj2array[0] =
IKsin(j2array[0]);
19798 cj2array[0] =
IKcos(j2array[0]);
19799 if (j2array[0] >
IKPI)
19801 j2array[0] -=
IK2PI;
19803 else if (j2array[0] < -
IKPI)
19805 j2array[0] +=
IK2PI;
19808 for (
int ij2 = 0; ij2 < 1; ++ij2)
19816 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
19818 if (j2valid[iij2] &&
19822 j2valid[iij2] =
false;
19828 cj2 = cj2array[ij2];
19829 sj2 = sj2array[ij2];
19831 IkReal evalcond[8];
19832 IkReal x931 =
IKcos(j2);
19833 IkReal x932 =
IKsin(j2);
19834 IkReal x933 = ((1.0) * sj0);
19835 IkReal x934 = (cj0 * x931);
19836 IkReal x935 = (cj0 * x932);
19837 IkReal x936 = (x932 * x933);
19838 evalcond[0] = (((new_r10 * sj0)) + ((cj0 * new_r00)) + x931);
19839 evalcond[1] = ((((-1.0) * new_r00 * x933)) + ((cj0 * new_r10)) + x932);
19840 evalcond[2] = ((((-1.0) * new_r01 * x933)) + ((cj0 * new_r11)) + x931);
19841 evalcond[3] = (((sj0 * x931)) + new_r10 + x935);
19842 evalcond[4] = (((new_r11 * sj0)) + (((-1.0) * x932)) + ((cj0 * new_r01)));
19843 evalcond[5] = (new_r00 + x934 + (((-1.0) * x936)));
19844 evalcond[6] = (new_r11 + x934 + (((-1.0) * x936)));
19845 evalcond[7] = ((((-1.0) * x931 * x933)) + (((-1.0) * x935)) + new_r01);
19860 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
19861 vinfos[0].jointtype = 1;
19862 vinfos[0].foffset = j0;
19863 vinfos[0].indices[0] = _ij0[0];
19864 vinfos[0].indices[1] = _ij0[1];
19865 vinfos[0].maxsolutions = _nj0;
19866 vinfos[1].jointtype = 1;
19867 vinfos[1].foffset = j1;
19868 vinfos[1].indices[0] = _ij1[0];
19869 vinfos[1].indices[1] = _ij1[1];
19870 vinfos[1].maxsolutions = _nj1;
19871 vinfos[2].jointtype = 1;
19872 vinfos[2].foffset = j2;
19873 vinfos[2].indices[0] = _ij2[0];
19874 vinfos[2].indices[1] = _ij2[1];
19875 vinfos[2].maxsolutions = _nj2;
19876 vinfos[3].jointtype = 1;
19877 vinfos[3].foffset = j3;
19878 vinfos[3].indices[0] = _ij3[0];
19879 vinfos[3].indices[1] = _ij3[1];
19880 vinfos[3].maxsolutions = _nj3;
19881 vinfos[4].jointtype = 1;
19882 vinfos[4].foffset = j4;
19883 vinfos[4].indices[0] = _ij4[0];
19884 vinfos[4].indices[1] = _ij4[1];
19885 vinfos[4].maxsolutions = _nj4;
19886 vinfos[5].jointtype = 1;
19887 vinfos[5].foffset = j5;
19888 vinfos[5].indices[0] = _ij5[0];
19889 vinfos[5].indices[1] = _ij5[1];
19890 vinfos[5].maxsolutions = _nj5;
19891 vinfos[6].jointtype = 1;
19892 vinfos[6].foffset = j6;
19893 vinfos[6].indices[0] = _ij6[0];
19894 vinfos[6].indices[1] = _ij6[1];
19895 vinfos[6].maxsolutions = _nj6;
19896 std::vector<int> vfree(0);
19903 if (bgotonextstatement)
19905 bool bgotonextstatement =
true;
19908 evalcond[0] = ((-3.14159265358979) +
19909 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j1)))),
19910 6.28318530717959)));
19911 evalcond[1] = new_r21;
19912 evalcond[2] = new_r02;
19913 evalcond[3] = new_r12;
19914 evalcond[4] = new_r20;
19915 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
19916 IKabs(evalcond[1]) < 0.0000050000000000 &&
19917 IKabs(evalcond[2]) < 0.0000050000000000 &&
19918 IKabs(evalcond[3]) < 0.0000050000000000 &&
19919 IKabs(evalcond[4]) < 0.0000050000000000)
19921 bgotonextstatement =
false;
19923 IkReal j2array[1], cj2array[1], sj2array[1];
19924 bool j2valid[1] = {
false };
19926 IkReal x937 = ((1.0) * cj0);
19927 if (
IKabs(((((-1.0) * new_r10 * x937)) + (((-1.0) * new_r11 * sj0)))) <
19929 IKabs((((new_r10 * sj0)) + (((-1.0) * new_r11 * x937)))) <
19931 IKabs(
IKsqr(((((-1.0) * new_r10 * x937)) + (((-1.0) * new_r11 * sj0)))) +
19932 IKsqr((((new_r10 * sj0)) + (((-1.0) * new_r11 * x937)))) - 1) <=
19935 j2array[0] =
IKatan2(((((-1.0) * new_r10 * x937)) + (((-1.0) * new_r11 * sj0))),
19936 (((new_r10 * sj0)) + (((-1.0) * new_r11 * x937))));
19937 sj2array[0] =
IKsin(j2array[0]);
19938 cj2array[0] =
IKcos(j2array[0]);
19939 if (j2array[0] >
IKPI)
19941 j2array[0] -=
IK2PI;
19943 else if (j2array[0] < -
IKPI)
19945 j2array[0] +=
IK2PI;
19948 for (
int ij2 = 0; ij2 < 1; ++ij2)
19956 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
19958 if (j2valid[iij2] &&
19962 j2valid[iij2] =
false;
19968 cj2 = cj2array[ij2];
19969 sj2 = sj2array[ij2];
19971 IkReal evalcond[8];
19972 IkReal x938 =
IKsin(j2);
19973 IkReal x939 =
IKcos(j2);
19974 IkReal x940 = ((1.0) * sj0);
19975 IkReal x941 = (cj0 * x938);
19976 IkReal x942 = ((1.0) * x939);
19977 IkReal x943 = (x939 * x940);
19978 evalcond[0] = (((new_r11 * sj0)) + ((cj0 * new_r01)) + x938);
19979 evalcond[1] = (((cj0 * new_r10)) + (((-1.0) * new_r00 * x940)) + x938);
19980 evalcond[2] = ((((-1.0) * new_r01 * x940)) + ((cj0 * new_r11)) + x939);
19981 evalcond[3] = ((((-1.0) * x942)) + ((new_r10 * sj0)) + ((cj0 * new_r00)));
19982 evalcond[4] = (((sj0 * x938)) + ((cj0 * x939)) + new_r11);
19983 evalcond[5] = ((((-1.0) * x943)) + new_r10 + x941);
19984 evalcond[6] = ((((-1.0) * x943)) + new_r01 + x941);
19986 ((((-1.0) * x938 * x940)) + (((-1.0) * cj0 * x942)) + new_r00);
20001 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20002 vinfos[0].jointtype = 1;
20003 vinfos[0].foffset = j0;
20004 vinfos[0].indices[0] = _ij0[0];
20005 vinfos[0].indices[1] = _ij0[1];
20006 vinfos[0].maxsolutions = _nj0;
20007 vinfos[1].jointtype = 1;
20008 vinfos[1].foffset = j1;
20009 vinfos[1].indices[0] = _ij1[0];
20010 vinfos[1].indices[1] = _ij1[1];
20011 vinfos[1].maxsolutions = _nj1;
20012 vinfos[2].jointtype = 1;
20013 vinfos[2].foffset = j2;
20014 vinfos[2].indices[0] = _ij2[0];
20015 vinfos[2].indices[1] = _ij2[1];
20016 vinfos[2].maxsolutions = _nj2;
20017 vinfos[3].jointtype = 1;
20018 vinfos[3].foffset = j3;
20019 vinfos[3].indices[0] = _ij3[0];
20020 vinfos[3].indices[1] = _ij3[1];
20021 vinfos[3].maxsolutions = _nj3;
20022 vinfos[4].jointtype = 1;
20023 vinfos[4].foffset = j4;
20024 vinfos[4].indices[0] = _ij4[0];
20025 vinfos[4].indices[1] = _ij4[1];
20026 vinfos[4].maxsolutions = _nj4;
20027 vinfos[5].jointtype = 1;
20028 vinfos[5].foffset = j5;
20029 vinfos[5].indices[0] = _ij5[0];
20030 vinfos[5].indices[1] = _ij5[1];
20031 vinfos[5].maxsolutions = _nj5;
20032 vinfos[6].jointtype = 1;
20033 vinfos[6].foffset = j6;
20034 vinfos[6].indices[0] = _ij6[0];
20035 vinfos[6].indices[1] = _ij6[1];
20036 vinfos[6].maxsolutions = _nj6;
20037 std::vector<int> vfree(0);
20044 if (bgotonextstatement)
20046 bool bgotonextstatement =
true;
20049 evalcond[0] = ((-3.14159265358979) +
20050 (
IKfmod(((3.14159265358979) + (
IKabs(((-1.5707963267949) + j1)))),
20051 6.28318530717959)));
20052 evalcond[1] = new_r22;
20053 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20054 IKabs(evalcond[1]) < 0.0000050000000000)
20056 bgotonextstatement =
false;
20058 IkReal j2array[1], cj2array[1], sj2array[1];
20059 bool j2valid[1] = {
false };
20066 j2array[0] =
IKatan2(((-1.0) * new_r21), new_r20);
20067 sj2array[0] =
IKsin(j2array[0]);
20068 cj2array[0] =
IKcos(j2array[0]);
20069 if (j2array[0] >
IKPI)
20071 j2array[0] -=
IK2PI;
20073 else if (j2array[0] < -
IKPI)
20075 j2array[0] +=
IK2PI;
20078 for (
int ij2 = 0; ij2 < 1; ++ij2)
20086 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20088 if (j2valid[iij2] &&
20092 j2valid[iij2] =
false;
20098 cj2 = cj2array[ij2];
20099 sj2 = sj2array[ij2];
20101 IkReal evalcond[8];
20102 IkReal x944 =
IKsin(j2);
20103 IkReal x945 =
IKcos(j2);
20104 IkReal x946 = ((1.0) * sj0);
20105 evalcond[0] = (new_r21 + x944);
20106 evalcond[1] = ((((-1.0) * x945)) + new_r20);
20107 evalcond[2] = (((new_r02 * x944)) + new_r10);
20108 evalcond[3] = (((cj0 * x945)) + new_r11);
20109 evalcond[4] = ((((-1.0) * x944 * x946)) + new_r00);
20110 evalcond[5] = ((((-1.0) * x945 * x946)) + new_r01);
20111 evalcond[6] = (((cj0 * new_r10)) + (((-1.0) * new_r00 * x946)) + x944);
20112 evalcond[7] = ((((-1.0) * new_r01 * x946)) + ((cj0 * new_r11)) + x945);
20127 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20128 vinfos[0].jointtype = 1;
20129 vinfos[0].foffset = j0;
20130 vinfos[0].indices[0] = _ij0[0];
20131 vinfos[0].indices[1] = _ij0[1];
20132 vinfos[0].maxsolutions = _nj0;
20133 vinfos[1].jointtype = 1;
20134 vinfos[1].foffset = j1;
20135 vinfos[1].indices[0] = _ij1[0];
20136 vinfos[1].indices[1] = _ij1[1];
20137 vinfos[1].maxsolutions = _nj1;
20138 vinfos[2].jointtype = 1;
20139 vinfos[2].foffset = j2;
20140 vinfos[2].indices[0] = _ij2[0];
20141 vinfos[2].indices[1] = _ij2[1];
20142 vinfos[2].maxsolutions = _nj2;
20143 vinfos[3].jointtype = 1;
20144 vinfos[3].foffset = j3;
20145 vinfos[3].indices[0] = _ij3[0];
20146 vinfos[3].indices[1] = _ij3[1];
20147 vinfos[3].maxsolutions = _nj3;
20148 vinfos[4].jointtype = 1;
20149 vinfos[4].foffset = j4;
20150 vinfos[4].indices[0] = _ij4[0];
20151 vinfos[4].indices[1] = _ij4[1];
20152 vinfos[4].maxsolutions = _nj4;
20153 vinfos[5].jointtype = 1;
20154 vinfos[5].foffset = j5;
20155 vinfos[5].indices[0] = _ij5[0];
20156 vinfos[5].indices[1] = _ij5[1];
20157 vinfos[5].maxsolutions = _nj5;
20158 vinfos[6].jointtype = 1;
20159 vinfos[6].foffset = j6;
20160 vinfos[6].indices[0] = _ij6[0];
20161 vinfos[6].indices[1] = _ij6[1];
20162 vinfos[6].maxsolutions = _nj6;
20163 std::vector<int> vfree(0);
20170 if (bgotonextstatement)
20172 bool bgotonextstatement =
true;
20175 evalcond[0] = ((-3.14159265358979) +
20176 (
IKfmod(((3.14159265358979) + (
IKabs(((1.5707963267949) + j1)))),
20177 6.28318530717959)));
20178 evalcond[1] = new_r22;
20179 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20180 IKabs(evalcond[1]) < 0.0000050000000000)
20182 bgotonextstatement =
false;
20184 IkReal j2array[1], cj2array[1], sj2array[1];
20185 bool j2valid[1] = {
false };
20192 j2array[0] =
IKatan2(new_r21, ((-1.0) * new_r20));
20193 sj2array[0] =
IKsin(j2array[0]);
20194 cj2array[0] =
IKcos(j2array[0]);
20195 if (j2array[0] >
IKPI)
20197 j2array[0] -=
IK2PI;
20199 else if (j2array[0] < -
IKPI)
20201 j2array[0] +=
IK2PI;
20204 for (
int ij2 = 0; ij2 < 1; ++ij2)
20212 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20214 if (j2valid[iij2] &&
20218 j2valid[iij2] =
false;
20224 cj2 = cj2array[ij2];
20225 sj2 = sj2array[ij2];
20227 IkReal evalcond[8];
20228 IkReal x947 =
IKcos(j2);
20229 IkReal x948 =
IKsin(j2);
20230 IkReal x949 = ((1.0) * sj0);
20231 IkReal x950 = ((1.0) * x948);
20232 evalcond[0] = (new_r20 + x947);
20233 evalcond[1] = (new_r21 + (((-1.0) * x950)));
20234 evalcond[2] = (((cj0 * x947)) + new_r11);
20235 evalcond[3] = (new_r10 + (((-1.0) * new_r02 * x950)));
20236 evalcond[4] = ((((-1.0) * x948 * x949)) + new_r00);
20237 evalcond[5] = ((((-1.0) * x947 * x949)) + new_r01);
20238 evalcond[6] = (((cj0 * new_r10)) + (((-1.0) * new_r00 * x949)) + x948);
20239 evalcond[7] = ((((-1.0) * new_r01 * x949)) + ((cj0 * new_r11)) + x947);
20254 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20255 vinfos[0].jointtype = 1;
20256 vinfos[0].foffset = j0;
20257 vinfos[0].indices[0] = _ij0[0];
20258 vinfos[0].indices[1] = _ij0[1];
20259 vinfos[0].maxsolutions = _nj0;
20260 vinfos[1].jointtype = 1;
20261 vinfos[1].foffset = j1;
20262 vinfos[1].indices[0] = _ij1[0];
20263 vinfos[1].indices[1] = _ij1[1];
20264 vinfos[1].maxsolutions = _nj1;
20265 vinfos[2].jointtype = 1;
20266 vinfos[2].foffset = j2;
20267 vinfos[2].indices[0] = _ij2[0];
20268 vinfos[2].indices[1] = _ij2[1];
20269 vinfos[2].maxsolutions = _nj2;
20270 vinfos[3].jointtype = 1;
20271 vinfos[3].foffset = j3;
20272 vinfos[3].indices[0] = _ij3[0];
20273 vinfos[3].indices[1] = _ij3[1];
20274 vinfos[3].maxsolutions = _nj3;
20275 vinfos[4].jointtype = 1;
20276 vinfos[4].foffset = j4;
20277 vinfos[4].indices[0] = _ij4[0];
20278 vinfos[4].indices[1] = _ij4[1];
20279 vinfos[4].maxsolutions = _nj4;
20280 vinfos[5].jointtype = 1;
20281 vinfos[5].foffset = j5;
20282 vinfos[5].indices[0] = _ij5[0];
20283 vinfos[5].indices[1] = _ij5[1];
20284 vinfos[5].maxsolutions = _nj5;
20285 vinfos[6].jointtype = 1;
20286 vinfos[6].foffset = j6;
20287 vinfos[6].indices[0] = _ij6[0];
20288 vinfos[6].indices[1] = _ij6[1];
20289 vinfos[6].maxsolutions = _nj6;
20290 std::vector<int> vfree(0);
20297 if (bgotonextstatement)
20299 bool bgotonextstatement =
true;
20303 ((-3.14159265358979) +
20304 (
IKfmod(((3.14159265358979) + (
IKabs(j0))), 6.28318530717959)));
20305 evalcond[1] = new_r12;
20306 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20307 IKabs(evalcond[1]) < 0.0000050000000000)
20309 bgotonextstatement =
false;
20311 IkReal j2array[1], cj2array[1], sj2array[1];
20312 bool j2valid[1] = {
false };
20319 j2array[0] =
IKatan2(((-1.0) * new_r10), ((-1.0) * new_r11));
20320 sj2array[0] =
IKsin(j2array[0]);
20321 cj2array[0] =
IKcos(j2array[0]);
20322 if (j2array[0] >
IKPI)
20324 j2array[0] -=
IK2PI;
20326 else if (j2array[0] < -
IKPI)
20328 j2array[0] +=
IK2PI;
20331 for (
int ij2 = 0; ij2 < 1; ++ij2)
20339 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20341 if (j2valid[iij2] &&
20345 j2valid[iij2] =
false;
20351 cj2 = cj2array[ij2];
20352 sj2 = sj2array[ij2];
20354 IkReal evalcond[8];
20355 IkReal x951 =
IKsin(j2);
20356 IkReal x952 =
IKcos(j2);
20357 IkReal x953 = ((1.0) * sj1);
20358 IkReal x954 = ((1.0) * x951);
20359 evalcond[0] = (new_r10 + x951);
20360 evalcond[1] = (new_r11 + x952);
20361 evalcond[2] = (((sj1 * x951)) + new_r21);
20362 evalcond[3] = (((cj1 * x952)) + new_r00);
20363 evalcond[4] = (new_r20 + (((-1.0) * x952 * x953)));
20364 evalcond[5] = ((((-1.0) * cj1 * x954)) + new_r01);
20366 (((cj1 * new_r00)) + x952 + (((-1.0) * new_r20 * x953)));
20367 evalcond[7] = ((((-1.0) * new_r21 * x953)) + ((cj1 * new_r01)) +
20368 (((-1.0) * x954)));
20383 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20384 vinfos[0].jointtype = 1;
20385 vinfos[0].foffset = j0;
20386 vinfos[0].indices[0] = _ij0[0];
20387 vinfos[0].indices[1] = _ij0[1];
20388 vinfos[0].maxsolutions = _nj0;
20389 vinfos[1].jointtype = 1;
20390 vinfos[1].foffset = j1;
20391 vinfos[1].indices[0] = _ij1[0];
20392 vinfos[1].indices[1] = _ij1[1];
20393 vinfos[1].maxsolutions = _nj1;
20394 vinfos[2].jointtype = 1;
20395 vinfos[2].foffset = j2;
20396 vinfos[2].indices[0] = _ij2[0];
20397 vinfos[2].indices[1] = _ij2[1];
20398 vinfos[2].maxsolutions = _nj2;
20399 vinfos[3].jointtype = 1;
20400 vinfos[3].foffset = j3;
20401 vinfos[3].indices[0] = _ij3[0];
20402 vinfos[3].indices[1] = _ij3[1];
20403 vinfos[3].maxsolutions = _nj3;
20404 vinfos[4].jointtype = 1;
20405 vinfos[4].foffset = j4;
20406 vinfos[4].indices[0] = _ij4[0];
20407 vinfos[4].indices[1] = _ij4[1];
20408 vinfos[4].maxsolutions = _nj4;
20409 vinfos[5].jointtype = 1;
20410 vinfos[5].foffset = j5;
20411 vinfos[5].indices[0] = _ij5[0];
20412 vinfos[5].indices[1] = _ij5[1];
20413 vinfos[5].maxsolutions = _nj5;
20414 vinfos[6].jointtype = 1;
20415 vinfos[6].foffset = j6;
20416 vinfos[6].indices[0] = _ij6[0];
20417 vinfos[6].indices[1] = _ij6[1];
20418 vinfos[6].maxsolutions = _nj6;
20419 std::vector<int> vfree(0);
20426 if (bgotonextstatement)
20428 bool bgotonextstatement =
true;
20432 ((-3.14159265358979) +
20433 (
IKfmod(((3.14159265358979) + (
IKabs(((-3.14159265358979) + j0)))),
20434 6.28318530717959)));
20435 evalcond[1] = new_r12;
20436 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20437 IKabs(evalcond[1]) < 0.0000050000000000)
20439 bgotonextstatement =
false;
20441 IkReal j2array[1], cj2array[1], sj2array[1];
20442 bool j2valid[1] = {
false };
20448 j2array[0] =
IKatan2(new_r10, new_r11);
20449 sj2array[0] =
IKsin(j2array[0]);
20450 cj2array[0] =
IKcos(j2array[0]);
20451 if (j2array[0] >
IKPI)
20453 j2array[0] -=
IK2PI;
20455 else if (j2array[0] < -
IKPI)
20457 j2array[0] +=
IK2PI;
20460 for (
int ij2 = 0; ij2 < 1; ++ij2)
20468 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20470 if (j2valid[iij2] &&
20471 IKabs(cj2array[ij2] - cj2array[iij2]) <
20475 j2valid[iij2] =
false;
20481 cj2 = cj2array[ij2];
20482 sj2 = sj2array[ij2];
20484 IkReal evalcond[8];
20485 IkReal x955 =
IKsin(j2);
20486 IkReal x956 =
IKcos(j2);
20487 IkReal x957 = ((1.0) * sj1);
20488 IkReal x958 = ((1.0) * new_r00);
20489 IkReal x959 = ((1.0) * new_r01);
20490 IkReal x960 = ((1.0) * x955);
20491 evalcond[0] = (((sj1 * x955)) + new_r21);
20492 evalcond[1] = ((((-1.0) * new_r10)) + x955);
20493 evalcond[2] = ((((-1.0) * new_r11)) + x956);
20494 evalcond[3] = ((((-1.0) * x956 * x957)) + new_r20);
20495 evalcond[4] = (((cj1 * x956)) + (((-1.0) * x958)));
20496 evalcond[5] = ((((-1.0) * cj1 * x960)) + (((-1.0) * x959)));
20498 ((((-1.0) * cj1 * x958)) + x956 + (((-1.0) * new_r20 * x957)));
20499 evalcond[7] = ((((-1.0) * new_r21 * x957)) +
20500 (((-1.0) * cj1 * x959)) + (((-1.0) * x960)));
20515 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20516 vinfos[0].jointtype = 1;
20517 vinfos[0].foffset = j0;
20518 vinfos[0].indices[0] = _ij0[0];
20519 vinfos[0].indices[1] = _ij0[1];
20520 vinfos[0].maxsolutions = _nj0;
20521 vinfos[1].jointtype = 1;
20522 vinfos[1].foffset = j1;
20523 vinfos[1].indices[0] = _ij1[0];
20524 vinfos[1].indices[1] = _ij1[1];
20525 vinfos[1].maxsolutions = _nj1;
20526 vinfos[2].jointtype = 1;
20527 vinfos[2].foffset = j2;
20528 vinfos[2].indices[0] = _ij2[0];
20529 vinfos[2].indices[1] = _ij2[1];
20530 vinfos[2].maxsolutions = _nj2;
20531 vinfos[3].jointtype = 1;
20532 vinfos[3].foffset = j3;
20533 vinfos[3].indices[0] = _ij3[0];
20534 vinfos[3].indices[1] = _ij3[1];
20535 vinfos[3].maxsolutions = _nj3;
20536 vinfos[4].jointtype = 1;
20537 vinfos[4].foffset = j4;
20538 vinfos[4].indices[0] = _ij4[0];
20539 vinfos[4].indices[1] = _ij4[1];
20540 vinfos[4].maxsolutions = _nj4;
20541 vinfos[5].jointtype = 1;
20542 vinfos[5].foffset = j5;
20543 vinfos[5].indices[0] = _ij5[0];
20544 vinfos[5].indices[1] = _ij5[1];
20545 vinfos[5].maxsolutions = _nj5;
20546 vinfos[6].jointtype = 1;
20547 vinfos[6].foffset = j6;
20548 vinfos[6].indices[0] = _ij6[0];
20549 vinfos[6].indices[1] = _ij6[1];
20550 vinfos[6].maxsolutions = _nj6;
20551 std::vector<int> vfree(0);
20558 if (bgotonextstatement)
20560 bool bgotonextstatement =
true;
20564 ((-3.14159265358979) +
20565 (
IKfmod(((3.14159265358979) + (
IKabs(((-1.5707963267949) + j0)))),
20566 6.28318530717959)));
20567 evalcond[1] = new_r02;
20568 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20569 IKabs(evalcond[1]) < 0.0000050000000000)
20571 bgotonextstatement =
false;
20573 IkReal j2array[1], cj2array[1], sj2array[1];
20574 bool j2valid[1] = {
false };
20581 j2array[0] =
IKatan2(new_r00, new_r01);
20582 sj2array[0] =
IKsin(j2array[0]);
20583 cj2array[0] =
IKcos(j2array[0]);
20584 if (j2array[0] >
IKPI)
20586 j2array[0] -=
IK2PI;
20588 else if (j2array[0] < -
IKPI)
20590 j2array[0] +=
IK2PI;
20593 for (
int ij2 = 0; ij2 < 1; ++ij2)
20601 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20603 if (j2valid[iij2] &&
20604 IKabs(cj2array[ij2] - cj2array[iij2]) <
20606 IKabs(sj2array[ij2] - sj2array[iij2]) <
20609 j2valid[iij2] =
false;
20615 cj2 = cj2array[ij2];
20616 sj2 = sj2array[ij2];
20618 IkReal evalcond[8];
20619 IkReal x961 =
IKsin(j2);
20620 IkReal x962 =
IKcos(j2);
20621 IkReal x963 = ((1.0) * sj1);
20622 IkReal x964 = ((1.0) * x961);
20623 evalcond[0] = (((sj1 * x961)) + new_r21);
20624 evalcond[1] = ((((-1.0) * new_r00)) + x961);
20625 evalcond[2] = ((((-1.0) * new_r01)) + x962);
20626 evalcond[3] = (((cj1 * x962)) + new_r10);
20627 evalcond[4] = ((((-1.0) * x962 * x963)) + new_r20);
20628 evalcond[5] = ((((-1.0) * cj1 * x964)) + new_r11);
20630 (((cj1 * new_r10)) + x962 + (((-1.0) * new_r20 * x963)));
20631 evalcond[7] = ((((-1.0) * new_r21 * x963)) + ((cj1 * new_r11)) +
20632 (((-1.0) * x964)));
20647 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20648 vinfos[0].jointtype = 1;
20649 vinfos[0].foffset = j0;
20650 vinfos[0].indices[0] = _ij0[0];
20651 vinfos[0].indices[1] = _ij0[1];
20652 vinfos[0].maxsolutions = _nj0;
20653 vinfos[1].jointtype = 1;
20654 vinfos[1].foffset = j1;
20655 vinfos[1].indices[0] = _ij1[0];
20656 vinfos[1].indices[1] = _ij1[1];
20657 vinfos[1].maxsolutions = _nj1;
20658 vinfos[2].jointtype = 1;
20659 vinfos[2].foffset = j2;
20660 vinfos[2].indices[0] = _ij2[0];
20661 vinfos[2].indices[1] = _ij2[1];
20662 vinfos[2].maxsolutions = _nj2;
20663 vinfos[3].jointtype = 1;
20664 vinfos[3].foffset = j3;
20665 vinfos[3].indices[0] = _ij3[0];
20666 vinfos[3].indices[1] = _ij3[1];
20667 vinfos[3].maxsolutions = _nj3;
20668 vinfos[4].jointtype = 1;
20669 vinfos[4].foffset = j4;
20670 vinfos[4].indices[0] = _ij4[0];
20671 vinfos[4].indices[1] = _ij4[1];
20672 vinfos[4].maxsolutions = _nj4;
20673 vinfos[5].jointtype = 1;
20674 vinfos[5].foffset = j5;
20675 vinfos[5].indices[0] = _ij5[0];
20676 vinfos[5].indices[1] = _ij5[1];
20677 vinfos[5].maxsolutions = _nj5;
20678 vinfos[6].jointtype = 1;
20679 vinfos[6].foffset = j6;
20680 vinfos[6].indices[0] = _ij6[0];
20681 vinfos[6].indices[1] = _ij6[1];
20682 vinfos[6].maxsolutions = _nj6;
20683 std::vector<int> vfree(0);
20690 if (bgotonextstatement)
20692 bool bgotonextstatement =
true;
20696 ((-3.14159265358979) +
20697 (
IKfmod(((3.14159265358979) + (
IKabs(((1.5707963267949) + j0)))),
20698 6.28318530717959)));
20699 evalcond[1] = new_r02;
20700 if (
IKabs(evalcond[0]) < 0.0000050000000000 &&
20701 IKabs(evalcond[1]) < 0.0000050000000000)
20703 bgotonextstatement =
false;
20705 IkReal j2array[1], cj2array[1], sj2array[1];
20706 bool j2valid[1] = {
false };
20713 j2array[0] =
IKatan2(((-1.0) * new_r00), ((-1.0) * new_r01));
20714 sj2array[0] =
IKsin(j2array[0]);
20715 cj2array[0] =
IKcos(j2array[0]);
20716 if (j2array[0] >
IKPI)
20718 j2array[0] -=
IK2PI;
20720 else if (j2array[0] < -
IKPI)
20722 j2array[0] +=
IK2PI;
20725 for (
int ij2 = 0; ij2 < 1; ++ij2)
20733 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
20735 if (j2valid[iij2] &&
20736 IKabs(cj2array[ij2] - cj2array[iij2]) <
20738 IKabs(sj2array[ij2] - sj2array[iij2]) <
20741 j2valid[iij2] =
false;
20747 cj2 = cj2array[ij2];
20748 sj2 = sj2array[ij2];
20750 IkReal evalcond[8];
20751 IkReal x965 =
IKsin(j2);
20752 IkReal x966 =
IKcos(j2);
20753 IkReal x967 = ((1.0) * new_r11);
20754 IkReal x968 = ((1.0) * sj1);
20755 IkReal x969 = ((1.0) * new_r10);
20756 IkReal x970 = ((1.0) * x965);
20757 evalcond[0] = (new_r00 + x965);
20758 evalcond[1] = (new_r01 + x966);
20759 evalcond[2] = (((sj1 * x965)) + new_r21);
20760 evalcond[3] = ((((-1.0) * x966 * x968)) + new_r20);
20761 evalcond[4] = (((cj1 * x966)) + (((-1.0) * x969)));
20762 evalcond[5] = ((((-1.0) * cj1 * x970)) + (((-1.0) * x967)));
20763 evalcond[6] = ((((-1.0) * cj1 * x969)) + x966 +
20764 (((-1.0) * new_r20 * x968)));
20765 evalcond[7] = ((((-1.0) * cj1 * x967)) +
20766 (((-1.0) * new_r21 * x968)) + (((-1.0) * x970)));
20781 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20782 vinfos[0].jointtype = 1;
20783 vinfos[0].foffset = j0;
20784 vinfos[0].indices[0] = _ij0[0];
20785 vinfos[0].indices[1] = _ij0[1];
20786 vinfos[0].maxsolutions = _nj0;
20787 vinfos[1].jointtype = 1;
20788 vinfos[1].foffset = j1;
20789 vinfos[1].indices[0] = _ij1[0];
20790 vinfos[1].indices[1] = _ij1[1];
20791 vinfos[1].maxsolutions = _nj1;
20792 vinfos[2].jointtype = 1;
20793 vinfos[2].foffset = j2;
20794 vinfos[2].indices[0] = _ij2[0];
20795 vinfos[2].indices[1] = _ij2[1];
20796 vinfos[2].maxsolutions = _nj2;
20797 vinfos[3].jointtype = 1;
20798 vinfos[3].foffset = j3;
20799 vinfos[3].indices[0] = _ij3[0];
20800 vinfos[3].indices[1] = _ij3[1];
20801 vinfos[3].maxsolutions = _nj3;
20802 vinfos[4].jointtype = 1;
20803 vinfos[4].foffset = j4;
20804 vinfos[4].indices[0] = _ij4[0];
20805 vinfos[4].indices[1] = _ij4[1];
20806 vinfos[4].maxsolutions = _nj4;
20807 vinfos[5].jointtype = 1;
20808 vinfos[5].foffset = j5;
20809 vinfos[5].indices[0] = _ij5[0];
20810 vinfos[5].indices[1] = _ij5[1];
20811 vinfos[5].maxsolutions = _nj5;
20812 vinfos[6].jointtype = 1;
20813 vinfos[6].foffset = j6;
20814 vinfos[6].indices[0] = _ij6[0];
20815 vinfos[6].indices[1] = _ij6[1];
20816 vinfos[6].maxsolutions = _nj6;
20817 std::vector<int> vfree(0);
20824 if (bgotonextstatement)
20826 bool bgotonextstatement =
true;
20829 evalcond[0] = ((
IKabs(new_r20)) + (
IKabs(new_r21)));
20830 if (
IKabs(evalcond[0]) < 0.0000050000000000)
20832 bgotonextstatement =
false;
20839 j2eval[0] =
IKabs(new_r22);
20840 if (
IKabs(j2eval[0]) < 0.0000000100000000)
20846 IkReal op[2 + 1], zeror[2];
20848 op[0] = ((-1.0) * new_r22);
20851 polyroots2(op, zeror, numroots);
20852 IkReal j2array[2], cj2array[2], sj2array[2], tempj2array[1];
20853 int numsolutions = 0;
20854 for (
int ij2 = 0; ij2 < numroots; ++ij2)
20856 IkReal htj2 = zeror[ij2];
20857 tempj2array[0] = ((2.0) * (atan(htj2)));
20858 for (
int kj2 = 0; kj2 < 1; ++kj2)
20860 j2array[numsolutions] = tempj2array[kj2];
20861 if (j2array[numsolutions] >
IKPI)
20863 j2array[numsolutions] -=
IK2PI;
20865 else if (j2array[numsolutions] < -
IKPI)
20867 j2array[numsolutions] +=
IK2PI;
20869 sj2array[numsolutions] =
IKsin(j2array[numsolutions]);
20870 cj2array[numsolutions] =
IKcos(j2array[numsolutions]);
20874 bool j2valid[2] = {
true,
true };
20876 for (
int ij2 = 0; ij2 < numsolutions; ++ij2)
20883 cj2 = cj2array[ij2];
20884 sj2 = sj2array[ij2];
20885 htj2 =
IKtan(j2 / 2);
20889 for (
int iij2 = ij2 + 1; iij2 < numsolutions; ++iij2)
20891 if (j2valid[iij2] &&
20892 IKabs(cj2array[ij2] - cj2array[iij2]) <
20894 IKabs(sj2array[ij2] - sj2array[iij2]) <
20897 j2valid[iij2] =
false;
20903 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
20904 vinfos[0].jointtype = 1;
20905 vinfos[0].foffset = j0;
20906 vinfos[0].indices[0] = _ij0[0];
20907 vinfos[0].indices[1] = _ij0[1];
20908 vinfos[0].maxsolutions = _nj0;
20909 vinfos[1].jointtype = 1;
20910 vinfos[1].foffset = j1;
20911 vinfos[1].indices[0] = _ij1[0];
20912 vinfos[1].indices[1] = _ij1[1];
20913 vinfos[1].maxsolutions = _nj1;
20914 vinfos[2].jointtype = 1;
20915 vinfos[2].foffset = j2;
20916 vinfos[2].indices[0] = _ij2[0];
20917 vinfos[2].indices[1] = _ij2[1];
20918 vinfos[2].maxsolutions = _nj2;
20919 vinfos[3].jointtype = 1;
20920 vinfos[3].foffset = j3;
20921 vinfos[3].indices[0] = _ij3[0];
20922 vinfos[3].indices[1] = _ij3[1];
20923 vinfos[3].maxsolutions = _nj3;
20924 vinfos[4].jointtype = 1;
20925 vinfos[4].foffset = j4;
20926 vinfos[4].indices[0] = _ij4[0];
20927 vinfos[4].indices[1] = _ij4[1];
20928 vinfos[4].maxsolutions = _nj4;
20929 vinfos[5].jointtype = 1;
20930 vinfos[5].foffset = j5;
20931 vinfos[5].indices[0] = _ij5[0];
20932 vinfos[5].indices[1] = _ij5[1];
20933 vinfos[5].maxsolutions = _nj5;
20934 vinfos[6].jointtype = 1;
20935 vinfos[6].foffset = j6;
20936 vinfos[6].indices[0] = _ij6[0];
20937 vinfos[6].indices[1] = _ij6[1];
20938 vinfos[6].maxsolutions = _nj6;
20939 std::vector<int> vfree(0);
20947 if (bgotonextstatement)
20949 bool bgotonextstatement =
true;
20954 bgotonextstatement =
false;
20958 if (bgotonextstatement)
20975 IkReal j2array[1], cj2array[1], sj2array[1];
20976 bool j2valid[1] = {
false };
20983 IkReal x971 = x972.
value;
20996 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1)))))) <
21000 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1)))))) -
21003 j2array[0] =
IKatan2(((-1.0) * new_r21 * x971),
21005 ((((cj0 * new_r21)) + (((-1.0) * new_r10 * sj1))))));
21006 sj2array[0] =
IKsin(j2array[0]);
21007 cj2array[0] =
IKcos(j2array[0]);
21008 if (j2array[0] >
IKPI)
21010 j2array[0] -=
IK2PI;
21012 else if (j2array[0] < -
IKPI)
21014 j2array[0] +=
IK2PI;
21017 for (
int ij2 = 0; ij2 < 1; ++ij2)
21025 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
21027 if (j2valid[iij2] &&
21031 j2valid[iij2] =
false;
21037 cj2 = cj2array[ij2];
21038 sj2 = sj2array[ij2];
21040 IkReal evalcond[12];
21041 IkReal x975 =
IKsin(j2);
21042 IkReal x976 =
IKcos(j2);
21043 IkReal x977 = ((1.0) * sj0);
21044 IkReal x978 = ((1.0) * sj1);
21045 IkReal x979 = (cj0 * new_r00);
21046 IkReal x980 = (cj1 * sj0);
21047 IkReal x981 = (cj0 * new_r01);
21048 IkReal x982 = (cj1 * x976);
21049 IkReal x983 = (cj1 * x975);
21050 evalcond[0] = (((sj1 * x975)) + new_r21);
21051 evalcond[1] = ((((-1.0) * x976 * x978)) + new_r20);
21052 evalcond[2] = ((((-1.0) * new_r00 * x977)) + ((cj0 * new_r10)) + x975);
21053 evalcond[3] = ((((-1.0) * new_r01 * x977)) + ((cj0 * new_r11)) + x976);
21054 evalcond[4] = (((new_r10 * sj0)) + x982 + x979);
21055 evalcond[5] = (((x976 * x980)) + new_r10 + ((cj0 * x975)));
21056 evalcond[6] = ((((-1.0) * x983)) + ((new_r11 * sj0)) + x981);
21057 evalcond[7] = (new_r00 + ((cj0 * x982)) + (((-1.0) * x975 * x977)));
21058 evalcond[8] = ((((-1.0) * x977 * x983)) + new_r11 + ((cj0 * x976)));
21059 evalcond[9] = ((((-1.0) * x976 * x977)) + new_r01 + (((-1.0) * cj0 * x983)));
21061 ((((-1.0) * new_r20 * x978)) + ((cj1 * x979)) + ((new_r10 * x980)) + x976);
21062 evalcond[11] = (((cj1 * x981)) + (((-1.0) * x975)) + (((-1.0) * new_r21 * x978)) +
21063 ((new_r11 * x980)));
21082 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
21083 vinfos[0].jointtype = 1;
21084 vinfos[0].foffset = j0;
21085 vinfos[0].indices[0] = _ij0[0];
21086 vinfos[0].indices[1] = _ij0[1];
21087 vinfos[0].maxsolutions = _nj0;
21088 vinfos[1].jointtype = 1;
21089 vinfos[1].foffset = j1;
21090 vinfos[1].indices[0] = _ij1[0];
21091 vinfos[1].indices[1] = _ij1[1];
21092 vinfos[1].maxsolutions = _nj1;
21093 vinfos[2].jointtype = 1;
21094 vinfos[2].foffset = j2;
21095 vinfos[2].indices[0] = _ij2[0];
21096 vinfos[2].indices[1] = _ij2[1];
21097 vinfos[2].maxsolutions = _nj2;
21098 vinfos[3].jointtype = 1;
21099 vinfos[3].foffset = j3;
21100 vinfos[3].indices[0] = _ij3[0];
21101 vinfos[3].indices[1] = _ij3[1];
21102 vinfos[3].maxsolutions = _nj3;
21103 vinfos[4].jointtype = 1;
21104 vinfos[4].foffset = j4;
21105 vinfos[4].indices[0] = _ij4[0];
21106 vinfos[4].indices[1] = _ij4[1];
21107 vinfos[4].maxsolutions = _nj4;
21108 vinfos[5].jointtype = 1;
21109 vinfos[5].foffset = j5;
21110 vinfos[5].indices[0] = _ij5[0];
21111 vinfos[5].indices[1] = _ij5[1];
21112 vinfos[5].maxsolutions = _nj5;
21113 vinfos[6].jointtype = 1;
21114 vinfos[6].foffset = j6;
21115 vinfos[6].indices[0] = _ij6[0];
21116 vinfos[6].indices[1] = _ij6[1];
21117 vinfos[6].maxsolutions = _nj6;
21118 std::vector<int> vfree(0);
21129 IkReal j2array[1], cj2array[1], sj2array[1];
21130 bool j2valid[1] = {
false };
21137 IkReal x984 = x985.
value;
21145 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1)))))) <
21149 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1)))))) -
21152 j2array[0] =
IKatan2(((-1.0) * new_r21 * x984),
21153 (x984 * (x986.
value) *
21154 (((((-1.0) * cj1 * new_r21 * sj0)) + (((-1.0) * new_r11 * sj1))))));
21155 sj2array[0] =
IKsin(j2array[0]);
21156 cj2array[0] =
IKcos(j2array[0]);
21157 if (j2array[0] >
IKPI)
21159 j2array[0] -=
IK2PI;
21161 else if (j2array[0] < -
IKPI)
21163 j2array[0] +=
IK2PI;
21166 for (
int ij2 = 0; ij2 < 1; ++ij2)
21174 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
21179 j2valid[iij2] =
false;
21185 cj2 = cj2array[ij2];
21186 sj2 = sj2array[ij2];
21188 IkReal evalcond[12];
21189 IkReal x987 =
IKsin(j2);
21190 IkReal x988 =
IKcos(j2);
21191 IkReal x989 = ((1.0) * sj0);
21192 IkReal x990 = ((1.0) * sj1);
21193 IkReal x991 = (cj0 * new_r00);
21194 IkReal x992 = (cj1 * sj0);
21195 IkReal x993 = (cj0 * new_r01);
21196 IkReal x994 = (cj1 * x988);
21197 IkReal x995 = (cj1 * x987);
21198 evalcond[0] = (((sj1 * x987)) + new_r21);
21199 evalcond[1] = (new_r20 + (((-1.0) * x988 * x990)));
21200 evalcond[2] = ((((-1.0) * new_r00 * x989)) + ((cj0 * new_r10)) + x987);
21201 evalcond[3] = ((((-1.0) * new_r01 * x989)) + ((cj0 * new_r11)) + x988);
21202 evalcond[4] = (((new_r10 * sj0)) + x991 + x994);
21203 evalcond[5] = (((x988 * x992)) + new_r10 + ((cj0 * x987)));
21204 evalcond[6] = ((((-1.0) * x995)) + ((new_r11 * sj0)) + x993);
21205 evalcond[7] = (((cj0 * x994)) + (((-1.0) * x987 * x989)) + new_r00);
21206 evalcond[8] = (new_r11 + (((-1.0) * x989 * x995)) + ((cj0 * x988)));
21207 evalcond[9] = ((((-1.0) * x988 * x989)) + (((-1.0) * cj0 * x995)) + new_r01);
21209 (((cj1 * x991)) + ((new_r10 * x992)) + (((-1.0) * new_r20 * x990)) + x988);
21210 evalcond[11] = (((cj1 * x993)) + (((-1.0) * x987)) + ((new_r11 * x992)) +
21211 (((-1.0) * new_r21 * x990)));
21230 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
21231 vinfos[0].jointtype = 1;
21232 vinfos[0].foffset = j0;
21233 vinfos[0].indices[0] = _ij0[0];
21234 vinfos[0].indices[1] = _ij0[1];
21235 vinfos[0].maxsolutions = _nj0;
21236 vinfos[1].jointtype = 1;
21237 vinfos[1].foffset = j1;
21238 vinfos[1].indices[0] = _ij1[0];
21239 vinfos[1].indices[1] = _ij1[1];
21240 vinfos[1].maxsolutions = _nj1;
21241 vinfos[2].jointtype = 1;
21242 vinfos[2].foffset = j2;
21243 vinfos[2].indices[0] = _ij2[0];
21244 vinfos[2].indices[1] = _ij2[1];
21245 vinfos[2].maxsolutions = _nj2;
21246 vinfos[3].jointtype = 1;
21247 vinfos[3].foffset = j3;
21248 vinfos[3].indices[0] = _ij3[0];
21249 vinfos[3].indices[1] = _ij3[1];
21250 vinfos[3].maxsolutions = _nj3;
21251 vinfos[4].jointtype = 1;
21252 vinfos[4].foffset = j4;
21253 vinfos[4].indices[0] = _ij4[0];
21254 vinfos[4].indices[1] = _ij4[1];
21255 vinfos[4].maxsolutions = _nj4;
21256 vinfos[5].jointtype = 1;
21257 vinfos[5].foffset = j5;
21258 vinfos[5].indices[0] = _ij5[0];
21259 vinfos[5].indices[1] = _ij5[1];
21260 vinfos[5].maxsolutions = _nj5;
21261 vinfos[6].jointtype = 1;
21262 vinfos[6].foffset = j6;
21263 vinfos[6].indices[0] = _ij6[0];
21264 vinfos[6].indices[1] = _ij6[1];
21265 vinfos[6].maxsolutions = _nj6;
21266 std::vector<int> vfree(0);
21277 IkReal j2array[1], cj2array[1], sj2array[1];
21278 bool j2valid[1] = {
false };
21291 j2array[0] = ((-1.5707963267949) + (x996.
value) + (((1.5707963267949) * (x997.
value))));
21292 sj2array[0] =
IKsin(j2array[0]);
21293 cj2array[0] =
IKcos(j2array[0]);
21294 if (j2array[0] >
IKPI)
21296 j2array[0] -=
IK2PI;
21298 else if (j2array[0] < -
IKPI)
21300 j2array[0] +=
IK2PI;
21303 for (
int ij2 = 0; ij2 < 1; ++ij2)
21311 for (
int iij2 = ij2 + 1; iij2 < 1; ++iij2)
21316 j2valid[iij2] =
false;
21322 cj2 = cj2array[ij2];
21323 sj2 = sj2array[ij2];
21325 IkReal evalcond[12];
21326 IkReal x998 =
IKsin(j2);
21327 IkReal x999 =
IKcos(j2);
21328 IkReal x1000 = ((1.0) * sj0);
21329 IkReal x1001 = ((1.0) * sj1);
21330 IkReal x1002 = (cj0 * new_r00);
21331 IkReal x1003 = (cj1 * sj0);
21332 IkReal x1004 = (cj0 * new_r01);
21333 IkReal x1005 = (cj1 * x999);
21334 IkReal x1006 = (cj1 * x998);
21335 evalcond[0] = (new_r21 + ((sj1 * x998)));
21336 evalcond[1] = ((((-1.0) * x1001 * x999)) + new_r20);
21337 evalcond[2] = ((((-1.0) * new_r00 * x1000)) + ((cj0 * new_r10)) + x998);
21338 evalcond[3] = ((((-1.0) * new_r01 * x1000)) + ((cj0 * new_r11)) + x999);
21339 evalcond[4] = (x1005 + x1002 + ((new_r10 * sj0)));
21340 evalcond[5] = (((x1003 * x999)) + ((cj0 * x998)) + new_r10);
21341 evalcond[6] = ((((-1.0) * x1006)) + x1004 + ((new_r11 * sj0)));
21342 evalcond[7] = (((cj0 * x1005)) + (((-1.0) * x1000 * x998)) + new_r00);
21343 evalcond[8] = (((cj0 * x999)) + new_r11 + (((-1.0) * x1000 * x1006)));
21344 evalcond[9] = ((((-1.0) * cj0 * x1006)) + (((-1.0) * x1000 * x999)) + new_r01);
21346 (((new_r10 * x1003)) + (((-1.0) * new_r20 * x1001)) + ((cj1 * x1002)) + x999);
21347 evalcond[11] = ((((-1.0) * x998)) + ((new_r11 * x1003)) + (((-1.0) * new_r21 * x1001)) +
21367 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
21368 vinfos[0].jointtype = 1;
21369 vinfos[0].foffset = j0;
21370 vinfos[0].indices[0] = _ij0[0];
21371 vinfos[0].indices[1] = _ij0[1];
21372 vinfos[0].maxsolutions = _nj0;
21373 vinfos[1].jointtype = 1;
21374 vinfos[1].foffset = j1;
21375 vinfos[1].indices[0] = _ij1[0];
21376 vinfos[1].indices[1] = _ij1[1];
21377 vinfos[1].maxsolutions = _nj1;
21378 vinfos[2].jointtype = 1;
21379 vinfos[2].foffset = j2;
21380 vinfos[2].indices[0] = _ij2[0];
21381 vinfos[2].indices[1] = _ij2[1];
21382 vinfos[2].maxsolutions = _nj2;
21383 vinfos[3].jointtype = 1;
21384 vinfos[3].foffset = j3;
21385 vinfos[3].indices[0] = _ij3[0];
21386 vinfos[3].indices[1] = _ij3[1];
21387 vinfos[3].maxsolutions = _nj3;
21388 vinfos[4].jointtype = 1;
21389 vinfos[4].foffset = j4;
21390 vinfos[4].indices[0] = _ij4[0];
21391 vinfos[4].indices[1] = _ij4[1];
21392 vinfos[4].maxsolutions = _nj4;
21393 vinfos[5].jointtype = 1;
21394 vinfos[5].foffset = j5;
21395 vinfos[5].indices[0] = _ij5[0];
21396 vinfos[5].indices[1] = _ij5[1];
21397 vinfos[5].maxsolutions = _nj5;
21398 vinfos[6].jointtype = 1;
21399 vinfos[6].foffset = j6;
21400 vinfos[6].indices[0] = _ij6[0];
21401 vinfos[6].indices[1] = _ij6[1];
21402 vinfos[6].maxsolutions = _nj6;
21403 std::vector<int> vfree(0);
21418 static inline void polyroots3(IkReal rawcoeffs[3 + 1], IkReal rawroots[3],
int& numroots)
21420 using std::complex;
21421 if (rawcoeffs[0] == 0)
21424 polyroots2(&rawcoeffs[1], &rawroots[0], numroots);
21428 const IkReal tol = 128.0 * std::numeric_limits<IkReal>::epsilon();
21429 const IkReal tolsqrt = sqrt(std::numeric_limits<IkReal>::epsilon());
21430 complex<IkReal> coeffs[3];
21431 const int maxsteps = 110;
21432 for (
int i = 0; i < 3; ++i)
21434 coeffs[i] = complex<IkReal>(rawcoeffs[i + 1] / rawcoeffs[0]);
21436 complex<IkReal> roots[3];
21438 roots[0] = complex<IkReal>(1, 0);
21439 roots[1] = complex<IkReal>(0.4, 0.9);
21442 for (
int i = 2; i < 3; ++i)
21444 roots[i] = roots[i - 1] * roots[1];
21447 for (
int step = 0; step < maxsteps; ++step)
21449 bool changed =
false;
21450 for (
int i = 0; i < 3; ++i)
21456 complex<IkReal> x = roots[i] + coeffs[0];
21457 for (
int j = 1;
j < 3; ++
j)
21459 x = roots[i] * x + coeffs[
j];
21461 for (
int j = 0;
j < 3; ++
j)
21465 if (roots[i] != roots[
j])
21467 x /= (roots[i] - roots[
j]);
21482 bool visited[3] = {
false };
21483 for (
int i = 0; i < 3; ++i)
21489 complex<IkReal> newroot = roots[i];
21491 for (
int j = i + 1;
j < 3; ++
j)
21494 if (abs(real(roots[i]) - real(roots[
j])) < tolsqrt && abs(imag(roots[i]) - imag(roots[
j])) < 0.002)
21496 newroot += roots[
j];
21507 if (
IKabs(imag(newroot)) < tolsqrt)
21509 rawroots[numroots++] = real(newroot);
21514 static inline void polyroots2(IkReal rawcoeffs[2 + 1], IkReal rawroots[2],
int& numroots)
21516 IkReal det = rawcoeffs[1] * rawcoeffs[1] - 4 * rawcoeffs[0] * rawcoeffs[2];
21523 rawroots[0] = -0.5 * rawcoeffs[1] / rawcoeffs[0];
21529 rawroots[0] = (-rawcoeffs[1] + det) / (2 * rawcoeffs[0]);
21530 rawroots[1] = (-rawcoeffs[1] - det) / (2 * rawcoeffs[0]);
21534 static inline void polyroots4(IkReal rawcoeffs[4 + 1], IkReal rawroots[4],
int& numroots)
21536 using std::complex;
21537 if (rawcoeffs[0] == 0)
21540 polyroots3(&rawcoeffs[1], &rawroots[0], numroots);
21544 const IkReal tol = 128.0 * std::numeric_limits<IkReal>::epsilon();
21545 const IkReal tolsqrt = sqrt(std::numeric_limits<IkReal>::epsilon());
21546 complex<IkReal> coeffs[4];
21547 const int maxsteps = 110;
21548 for (
int i = 0; i < 4; ++i)
21550 coeffs[i] = complex<IkReal>(rawcoeffs[i + 1] / rawcoeffs[0]);
21552 complex<IkReal> roots[4];
21554 roots[0] = complex<IkReal>(1, 0);
21555 roots[1] = complex<IkReal>(0.4, 0.9);
21558 for (
int i = 2; i < 4; ++i)
21560 roots[i] = roots[i - 1] * roots[1];
21563 for (
int step = 0; step < maxsteps; ++step)
21565 bool changed =
false;
21566 for (
int i = 0; i < 4; ++i)
21572 complex<IkReal> x = roots[i] + coeffs[0];
21573 for (
int j = 1;
j < 4; ++
j)
21575 x = roots[i] * x + coeffs[
j];
21577 for (
int j = 0;
j < 4; ++
j)
21581 if (roots[i] != roots[
j])
21583 x /= (roots[i] - roots[
j]);
21598 bool visited[4] = {
false };
21599 for (
int i = 0; i < 4; ++i)
21605 complex<IkReal> newroot = roots[i];
21607 for (
int j = i + 1;
j < 4; ++
j)
21610 if (abs(real(roots[i]) - real(roots[
j])) < tolsqrt && abs(imag(roots[i]) - imag(roots[
j])) < 0.002)
21612 newroot += roots[
j];
21623 if (
IKabs(imag(newroot)) < tolsqrt)
21625 rawroots[numroots++] = real(newroot);
21638 return solver.
ComputeIk(eetrans, eerot, pfree, solutions);
21642 const IkReal* eerot,
21643 const IkReal* pfree,
21645 void* pOpenRAVEManip)
21648 return solver.
ComputeIk(eetrans, eerot, pfree, solutions);
21651IKFAST_API
const char*
GetKinematicsHash() {
return "<robot:GenericRobot - iiwa7 (ad1a4bdb54d4d6b54bc346ee8087a8e6)>"; }
21655#ifdef IKFAST_NAMESPACE
21659#ifndef IKFAST_NO_MAIN
21662#ifdef IKFAST_NAMESPACE
21663using namespace IKFAST_NAMESPACE;
21665int main(
int argc,
char** argv)
21669 printf(
"\nUsage: ./ik r00 r01 r02 t0 r10 r11 r12 t1 r20 r21 r22 t2 free0 ...\n\n"
21670 "Returns the ik solutions given the transformation of the end effector specified by\n"
21671 "a 3x3 rotation R (rXX), and a 3x1 translation (tX).\n"
21672 "There are %d free parameters that have to be specified.\n\n",
21679 IkReal eerot[9], eetrans[3];
21680 eerot[0] = atof(argv[1]);
21681 eerot[1] = atof(argv[2]);
21682 eerot[2] = atof(argv[3]);
21683 eetrans[0] = atof(argv[4]);
21684 eerot[3] = atof(argv[5]);
21685 eerot[4] = atof(argv[6]);
21686 eerot[5] = atof(argv[7]);
21687 eetrans[1] = atof(argv[8]);
21688 eerot[6] = atof(argv[9]);
21689 eerot[7] = atof(argv[10]);
21690 eerot[8] = atof(argv[11]);
21691 eetrans[2] = atof(argv[12]);
21692 for (std::size_t i = 0; i < vfree.size(); ++i)
21693 vfree[i] = atof(argv[13 + i]);
21694 bool bSuccess =
ComputeIk(eetrans, eerot, vfree.size() > 0 ? &vfree[0] : NULL, solutions);
21698 fprintf(stderr,
"Failed to get ik solution\n");
21702 printf(
"Found %d ik solutions:\n", (
int)solutions.
GetNumSolutions());
21707 printf(
"sol%d (free=%d): ", (
int)i, (
int)sol.
GetFree().size());
21708 std::vector<IkReal> vsolfree(sol.
GetFree().size());
21709 sol.
GetSolution(&solvalues[0], vsolfree.size() > 0 ? &vsolfree[0] : NULL);
21710 for (std::size_t
j = 0;
j < solvalues.size(); ++
j)
21711 printf(
"%.15f, ", solvalues[
j]);
#define IKPI
Definition: abb_irb2400_ikfast_solver.hpp:79
#define IKFAST_ATAN2_MAGTHRESH
Definition: abb_irb2400_ikfast_solver.hpp:142
float IKasin(float f)
Definition: abb_irb2400_ikfast_solver.hpp:150
IKFAST_API int * GetFreeParameters()
Definition: abb_irb2400_ikfast_solver.hpp:380
IKFAST_API int GetNumJoints()
Definition: abb_irb2400_ikfast_solver.hpp:381
#define IKPI_2
Definition: abb_irb2400_ikfast_solver.hpp:80
IKFAST_API const char * GetIkFastVersion()
Definition: abb_irb2400_ikfast_solver.hpp:3221
float IKatan2(float fy, float fx)
Definition: abb_irb2400_ikfast_solver.hpp:229
#define IKFAST_SINCOS_THRESH
Definition: abb_irb2400_ikfast_solver.hpp:137
IKFAST_API int GetIkRealSize()
Definition: abb_irb2400_ikfast_solver.hpp:383
float IKacos(float f)
Definition: abb_irb2400_ikfast_solver.hpp:191
IKFAST_API const char * GetKinematicsHash()
Definition: abb_irb2400_ikfast_solver.hpp:3216
float IKsqrt(float f)
Definition: abb_irb2400_ikfast_solver.hpp:217
float IKsin(float f)
Definition: abb_irb2400_ikfast_solver.hpp:211
float IKsign(float f)
Definition: abb_irb2400_ikfast_solver.hpp:256
float IKfmod(float x, float y)
Definition: abb_irb2400_ikfast_solver.hpp:172
float IKcos(float f)
Definition: abb_irb2400_ikfast_solver.hpp:213
float IKsqr(float f)
Definition: abb_irb2400_ikfast_solver.hpp:129
IKFAST_API int GetIkType()
Definition: abb_irb2400_ikfast_solver.hpp:385
IKFAST_API void ComputeFk(const IkReal *j, IkReal *eetrans, IkReal *eerot)
Definition: abb_irb2400_ikfast_solver.hpp:284
float IKtan(float f)
Definition: abb_irb2400_ikfast_solver.hpp:215
#define IK2PI
Definition: abb_irb2400_ikfast_solver.hpp:78
IKFAST_API bool ComputeIk(const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions)
Definition: abb_irb2400_ikfast_solver.hpp:3210
#define IKFAST_SOLUTION_THRESH
Definition: abb_irb2400_ikfast_solver.hpp:147
float IKlog(float f)
Definition: abb_irb2400_ikfast_solver.hpp:132
IKFAST_API int GetNumFreeParameters()
Definition: abb_irb2400_ikfast_solver.hpp:379
#define IKFAST_ASSERT(b)
Definition: abb_irb2400_ikfast_solver.hpp:59
float IKabs(float f)
Definition: abb_irb2400_ikfast_solver.hpp:126
Definition: abb_irb2400_ikfast_solver.hpp:388
void rotationfunction0(IkSolutionListBase< IkReal > &solutions)
Definition: iiwa7_ikfast_solver.hpp:3219
static void polyroots2(IkReal rawcoeffs[2+1], IkReal rawroots[2], int &numroots)
Definition: iiwa7_ikfast_solver.hpp:21514
static void polyroots3(IkReal rawcoeffs[3+1], IkReal rawroots[3], int &numroots)
Definition: iiwa7_ikfast_solver.hpp:21418
static void polyroots4(IkReal rawcoeffs[4+1], IkReal rawroots[4], int &numroots)
Definition: iiwa7_ikfast_solver.hpp:21534
IkReal j0mul
Definition: iiwa7_ikfast_solver.hpp:490
IkReal cj6
Definition: iiwa7_ikfast_solver.hpp:491
bool ComputeIk(const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions)
Definition: iiwa7_ikfast_solver.hpp:498
IkReal cj100
Definition: iiwa7_ikfast_solver.hpp:496
holds the solution for a single dof
Definition: ikfast.h:52
The discrete solutions are returned in this structure.
Definition: ikfast.h:72
virtual const std::vector< int > & GetFree() const =0
Gets the indices of the configuration space that have to be preset before a full solution can be retu...
virtual void GetSolution(T *solution, const T *freevalues) const =0
gets a concrete solution
manages all the solutions
Definition: ikfast.h:103
virtual size_t GetNumSolutions() const =0
returns the number of solutions stored
virtual void Clear()=0
clears all current solutions, note that any memory addresses returned from GetSolution will be invali...
virtual size_t AddSolution(const std::vector< IkSingleDOFSolutionBase< T > > &vinfos, const std::vector< int > &vfree)=0
add one solution and return its index for later retrieval
Default implementation of IkSolutionListBase.
Definition: ikfast.h:259
const IkSolutionBase< T > & GetSolution(size_t index) const override
returns the solution pointer
Definition: ikfast.h:268
size_t GetNumSolutions() const override
returns the number of solutions stored
Definition: ikfast.h:279
Definition: polygon_mesh.h:46
int main(int argc, char **argv)
Definition: create_convex_hull.cpp:43
IKFAST_API bool ComputeIk2(const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions, void *pOpenRAVEManip)
Definition: iiwa7_ikfast_solver.hpp:21641
void dgetrf_(const int *m, const int *n, double *a, const int *lda, int *ipiv, int *info)
#define IKFAST_COMPILE_ASSERT(x)
Definition: iiwa7_ikfast_solver.hpp:33
void dgetrs_(const char *trans, const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, int *info)
float IKatan2Simple(float fy, float fx)
Definition: iiwa7_ikfast_solver.hpp:240
IKFAST_API int GetNumJoints()
Definition: iiwa7_ikfast_solver.hpp:481
void zgetrf_(const int *m, const int *n, std::complex< double > *a, const int *lda, int *ipiv, int *info)
#define IKFAST_EVALCOND_THRESH
Definition: iiwa7_ikfast_solver.hpp:158
void dgetri_(const int *n, const double *a, const int *lda, int *ipiv, double *work, const int *lwork, int *info)
void dgesv_(const int *n, const int *nrhs, double *a, const int *lda, int *ipiv, double *b, const int *ldb, int *info)
CheckValue< T > IKatan2WithCheck(T fy, T fx, T epsilon)
Definition: iiwa7_ikfast_solver.hpp:277
IKFAST_API bool ComputeIk(const IkReal *eetrans, const IkReal *eerot, const IkReal *pfree, IkSolutionListBase< IkReal > &solutions)
Definition: iiwa7_ikfast_solver.hpp:21635
CheckValue< T > IKPowWithIntegerCheck(T f, int n)
Definition: iiwa7_ikfast_solver.hpp:320
void dgeev_(const char *jobvl, const char *jobvr, const int *n, double *a, const int *lda, double *wr, double *wi, double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info)
IKFAST_API int GetNumFreeParameters()
Definition: iiwa7_ikfast_solver.hpp:475
#define IKFAST_VERSION
Header file for all ikfast c++ files/shared objects.
Definition: ikfast.h:45
tesseract_kinematics::Manipulability m
Definition: kinematics_core_unit.cpp:179
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
Definition: create_convex_hull.cpp:36
Definition: iiwa7_ikfast_solver.hpp:271
bool valid
Definition: iiwa7_ikfast_solver.hpp:273
T value
Definition: iiwa7_ikfast_solver.hpp:272
tesseract_geometry::PolygonMesh T
Definition: tesseract_geometry_unit.cpp:140
JointDynamics j
Definition: tesseract_scene_graph_joint_unit.cpp:15
KinematicsInformation info
Definition: tesseract_srdf_unit.cpp:1765