1 /// autogenerated analytical inverse kinematics code from ikfast program part of OpenRAVE
2 /// \author Rosen Diankov
3 ///
4 /// Licensed under the Apache License, Version 2.0 (the "License");
5 /// you may not use this file except in compliance with the License.
6 /// You may obtain a copy of the License at
7 ///     http://www.apache.org/licenses/LICENSE-2.0
8 ///
9 /// Unless required by applicable law or agreed to in writing, software
10 /// distributed under the License is distributed on an "AS IS" BASIS,
11 /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 /// See the License for the specific language governing permissions and
13 /// limitations under the License.
14 ///
15 /// ikfast version 71 generated on 2016-04-05 16:09:02.982560
16 /// To compile with gcc:
17 ///     gcc -lstdc++ ik.cpp
18 /// To compile without any main function as a shared object (might need -llapack):
19 ///     gcc -fPIC -lstdc++ -DIKFAST_NO_MAIN -DIKFAST_CLIBRARY -shared -Wl,-soname,libik.so -o libik.so ik.cpp
20 #define IKFAST_HAS_LIBRARY
21 #include "dart/external/ikfast/ikfast.h" // found inside share/openrave-X.Y/python/ikfast.h
22 using namespace ikfast;
23 
24 // check if the included ikfast version matches what this file was compiled with
25 #define IKFAST_COMPILE_ASSERT(x) extern int __dummy[(int)x]
26 IKFAST_COMPILE_ASSERT(IKFAST_VERSION==71);
27 
28 #include <cmath>
29 #include <vector>
30 #include <limits>
31 #include <algorithm>
32 #include <complex>
33 
34 #define IKFAST_STRINGIZE2(s) #s
35 #define IKFAST_STRINGIZE(s) IKFAST_STRINGIZE2(s)
36 
37 #ifndef IKFAST_ASSERT
38 #include <stdexcept>
39 #include <sstream>
40 #include <iostream>
41 
42 #ifdef _MSC_VER
43 #ifndef __PRETTY_FUNCTION__
44 #define __PRETTY_FUNCTION__ __FUNCDNAME__
45 #endif
46 #endif
47 
48 #ifndef __PRETTY_FUNCTION__
49 #define __PRETTY_FUNCTION__ __func__
50 #endif
51 
52 #define IKFAST_ASSERT(b) { if( !(b) ) { std::stringstream ss; ss << "ikfast exception: " << __FILE__ << ":" << __LINE__ << ": " <<__PRETTY_FUNCTION__ << ": Assertion '" << #b << "' failed"; throw std::runtime_error(ss.str()); } }
53 
54 #endif
55 
56 #if defined(_MSC_VER)
57 #define IKFAST_ALIGNED16(x) __declspec(align(16)) x
58 #else
59 #define IKFAST_ALIGNED16(x) x __attribute((aligned(16)))
60 #endif
61 
62 #define IK2PI  ((IkReal)6.28318530717959)
63 #define IKPI  ((IkReal)3.14159265358979)
64 #define IKPI_2  ((IkReal)1.57079632679490)
65 
66 // lapack routines
67 extern "C" {
68   void dgetrf_ (const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info);
69   void zgetrf_ (const int* m, const int* n, std::complex<double>* a, const int* lda, int* ipiv, int* info);
70   void dgetri_(const int* n, const double* a, const int* lda, int* ipiv, double* work, const int* lwork, int* info);
71   void dgesv_ (const int* n, const int* nrhs, double* a, const int* lda, int* ipiv, double* b, const int* ldb, int* info);
72   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);
73   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);
74 }
75 
76 using namespace std; // necessary to get std math routines
77 
78 #ifdef IKFAST_NAMESPACE
79 namespace IKFAST_NAMESPACE {
80 #endif
81 
IKabs(float f)82 inline float IKabs(float f) { return fabsf(f); }
IKabs(double f)83 inline double IKabs(double f) { return fabs(f); }
84 
IKsqr(float f)85 inline float IKsqr(float f) { return f*f; }
IKsqr(double f)86 inline double IKsqr(double f) { return f*f; }
87 
IKlog(float f)88 inline float IKlog(float f) { return logf(f); }
IKlog(double f)89 inline double IKlog(double f) { return log(f); }
90 
91 // allows asin and acos to exceed 1
92 #ifndef IKFAST_SINCOS_THRESH
93 #define IKFAST_SINCOS_THRESH ((IkReal)2e-6)
94 #endif
95 
96 // used to check input to atan2 for degenerate cases
97 #ifndef IKFAST_ATAN2_MAGTHRESH
98 #define IKFAST_ATAN2_MAGTHRESH ((IkReal)2e-6)
99 #endif
100 
101 // minimum distance of separate solutions
102 #ifndef IKFAST_SOLUTION_THRESH
103 #define IKFAST_SOLUTION_THRESH ((IkReal)1e-6)
104 #endif
105 
106 // there are checkpoints in ikfast that are evaluated to make sure they are 0. This threshold speicfies by how much they can deviate
107 #ifndef IKFAST_EVALCOND_THRESH
108 #define IKFAST_EVALCOND_THRESH ((IkReal)0.000005)
109 #endif
110 
111 
IKasin(float f)112 inline float IKasin(float f)
113 {
114 IKFAST_ASSERT( f > -1-IKFAST_SINCOS_THRESH && f < 1+IKFAST_SINCOS_THRESH ); // any more error implies something is wrong with the solver
115 if( f <= -1 ) return float(-IKPI_2);
116 else if( f >= 1 ) return float(IKPI_2);
117 return asinf(f);
118 }
IKasin(double f)119 inline double IKasin(double f)
120 {
121 IKFAST_ASSERT( f > -1-IKFAST_SINCOS_THRESH && f < 1+IKFAST_SINCOS_THRESH ); // any more error implies something is wrong with the solver
122 if( f <= -1 ) return -IKPI_2;
123 else if( f >= 1 ) return IKPI_2;
124 return asin(f);
125 }
126 
127 // return positive value in [0,y)
IKfmod(float x,float y)128 inline float IKfmod(float x, float y)
129 {
130     while(x < 0) {
131         x += y;
132     }
133     return fmodf(x,y);
134 }
135 
136 // return positive value in [0,y)
IKfmod(double x,double y)137 inline double IKfmod(double x, double y)
138 {
139     while(x < 0) {
140         x += y;
141     }
142     return fmod(x,y);
143 }
144 
IKacos(float f)145 inline float IKacos(float f)
146 {
147 IKFAST_ASSERT( f > -1-IKFAST_SINCOS_THRESH && f < 1+IKFAST_SINCOS_THRESH ); // any more error implies something is wrong with the solver
148 if( f <= -1 ) return float(IKPI);
149 else if( f >= 1 ) return float(0);
150 return acosf(f);
151 }
IKacos(double f)152 inline double IKacos(double f)
153 {
154 IKFAST_ASSERT( f > -1-IKFAST_SINCOS_THRESH && f < 1+IKFAST_SINCOS_THRESH ); // any more error implies something is wrong with the solver
155 if( f <= -1 ) return IKPI;
156 else if( f >= 1 ) return 0;
157 return acos(f);
158 }
IKsin(float f)159 inline float IKsin(float f) { return sinf(f); }
IKsin(double f)160 inline double IKsin(double f) { return sin(f); }
IKcos(float f)161 inline float IKcos(float f) { return cosf(f); }
IKcos(double f)162 inline double IKcos(double f) { return cos(f); }
IKtan(float f)163 inline float IKtan(float f) { return tanf(f); }
IKtan(double f)164 inline double IKtan(double f) { return tan(f); }
IKsqrt(float f)165 inline float IKsqrt(float f) { if( f <= 0.0f ) return 0.0f; return sqrtf(f); }
IKsqrt(double f)166 inline double IKsqrt(double f) { if( f <= 0.0 ) return 0.0; return sqrt(f); }
IKatan2Simple(float fy,float fx)167 inline float IKatan2Simple(float fy, float fx) {
168     return atan2f(fy,fx);
169 }
IKatan2(float fy,float fx)170 inline float IKatan2(float fy, float fx) {
171     if( isnan(fy) ) {
172         IKFAST_ASSERT(!isnan(fx)); // if both are nan, probably wrong value will be returned
173         return float(IKPI_2);
174     }
175     else if( isnan(fx) ) {
176         return 0;
177     }
178     return atan2f(fy,fx);
179 }
IKatan2Simple(double fy,double fx)180 inline double IKatan2Simple(double fy, double fx) {
181     return atan2(fy,fx);
182 }
IKatan2(double fy,double fx)183 inline double IKatan2(double fy, double fx) {
184     if( std::isnan(fy) ) {
185         IKFAST_ASSERT(!std::isnan(fx)); // if both are nan, probably wrong value will be returned
186         return IKPI_2;
187     }
188     else if( std::isnan(fx) ) {
189         return 0;
190     }
191     return atan2(fy,fx);
192 }
193 
194 template <typename T>
195 struct CheckValue
196 {
197     T value;
198     bool valid;
199 };
200 
201 template <typename T>
IKatan2WithCheck(T fy,T fx,T epsilon)202 inline CheckValue<T> IKatan2WithCheck(T fy, T fx, T epsilon)
203 {
204     CheckValue<T> ret;
205     ret.valid = false;
206     ret.value = 0;
207     if( !std::isnan(fy) && !std::isnan(fx) ) {
208         if( IKabs(fy) >= IKFAST_ATAN2_MAGTHRESH || IKabs(fx) > IKFAST_ATAN2_MAGTHRESH ) {
209             ret.value = IKatan2Simple(fy,fx);
210             ret.valid = true;
211         }
212     }
213     return ret;
214 }
215 
IKsign(float f)216 inline float IKsign(float f) {
217     if( f > 0 ) {
218         return float(1);
219     }
220     else if( f < 0 ) {
221         return float(-1);
222     }
223     return 0;
224 }
225 
IKsign(double f)226 inline double IKsign(double f) {
227     if( f > 0 ) {
228         return 1.0;
229     }
230     else if( f < 0 ) {
231         return -1.0;
232     }
233     return 0;
234 }
235 
236 template <typename T>
IKPowWithIntegerCheck(T f,int n)237 inline CheckValue<T> IKPowWithIntegerCheck(T f, int n)
238 {
239     CheckValue<T> ret;
240     ret.valid = true;
241     if( n == 0 ) {
242         ret.value = 1.0;
243         return ret;
244     }
245     else if( n == 1 )
246     {
247         ret.value = f;
248         return ret;
249     }
250     else if( n < 0 )
251     {
252         if( f == 0 )
253         {
254             ret.valid = false;
255             ret.value = (T)1.0e30;
256             return ret;
257         }
258         if( n == -1 ) {
259             ret.value = T(1.0)/f;
260             return ret;
261         }
262     }
263 
264     int num = n > 0 ? n : -n;
265     if( num == 2 ) {
266         ret.value = f*f;
267     }
268     else if( num == 3 ) {
269         ret.value = f*f*f;
270     }
271     else {
272         ret.value = 1.0;
273         while(num>0) {
274             if( num & 1 ) {
275                 ret.value *= f;
276             }
277             num >>= 1;
278             f *= f;
279         }
280     }
281 
282     if( n < 0 ) {
283         ret.value = T(1.0)/ret.value;
284     }
285     return ret;
286 }
287 
288 /// solves the forward kinematics equations.
289 /// \param pfree is an array specifying the free joints of the chain.
ComputeFk(const IkReal * j,IkReal * eetrans,IkReal * eerot)290 IKFAST_API void ComputeFk(const IkReal* j, IkReal* eetrans, IkReal* eerot) {
291 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,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63;
292 x0=IKsin(j[6]);
293 x1=IKcos(j[4]);
294 x2=IKsin(j[0]);
295 x3=IKcos(j[2]);
296 x4=(x2*x3);
297 x5=((1.0)*x4);
298 x6=IKcos(j[1]);
299 x7=IKsin(j[2]);
300 x8=IKcos(j[0]);
301 x9=(x7*x8);
302 x10=((1.0)*x9);
303 x11=((((-1.0)*(1.0)*x5))+(((-1.0)*(1.0)*x10*x6)));
304 x12=IKsin(j[4]);
305 x13=IKsin(j[1]);
306 x14=IKsin(j[3]);
307 x15=(x13*x14*x8);
308 x16=((1.0)*x15);
309 x17=IKcos(j[3]);
310 x18=((1.0)*x17);
311 x19=(x2*x7);
312 x20=((1.0)*x19);
313 x21=(x3*x8);
314 x22=(x21*x6);
315 x23=(x22+(((-1.0)*(1.0)*x20)));
316 x24=(((x12*(((((-1.0)*(1.0)*x18*x23))+x16))))+((x1*x11)));
317 x25=IKcos(j[6]);
318 x26=IKsin(j[5]);
319 x27=(x13*x17*x8);
320 x28=((1.0)*x27);
321 x29=(x14*((x20+(((-1.0)*(1.0)*x22)))));
322 x30=(x26*((x29+(((-1.0)*(1.0)*x28)))));
323 x31=IKcos(j[5]);
324 x32=(((x11*x12))+((x1*(((((-1.0)*(1.0)*x16))+((x17*x23)))))));
325 x33=(x31*x32);
326 x34=((0.045)*x19);
327 x35=((0.55)*x13);
328 x36=((0.045)*x22);
329 x37=((((-1.0)*(1.0)*x20*x6))+x21);
330 x38=(x13*x14*x2);
331 x39=((1.0)*x38);
332 x40=(x4*x6);
333 x41=(x9+x40);
334 x42=(((x12*((x39+(((-1.0)*(1.0)*x18*x41))))))+((x1*x37)));
335 x43=(x13*x17*x2);
336 x44=((1.0)*x43);
337 x45=(x14*(((((-1.0)*(1.0)*x10))+(((-1.0)*(1.0)*x5*x6)))));
338 x46=(x26*(((((-1.0)*(1.0)*x44))+x45)));
339 x47=(((x1*(((((-1.0)*(1.0)*x39))+((x17*x41))))))+((x12*x37)));
340 x48=(x31*x47);
341 x49=((0.045)*x9);
342 x50=((0.045)*x40);
343 x51=(x13*x7);
344 x52=(x14*x6);
345 x53=((1.0)*x52);
346 x54=(x13*x3);
347 x55=(x18*x54);
348 x56=(((x1*x51))+((x12*((x55+x53)))));
349 x57=(x17*x6);
350 x58=((1.0)*x57);
351 x59=(x14*x54);
352 x60=(x26*(((((-1.0)*(1.0)*x58))+x59)));
353 x61=(((x1*(((((-1.0)*(1.0)*x55))+(((-1.0)*(1.0)*x53))))))+((x12*x51)));
354 x62=(x31*x61);
355 x63=((0.045)*x54);
356 eerot[0]=(((x0*x24))+((x25*((x30+x33)))));
357 eerot[1]=(((x0*(((((-1.0)*(1.0)*x30))+(((-1.0)*(1.0)*x33))))))+((x24*x25)));
358 eerot[2]=(((x26*x32))+((x31*((x28+(((-1.0)*(1.0)*x29)))))));
359 eetrans[0]=((0.22)+((x17*((x34+(((-1.0)*(1.0)*x36))))))+x36+(((0.045)*x15))+((x14*(((((0.3)*x22))+(((-1.0)*(0.3)*x19))))))+(((0.3)*x27))+(((-1.0)*(1.0)*x34))+((x35*x8)));
360 eerot[3]=(((x25*((x48+x46))))+((x0*x42)));
361 eerot[4]=(((x0*(((((-1.0)*(1.0)*x48))+(((-1.0)*(1.0)*x46))))))+((x25*x42)));
362 eerot[5]=(((x26*x47))+((x31*(((((-1.0)*(1.0)*x45))+x44)))));
363 eetrans[1]=((0.14)+((x2*x35))+(((0.3)*x43))+(((0.045)*x38))+((x17*(((((-1.0)*(1.0)*x49))+(((-1.0)*(1.0)*x50))))))+x49+x50+((x14*(((((0.3)*x40))+(((0.3)*x9)))))));
364 eerot[6]=(((x0*x56))+((x25*((x60+x62)))));
365 eerot[7]=(((x0*(((((-1.0)*(1.0)*x60))+(((-1.0)*(1.0)*x62))))))+((x25*x56)));
366 eerot[8]=(((x26*x61))+((x31*(((((-1.0)*(1.0)*x59))+x58)))));
367 eetrans[2]=((0.346)+(((0.045)*x52))+(((-1.0)*(0.3)*x59))+(((0.55)*x6))+(((0.3)*x57))+(((-1.0)*(1.0)*x63))+((x17*x63)));
368 }
369 
GetNumFreeParameters()370 IKFAST_API int GetNumFreeParameters() { return 1; }
GetFreeParameters()371 IKFAST_API int* GetFreeParameters() { static int freeparams[] = {2}; return freeparams; }
GetNumJoints()372 IKFAST_API int GetNumJoints() { return 7; }
373 
GetIkRealSize()374 IKFAST_API int GetIkRealSize() { return sizeof(IkReal); }
375 
GetIkType()376 IKFAST_API int GetIkType() { return 0x67000001; }
377 
378 class IKSolver {
379 public:
380 IkReal j4,cj4,sj4,htj4,j4mul,j6,cj6,sj6,htj6,j6mul,j9,cj9,sj9,htj9,j9mul,j10,cj10,sj10,htj10,j10mul,j11,cj11,sj11,htj11,j11mul,j12,cj12,sj12,htj12,j12mul,j8,cj8,sj8,htj8,new_r00,r00,rxp0_0,new_r01,r01,rxp0_1,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,new_r21,r21,rxp2_1,new_r22,r22,rxp2_2,new_px,px,npx,new_py,py,npy,new_pz,pz,npz,pp;
381 unsigned char _ij4[2], _nj4,_ij6[2], _nj6,_ij9[2], _nj9,_ij10[2], _nj10,_ij11[2], _nj11,_ij12[2], _nj12,_ij8[2], _nj8;
382 
383 IkReal j100, cj100, sj100;
384 unsigned char _ij100[2], _nj100;
ComputeIk(const IkReal * eetrans,const IkReal * eerot,const IkReal * pfree,IkSolutionListBase<IkReal> & solutions)385 bool ComputeIk(const IkReal* eetrans, const IkReal* eerot, const IkReal* pfree, IkSolutionListBase<IkReal>& solutions) {
386 j4=numeric_limits<IkReal>::quiet_NaN(); _ij4[0] = -1; _ij4[1] = -1; _nj4 = -1; j6=numeric_limits<IkReal>::quiet_NaN(); _ij6[0] = -1; _ij6[1] = -1; _nj6 = -1; j9=numeric_limits<IkReal>::quiet_NaN(); _ij9[0] = -1; _ij9[1] = -1; _nj9 = -1; j10=numeric_limits<IkReal>::quiet_NaN(); _ij10[0] = -1; _ij10[1] = -1; _nj10 = -1; j11=numeric_limits<IkReal>::quiet_NaN(); _ij11[0] = -1; _ij11[1] = -1; _nj11 = -1; j12=numeric_limits<IkReal>::quiet_NaN(); _ij12[0] = -1; _ij12[1] = -1; _nj12 = -1;  _ij8[0] = -1; _ij8[1] = -1; _nj8 = 0;
387 for(int dummyiter = 0; dummyiter < 1; ++dummyiter) {
388     solutions.Clear();
389 j8=pfree[0]; cj8=cos(pfree[0]); sj8=sin(pfree[0]), htj8=tan(pfree[0]*0.5);
390 r00 = eerot[0*3+0];
391 r01 = eerot[0*3+1];
392 r02 = eerot[0*3+2];
393 r10 = eerot[1*3+0];
394 r11 = eerot[1*3+1];
395 r12 = eerot[1*3+2];
396 r20 = eerot[2*3+0];
397 r21 = eerot[2*3+1];
398 r22 = eerot[2*3+2];
399 px = eetrans[0]; py = eetrans[1]; pz = eetrans[2];
400 
401 new_r00=r00;
402 new_r01=r01;
403 new_r02=r02;
404 new_px=((-0.22)+px);
405 new_r10=r10;
406 new_r11=r11;
407 new_r12=r12;
408 new_py=((-0.14)+py);
409 new_r20=r20;
410 new_r21=r21;
411 new_r22=r22;
412 new_pz=((-0.346)+pz);
413 r00 = new_r00; r01 = new_r01; r02 = new_r02; r10 = new_r10; r11 = new_r11; r12 = new_r12; r20 = new_r20; r21 = new_r21; r22 = new_r22; px = new_px; py = new_py; pz = new_pz;
414 IkReal x64=((1.0)*py);
415 IkReal x65=((1.0)*pz);
416 IkReal x66=((1.0)*px);
417 pp=((pz*pz)+(py*py)+(px*px));
418 npx=(((pz*r20))+((py*r10))+((px*r00)));
419 npy=(((pz*r21))+((py*r11))+((px*r01)));
420 npz=(((px*r02))+((pz*r22))+((py*r12)));
421 rxp0_0=(((pz*r10))+(((-1.0)*r20*x64)));
422 rxp0_1=(((px*r20))+(((-1.0)*r00*x65)));
423 rxp0_2=(((py*r00))+(((-1.0)*r10*x66)));
424 rxp1_0=((((-1.0)*r21*x64))+((pz*r11)));
425 rxp1_1=(((px*r21))+(((-1.0)*r01*x65)));
426 rxp1_2=((((-1.0)*r11*x66))+((py*r01)));
427 rxp2_0=((((-1.0)*r22*x64))+((pz*r12)));
428 rxp2_1=((((-1.0)*r02*x65))+((px*r22)));
429 rxp2_2=(((py*r02))+(((-1.0)*r12*x66)));
430 {
431 IkReal j9array[2], cj9array[2], sj9array[2];
432 bool j9valid[2]={false};
433 _nj9 = 2;
434 if( (((-1.18441410190393)+(((2.9867963734811)*pp)))) < -1-IKFAST_SINCOS_THRESH || (((-1.18441410190393)+(((2.9867963734811)*pp)))) > 1+IKFAST_SINCOS_THRESH )
435     continue;
436 IkReal x67=IKasin(((-1.18441410190393)+(((2.9867963734811)*pp))));
437 j9array[0]=((-1.34027003705633)+(((1.0)*x67)));
438 sj9array[0]=IKsin(j9array[0]);
439 cj9array[0]=IKcos(j9array[0]);
440 j9array[1]=((1.80132261653346)+(((-1.0)*x67)));
441 sj9array[1]=IKsin(j9array[1]);
442 cj9array[1]=IKcos(j9array[1]);
443 if( j9array[0] > IKPI )
444 {
445     j9array[0]-=IK2PI;
446 }
447 else if( j9array[0] < -IKPI )
448 {    j9array[0]+=IK2PI;
449 }
450 j9valid[0] = true;
451 if( j9array[1] > IKPI )
452 {
453     j9array[1]-=IK2PI;
454 }
455 else if( j9array[1] < -IKPI )
456 {    j9array[1]+=IK2PI;
457 }
458 j9valid[1] = true;
459 for(int ij9 = 0; ij9 < 2; ++ij9)
460 {
461 if( !j9valid[ij9] )
462 {
463     continue;
464 }
465 _ij9[0] = ij9; _ij9[1] = -1;
466 for(int iij9 = ij9+1; iij9 < 2; ++iij9)
467 {
468 if( j9valid[iij9] && IKabs(cj9array[ij9]-cj9array[iij9]) < IKFAST_SOLUTION_THRESH && IKabs(sj9array[ij9]-sj9array[iij9]) < IKFAST_SOLUTION_THRESH )
469 {
470     j9valid[iij9]=false; _ij9[1] = iij9; break;
471 }
472 }
473 j9 = j9array[ij9]; cj9 = cj9array[ij9]; sj9 = sj9array[ij9];
474 
475 {
476 IkReal j4eval[2];
477 j4eval[0]=((IKabs(py))+(IKabs(px)));
478 j4eval[1]=((py*py)+(px*px));
479 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
480 {
481 {
482 IkReal j6eval[2];
483 IkReal x68=cj8*cj8;
484 IkReal x69=sj9*sj9;
485 IkReal x70=((13.3333333333333)*sj9);
486 IkReal x71=(cj9*x70);
487 IkReal x72=cj9*cj9;
488 IkReal x73=((3.0)*cj8);
489 j6eval[0]=((149.382716049383)+(((-2.0)*cj9*x68))+((x68*x72))+(((44.4444444444444)*x68*x69))+(((44.4444444444444)*x72))+x68+x69+(((24.4444444444444)*sj9))+(((162.962962962963)*cj9))+x71+(((-1.0)*x68*x71))+((x68*x70)));
490 j6eval[1]=((((66.6666666666667)*(IKabs(((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)))))))+(IKabs(((((-1.0)*cj9*x73))+x73+(((20.0)*cj8*sj9))))));
491 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
492 {
493 {
494 IkReal j4eval[2];
495 IkReal x74=cj8*cj8*cj8*cj8;
496 IkReal x75=py*py*py*py;
497 IkReal x76=sj8*sj8*sj8*sj8;
498 IkReal x77=px*px;
499 IkReal x78=py*py;
500 IkReal x79=(x77*x78);
501 IkReal x80=sj8*sj8;
502 IkReal x81=((2.0)*x80);
503 IkReal x82=cj8*cj8;
504 IkReal x83=(px*py);
505 j4eval[0]=(((x75*x76))+((x74*x75))+((x76*x79))+((x74*x79))+((x75*x81*x82))+((x77*x78*x81*x82)));
506 j4eval[1]=((IKabs((((x80*x83))+((x82*x83)))))+(IKabs((((x78*x82))+((x78*x80))))));
507 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
508 {
509 continue; // no branches [j4, j6]
510 
511 } else
512 {
513 {
514 IkReal j4array[2], cj4array[2], sj4array[2];
515 bool j4valid[2]={false};
516 _nj4 = 2;
517 IkReal x84=cj8*cj8;
518 IkReal x85=py*py;
519 IkReal x86=sj8*sj8;
520 IkReal x87=(((x85*x86))+((x84*x85)));
521 IkReal x88=((1.0)*px*py);
522 IkReal x89=((((-1.0)*x86*x88))+(((-1.0)*x84*x88)));
523 CheckValue<IkReal> x93 = IKatan2WithCheck(IkReal(x87),x89,IKFAST_ATAN2_MAGTHRESH);
524 if(!x93.valid){
525 continue;
526 }
527 IkReal x90=((-1.0)*(x93.value));
528 IkReal x91=((0.045)*py*sj8);
529 if((((x87*x87)+(x89*x89))) < -0.00001)
530 continue;
531 CheckValue<IkReal> x94=IKPowWithIntegerCheck(IKabs(IKsqrt(((x87*x87)+(x89*x89)))),-1);
532 if(!x94.valid){
533 continue;
534 }
535 if( (((x94.value)*((((cj9*x91))+(((-1.0)*x91))+(((-1.0)*(0.3)*py*sj8*sj9)))))) < -1-IKFAST_SINCOS_THRESH || (((x94.value)*((((cj9*x91))+(((-1.0)*x91))+(((-1.0)*(0.3)*py*sj8*sj9)))))) > 1+IKFAST_SINCOS_THRESH )
536     continue;
537 IkReal x92=IKasin(((x94.value)*((((cj9*x91))+(((-1.0)*x91))+(((-1.0)*(0.3)*py*sj8*sj9))))));
538 j4array[0]=(x90+(((-1.0)*x92)));
539 sj4array[0]=IKsin(j4array[0]);
540 cj4array[0]=IKcos(j4array[0]);
541 j4array[1]=((3.14159265358979)+x92+x90);
542 sj4array[1]=IKsin(j4array[1]);
543 cj4array[1]=IKcos(j4array[1]);
544 if( j4array[0] > IKPI )
545 {
546     j4array[0]-=IK2PI;
547 }
548 else if( j4array[0] < -IKPI )
549 {    j4array[0]+=IK2PI;
550 }
551 j4valid[0] = true;
552 if( j4array[1] > IKPI )
553 {
554     j4array[1]-=IK2PI;
555 }
556 else if( j4array[1] < -IKPI )
557 {    j4array[1]+=IK2PI;
558 }
559 j4valid[1] = true;
560 for(int ij4 = 0; ij4 < 2; ++ij4)
561 {
562 if( !j4valid[ij4] )
563 {
564     continue;
565 }
566 _ij4[0] = ij4; _ij4[1] = -1;
567 for(int iij4 = ij4+1; iij4 < 2; ++iij4)
568 {
569 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
570 {
571     j4valid[iij4]=false; _ij4[1] = iij4; break;
572 }
573 }
574 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
575 {
576 IkReal evalcond[2];
577 IkReal x95=((0.045)*sj8);
578 IkReal x96=(cj9*x95);
579 IkReal x97=((0.3)*sj8*sj9);
580 IkReal x98=IKcos(j4);
581 IkReal x99=cj8*cj8;
582 IkReal x100=(px*py);
583 IkReal x101=sj8*sj8;
584 IkReal x102=IKsin(j4);
585 IkReal x103=((1.0)*(px*px));
586 evalcond[0]=((((-1.0)*px*x95))+((px*x96))+((x98*((((x100*x101))+((x100*x99))))))+(((-1.0)*px*x97))+((x102*(((((-1.0)*x101*x103))+(((-1.0)*x103*x99)))))));
587 evalcond[1]=(x95+x97+((px*x102))+(((-1.0)*x96))+(((-1.0)*py*x98)));
588 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  )
589 {
590 continue;
591 }
592 }
593 
594 {
595 IkReal j6eval[2];
596 IkReal x104=(cj4*px);
597 IkReal x105=(cj8*pz);
598 IkReal x106=(py*sj4);
599 IkReal x107=(cj4*cj9*px);
600 IkReal x108=(cj4*px*sj9);
601 IkReal x109=(cj8*pz*sj9);
602 IkReal x110=(cj9*py*sj4);
603 IkReal x111=(py*sj4*sj9);
604 IkReal x112=((0.045)*x105);
605 j6eval[0]=((((-1.0)*x111))+(((-1.0)*x108))+(((-12.2222222222222)*x106))+(((-6.66666666666667)*x109))+((cj9*x105))+(((-12.2222222222222)*x104))+(((-1.0)*x105))+(((-6.66666666666667)*x110))+(((-6.66666666666667)*x107)));
606 j6eval[1]=IKsign(((((-1.0)*x112))+(((-0.045)*x108))+(((-0.55)*x106))+(((-0.55)*x104))+((cj9*x112))+(((-0.3)*x107))+(((-0.045)*x111))+(((-0.3)*x110))+(((-0.3)*x109))));
607 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
608 {
609 {
610 IkReal j6eval[2];
611 IkReal x113=(sj8*(py*py));
612 IkReal x114=cj4*cj4;
613 IkReal x115=(((sj8*x114*(px*px)))+((sj8*(pz*pz)))+(((-1.0)*x113*x114))+(((2.0)*cj4*px*py*sj4*sj8))+x113);
614 j6eval[0]=x115;
615 j6eval[1]=IKsign(x115);
616 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
617 {
618 {
619 IkReal j6eval[2];
620 IkReal x116=(pz*sj8);
621 IkReal x117=(cj9*pz*sj8);
622 IkReal x118=(pz*sj8*sj9);
623 IkReal x119=(cj8*sj8);
624 IkReal x120=(cj4*px*x119);
625 IkReal x121=(py*sj4*x119);
626 IkReal x122=((1.0)*cj9);
627 IkReal x123=(cj4*cj8*px*sj8*sj9);
628 IkReal x124=(cj8*py*sj4*sj8*sj9);
629 IkReal x125=((0.045)*x120);
630 IkReal x126=((0.045)*x121);
631 j6eval[0]=((((6.66666666666667)*x123))+(((-1.0)*x121*x122))+x120+x121+(((-12.2222222222222)*x116))+(((-1.0)*x120*x122))+(((6.66666666666667)*x124))+(((-6.66666666666667)*x117))+(((-1.0)*x118)));
632 j6eval[1]=IKsign(((((-1.0)*cj9*x126))+x125+x126+(((-0.55)*x116))+(((0.3)*x123))+(((0.3)*x124))+(((-0.045)*x118))+(((-0.3)*x117))+(((-1.0)*cj9*x125))));
633 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
634 {
635 {
636 IkReal evalcond[4];
637 bool bgotonextstatement = true;
638 do
639 {
640 IkReal x127=(((px*sj4))+(((-1.0)*(1.0)*cj4*py)));
641 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j8))), 6.28318530717959)));
642 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
643 evalcond[2]=x127;
644 evalcond[3]=x127;
645 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
646 {
647 bgotonextstatement=false;
648 {
649 IkReal j6eval[2];
650 sj8=0;
651 cj8=1.0;
652 j8=0;
653 IkReal x128=(cj9*pz);
654 IkReal x129=(cj4*px);
655 IkReal x130=(pp*pz);
656 IkReal x131=(py*sj4);
657 IkReal x132=(cj4*cj9*px);
658 IkReal x133=(cj4*pp*px);
659 IkReal x134=(cj9*py*sj4);
660 IkReal x135=(pp*py*sj4);
661 j6eval[0]=(x128+(((5.4333061668025)*x130))+(((13.9482024812098)*x129))+(((12.2222222222222)*x134))+(((2.92556370551481)*pz))+(((12.2222222222222)*x132))+(((-36.2220411120167)*x135))+(((13.9482024812098)*x131))+(((-36.2220411120167)*x133)));
662 j6eval[1]=IKsign(((((1.32323529411765)*x132))+(((0.316735294117647)*pz))+(((0.108264705882353)*x128))+(((-3.92156862745098)*x135))+(((1.32323529411765)*x134))+(((1.51009803921569)*x131))+(((1.51009803921569)*x129))+(((0.588235294117647)*x130))+(((-3.92156862745098)*x133))));
663 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
664 {
665 {
666 IkReal j6eval[2];
667 sj8=0;
668 cj8=1.0;
669 j8=0;
670 IkReal x136=(cj4*px);
671 IkReal x137=(py*sj4);
672 IkReal x138=(cj9*pz);
673 IkReal x139=(pz*sj9);
674 IkReal x140=((1.0)*cj9);
675 IkReal x141=(cj4*px*sj9);
676 IkReal x142=(py*sj4*sj9);
677 IkReal x143=((0.045)*x136);
678 IkReal x144=((0.045)*x137);
679 j6eval[0]=(x137+x136+(((-1.0)*(12.2222222222222)*pz))+(((6.66666666666667)*x141))+(((-1.0)*x136*x140))+(((6.66666666666667)*x142))+(((-6.66666666666667)*x138))+(((-1.0)*x139))+(((-1.0)*x137*x140)));
680 j6eval[1]=IKsign(((((-0.3)*x138))+(((-1.0)*(0.55)*pz))+(((0.3)*x142))+x143+x144+(((0.3)*x141))+(((-0.045)*x139))+(((-1.0)*cj9*x143))+(((-1.0)*cj9*x144))));
681 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
682 {
683 {
684 IkReal j6eval[2];
685 sj8=0;
686 cj8=1.0;
687 j8=0;
688 IkReal x145=(cj4*px);
689 IkReal x146=(cj9*pz);
690 IkReal x147=(pp*pz);
691 IkReal x148=(py*sj4);
692 IkReal x149=(cj4*cj9*px);
693 IkReal x150=(cj4*pp*px);
694 IkReal x151=(cj9*py*sj4);
695 IkReal x152=(pp*py*sj4);
696 j6eval[0]=((((-1.0)*x151))+(((-5.4333061668025)*x150))+(((-1.0)*x149))+(((-5.4333061668025)*x152))+(((12.2222222222222)*x146))+(((13.9482024812098)*pz))+(((-2.92556370551481)*x148))+(((-2.92556370551481)*x145))+(((-36.2220411120167)*x147)));
697 j6eval[1]=IKsign(((((-0.108264705882353)*x151))+(((1.51009803921569)*pz))+(((-0.588235294117647)*x152))+(((-0.316735294117647)*x148))+(((-0.588235294117647)*x150))+(((-0.108264705882353)*x149))+(((1.32323529411765)*x146))+(((-3.92156862745098)*x147))+(((-0.316735294117647)*x145))));
698 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
699 {
700 {
701 IkReal evalcond[1];
702 bool bgotonextstatement = true;
703 do
704 {
705 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j9), 6.28318530717959)))))+(IKabs(pz)));
706 if( IKabs(evalcond[0]) < 0.0000010000000000  )
707 {
708 bgotonextstatement=false;
709 {
710 IkReal j6eval[1];
711 IkReal x153=((1.0)*py);
712 sj8=0;
713 cj8=1.0;
714 j8=0;
715 pz=0;
716 j9=0;
717 sj9=0;
718 cj9=1.0;
719 pp=((py*py)+(px*px));
720 npx=(((py*r10))+((px*r00)));
721 npy=(((py*r11))+((px*r01)));
722 npz=(((px*r02))+((py*r12)));
723 rxp0_0=((-1.0)*r20*x153);
724 rxp0_1=(px*r20);
725 rxp1_0=((-1.0)*r21*x153);
726 rxp1_1=(px*r21);
727 rxp2_0=((-1.0)*r22*x153);
728 rxp2_1=(px*r22);
729 j6eval[0]=(((py*sj4))+((cj4*px)));
730 if( IKabs(j6eval[0]) < 0.0000010000000000  )
731 {
732 {
733 IkReal j6eval[1];
734 IkReal x154=((1.0)*py);
735 sj8=0;
736 cj8=1.0;
737 j8=0;
738 pz=0;
739 j9=0;
740 sj9=0;
741 cj9=1.0;
742 pp=((py*py)+(px*px));
743 npx=(((py*r10))+((px*r00)));
744 npy=(((py*r11))+((px*r01)));
745 npz=(((px*r02))+((py*r12)));
746 rxp0_0=((-1.0)*r20*x154);
747 rxp0_1=(px*r20);
748 rxp1_0=((-1.0)*r21*x154);
749 rxp1_1=(px*r21);
750 rxp2_0=((-1.0)*r22*x154);
751 rxp2_1=(px*r22);
752 j6eval[0]=((-1.0)+(((-1.0)*(1.3840830449827)*(px*px)))+(((-1.0)*(1.3840830449827)*(py*py))));
753 if( IKabs(j6eval[0]) < 0.0000010000000000  )
754 {
755 {
756 IkReal j6eval[2];
757 IkReal x155=((1.0)*py);
758 sj8=0;
759 cj8=1.0;
760 j8=0;
761 pz=0;
762 j9=0;
763 sj9=0;
764 cj9=1.0;
765 pp=((py*py)+(px*px));
766 npx=(((py*r10))+((px*r00)));
767 npy=(((py*r11))+((px*r01)));
768 npz=(((px*r02))+((py*r12)));
769 rxp0_0=((-1.0)*r20*x155);
770 rxp0_1=(px*r20);
771 rxp1_0=((-1.0)*r21*x155);
772 rxp1_1=(px*r21);
773 rxp2_0=((-1.0)*r22*x155);
774 rxp2_1=(px*r22);
775 IkReal x156=(cj4*px);
776 IkReal x157=(py*sj4);
777 j6eval[0]=(x156+x157);
778 j6eval[1]=((((-1.0)*(1.3840830449827)*cj4*(px*px*px)))+(((-1.0)*x157))+(((-1.3840830449827)*x157*(px*px)))+(((-1.3840830449827)*x156*(py*py)))+(((-1.0)*x156))+(((-1.0)*(1.3840830449827)*sj4*(py*py*py))));
779 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
780 {
781 {
782 IkReal evalcond[4];
783 bool bgotonextstatement = true;
784 do
785 {
786 evalcond[0]=((IKabs(py))+(IKabs(px)));
787 evalcond[1]=-0.85;
788 evalcond[2]=0;
789 evalcond[3]=-0.2125;
790 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
791 {
792 bgotonextstatement=false;
793 {
794 IkReal j6array[2], cj6array[2], sj6array[2];
795 bool j6valid[2]={false};
796 _nj6 = 2;
797 j6array[0]=2.9927027059803;
798 sj6array[0]=IKsin(j6array[0]);
799 cj6array[0]=IKcos(j6array[0]);
800 j6array[1]=6.13429535957009;
801 sj6array[1]=IKsin(j6array[1]);
802 cj6array[1]=IKcos(j6array[1]);
803 if( j6array[0] > IKPI )
804 {
805     j6array[0]-=IK2PI;
806 }
807 else if( j6array[0] < -IKPI )
808 {    j6array[0]+=IK2PI;
809 }
810 j6valid[0] = true;
811 if( j6array[1] > IKPI )
812 {
813     j6array[1]-=IK2PI;
814 }
815 else if( j6array[1] < -IKPI )
816 {    j6array[1]+=IK2PI;
817 }
818 j6valid[1] = true;
819 for(int ij6 = 0; ij6 < 2; ++ij6)
820 {
821 if( !j6valid[ij6] )
822 {
823     continue;
824 }
825 _ij6[0] = ij6; _ij6[1] = -1;
826 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
827 {
828 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
829 {
830     j6valid[iij6]=false; _ij6[1] = iij6; break;
831 }
832 }
833 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
834 {
835 IkReal evalcond[1];
836 evalcond[0]=((0.85)*(IKsin(j6)));
837 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
838 {
839 continue;
840 }
841 }
842 
843 rotationfunction0(solutions);
844 }
845 }
846 
847 }
848 } while(0);
849 if( bgotonextstatement )
850 {
851 bool bgotonextstatement = true;
852 do
853 {
854 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j4), 6.28318530717959)))))+(IKabs(px)));
855 evalcond[1]=-0.85;
856 evalcond[2]=0;
857 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
858 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
859 {
860 bgotonextstatement=false;
861 {
862 IkReal j6eval[1];
863 IkReal x606=((1.0)*py);
864 sj8=0;
865 cj8=1.0;
866 j8=0;
867 pz=0;
868 j9=0;
869 sj9=0;
870 cj9=1.0;
871 pp=py*py;
872 npx=(py*r10);
873 npy=(py*r11);
874 npz=(py*r12);
875 rxp0_0=((-1.0)*r20*x606);
876 rxp0_1=0;
877 rxp1_0=((-1.0)*r21*x606);
878 rxp1_1=0;
879 rxp2_0=((-1.0)*r22*x606);
880 rxp2_1=0;
881 px=0;
882 j4=0;
883 sj4=0;
884 cj4=1.0;
885 rxp0_2=(py*r00);
886 rxp1_2=(py*r01);
887 rxp2_2=(py*r02);
888 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
889 if( IKabs(j6eval[0]) < 0.0000010000000000  )
890 {
891 continue; // no branches [j6]
892 
893 } else
894 {
895 {
896 IkReal j6array[2], cj6array[2], sj6array[2];
897 bool j6valid[2]={false};
898 _nj6 = 2;
899 IkReal x607=py*py;
900 CheckValue<IkReal> x609 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x607)))),((-2.83333333333333)+(((3.92156862745098)*x607))),IKFAST_ATAN2_MAGTHRESH);
901 if(!x609.valid){
902 continue;
903 }
904 IkReal x608=((-1.0)*(x609.value));
905 j6array[0]=x608;
906 sj6array[0]=IKsin(j6array[0]);
907 cj6array[0]=IKcos(j6array[0]);
908 j6array[1]=((3.14159265358979)+x608);
909 sj6array[1]=IKsin(j6array[1]);
910 cj6array[1]=IKcos(j6array[1]);
911 if( j6array[0] > IKPI )
912 {
913     j6array[0]-=IK2PI;
914 }
915 else if( j6array[0] < -IKPI )
916 {    j6array[0]+=IK2PI;
917 }
918 j6valid[0] = true;
919 if( j6array[1] > IKPI )
920 {
921     j6array[1]-=IK2PI;
922 }
923 else if( j6array[1] < -IKPI )
924 {    j6array[1]+=IK2PI;
925 }
926 j6valid[1] = true;
927 for(int ij6 = 0; ij6 < 2; ++ij6)
928 {
929 if( !j6valid[ij6] )
930 {
931     continue;
932 }
933 _ij6[0] = ij6; _ij6[1] = -1;
934 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
935 {
936 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
937 {
938     j6valid[iij6]=false; _ij6[1] = iij6; break;
939 }
940 }
941 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
942 {
943 IkReal evalcond[1];
944 evalcond[0]=((0.85)*(IKsin(j6)));
945 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
946 {
947 continue;
948 }
949 }
950 
951 rotationfunction0(solutions);
952 }
953 }
954 
955 }
956 
957 }
958 
959 }
960 } while(0);
961 if( bgotonextstatement )
962 {
963 bool bgotonextstatement = true;
964 do
965 {
966 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(j4, 6.28318530717959)))))+(IKabs(px)));
967 evalcond[1]=-0.85;
968 evalcond[2]=0;
969 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
970 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
971 {
972 bgotonextstatement=false;
973 {
974 IkReal j6eval[1];
975 IkReal x610=((1.0)*py);
976 sj8=0;
977 cj8=1.0;
978 j8=0;
979 pz=0;
980 j9=0;
981 sj9=0;
982 cj9=1.0;
983 pp=py*py;
984 npx=(py*r10);
985 npy=(py*r11);
986 npz=(py*r12);
987 rxp0_0=((-1.0)*r20*x610);
988 rxp0_1=0;
989 rxp1_0=((-1.0)*r21*x610);
990 rxp1_1=0;
991 rxp2_0=((-1.0)*r22*x610);
992 rxp2_1=0;
993 px=0;
994 j4=3.14159265358979;
995 sj4=0;
996 cj4=-1.0;
997 rxp0_2=(py*r00);
998 rxp1_2=(py*r01);
999 rxp2_2=(py*r02);
1000 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
1001 if( IKabs(j6eval[0]) < 0.0000010000000000  )
1002 {
1003 continue; // no branches [j6]
1004 
1005 } else
1006 {
1007 {
1008 IkReal j6array[2], cj6array[2], sj6array[2];
1009 bool j6valid[2]={false};
1010 _nj6 = 2;
1011 IkReal x611=py*py;
1012 CheckValue<IkReal> x613 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x611)))),((-2.83333333333333)+(((3.92156862745098)*x611))),IKFAST_ATAN2_MAGTHRESH);
1013 if(!x613.valid){
1014 continue;
1015 }
1016 IkReal x612=((-1.0)*(x613.value));
1017 j6array[0]=x612;
1018 sj6array[0]=IKsin(j6array[0]);
1019 cj6array[0]=IKcos(j6array[0]);
1020 j6array[1]=((3.14159265358979)+x612);
1021 sj6array[1]=IKsin(j6array[1]);
1022 cj6array[1]=IKcos(j6array[1]);
1023 if( j6array[0] > IKPI )
1024 {
1025     j6array[0]-=IK2PI;
1026 }
1027 else if( j6array[0] < -IKPI )
1028 {    j6array[0]+=IK2PI;
1029 }
1030 j6valid[0] = true;
1031 if( j6array[1] > IKPI )
1032 {
1033     j6array[1]-=IK2PI;
1034 }
1035 else if( j6array[1] < -IKPI )
1036 {    j6array[1]+=IK2PI;
1037 }
1038 j6valid[1] = true;
1039 for(int ij6 = 0; ij6 < 2; ++ij6)
1040 {
1041 if( !j6valid[ij6] )
1042 {
1043     continue;
1044 }
1045 _ij6[0] = ij6; _ij6[1] = -1;
1046 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
1047 {
1048 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1049 {
1050     j6valid[iij6]=false; _ij6[1] = iij6; break;
1051 }
1052 }
1053 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1054 {
1055 IkReal evalcond[1];
1056 evalcond[0]=((0.85)*(IKsin(j6)));
1057 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
1058 {
1059 continue;
1060 }
1061 }
1062 
1063 rotationfunction0(solutions);
1064 }
1065 }
1066 
1067 }
1068 
1069 }
1070 
1071 }
1072 } while(0);
1073 if( bgotonextstatement )
1074 {
1075 bool bgotonextstatement = true;
1076 do
1077 {
1078 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((1.5707963267949)+j4), 6.28318530717959)))))+(IKabs(py)));
1079 evalcond[1]=-0.85;
1080 evalcond[2]=0;
1081 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
1082 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
1083 {
1084 bgotonextstatement=false;
1085 {
1086 IkReal j6eval[1];
1087 IkReal x614=((1.0)*px);
1088 sj8=0;
1089 cj8=1.0;
1090 j8=0;
1091 pz=0;
1092 j9=0;
1093 sj9=0;
1094 cj9=1.0;
1095 pp=px*px;
1096 npx=(px*r00);
1097 npy=(px*r01);
1098 npz=(px*r02);
1099 rxp0_0=0;
1100 rxp0_1=(px*r20);
1101 rxp1_0=0;
1102 rxp1_1=(px*r21);
1103 rxp2_0=0;
1104 rxp2_1=(px*r22);
1105 py=0;
1106 j4=1.5707963267949;
1107 sj4=1.0;
1108 cj4=0;
1109 rxp0_2=((-1.0)*r10*x614);
1110 rxp1_2=((-1.0)*r11*x614);
1111 rxp2_2=((-1.0)*r12*x614);
1112 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
1113 if( IKabs(j6eval[0]) < 0.0000010000000000  )
1114 {
1115 continue; // no branches [j6]
1116 
1117 } else
1118 {
1119 {
1120 IkReal j6array[2], cj6array[2], sj6array[2];
1121 bool j6valid[2]={false};
1122 _nj6 = 2;
1123 IkReal x615=px*px;
1124 CheckValue<IkReal> x617 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x615)))),((-2.83333333333333)+(((3.92156862745098)*x615))),IKFAST_ATAN2_MAGTHRESH);
1125 if(!x617.valid){
1126 continue;
1127 }
1128 IkReal x616=((-1.0)*(x617.value));
1129 j6array[0]=x616;
1130 sj6array[0]=IKsin(j6array[0]);
1131 cj6array[0]=IKcos(j6array[0]);
1132 j6array[1]=((3.14159265358979)+x616);
1133 sj6array[1]=IKsin(j6array[1]);
1134 cj6array[1]=IKcos(j6array[1]);
1135 if( j6array[0] > IKPI )
1136 {
1137     j6array[0]-=IK2PI;
1138 }
1139 else if( j6array[0] < -IKPI )
1140 {    j6array[0]+=IK2PI;
1141 }
1142 j6valid[0] = true;
1143 if( j6array[1] > IKPI )
1144 {
1145     j6array[1]-=IK2PI;
1146 }
1147 else if( j6array[1] < -IKPI )
1148 {    j6array[1]+=IK2PI;
1149 }
1150 j6valid[1] = true;
1151 for(int ij6 = 0; ij6 < 2; ++ij6)
1152 {
1153 if( !j6valid[ij6] )
1154 {
1155     continue;
1156 }
1157 _ij6[0] = ij6; _ij6[1] = -1;
1158 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
1159 {
1160 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1161 {
1162     j6valid[iij6]=false; _ij6[1] = iij6; break;
1163 }
1164 }
1165 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1166 {
1167 IkReal evalcond[1];
1168 evalcond[0]=((0.85)*(IKsin(j6)));
1169 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
1170 {
1171 continue;
1172 }
1173 }
1174 
1175 rotationfunction0(solutions);
1176 }
1177 }
1178 
1179 }
1180 
1181 }
1182 
1183 }
1184 } while(0);
1185 if( bgotonextstatement )
1186 {
1187 bool bgotonextstatement = true;
1188 do
1189 {
1190 evalcond[0]=((IKabs(py))+(IKabs(((-3.14159265358979)+(IKfmod(((4.71238898038469)+j4), 6.28318530717959))))));
1191 evalcond[1]=-0.85;
1192 evalcond[2]=0;
1193 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
1194 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
1195 {
1196 bgotonextstatement=false;
1197 {
1198 IkReal j6eval[1];
1199 IkReal x618=((1.0)*px);
1200 sj8=0;
1201 cj8=1.0;
1202 j8=0;
1203 pz=0;
1204 j9=0;
1205 sj9=0;
1206 cj9=1.0;
1207 pp=px*px;
1208 npx=(px*r00);
1209 npy=(px*r01);
1210 npz=(px*r02);
1211 rxp0_0=0;
1212 rxp0_1=(px*r20);
1213 rxp1_0=0;
1214 rxp1_1=(px*r21);
1215 rxp2_0=0;
1216 rxp2_1=(px*r22);
1217 py=0;
1218 j4=-1.5707963267949;
1219 sj4=-1.0;
1220 cj4=0;
1221 rxp0_2=((-1.0)*r10*x618);
1222 rxp1_2=((-1.0)*r11*x618);
1223 rxp2_2=((-1.0)*r12*x618);
1224 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
1225 if( IKabs(j6eval[0]) < 0.0000010000000000  )
1226 {
1227 continue; // no branches [j6]
1228 
1229 } else
1230 {
1231 {
1232 IkReal j6array[2], cj6array[2], sj6array[2];
1233 bool j6valid[2]={false};
1234 _nj6 = 2;
1235 IkReal x619=px*px;
1236 CheckValue<IkReal> x621 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x619)))),((-2.83333333333333)+(((3.92156862745098)*x619))),IKFAST_ATAN2_MAGTHRESH);
1237 if(!x621.valid){
1238 continue;
1239 }
1240 IkReal x620=((-1.0)*(x621.value));
1241 j6array[0]=x620;
1242 sj6array[0]=IKsin(j6array[0]);
1243 cj6array[0]=IKcos(j6array[0]);
1244 j6array[1]=((3.14159265358979)+x620);
1245 sj6array[1]=IKsin(j6array[1]);
1246 cj6array[1]=IKcos(j6array[1]);
1247 if( j6array[0] > IKPI )
1248 {
1249     j6array[0]-=IK2PI;
1250 }
1251 else if( j6array[0] < -IKPI )
1252 {    j6array[0]+=IK2PI;
1253 }
1254 j6valid[0] = true;
1255 if( j6array[1] > IKPI )
1256 {
1257     j6array[1]-=IK2PI;
1258 }
1259 else if( j6array[1] < -IKPI )
1260 {    j6array[1]+=IK2PI;
1261 }
1262 j6valid[1] = true;
1263 for(int ij6 = 0; ij6 < 2; ++ij6)
1264 {
1265 if( !j6valid[ij6] )
1266 {
1267     continue;
1268 }
1269 _ij6[0] = ij6; _ij6[1] = -1;
1270 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
1271 {
1272 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1273 {
1274     j6valid[iij6]=false; _ij6[1] = iij6; break;
1275 }
1276 }
1277 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1278 {
1279 IkReal evalcond[1];
1280 evalcond[0]=((0.85)*(IKsin(j6)));
1281 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
1282 {
1283 continue;
1284 }
1285 }
1286 
1287 rotationfunction0(solutions);
1288 }
1289 }
1290 
1291 }
1292 
1293 }
1294 
1295 }
1296 } while(0);
1297 if( bgotonextstatement )
1298 {
1299 bool bgotonextstatement = true;
1300 do
1301 {
1302 if( 1 )
1303 {
1304 bgotonextstatement=false;
1305 continue; // branch miss [j6]
1306 
1307 }
1308 } while(0);
1309 if( bgotonextstatement )
1310 {
1311 }
1312 }
1313 }
1314 }
1315 }
1316 }
1317 }
1318 
1319 } else
1320 {
1321 {
1322 IkReal j6array[1], cj6array[1], sj6array[1];
1323 bool j6valid[1]={false};
1324 _nj6 = 1;
1325 IkReal x622=(cj4*px);
1326 IkReal x623=(py*sj4);
1327 IkReal x624=px*px;
1328 IkReal x625=py*py;
1329 CheckValue<IkReal> x626=IKPowWithIntegerCheck(((((20.0)*x622))+(((20.0)*x623))),-1);
1330 if(!x626.valid){
1331 continue;
1332 }
1333 CheckValue<IkReal> x627=IKPowWithIntegerCheck(((((-1.0)*(11.7647058823529)*cj4*(px*px*px)))+(((-8.5)*x623))+(((-11.7647058823529)*x623*x624))+(((-11.7647058823529)*x622*x625))+(((-8.5)*x622))+(((-1.0)*(11.7647058823529)*sj4*(py*py*py)))),-1);
1334 if(!x627.valid){
1335 continue;
1336 }
1337 if( IKabs(((17.0)*(x626.value))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x627.value)*(((48.1666666666667)+(((-66.6666666666667)*x625))+(((-66.6666666666667)*x624)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((17.0)*(x626.value)))+IKsqr(((x627.value)*(((48.1666666666667)+(((-66.6666666666667)*x625))+(((-66.6666666666667)*x624))))))-1) <= IKFAST_SINCOS_THRESH )
1338     continue;
1339 j6array[0]=IKatan2(((17.0)*(x626.value)), ((x627.value)*(((48.1666666666667)+(((-66.6666666666667)*x625))+(((-66.6666666666667)*x624))))));
1340 sj6array[0]=IKsin(j6array[0]);
1341 cj6array[0]=IKcos(j6array[0]);
1342 if( j6array[0] > IKPI )
1343 {
1344     j6array[0]-=IK2PI;
1345 }
1346 else if( j6array[0] < -IKPI )
1347 {    j6array[0]+=IK2PI;
1348 }
1349 j6valid[0] = true;
1350 for(int ij6 = 0; ij6 < 1; ++ij6)
1351 {
1352 if( !j6valid[ij6] )
1353 {
1354     continue;
1355 }
1356 _ij6[0] = ij6; _ij6[1] = -1;
1357 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1358 {
1359 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1360 {
1361     j6valid[iij6]=false; _ij6[1] = iij6; break;
1362 }
1363 }
1364 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1365 {
1366 IkReal evalcond[5];
1367 IkReal x628=IKsin(j6);
1368 IkReal x629=(cj4*px);
1369 IkReal x630=(x628*x629);
1370 IkReal x631=(py*sj4);
1371 IkReal x632=(x628*x631);
1372 IkReal x633=((1.0)*x629);
1373 IkReal x634=((1.0)*x631);
1374 IkReal x635=IKcos(j6);
1375 IkReal x636=px*px;
1376 IkReal x637=((3.92156862745098)*x628);
1377 IkReal x638=((0.588235294117647)*x635);
1378 IkReal x639=py*py;
1379 IkReal x640=((0.09)*x635);
1380 evalcond[0]=((-0.85)+x630+x632);
1381 evalcond[1]=((((-1.0)*x634))+(((0.85)*x628))+(((-1.0)*x633)));
1382 evalcond[2]=((((-1.0)*x634*x635))+(((-1.0)*x633*x635)));
1383 evalcond[3]=(((x637*x639))+((x636*x637))+(((-1.0)*x638*x639))+(((-0.425)*x635))+(((-2.83333333333333)*x628))+(((-1.0)*x636*x638)));
1384 evalcond[4]=((-0.2125)+(((-1.0)*x639))+((x631*x640))+(((-1.0)*x636))+((x629*x640))+(((1.1)*x632))+(((1.1)*x630)));
1385 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1386 {
1387 continue;
1388 }
1389 }
1390 
1391 rotationfunction0(solutions);
1392 }
1393 }
1394 
1395 }
1396 
1397 }
1398 
1399 } else
1400 {
1401 {
1402 IkReal j6array[1], cj6array[1], sj6array[1];
1403 bool j6valid[1]={false};
1404 _nj6 = 1;
1405 IkReal x641=(cj4*px);
1406 IkReal x642=(py*sj4);
1407 IkReal x643=px*px;
1408 IkReal x644=py*py;
1409 CheckValue<IkReal> x645=IKPowWithIntegerCheck(((-7.225)+(((-10.0)*x643))+(((-10.0)*x644))),-1);
1410 if(!x645.valid){
1411 continue;
1412 }
1413 if( IKabs(((((1.17647058823529)*x642))+(((1.17647058823529)*x641)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x645.value)*(((((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x641*x644))+(((-78.4313725490196)*x642*x643))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((56.6666666666667)*x642))+(((56.6666666666667)*x641)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x642))+(((1.17647058823529)*x641))))+IKsqr(((x645.value)*(((((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x641*x644))+(((-78.4313725490196)*x642*x643))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((56.6666666666667)*x642))+(((56.6666666666667)*x641))))))-1) <= IKFAST_SINCOS_THRESH )
1414     continue;
1415 j6array[0]=IKatan2(((((1.17647058823529)*x642))+(((1.17647058823529)*x641))), ((x645.value)*(((((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x641*x644))+(((-78.4313725490196)*x642*x643))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((56.6666666666667)*x642))+(((56.6666666666667)*x641))))));
1416 sj6array[0]=IKsin(j6array[0]);
1417 cj6array[0]=IKcos(j6array[0]);
1418 if( j6array[0] > IKPI )
1419 {
1420     j6array[0]-=IK2PI;
1421 }
1422 else if( j6array[0] < -IKPI )
1423 {    j6array[0]+=IK2PI;
1424 }
1425 j6valid[0] = true;
1426 for(int ij6 = 0; ij6 < 1; ++ij6)
1427 {
1428 if( !j6valid[ij6] )
1429 {
1430     continue;
1431 }
1432 _ij6[0] = ij6; _ij6[1] = -1;
1433 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1434 {
1435 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1436 {
1437     j6valid[iij6]=false; _ij6[1] = iij6; break;
1438 }
1439 }
1440 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1441 {
1442 IkReal evalcond[5];
1443 IkReal x646=IKsin(j6);
1444 IkReal x647=(cj4*px);
1445 IkReal x648=(x646*x647);
1446 IkReal x649=(py*sj4);
1447 IkReal x650=(x646*x649);
1448 IkReal x651=((1.0)*x647);
1449 IkReal x652=((1.0)*x649);
1450 IkReal x653=IKcos(j6);
1451 IkReal x654=px*px;
1452 IkReal x655=((3.92156862745098)*x646);
1453 IkReal x656=((0.588235294117647)*x653);
1454 IkReal x657=py*py;
1455 IkReal x658=((0.09)*x653);
1456 evalcond[0]=((-0.85)+x650+x648);
1457 evalcond[1]=((((-1.0)*x652))+(((-1.0)*x651))+(((0.85)*x646)));
1458 evalcond[2]=((((-1.0)*x652*x653))+(((-1.0)*x651*x653)));
1459 evalcond[3]=(((x654*x655))+((x655*x657))+(((-1.0)*x654*x656))+(((-0.425)*x653))+(((-1.0)*x656*x657))+(((-2.83333333333333)*x646)));
1460 evalcond[4]=((-0.2125)+(((1.1)*x648))+(((1.1)*x650))+((x649*x658))+(((-1.0)*x657))+((x647*x658))+(((-1.0)*x654)));
1461 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1462 {
1463 continue;
1464 }
1465 }
1466 
1467 rotationfunction0(solutions);
1468 }
1469 }
1470 
1471 }
1472 
1473 }
1474 
1475 } else
1476 {
1477 {
1478 IkReal j6array[1], cj6array[1], sj6array[1];
1479 bool j6valid[1]={false};
1480 _nj6 = 1;
1481 IkReal x659=(cj4*px);
1482 IkReal x660=(py*sj4);
1483 IkReal x661=px*px;
1484 IkReal x662=py*py;
1485 IkReal x663=((1.29411764705882)*(cj4*cj4));
1486 CheckValue<IkReal> x664=IKPowWithIntegerCheck(((((0.09)*x659))+(((0.09)*x660))),-1);
1487 if(!x664.valid){
1488 continue;
1489 }
1490 if( IKabs(((((1.17647058823529)*x660))+(((1.17647058823529)*x659)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x664.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x660))+(((-0.294117647058824)*x662))+(((-1.0)*x661*x663))+((x662*x663))+x661)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x660))+(((1.17647058823529)*x659))))+IKsqr(((x664.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x660))+(((-0.294117647058824)*x662))+(((-1.0)*x661*x663))+((x662*x663))+x661))))-1) <= IKFAST_SINCOS_THRESH )
1491     continue;
1492 j6array[0]=IKatan2(((((1.17647058823529)*x660))+(((1.17647058823529)*x659))), ((x664.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x660))+(((-0.294117647058824)*x662))+(((-1.0)*x661*x663))+((x662*x663))+x661))));
1493 sj6array[0]=IKsin(j6array[0]);
1494 cj6array[0]=IKcos(j6array[0]);
1495 if( j6array[0] > IKPI )
1496 {
1497     j6array[0]-=IK2PI;
1498 }
1499 else if( j6array[0] < -IKPI )
1500 {    j6array[0]+=IK2PI;
1501 }
1502 j6valid[0] = true;
1503 for(int ij6 = 0; ij6 < 1; ++ij6)
1504 {
1505 if( !j6valid[ij6] )
1506 {
1507     continue;
1508 }
1509 _ij6[0] = ij6; _ij6[1] = -1;
1510 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1511 {
1512 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1513 {
1514     j6valid[iij6]=false; _ij6[1] = iij6; break;
1515 }
1516 }
1517 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1518 {
1519 IkReal evalcond[5];
1520 IkReal x665=IKsin(j6);
1521 IkReal x666=(cj4*px);
1522 IkReal x667=(x665*x666);
1523 IkReal x668=(py*sj4);
1524 IkReal x669=(x665*x668);
1525 IkReal x670=((1.0)*x666);
1526 IkReal x671=((1.0)*x668);
1527 IkReal x672=IKcos(j6);
1528 IkReal x673=px*px;
1529 IkReal x674=((3.92156862745098)*x665);
1530 IkReal x675=((0.588235294117647)*x672);
1531 IkReal x676=py*py;
1532 IkReal x677=((0.09)*x672);
1533 evalcond[0]=((-0.85)+x667+x669);
1534 evalcond[1]=((((0.85)*x665))+(((-1.0)*x670))+(((-1.0)*x671)));
1535 evalcond[2]=((((-1.0)*x671*x672))+(((-1.0)*x670*x672)));
1536 evalcond[3]=((((-2.83333333333333)*x665))+(((-0.425)*x672))+((x673*x674))+(((-1.0)*x675*x676))+((x674*x676))+(((-1.0)*x673*x675)));
1537 evalcond[4]=((-0.2125)+((x668*x677))+(((-1.0)*x676))+((x666*x677))+(((1.1)*x667))+(((-1.0)*x673))+(((1.1)*x669)));
1538 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1539 {
1540 continue;
1541 }
1542 }
1543 
1544 rotationfunction0(solutions);
1545 }
1546 }
1547 
1548 }
1549 
1550 }
1551 
1552 }
1553 } while(0);
1554 if( bgotonextstatement )
1555 {
1556 bool bgotonextstatement = true;
1557 do
1558 {
1559 if( 1 )
1560 {
1561 bgotonextstatement=false;
1562 continue; // branch miss [j6]
1563 
1564 }
1565 } while(0);
1566 if( bgotonextstatement )
1567 {
1568 }
1569 }
1570 }
1571 
1572 } else
1573 {
1574 {
1575 IkReal j6array[1], cj6array[1], sj6array[1];
1576 bool j6valid[1]={false};
1577 _nj6 = 1;
1578 IkReal x678=(cj4*px);
1579 IkReal x679=(py*sj4);
1580 IkReal x680=((0.108264705882353)*cj9);
1581 IkReal x681=((0.588235294117647)*pp);
1582 IkReal x682=(cj9*pp);
1583 IkReal x683=(cj9*sj9);
1584 IkReal x684=(pp*sj9);
1585 IkReal x685=cj9*cj9;
1586 IkReal x686=((1.0)*pz);
1587 CheckValue<IkReal> x687=IKPowWithIntegerCheck(IKsign(((((-1.0)*x678*x681))+(((-1.0)*x679*x680))+(((1.51009803921569)*pz))+(((1.32323529411765)*cj9*pz))+(((-1.0)*(3.92156862745098)*pp*pz))+(((-1.0)*x678*x680))+(((-0.316735294117647)*x679))+(((-0.316735294117647)*x678))+(((-1.0)*x679*x681)))),-1);
1588 if(!x687.valid){
1589 continue;
1590 }
1591 CheckValue<IkReal> x688 = IKatan2WithCheck(IkReal(((-0.174204411764706)+(((-0.0264705882352941)*x684))+(((-0.00487191176470588)*x683))+(pz*pz)+(((-0.0324794117647059)*x685))+(((-1.0)*(0.154566176470588)*cj9))+(((-0.176470588235294)*x682))+(((-1.0)*(0.323529411764706)*pp))+(((-1.0)*(0.0142530882352941)*sj9)))),((0.830553921568627)+(((-1.17647058823529)*x682))+(((0.396970588235294)*x685))+(((1.18080882352941)*cj9))+(((0.0595455882352941)*x683))+(((-1.0)*(2.15686274509804)*pp))+(((-1.0)*x678*x686))+(((-1.0)*x679*x686))+(((-0.176470588235294)*x684))+(((0.0679544117647059)*sj9))),IKFAST_ATAN2_MAGTHRESH);
1592 if(!x688.valid){
1593 continue;
1594 }
1595 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x687.value)))+(x688.value));
1596 sj6array[0]=IKsin(j6array[0]);
1597 cj6array[0]=IKcos(j6array[0]);
1598 if( j6array[0] > IKPI )
1599 {
1600     j6array[0]-=IK2PI;
1601 }
1602 else if( j6array[0] < -IKPI )
1603 {    j6array[0]+=IK2PI;
1604 }
1605 j6valid[0] = true;
1606 for(int ij6 = 0; ij6 < 1; ++ij6)
1607 {
1608 if( !j6valid[ij6] )
1609 {
1610     continue;
1611 }
1612 _ij6[0] = ij6; _ij6[1] = -1;
1613 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1614 {
1615 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1616 {
1617     j6valid[iij6]=false; _ij6[1] = iij6; break;
1618 }
1619 }
1620 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1621 {
1622 IkReal evalcond[5];
1623 IkReal x689=((0.3)*cj9);
1624 IkReal x690=((0.045)*sj9);
1625 IkReal x691=IKcos(j6);
1626 IkReal x692=(pz*x691);
1627 IkReal x693=IKsin(j6);
1628 IkReal x694=(cj4*px);
1629 IkReal x695=(x693*x694);
1630 IkReal x696=(py*sj4);
1631 IkReal x697=(x693*x696);
1632 IkReal x698=((0.045)*cj9);
1633 IkReal x699=((0.3)*sj9);
1634 IkReal x700=(pz*x693);
1635 IkReal x701=((1.0)*x694);
1636 IkReal x702=((1.0)*x696);
1637 IkReal x703=((0.09)*x691);
1638 evalcond[0]=((-0.55)+(((-1.0)*x689))+(((-1.0)*x690))+x692+x695+x697);
1639 evalcond[1]=((0.045)+x700+(((-1.0)*x691*x701))+(((-1.0)*x698))+x699+(((-1.0)*x691*x702)));
1640 evalcond[2]=((((-1.51009803921569)*x693))+(((-0.588235294117647)*pp*x691))+(((3.92156862745098)*pp*x693))+pz+(((-1.32323529411765)*cj9*x693))+(((-0.316735294117647)*x691))+(((-0.108264705882353)*cj9*x691)));
1641 evalcond[3]=((((-1.0)*x691*x698))+(((-1.0)*x702))+((x690*x693))+((x691*x699))+(((0.55)*x693))+(((0.045)*x691))+((x689*x693))+(((-1.0)*x701)));
1642 evalcond[4]=((-0.2125)+((x696*x703))+(((1.1)*x695))+(((-0.09)*x700))+(((1.1)*x692))+(((1.1)*x697))+((x694*x703))+(((-1.0)*(1.0)*pp)));
1643 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1644 {
1645 continue;
1646 }
1647 }
1648 
1649 rotationfunction0(solutions);
1650 }
1651 }
1652 
1653 }
1654 
1655 }
1656 
1657 } else
1658 {
1659 {
1660 IkReal j6array[1], cj6array[1], sj6array[1];
1661 bool j6valid[1]={false};
1662 _nj6 = 1;
1663 IkReal x704=((0.045)*cj4*px);
1664 IkReal x705=((0.045)*py*sj4);
1665 IkReal x706=((0.3)*sj9);
1666 IkReal x707=(cj4*px);
1667 IkReal x708=(py*sj4);
1668 IkReal x709=(cj9*sj9);
1669 IkReal x710=cj9*cj9;
1670 IkReal x711=((1.0)*pz);
1671 IkReal x712=py*py;
1672 IkReal x713=cj4*cj4;
1673 CheckValue<IkReal> x714 = IKatan2WithCheck(IkReal(((0.03825)+(((0.087975)*x709))+(((-0.027)*x710))+(((-1.0)*x707*x711))+(((0.167025)*sj9))+(((-1.0)*(0.01125)*cj9))+(((-1.0)*x708*x711)))),((-0.304525)+(((-1.0)*(0.0495)*sj9))+(((-0.087975)*x710))+(((2.0)*cj4*px*x708))+x712+(((-1.0)*x712*x713))+(((-1.0)*(0.33)*cj9))+((x713*(px*px)))+(((-0.027)*x709))),IKFAST_ATAN2_MAGTHRESH);
1674 if(!x714.valid){
1675 continue;
1676 }
1677 CheckValue<IkReal> x715=IKPowWithIntegerCheck(IKsign(((((-1.0)*cj9*x704))+(((-1.0)*(0.55)*pz))+((x706*x708))+((x706*x707))+x705+x704+(((-1.0)*cj9*x705))+(((-1.0)*(0.045)*pz*sj9))+(((-1.0)*(0.3)*cj9*pz)))),-1);
1678 if(!x715.valid){
1679 continue;
1680 }
1681 j6array[0]=((-1.5707963267949)+(x714.value)+(((1.5707963267949)*(x715.value))));
1682 sj6array[0]=IKsin(j6array[0]);
1683 cj6array[0]=IKcos(j6array[0]);
1684 if( j6array[0] > IKPI )
1685 {
1686     j6array[0]-=IK2PI;
1687 }
1688 else if( j6array[0] < -IKPI )
1689 {    j6array[0]+=IK2PI;
1690 }
1691 j6valid[0] = true;
1692 for(int ij6 = 0; ij6 < 1; ++ij6)
1693 {
1694 if( !j6valid[ij6] )
1695 {
1696     continue;
1697 }
1698 _ij6[0] = ij6; _ij6[1] = -1;
1699 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1700 {
1701 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1702 {
1703     j6valid[iij6]=false; _ij6[1] = iij6; break;
1704 }
1705 }
1706 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1707 {
1708 IkReal evalcond[5];
1709 IkReal x716=((0.3)*cj9);
1710 IkReal x717=((0.045)*sj9);
1711 IkReal x718=IKcos(j6);
1712 IkReal x719=(pz*x718);
1713 IkReal x720=IKsin(j6);
1714 IkReal x721=(cj4*px);
1715 IkReal x722=(x720*x721);
1716 IkReal x723=(py*sj4);
1717 IkReal x724=(x720*x723);
1718 IkReal x725=((0.045)*cj9);
1719 IkReal x726=((0.3)*sj9);
1720 IkReal x727=(pz*x720);
1721 IkReal x728=((1.0)*x721);
1722 IkReal x729=((1.0)*x723);
1723 IkReal x730=((0.09)*x718);
1724 evalcond[0]=((-0.55)+x719+(((-1.0)*x716))+(((-1.0)*x717))+x724+x722);
1725 evalcond[1]=((0.045)+(((-1.0)*x718*x729))+(((-1.0)*x725))+(((-1.0)*x718*x728))+x727+x726);
1726 evalcond[2]=((((3.92156862745098)*pp*x720))+(((-1.32323529411765)*cj9*x720))+(((-0.108264705882353)*cj9*x718))+(((-1.51009803921569)*x720))+pz+(((-0.588235294117647)*pp*x718))+(((-0.316735294117647)*x718)));
1727 evalcond[3]=(((x717*x720))+(((-1.0)*x718*x725))+(((0.045)*x718))+((x716*x720))+(((-1.0)*x728))+(((0.55)*x720))+(((-1.0)*x729))+((x718*x726)));
1728 evalcond[4]=((-0.2125)+(((1.1)*x722))+(((-0.09)*x727))+(((1.1)*x719))+((x723*x730))+(((1.1)*x724))+(((-1.0)*(1.0)*pp))+((x721*x730)));
1729 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1730 {
1731 continue;
1732 }
1733 }
1734 
1735 rotationfunction0(solutions);
1736 }
1737 }
1738 
1739 }
1740 
1741 }
1742 
1743 } else
1744 {
1745 {
1746 IkReal j6array[1], cj6array[1], sj6array[1];
1747 bool j6valid[1]={false};
1748 _nj6 = 1;
1749 IkReal x731=(cj4*px);
1750 IkReal x732=(py*sj4);
1751 IkReal x733=((1.32323529411765)*cj9);
1752 IkReal x734=((3.92156862745098)*pp);
1753 IkReal x735=((0.0264705882352941)*pp);
1754 IkReal x736=(cj9*sj9);
1755 IkReal x737=((0.176470588235294)*pp);
1756 IkReal x738=cj9*cj9;
1757 CheckValue<IkReal> x739 = IKatan2WithCheck(IkReal(((-0.0142530882352941)+(((-0.0324794117647059)*x736))+(((0.00938117647058823)*cj9))+((pz*x732))+((pz*x731))+(((-1.0)*x735))+(((0.00487191176470588)*x738))+(((-1.0)*(0.0950205882352941)*sj9))+((cj9*x735))+(((-1.0)*sj9*x737)))),((0.0679544117647059)+(((-1.0)*x737))+((cj9*x737))+(pz*pz)+(((-1.0)*(0.00840882352941177)*cj9))+(((-0.0595455882352941)*x738))+(((0.453029411764706)*sj9))+(((0.396970588235294)*x736))+(((-1.0)*(1.17647058823529)*pp*sj9))),IKFAST_ATAN2_MAGTHRESH);
1758 if(!x739.valid){
1759 continue;
1760 }
1761 CheckValue<IkReal> x740=IKPowWithIntegerCheck(IKsign(((((0.316735294117647)*pz))+(((0.108264705882353)*cj9*pz))+(((0.588235294117647)*pp*pz))+((x732*x733))+(((-1.0)*x732*x734))+(((1.51009803921569)*x731))+(((1.51009803921569)*x732))+((x731*x733))+(((-1.0)*x731*x734)))),-1);
1762 if(!x740.valid){
1763 continue;
1764 }
1765 j6array[0]=((-1.5707963267949)+(x739.value)+(((1.5707963267949)*(x740.value))));
1766 sj6array[0]=IKsin(j6array[0]);
1767 cj6array[0]=IKcos(j6array[0]);
1768 if( j6array[0] > IKPI )
1769 {
1770     j6array[0]-=IK2PI;
1771 }
1772 else if( j6array[0] < -IKPI )
1773 {    j6array[0]+=IK2PI;
1774 }
1775 j6valid[0] = true;
1776 for(int ij6 = 0; ij6 < 1; ++ij6)
1777 {
1778 if( !j6valid[ij6] )
1779 {
1780     continue;
1781 }
1782 _ij6[0] = ij6; _ij6[1] = -1;
1783 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
1784 {
1785 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
1786 {
1787     j6valid[iij6]=false; _ij6[1] = iij6; break;
1788 }
1789 }
1790 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
1791 {
1792 IkReal evalcond[5];
1793 IkReal x741=((0.3)*cj9);
1794 IkReal x742=((0.045)*sj9);
1795 IkReal x743=IKcos(j6);
1796 IkReal x744=(pz*x743);
1797 IkReal x745=IKsin(j6);
1798 IkReal x746=(cj4*px);
1799 IkReal x747=(x745*x746);
1800 IkReal x748=(py*sj4);
1801 IkReal x749=(x745*x748);
1802 IkReal x750=((0.045)*cj9);
1803 IkReal x751=((0.3)*sj9);
1804 IkReal x752=(pz*x745);
1805 IkReal x753=((1.0)*x746);
1806 IkReal x754=((1.0)*x748);
1807 IkReal x755=((0.09)*x743);
1808 evalcond[0]=((-0.55)+(((-1.0)*x741))+x749+x744+x747+(((-1.0)*x742)));
1809 evalcond[1]=((0.045)+(((-1.0)*x743*x753))+(((-1.0)*x743*x754))+x752+x751+(((-1.0)*x750)));
1810 evalcond[2]=((((-0.316735294117647)*x743))+(((-1.32323529411765)*cj9*x745))+pz+(((-0.108264705882353)*cj9*x743))+(((-1.51009803921569)*x745))+(((-0.588235294117647)*pp*x743))+(((3.92156862745098)*pp*x745)));
1811 evalcond[3]=((((-1.0)*x753))+(((0.55)*x745))+(((0.045)*x743))+((x741*x745))+((x743*x751))+(((-1.0)*x743*x750))+(((-1.0)*x754))+((x742*x745)));
1812 evalcond[4]=((-0.2125)+(((1.1)*x749))+(((-0.09)*x752))+((x748*x755))+(((1.1)*x744))+(((-1.0)*(1.0)*pp))+((x746*x755))+(((1.1)*x747)));
1813 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
1814 {
1815 continue;
1816 }
1817 }
1818 
1819 rotationfunction0(solutions);
1820 }
1821 }
1822 
1823 }
1824 
1825 }
1826 
1827 }
1828 } while(0);
1829 if( bgotonextstatement )
1830 {
1831 bool bgotonextstatement = true;
1832 do
1833 {
1834 IkReal x756=(px*sj4);
1835 IkReal x757=(cj4*py);
1836 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j8)))), 6.28318530717959)));
1837 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
1838 evalcond[2]=((((-1.0)*x757))+x756);
1839 evalcond[3]=((((-1.0)*x756))+x757);
1840 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
1841 {
1842 bgotonextstatement=false;
1843 {
1844 IkReal j6eval[2];
1845 sj8=0;
1846 cj8=-1.0;
1847 j8=3.14159265358979;
1848 IkReal x758=py*py;
1849 IkReal x759=cj4*cj4;
1850 IkReal x760=((pz*pz)+((x759*(px*px)))+(((2.0)*cj4*px*py*sj4))+x758+(((-1.0)*x758*x759)));
1851 j6eval[0]=x760;
1852 j6eval[1]=IKsign(x760);
1853 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
1854 {
1855 {
1856 IkReal j6eval[2];
1857 sj8=0;
1858 cj8=-1.0;
1859 j8=3.14159265358979;
1860 IkReal x761=(cj4*px);
1861 IkReal x762=(cj9*pz);
1862 IkReal x763=(py*sj4);
1863 IkReal x764=(pz*sj9);
1864 IkReal x765=(cj4*px*sj9);
1865 IkReal x766=(py*sj4*sj9);
1866 IkReal x767=((0.045)*x761);
1867 IkReal x768=((0.045)*x763);
1868 j6eval[0]=(((cj9*x761))+(((-1.0)*(12.2222222222222)*pz))+(((-1.0)*x764))+(((-6.66666666666667)*x765))+(((-1.0)*x763))+(((-6.66666666666667)*x766))+((cj9*x763))+(((-6.66666666666667)*x762))+(((-1.0)*x761)));
1869 j6eval[1]=IKsign(((((-0.3)*x766))+(((-1.0)*x767))+(((-1.0)*(0.55)*pz))+((cj9*x768))+(((-0.3)*x765))+(((-1.0)*x768))+(((-0.3)*x762))+(((-0.045)*x764))+((cj9*x767))));
1870 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
1871 {
1872 {
1873 IkReal j6eval[2];
1874 sj8=0;
1875 cj8=-1.0;
1876 j8=3.14159265358979;
1877 IkReal x769=(cj4*px);
1878 IkReal x770=(cj9*pz);
1879 IkReal x771=(pp*pz);
1880 IkReal x772=(py*sj4);
1881 IkReal x773=(cj4*cj9*px);
1882 IkReal x774=(cj4*pp*px);
1883 IkReal x775=(cj9*py*sj4);
1884 IkReal x776=(pp*py*sj4);
1885 j6eval[0]=((((-1.0)*x775))+(((-1.0)*(13.9482024812098)*pz))+(((-2.92556370551481)*x772))+(((-12.2222222222222)*x770))+(((-5.4333061668025)*x776))+(((-1.0)*x773))+(((-5.4333061668025)*x774))+(((-2.92556370551481)*x769))+(((36.2220411120167)*x771)));
1886 j6eval[1]=IKsign(((((-0.588235294117647)*x776))+(((-0.108264705882353)*x773))+(((3.92156862745098)*x771))+(((-0.316735294117647)*x772))+(((-1.0)*(1.51009803921569)*pz))+(((-0.316735294117647)*x769))+(((-1.32323529411765)*x770))+(((-0.588235294117647)*x774))+(((-0.108264705882353)*x775))));
1887 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
1888 {
1889 {
1890 IkReal evalcond[1];
1891 bool bgotonextstatement = true;
1892 do
1893 {
1894 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j9), 6.28318530717959)))))+(IKabs(pz)));
1895 if( IKabs(evalcond[0]) < 0.0000010000000000  )
1896 {
1897 bgotonextstatement=false;
1898 {
1899 IkReal j6eval[1];
1900 IkReal x777=((1.0)*py);
1901 sj8=0;
1902 cj8=-1.0;
1903 j8=3.14159265358979;
1904 pz=0;
1905 j9=0;
1906 sj9=0;
1907 cj9=1.0;
1908 pp=((py*py)+(px*px));
1909 npx=(((py*r10))+((px*r00)));
1910 npy=(((py*r11))+((px*r01)));
1911 npz=(((px*r02))+((py*r12)));
1912 rxp0_0=((-1.0)*r20*x777);
1913 rxp0_1=(px*r20);
1914 rxp1_0=((-1.0)*r21*x777);
1915 rxp1_1=(px*r21);
1916 rxp2_0=((-1.0)*r22*x777);
1917 rxp2_1=(px*r22);
1918 j6eval[0]=((((-1.0)*(1.0)*cj4*px))+(((-1.0)*(1.0)*py*sj4)));
1919 if( IKabs(j6eval[0]) < 0.0000010000000000  )
1920 {
1921 {
1922 IkReal j6eval[1];
1923 IkReal x778=((1.0)*py);
1924 sj8=0;
1925 cj8=-1.0;
1926 j8=3.14159265358979;
1927 pz=0;
1928 j9=0;
1929 sj9=0;
1930 cj9=1.0;
1931 pp=((py*py)+(px*px));
1932 npx=(((py*r10))+((px*r00)));
1933 npy=(((py*r11))+((px*r01)));
1934 npz=(((px*r02))+((py*r12)));
1935 rxp0_0=((-1.0)*r20*x778);
1936 rxp0_1=(px*r20);
1937 rxp1_0=((-1.0)*r21*x778);
1938 rxp1_1=(px*r21);
1939 rxp2_0=((-1.0)*r22*x778);
1940 rxp2_1=(px*r22);
1941 j6eval[0]=((-1.0)+(((-1.0)*(1.3840830449827)*(px*px)))+(((-1.0)*(1.3840830449827)*(py*py))));
1942 if( IKabs(j6eval[0]) < 0.0000010000000000  )
1943 {
1944 {
1945 IkReal j6eval[2];
1946 IkReal x779=((1.0)*py);
1947 sj8=0;
1948 cj8=-1.0;
1949 j8=3.14159265358979;
1950 pz=0;
1951 j9=0;
1952 sj9=0;
1953 cj9=1.0;
1954 pp=((py*py)+(px*px));
1955 npx=(((py*r10))+((px*r00)));
1956 npy=(((py*r11))+((px*r01)));
1957 npz=(((px*r02))+((py*r12)));
1958 rxp0_0=((-1.0)*r20*x779);
1959 rxp0_1=(px*r20);
1960 rxp1_0=((-1.0)*r21*x779);
1961 rxp1_1=(px*r21);
1962 rxp2_0=((-1.0)*r22*x779);
1963 rxp2_1=(px*r22);
1964 IkReal x780=(cj4*px);
1965 IkReal x781=(py*sj4);
1966 j6eval[0]=(x780+x781);
1967 j6eval[1]=((((-1.0)*(1.3840830449827)*cj4*(px*px*px)))+(((-1.0)*x780))+(((-1.3840830449827)*x780*(py*py)))+(((-1.0)*x781))+(((-1.0)*(1.3840830449827)*sj4*(py*py*py)))+(((-1.3840830449827)*x781*(px*px))));
1968 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
1969 {
1970 {
1971 IkReal evalcond[4];
1972 bool bgotonextstatement = true;
1973 do
1974 {
1975 evalcond[0]=((IKabs(py))+(IKabs(px)));
1976 evalcond[1]=-0.85;
1977 evalcond[2]=0;
1978 evalcond[3]=-0.2125;
1979 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
1980 {
1981 bgotonextstatement=false;
1982 {
1983 IkReal j6array[2], cj6array[2], sj6array[2];
1984 bool j6valid[2]={false};
1985 _nj6 = 2;
1986 j6array[0]=0.148889947609497;
1987 sj6array[0]=IKsin(j6array[0]);
1988 cj6array[0]=IKcos(j6array[0]);
1989 j6array[1]=3.29048260119929;
1990 sj6array[1]=IKsin(j6array[1]);
1991 cj6array[1]=IKcos(j6array[1]);
1992 if( j6array[0] > IKPI )
1993 {
1994     j6array[0]-=IK2PI;
1995 }
1996 else if( j6array[0] < -IKPI )
1997 {    j6array[0]+=IK2PI;
1998 }
1999 j6valid[0] = true;
2000 if( j6array[1] > IKPI )
2001 {
2002     j6array[1]-=IK2PI;
2003 }
2004 else if( j6array[1] < -IKPI )
2005 {    j6array[1]+=IK2PI;
2006 }
2007 j6valid[1] = true;
2008 for(int ij6 = 0; ij6 < 2; ++ij6)
2009 {
2010 if( !j6valid[ij6] )
2011 {
2012     continue;
2013 }
2014 _ij6[0] = ij6; _ij6[1] = -1;
2015 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
2016 {
2017 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2018 {
2019     j6valid[iij6]=false; _ij6[1] = iij6; break;
2020 }
2021 }
2022 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2023 {
2024 IkReal evalcond[1];
2025 evalcond[0]=((0.85)*(IKsin(j6)));
2026 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
2027 {
2028 continue;
2029 }
2030 }
2031 
2032 rotationfunction0(solutions);
2033 }
2034 }
2035 
2036 }
2037 } while(0);
2038 if( bgotonextstatement )
2039 {
2040 bool bgotonextstatement = true;
2041 do
2042 {
2043 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j4), 6.28318530717959)))))+(IKabs(px)));
2044 evalcond[1]=-0.85;
2045 evalcond[2]=0;
2046 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
2047 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
2048 {
2049 bgotonextstatement=false;
2050 {
2051 IkReal j6eval[1];
2052 IkReal x782=((1.0)*py);
2053 sj8=0;
2054 cj8=-1.0;
2055 j8=3.14159265358979;
2056 pz=0;
2057 j9=0;
2058 sj9=0;
2059 cj9=1.0;
2060 pp=py*py;
2061 npx=(py*r10);
2062 npy=(py*r11);
2063 npz=(py*r12);
2064 rxp0_0=((-1.0)*r20*x782);
2065 rxp0_1=0;
2066 rxp1_0=((-1.0)*r21*x782);
2067 rxp1_1=0;
2068 rxp2_0=((-1.0)*r22*x782);
2069 rxp2_1=0;
2070 px=0;
2071 j4=0;
2072 sj4=0;
2073 cj4=1.0;
2074 rxp0_2=(py*r00);
2075 rxp1_2=(py*r01);
2076 rxp2_2=(py*r02);
2077 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
2078 if( IKabs(j6eval[0]) < 0.0000010000000000  )
2079 {
2080 continue; // no branches [j6]
2081 
2082 } else
2083 {
2084 {
2085 IkReal j6array[2], cj6array[2], sj6array[2];
2086 bool j6valid[2]={false};
2087 _nj6 = 2;
2088 IkReal x783=py*py;
2089 CheckValue<IkReal> x785 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x783)))),((2.83333333333333)+(((-3.92156862745098)*x783))),IKFAST_ATAN2_MAGTHRESH);
2090 if(!x785.valid){
2091 continue;
2092 }
2093 IkReal x784=((-1.0)*(x785.value));
2094 j6array[0]=x784;
2095 sj6array[0]=IKsin(j6array[0]);
2096 cj6array[0]=IKcos(j6array[0]);
2097 j6array[1]=((3.14159265358979)+x784);
2098 sj6array[1]=IKsin(j6array[1]);
2099 cj6array[1]=IKcos(j6array[1]);
2100 if( j6array[0] > IKPI )
2101 {
2102     j6array[0]-=IK2PI;
2103 }
2104 else if( j6array[0] < -IKPI )
2105 {    j6array[0]+=IK2PI;
2106 }
2107 j6valid[0] = true;
2108 if( j6array[1] > IKPI )
2109 {
2110     j6array[1]-=IK2PI;
2111 }
2112 else if( j6array[1] < -IKPI )
2113 {    j6array[1]+=IK2PI;
2114 }
2115 j6valid[1] = true;
2116 for(int ij6 = 0; ij6 < 2; ++ij6)
2117 {
2118 if( !j6valid[ij6] )
2119 {
2120     continue;
2121 }
2122 _ij6[0] = ij6; _ij6[1] = -1;
2123 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
2124 {
2125 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2126 {
2127     j6valid[iij6]=false; _ij6[1] = iij6; break;
2128 }
2129 }
2130 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2131 {
2132 IkReal evalcond[1];
2133 evalcond[0]=((0.85)*(IKsin(j6)));
2134 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
2135 {
2136 continue;
2137 }
2138 }
2139 
2140 rotationfunction0(solutions);
2141 }
2142 }
2143 
2144 }
2145 
2146 }
2147 
2148 }
2149 } while(0);
2150 if( bgotonextstatement )
2151 {
2152 bool bgotonextstatement = true;
2153 do
2154 {
2155 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(j4, 6.28318530717959)))))+(IKabs(px)));
2156 evalcond[1]=-0.85;
2157 evalcond[2]=0;
2158 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
2159 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
2160 {
2161 bgotonextstatement=false;
2162 {
2163 IkReal j6eval[1];
2164 IkReal x786=((1.0)*py);
2165 sj8=0;
2166 cj8=-1.0;
2167 j8=3.14159265358979;
2168 pz=0;
2169 j9=0;
2170 sj9=0;
2171 cj9=1.0;
2172 pp=py*py;
2173 npx=(py*r10);
2174 npy=(py*r11);
2175 npz=(py*r12);
2176 rxp0_0=((-1.0)*r20*x786);
2177 rxp0_1=0;
2178 rxp1_0=((-1.0)*r21*x786);
2179 rxp1_1=0;
2180 rxp2_0=((-1.0)*r22*x786);
2181 rxp2_1=0;
2182 px=0;
2183 j4=3.14159265358979;
2184 sj4=0;
2185 cj4=-1.0;
2186 rxp0_2=(py*r00);
2187 rxp1_2=(py*r01);
2188 rxp2_2=(py*r02);
2189 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
2190 if( IKabs(j6eval[0]) < 0.0000010000000000  )
2191 {
2192 continue; // no branches [j6]
2193 
2194 } else
2195 {
2196 {
2197 IkReal j6array[2], cj6array[2], sj6array[2];
2198 bool j6valid[2]={false};
2199 _nj6 = 2;
2200 IkReal x787=py*py;
2201 CheckValue<IkReal> x789 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x787)))),((2.83333333333333)+(((-3.92156862745098)*x787))),IKFAST_ATAN2_MAGTHRESH);
2202 if(!x789.valid){
2203 continue;
2204 }
2205 IkReal x788=((-1.0)*(x789.value));
2206 j6array[0]=x788;
2207 sj6array[0]=IKsin(j6array[0]);
2208 cj6array[0]=IKcos(j6array[0]);
2209 j6array[1]=((3.14159265358979)+x788);
2210 sj6array[1]=IKsin(j6array[1]);
2211 cj6array[1]=IKcos(j6array[1]);
2212 if( j6array[0] > IKPI )
2213 {
2214     j6array[0]-=IK2PI;
2215 }
2216 else if( j6array[0] < -IKPI )
2217 {    j6array[0]+=IK2PI;
2218 }
2219 j6valid[0] = true;
2220 if( j6array[1] > IKPI )
2221 {
2222     j6array[1]-=IK2PI;
2223 }
2224 else if( j6array[1] < -IKPI )
2225 {    j6array[1]+=IK2PI;
2226 }
2227 j6valid[1] = true;
2228 for(int ij6 = 0; ij6 < 2; ++ij6)
2229 {
2230 if( !j6valid[ij6] )
2231 {
2232     continue;
2233 }
2234 _ij6[0] = ij6; _ij6[1] = -1;
2235 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
2236 {
2237 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2238 {
2239     j6valid[iij6]=false; _ij6[1] = iij6; break;
2240 }
2241 }
2242 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2243 {
2244 IkReal evalcond[1];
2245 evalcond[0]=((0.85)*(IKsin(j6)));
2246 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
2247 {
2248 continue;
2249 }
2250 }
2251 
2252 rotationfunction0(solutions);
2253 }
2254 }
2255 
2256 }
2257 
2258 }
2259 
2260 }
2261 } while(0);
2262 if( bgotonextstatement )
2263 {
2264 bool bgotonextstatement = true;
2265 do
2266 {
2267 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((1.5707963267949)+j4), 6.28318530717959)))))+(IKabs(py)));
2268 evalcond[1]=-0.85;
2269 evalcond[2]=0;
2270 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
2271 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
2272 {
2273 bgotonextstatement=false;
2274 {
2275 IkReal j6eval[1];
2276 IkReal x790=((1.0)*px);
2277 sj8=0;
2278 cj8=-1.0;
2279 j8=3.14159265358979;
2280 pz=0;
2281 j9=0;
2282 sj9=0;
2283 cj9=1.0;
2284 pp=px*px;
2285 npx=(px*r00);
2286 npy=(px*r01);
2287 npz=(px*r02);
2288 rxp0_0=0;
2289 rxp0_1=(px*r20);
2290 rxp1_0=0;
2291 rxp1_1=(px*r21);
2292 rxp2_0=0;
2293 rxp2_1=(px*r22);
2294 py=0;
2295 j4=1.5707963267949;
2296 sj4=1.0;
2297 cj4=0;
2298 rxp0_2=((-1.0)*r10*x790);
2299 rxp1_2=((-1.0)*r11*x790);
2300 rxp2_2=((-1.0)*r12*x790);
2301 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
2302 if( IKabs(j6eval[0]) < 0.0000010000000000  )
2303 {
2304 continue; // no branches [j6]
2305 
2306 } else
2307 {
2308 {
2309 IkReal j6array[2], cj6array[2], sj6array[2];
2310 bool j6valid[2]={false};
2311 _nj6 = 2;
2312 IkReal x791=px*px;
2313 CheckValue<IkReal> x793 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x791)))),((2.83333333333333)+(((-3.92156862745098)*x791))),IKFAST_ATAN2_MAGTHRESH);
2314 if(!x793.valid){
2315 continue;
2316 }
2317 IkReal x792=((-1.0)*(x793.value));
2318 j6array[0]=x792;
2319 sj6array[0]=IKsin(j6array[0]);
2320 cj6array[0]=IKcos(j6array[0]);
2321 j6array[1]=((3.14159265358979)+x792);
2322 sj6array[1]=IKsin(j6array[1]);
2323 cj6array[1]=IKcos(j6array[1]);
2324 if( j6array[0] > IKPI )
2325 {
2326     j6array[0]-=IK2PI;
2327 }
2328 else if( j6array[0] < -IKPI )
2329 {    j6array[0]+=IK2PI;
2330 }
2331 j6valid[0] = true;
2332 if( j6array[1] > IKPI )
2333 {
2334     j6array[1]-=IK2PI;
2335 }
2336 else if( j6array[1] < -IKPI )
2337 {    j6array[1]+=IK2PI;
2338 }
2339 j6valid[1] = true;
2340 for(int ij6 = 0; ij6 < 2; ++ij6)
2341 {
2342 if( !j6valid[ij6] )
2343 {
2344     continue;
2345 }
2346 _ij6[0] = ij6; _ij6[1] = -1;
2347 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
2348 {
2349 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2350 {
2351     j6valid[iij6]=false; _ij6[1] = iij6; break;
2352 }
2353 }
2354 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2355 {
2356 IkReal evalcond[1];
2357 evalcond[0]=((0.85)*(IKsin(j6)));
2358 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
2359 {
2360 continue;
2361 }
2362 }
2363 
2364 rotationfunction0(solutions);
2365 }
2366 }
2367 
2368 }
2369 
2370 }
2371 
2372 }
2373 } while(0);
2374 if( bgotonextstatement )
2375 {
2376 bool bgotonextstatement = true;
2377 do
2378 {
2379 evalcond[0]=((IKabs(py))+(IKabs(((-3.14159265358979)+(IKfmod(((4.71238898038469)+j4), 6.28318530717959))))));
2380 evalcond[1]=-0.85;
2381 evalcond[2]=0;
2382 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
2383 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
2384 {
2385 bgotonextstatement=false;
2386 {
2387 IkReal j6eval[1];
2388 IkReal x794=((1.0)*px);
2389 sj8=0;
2390 cj8=-1.0;
2391 j8=3.14159265358979;
2392 pz=0;
2393 j9=0;
2394 sj9=0;
2395 cj9=1.0;
2396 pp=px*px;
2397 npx=(px*r00);
2398 npy=(px*r01);
2399 npz=(px*r02);
2400 rxp0_0=0;
2401 rxp0_1=(px*r20);
2402 rxp1_0=0;
2403 rxp1_1=(px*r21);
2404 rxp2_0=0;
2405 rxp2_1=(px*r22);
2406 py=0;
2407 j4=-1.5707963267949;
2408 sj4=-1.0;
2409 cj4=0;
2410 rxp0_2=((-1.0)*r10*x794);
2411 rxp1_2=((-1.0)*r11*x794);
2412 rxp2_2=((-1.0)*r12*x794);
2413 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
2414 if( IKabs(j6eval[0]) < 0.0000010000000000  )
2415 {
2416 continue; // no branches [j6]
2417 
2418 } else
2419 {
2420 {
2421 IkReal j6array[2], cj6array[2], sj6array[2];
2422 bool j6valid[2]={false};
2423 _nj6 = 2;
2424 IkReal x795=px*px;
2425 CheckValue<IkReal> x797 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x795)))),((2.83333333333333)+(((-3.92156862745098)*x795))),IKFAST_ATAN2_MAGTHRESH);
2426 if(!x797.valid){
2427 continue;
2428 }
2429 IkReal x796=((-1.0)*(x797.value));
2430 j6array[0]=x796;
2431 sj6array[0]=IKsin(j6array[0]);
2432 cj6array[0]=IKcos(j6array[0]);
2433 j6array[1]=((3.14159265358979)+x796);
2434 sj6array[1]=IKsin(j6array[1]);
2435 cj6array[1]=IKcos(j6array[1]);
2436 if( j6array[0] > IKPI )
2437 {
2438     j6array[0]-=IK2PI;
2439 }
2440 else if( j6array[0] < -IKPI )
2441 {    j6array[0]+=IK2PI;
2442 }
2443 j6valid[0] = true;
2444 if( j6array[1] > IKPI )
2445 {
2446     j6array[1]-=IK2PI;
2447 }
2448 else if( j6array[1] < -IKPI )
2449 {    j6array[1]+=IK2PI;
2450 }
2451 j6valid[1] = true;
2452 for(int ij6 = 0; ij6 < 2; ++ij6)
2453 {
2454 if( !j6valid[ij6] )
2455 {
2456     continue;
2457 }
2458 _ij6[0] = ij6; _ij6[1] = -1;
2459 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
2460 {
2461 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2462 {
2463     j6valid[iij6]=false; _ij6[1] = iij6; break;
2464 }
2465 }
2466 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2467 {
2468 IkReal evalcond[1];
2469 evalcond[0]=((0.85)*(IKsin(j6)));
2470 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
2471 {
2472 continue;
2473 }
2474 }
2475 
2476 rotationfunction0(solutions);
2477 }
2478 }
2479 
2480 }
2481 
2482 }
2483 
2484 }
2485 } while(0);
2486 if( bgotonextstatement )
2487 {
2488 bool bgotonextstatement = true;
2489 do
2490 {
2491 if( 1 )
2492 {
2493 bgotonextstatement=false;
2494 continue; // branch miss [j6]
2495 
2496 }
2497 } while(0);
2498 if( bgotonextstatement )
2499 {
2500 }
2501 }
2502 }
2503 }
2504 }
2505 }
2506 }
2507 
2508 } else
2509 {
2510 {
2511 IkReal j6array[1], cj6array[1], sj6array[1];
2512 bool j6valid[1]={false};
2513 _nj6 = 1;
2514 IkReal x798=(cj4*px);
2515 IkReal x799=(py*sj4);
2516 IkReal x800=px*px;
2517 IkReal x801=py*py;
2518 CheckValue<IkReal> x802=IKPowWithIntegerCheck(((((20.0)*x799))+(((20.0)*x798))),-1);
2519 if(!x802.valid){
2520 continue;
2521 }
2522 CheckValue<IkReal> x803=IKPowWithIntegerCheck(((((-8.5)*x798))+(((-1.0)*(11.7647058823529)*cj4*(px*px*px)))+(((-11.7647058823529)*x798*x801))+(((-11.7647058823529)*x799*x800))+(((-8.5)*x799))+(((-1.0)*(11.7647058823529)*sj4*(py*py*py)))),-1);
2523 if(!x803.valid){
2524 continue;
2525 }
2526 if( IKabs(((17.0)*(x802.value))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x803.value)*(((-48.1666666666667)+(((66.6666666666667)*x800))+(((66.6666666666667)*x801)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((17.0)*(x802.value)))+IKsqr(((x803.value)*(((-48.1666666666667)+(((66.6666666666667)*x800))+(((66.6666666666667)*x801))))))-1) <= IKFAST_SINCOS_THRESH )
2527     continue;
2528 j6array[0]=IKatan2(((17.0)*(x802.value)), ((x803.value)*(((-48.1666666666667)+(((66.6666666666667)*x800))+(((66.6666666666667)*x801))))));
2529 sj6array[0]=IKsin(j6array[0]);
2530 cj6array[0]=IKcos(j6array[0]);
2531 if( j6array[0] > IKPI )
2532 {
2533     j6array[0]-=IK2PI;
2534 }
2535 else if( j6array[0] < -IKPI )
2536 {    j6array[0]+=IK2PI;
2537 }
2538 j6valid[0] = true;
2539 for(int ij6 = 0; ij6 < 1; ++ij6)
2540 {
2541 if( !j6valid[ij6] )
2542 {
2543     continue;
2544 }
2545 _ij6[0] = ij6; _ij6[1] = -1;
2546 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2547 {
2548 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2549 {
2550     j6valid[iij6]=false; _ij6[1] = iij6; break;
2551 }
2552 }
2553 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2554 {
2555 IkReal evalcond[5];
2556 IkReal x804=IKcos(j6);
2557 IkReal x805=(cj4*px);
2558 IkReal x806=(x804*x805);
2559 IkReal x807=(py*sj4);
2560 IkReal x808=(x804*x807);
2561 IkReal x809=IKsin(j6);
2562 IkReal x810=(x805*x809);
2563 IkReal x811=(x807*x809);
2564 IkReal x812=px*px;
2565 IkReal x813=((3.92156862745098)*x809);
2566 IkReal x814=((0.588235294117647)*x804);
2567 IkReal x815=py*py;
2568 evalcond[0]=(x806+x808);
2569 evalcond[1]=((-0.85)+x811+x810);
2570 evalcond[2]=((((-1.0)*x807))+(((0.85)*x809))+(((-1.0)*x805)));
2571 evalcond[3]=((((-1.0)*x812*x814))+(((-1.0)*x814*x815))+(((-1.0)*x812*x813))+(((2.83333333333333)*x809))+(((-0.425)*x804))+(((-1.0)*x813*x815)));
2572 evalcond[4]=((-0.2125)+(((1.1)*x810))+(((-0.09)*x808))+(((-1.0)*x815))+(((1.1)*x811))+(((-1.0)*x812))+(((-0.09)*x806)));
2573 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2574 {
2575 continue;
2576 }
2577 }
2578 
2579 rotationfunction0(solutions);
2580 }
2581 }
2582 
2583 }
2584 
2585 }
2586 
2587 } else
2588 {
2589 {
2590 IkReal j6array[1], cj6array[1], sj6array[1];
2591 bool j6valid[1]={false};
2592 _nj6 = 1;
2593 IkReal x816=(cj4*px);
2594 IkReal x817=(py*sj4);
2595 IkReal x818=px*px;
2596 IkReal x819=py*py;
2597 CheckValue<IkReal> x820=IKPowWithIntegerCheck(((-7.225)+(((-10.0)*x818))+(((-10.0)*x819))),-1);
2598 if(!x820.valid){
2599 continue;
2600 }
2601 if( IKabs(((((1.17647058823529)*x816))+(((1.17647058823529)*x817)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x820.value)*(((((78.4313725490196)*x817*x818))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((-56.6666666666667)*x816))+(((-56.6666666666667)*x817))+(((78.4313725490196)*x816*x819)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x816))+(((1.17647058823529)*x817))))+IKsqr(((x820.value)*(((((78.4313725490196)*x817*x818))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((-56.6666666666667)*x816))+(((-56.6666666666667)*x817))+(((78.4313725490196)*x816*x819))))))-1) <= IKFAST_SINCOS_THRESH )
2602     continue;
2603 j6array[0]=IKatan2(((((1.17647058823529)*x816))+(((1.17647058823529)*x817))), ((x820.value)*(((((78.4313725490196)*x817*x818))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((-56.6666666666667)*x816))+(((-56.6666666666667)*x817))+(((78.4313725490196)*x816*x819))))));
2604 sj6array[0]=IKsin(j6array[0]);
2605 cj6array[0]=IKcos(j6array[0]);
2606 if( j6array[0] > IKPI )
2607 {
2608     j6array[0]-=IK2PI;
2609 }
2610 else if( j6array[0] < -IKPI )
2611 {    j6array[0]+=IK2PI;
2612 }
2613 j6valid[0] = true;
2614 for(int ij6 = 0; ij6 < 1; ++ij6)
2615 {
2616 if( !j6valid[ij6] )
2617 {
2618     continue;
2619 }
2620 _ij6[0] = ij6; _ij6[1] = -1;
2621 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2622 {
2623 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2624 {
2625     j6valid[iij6]=false; _ij6[1] = iij6; break;
2626 }
2627 }
2628 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2629 {
2630 IkReal evalcond[5];
2631 IkReal x821=IKcos(j6);
2632 IkReal x822=(cj4*px);
2633 IkReal x823=(x821*x822);
2634 IkReal x824=(py*sj4);
2635 IkReal x825=(x821*x824);
2636 IkReal x826=IKsin(j6);
2637 IkReal x827=(x822*x826);
2638 IkReal x828=(x824*x826);
2639 IkReal x829=px*px;
2640 IkReal x830=((3.92156862745098)*x826);
2641 IkReal x831=((0.588235294117647)*x821);
2642 IkReal x832=py*py;
2643 evalcond[0]=(x825+x823);
2644 evalcond[1]=((-0.85)+x827+x828);
2645 evalcond[2]=((((0.85)*x826))+(((-1.0)*x822))+(((-1.0)*x824)));
2646 evalcond[3]=((((-1.0)*x830*x832))+(((2.83333333333333)*x826))+(((-1.0)*x829*x831))+(((-1.0)*x831*x832))+(((-1.0)*x829*x830))+(((-0.425)*x821)));
2647 evalcond[4]=((-0.2125)+(((1.1)*x828))+(((-0.09)*x825))+(((1.1)*x827))+(((-0.09)*x823))+(((-1.0)*x832))+(((-1.0)*x829)));
2648 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2649 {
2650 continue;
2651 }
2652 }
2653 
2654 rotationfunction0(solutions);
2655 }
2656 }
2657 
2658 }
2659 
2660 }
2661 
2662 } else
2663 {
2664 {
2665 IkReal j6array[1], cj6array[1], sj6array[1];
2666 bool j6valid[1]={false};
2667 _nj6 = 1;
2668 IkReal x833=(cj4*px);
2669 IkReal x834=(py*sj4);
2670 IkReal x835=px*px;
2671 IkReal x836=py*py;
2672 IkReal x837=((1.29411764705882)*(cj4*cj4));
2673 CheckValue<IkReal> x838=IKPowWithIntegerCheck(((((-0.09)*x834))+(((-0.09)*x833))),-1);
2674 if(!x838.valid){
2675 continue;
2676 }
2677 if( IKabs(((((1.17647058823529)*x833))+(((1.17647058823529)*x834)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x838.value)*(((0.2125)+(((-0.294117647058824)*x836))+x835+(((-2.58823529411765)*cj4*px*x834))+((x836*x837))+(((-1.0)*x835*x837)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x833))+(((1.17647058823529)*x834))))+IKsqr(((x838.value)*(((0.2125)+(((-0.294117647058824)*x836))+x835+(((-2.58823529411765)*cj4*px*x834))+((x836*x837))+(((-1.0)*x835*x837))))))-1) <= IKFAST_SINCOS_THRESH )
2678     continue;
2679 j6array[0]=IKatan2(((((1.17647058823529)*x833))+(((1.17647058823529)*x834))), ((x838.value)*(((0.2125)+(((-0.294117647058824)*x836))+x835+(((-2.58823529411765)*cj4*px*x834))+((x836*x837))+(((-1.0)*x835*x837))))));
2680 sj6array[0]=IKsin(j6array[0]);
2681 cj6array[0]=IKcos(j6array[0]);
2682 if( j6array[0] > IKPI )
2683 {
2684     j6array[0]-=IK2PI;
2685 }
2686 else if( j6array[0] < -IKPI )
2687 {    j6array[0]+=IK2PI;
2688 }
2689 j6valid[0] = true;
2690 for(int ij6 = 0; ij6 < 1; ++ij6)
2691 {
2692 if( !j6valid[ij6] )
2693 {
2694     continue;
2695 }
2696 _ij6[0] = ij6; _ij6[1] = -1;
2697 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2698 {
2699 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2700 {
2701     j6valid[iij6]=false; _ij6[1] = iij6; break;
2702 }
2703 }
2704 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2705 {
2706 IkReal evalcond[5];
2707 IkReal x839=IKcos(j6);
2708 IkReal x840=(cj4*px);
2709 IkReal x841=(x839*x840);
2710 IkReal x842=(py*sj4);
2711 IkReal x843=(x839*x842);
2712 IkReal x844=IKsin(j6);
2713 IkReal x845=(x840*x844);
2714 IkReal x846=(x842*x844);
2715 IkReal x847=px*px;
2716 IkReal x848=((3.92156862745098)*x844);
2717 IkReal x849=((0.588235294117647)*x839);
2718 IkReal x850=py*py;
2719 evalcond[0]=(x843+x841);
2720 evalcond[1]=((-0.85)+x846+x845);
2721 evalcond[2]=((((0.85)*x844))+(((-1.0)*x842))+(((-1.0)*x840)));
2722 evalcond[3]=((((-1.0)*x847*x849))+(((-1.0)*x847*x848))+(((-0.425)*x839))+(((-1.0)*x848*x850))+(((-1.0)*x849*x850))+(((2.83333333333333)*x844)));
2723 evalcond[4]=((-0.2125)+(((-1.0)*x850))+(((-0.09)*x843))+(((1.1)*x846))+(((1.1)*x845))+(((-1.0)*x847))+(((-0.09)*x841)));
2724 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2725 {
2726 continue;
2727 }
2728 }
2729 
2730 rotationfunction0(solutions);
2731 }
2732 }
2733 
2734 }
2735 
2736 }
2737 
2738 }
2739 } while(0);
2740 if( bgotonextstatement )
2741 {
2742 bool bgotonextstatement = true;
2743 do
2744 {
2745 if( 1 )
2746 {
2747 bgotonextstatement=false;
2748 continue; // branch miss [j6]
2749 
2750 }
2751 } while(0);
2752 if( bgotonextstatement )
2753 {
2754 }
2755 }
2756 }
2757 
2758 } else
2759 {
2760 {
2761 IkReal j6array[1], cj6array[1], sj6array[1];
2762 bool j6valid[1]={false};
2763 _nj6 = 1;
2764 IkReal x851=(cj4*px);
2765 IkReal x852=(py*sj4);
2766 IkReal x853=((0.108264705882353)*cj9);
2767 IkReal x854=((0.588235294117647)*pp);
2768 IkReal x855=(cj9*pp);
2769 IkReal x856=(cj9*sj9);
2770 IkReal x857=(pp*sj9);
2771 IkReal x858=cj9*cj9;
2772 IkReal x859=((1.0)*pz);
2773 CheckValue<IkReal> x860 = IKatan2WithCheck(IkReal(((-0.174204411764706)+(pz*pz)+(((-0.176470588235294)*x855))+(((-1.0)*(0.154566176470588)*cj9))+(((-1.0)*(0.323529411764706)*pp))+(((-0.0264705882352941)*x857))+(((-0.00487191176470588)*x856))+(((-1.0)*(0.0142530882352941)*sj9))+(((-0.0324794117647059)*x858)))),((-0.830553921568627)+(((-0.396970588235294)*x858))+(((-1.0)*(0.0679544117647059)*sj9))+(((-1.0)*(1.18080882352941)*cj9))+(((0.176470588235294)*x857))+(((-1.0)*x852*x859))+(((2.15686274509804)*pp))+(((1.17647058823529)*x855))+(((-1.0)*x851*x859))+(((-0.0595455882352941)*x856))),IKFAST_ATAN2_MAGTHRESH);
2774 if(!x860.valid){
2775 continue;
2776 }
2777 CheckValue<IkReal> x861=IKPowWithIntegerCheck(IKsign(((((-1.0)*x851*x854))+(((-1.0)*(1.32323529411765)*cj9*pz))+(((3.92156862745098)*pp*pz))+(((-1.0)*(1.51009803921569)*pz))+(((-0.316735294117647)*x852))+(((-1.0)*x852*x853))+(((-0.316735294117647)*x851))+(((-1.0)*x851*x853))+(((-1.0)*x852*x854)))),-1);
2778 if(!x861.valid){
2779 continue;
2780 }
2781 j6array[0]=((-1.5707963267949)+(x860.value)+(((1.5707963267949)*(x861.value))));
2782 sj6array[0]=IKsin(j6array[0]);
2783 cj6array[0]=IKcos(j6array[0]);
2784 if( j6array[0] > IKPI )
2785 {
2786     j6array[0]-=IK2PI;
2787 }
2788 else if( j6array[0] < -IKPI )
2789 {    j6array[0]+=IK2PI;
2790 }
2791 j6valid[0] = true;
2792 for(int ij6 = 0; ij6 < 1; ++ij6)
2793 {
2794 if( !j6valid[ij6] )
2795 {
2796     continue;
2797 }
2798 _ij6[0] = ij6; _ij6[1] = -1;
2799 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2800 {
2801 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2802 {
2803     j6valid[iij6]=false; _ij6[1] = iij6; break;
2804 }
2805 }
2806 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2807 {
2808 IkReal evalcond[5];
2809 IkReal x862=((0.3)*cj9);
2810 IkReal x863=((0.045)*sj9);
2811 IkReal x864=IKcos(j6);
2812 IkReal x865=(pz*x864);
2813 IkReal x866=IKsin(j6);
2814 IkReal x867=(cj4*px);
2815 IkReal x868=(x866*x867);
2816 IkReal x869=(py*sj4);
2817 IkReal x870=(x866*x869);
2818 IkReal x871=((0.045)*cj9);
2819 IkReal x872=((0.3)*sj9);
2820 IkReal x873=(pz*x866);
2821 IkReal x874=(x864*x867);
2822 IkReal x875=(x864*x869);
2823 evalcond[0]=((-0.55)+(((-1.0)*x862))+x868+x865+x870+(((-1.0)*x863)));
2824 evalcond[1]=((0.045)+(((-1.0)*x873))+x872+x874+x875+(((-1.0)*x871)));
2825 evalcond[2]=((((1.51009803921569)*x866))+(((-0.316735294117647)*x864))+pz+(((-3.92156862745098)*pp*x866))+(((-0.108264705882353)*cj9*x864))+(((-0.588235294117647)*pp*x864))+(((1.32323529411765)*cj9*x866)));
2826 evalcond[3]=((((0.55)*x866))+(((-1.0)*x869))+(((-0.045)*x864))+(((-1.0)*x867))+(((-1.0)*x864*x872))+((x862*x866))+((x864*x871))+((x863*x866)));
2827 evalcond[4]=((-0.2125)+(((-0.09)*x875))+(((1.1)*x865))+(((0.09)*x873))+(((-0.09)*x874))+(((1.1)*x870))+(((1.1)*x868))+(((-1.0)*(1.0)*pp)));
2828 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2829 {
2830 continue;
2831 }
2832 }
2833 
2834 rotationfunction0(solutions);
2835 }
2836 }
2837 
2838 }
2839 
2840 }
2841 
2842 } else
2843 {
2844 {
2845 IkReal j6array[1], cj6array[1], sj6array[1];
2846 bool j6valid[1]={false};
2847 _nj6 = 1;
2848 IkReal x876=((0.045)*cj4*px);
2849 IkReal x877=((0.045)*py*sj4);
2850 IkReal x878=((0.3)*sj9);
2851 IkReal x879=(cj4*px);
2852 IkReal x880=(py*sj4);
2853 IkReal x881=(cj9*sj9);
2854 IkReal x882=cj9*cj9;
2855 IkReal x883=((1.0)*pz);
2856 IkReal x884=py*py;
2857 IkReal x885=cj4*cj4;
2858 CheckValue<IkReal> x886 = IKatan2WithCheck(IkReal(((-0.03825)+(((0.027)*x882))+(((-0.087975)*x881))+(((-1.0)*(0.167025)*sj9))+(((-1.0)*x879*x883))+(((-1.0)*x880*x883))+(((0.01125)*cj9)))),((-0.304525)+(((-1.0)*x884*x885))+(((2.0)*cj4*px*x880))+(((-1.0)*(0.0495)*sj9))+(((-0.087975)*x882))+((x885*(px*px)))+x884+(((-1.0)*(0.33)*cj9))+(((-0.027)*x881))),IKFAST_ATAN2_MAGTHRESH);
2859 if(!x886.valid){
2860 continue;
2861 }
2862 CheckValue<IkReal> x887=IKPowWithIntegerCheck(IKsign(((((-1.0)*x878*x879))+(((-1.0)*(0.55)*pz))+(((-1.0)*x877))+(((-1.0)*x876))+(((-1.0)*x878*x880))+((cj9*x877))+((cj9*x876))+(((-1.0)*(0.045)*pz*sj9))+(((-1.0)*(0.3)*cj9*pz)))),-1);
2863 if(!x887.valid){
2864 continue;
2865 }
2866 j6array[0]=((-1.5707963267949)+(x886.value)+(((1.5707963267949)*(x887.value))));
2867 sj6array[0]=IKsin(j6array[0]);
2868 cj6array[0]=IKcos(j6array[0]);
2869 if( j6array[0] > IKPI )
2870 {
2871     j6array[0]-=IK2PI;
2872 }
2873 else if( j6array[0] < -IKPI )
2874 {    j6array[0]+=IK2PI;
2875 }
2876 j6valid[0] = true;
2877 for(int ij6 = 0; ij6 < 1; ++ij6)
2878 {
2879 if( !j6valid[ij6] )
2880 {
2881     continue;
2882 }
2883 _ij6[0] = ij6; _ij6[1] = -1;
2884 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2885 {
2886 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2887 {
2888     j6valid[iij6]=false; _ij6[1] = iij6; break;
2889 }
2890 }
2891 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2892 {
2893 IkReal evalcond[5];
2894 IkReal x888=((0.3)*cj9);
2895 IkReal x889=((0.045)*sj9);
2896 IkReal x890=IKcos(j6);
2897 IkReal x891=(pz*x890);
2898 IkReal x892=IKsin(j6);
2899 IkReal x893=(cj4*px);
2900 IkReal x894=(x892*x893);
2901 IkReal x895=(py*sj4);
2902 IkReal x896=(x892*x895);
2903 IkReal x897=((0.045)*cj9);
2904 IkReal x898=((0.3)*sj9);
2905 IkReal x899=(pz*x892);
2906 IkReal x900=(x890*x893);
2907 IkReal x901=(x890*x895);
2908 evalcond[0]=((-0.55)+(((-1.0)*x888))+x894+x896+x891+(((-1.0)*x889)));
2909 evalcond[1]=((0.045)+(((-1.0)*x897))+x900+x901+x898+(((-1.0)*x899)));
2910 evalcond[2]=((((-0.588235294117647)*pp*x890))+(((-0.316735294117647)*x890))+(((1.32323529411765)*cj9*x892))+pz+(((-0.108264705882353)*cj9*x890))+(((-3.92156862745098)*pp*x892))+(((1.51009803921569)*x892)));
2911 evalcond[3]=((((-1.0)*x893))+((x890*x897))+(((0.55)*x892))+((x888*x892))+(((-1.0)*x890*x898))+((x889*x892))+(((-1.0)*x895))+(((-0.045)*x890)));
2912 evalcond[4]=((-0.2125)+(((-0.09)*x900))+(((1.1)*x891))+(((0.09)*x899))+(((-0.09)*x901))+(((1.1)*x896))+(((-1.0)*(1.0)*pp))+(((1.1)*x894)));
2913 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2914 {
2915 continue;
2916 }
2917 }
2918 
2919 rotationfunction0(solutions);
2920 }
2921 }
2922 
2923 }
2924 
2925 }
2926 
2927 } else
2928 {
2929 {
2930 IkReal j6array[1], cj6array[1], sj6array[1];
2931 bool j6valid[1]={false};
2932 _nj6 = 1;
2933 IkReal x902=py*py;
2934 IkReal x903=(py*sj4);
2935 IkReal x904=cj4*cj4;
2936 IkReal x905=((0.045)*pz);
2937 IkReal x906=(cj4*px);
2938 IkReal x907=((0.3)*pz);
2939 IkReal x908=((0.3)*cj4*px);
2940 IkReal x909=((0.045)*x906);
2941 IkReal x910=((0.3)*py*sj4);
2942 IkReal x911=((0.045)*x903);
2943 CheckValue<IkReal> x912 = IKatan2WithCheck(IkReal((((sj9*x911))+((sj9*x909))+((cj9*x910))+((sj9*x907))+x905+(((0.55)*x906))+(((0.55)*x903))+((cj9*x908))+(((-1.0)*cj9*x905)))),((((-1.0)*x911))+((cj9*x907))+((cj9*x911))+((cj9*x909))+(((-1.0)*sj9*x910))+(((0.55)*pz))+(((-1.0)*sj9*x908))+(((-1.0)*x909))+((sj9*x905))),IKFAST_ATAN2_MAGTHRESH);
2944 if(!x912.valid){
2945 continue;
2946 }
2947 CheckValue<IkReal> x913=IKPowWithIntegerCheck(IKsign(((((2.0)*cj4*px*x903))+(pz*pz)+x902+((x904*(px*px)))+(((-1.0)*x902*x904)))),-1);
2948 if(!x913.valid){
2949 continue;
2950 }
2951 j6array[0]=((-1.5707963267949)+(x912.value)+(((1.5707963267949)*(x913.value))));
2952 sj6array[0]=IKsin(j6array[0]);
2953 cj6array[0]=IKcos(j6array[0]);
2954 if( j6array[0] > IKPI )
2955 {
2956     j6array[0]-=IK2PI;
2957 }
2958 else if( j6array[0] < -IKPI )
2959 {    j6array[0]+=IK2PI;
2960 }
2961 j6valid[0] = true;
2962 for(int ij6 = 0; ij6 < 1; ++ij6)
2963 {
2964 if( !j6valid[ij6] )
2965 {
2966     continue;
2967 }
2968 _ij6[0] = ij6; _ij6[1] = -1;
2969 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
2970 {
2971 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
2972 {
2973     j6valid[iij6]=false; _ij6[1] = iij6; break;
2974 }
2975 }
2976 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
2977 {
2978 IkReal evalcond[5];
2979 IkReal x914=((0.3)*cj9);
2980 IkReal x915=((0.045)*sj9);
2981 IkReal x916=IKcos(j6);
2982 IkReal x917=(pz*x916);
2983 IkReal x918=IKsin(j6);
2984 IkReal x919=(cj4*px);
2985 IkReal x920=(x918*x919);
2986 IkReal x921=(py*sj4);
2987 IkReal x922=(x918*x921);
2988 IkReal x923=((0.045)*cj9);
2989 IkReal x924=((0.3)*sj9);
2990 IkReal x925=(pz*x918);
2991 IkReal x926=(x916*x919);
2992 IkReal x927=(x916*x921);
2993 evalcond[0]=((-0.55)+(((-1.0)*x914))+x917+(((-1.0)*x915))+x922+x920);
2994 evalcond[1]=((0.045)+(((-1.0)*x925))+(((-1.0)*x923))+x927+x924+x926);
2995 evalcond[2]=((((-0.316735294117647)*x916))+(((-3.92156862745098)*pp*x918))+(((-0.588235294117647)*pp*x916))+pz+(((-0.108264705882353)*cj9*x916))+(((1.32323529411765)*cj9*x918))+(((1.51009803921569)*x918)));
2996 evalcond[3]=((((0.55)*x918))+(((-0.045)*x916))+((x914*x918))+((x915*x918))+(((-1.0)*x921))+((x916*x923))+(((-1.0)*x919))+(((-1.0)*x916*x924)));
2997 evalcond[4]=((-0.2125)+(((-0.09)*x927))+(((1.1)*x920))+(((0.09)*x925))+(((-0.09)*x926))+(((1.1)*x917))+(((1.1)*x922))+(((-1.0)*(1.0)*pp)));
2998 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
2999 {
3000 continue;
3001 }
3002 }
3003 
3004 rotationfunction0(solutions);
3005 }
3006 }
3007 
3008 }
3009 
3010 }
3011 
3012 }
3013 } while(0);
3014 if( bgotonextstatement )
3015 {
3016 bool bgotonextstatement = true;
3017 do
3018 {
3019 if( 1 )
3020 {
3021 bgotonextstatement=false;
3022 continue; // branch miss [j6]
3023 
3024 }
3025 } while(0);
3026 if( bgotonextstatement )
3027 {
3028 }
3029 }
3030 }
3031 }
3032 
3033 } else
3034 {
3035 {
3036 IkReal j6array[1], cj6array[1], sj6array[1];
3037 bool j6valid[1]={false};
3038 _nj6 = 1;
3039 IkReal x928=(pz*sj8);
3040 IkReal x929=((0.3)*cj9);
3041 IkReal x930=((0.045)*sj9);
3042 IkReal x931=(cj4*px);
3043 IkReal x932=((0.045)*cj8*sj8);
3044 IkReal x933=(x931*x932);
3045 IkReal x934=(py*sj4);
3046 IkReal x935=(x932*x934);
3047 IkReal x936=((0.3)*cj8*sj8*sj9);
3048 IkReal x937=((0.55)*cj8);
3049 IkReal x938=(cj4*py);
3050 IkReal x939=(px*sj4);
3051 IkReal x940=(cj4*cj8*py);
3052 IkReal x941=((1.0)*pz*sj8);
3053 IkReal x942=(cj8*px*sj4);
3054 IkReal x943=cj8*cj8;
3055 IkReal x944=((0.045)*x943);
3056 IkReal x945=(x938*x944);
3057 IkReal x946=(x939*x944);
3058 IkReal x947=((0.3)*sj9*x943);
3059 CheckValue<IkReal> x948=IKPowWithIntegerCheck(IKsign(((((-0.55)*x928))+(((-1.0)*cj9*x933))+(((-1.0)*cj9*x935))+(((-1.0)*x928*x929))+((x931*x936))+(((-1.0)*x928*x930))+x933+x935+((x934*x936)))),-1);
3060 if(!x948.valid){
3061 continue;
3062 }
3063 CheckValue<IkReal> x949 = IKatan2WithCheck(IkReal(((((-1.0)*x937*x939))+((x937*x938))+((x930*x940))+(((-1.0)*x930*x942))+(((-1.0)*x931*x941))+(((-1.0)*x934*x941))+(((-1.0)*x929*x942))+((x929*x940)))),(((cj9*x946))+(((-1.0)*(1.0)*sj8*(pz*pz)))+((x938*x947))+(((-1.0)*x939*x947))+(((-1.0)*cj9*x945))+(((-1.0)*x946))+x945),IKFAST_ATAN2_MAGTHRESH);
3064 if(!x949.valid){
3065 continue;
3066 }
3067 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x948.value)))+(x949.value));
3068 sj6array[0]=IKsin(j6array[0]);
3069 cj6array[0]=IKcos(j6array[0]);
3070 if( j6array[0] > IKPI )
3071 {
3072     j6array[0]-=IK2PI;
3073 }
3074 else if( j6array[0] < -IKPI )
3075 {    j6array[0]+=IK2PI;
3076 }
3077 j6valid[0] = true;
3078 for(int ij6 = 0; ij6 < 1; ++ij6)
3079 {
3080 if( !j6valid[ij6] )
3081 {
3082     continue;
3083 }
3084 _ij6[0] = ij6; _ij6[1] = -1;
3085 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
3086 {
3087 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
3088 {
3089     j6valid[iij6]=false; _ij6[1] = iij6; break;
3090 }
3091 }
3092 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
3093 {
3094 IkReal evalcond[6];
3095 IkReal x950=((0.3)*cj9);
3096 IkReal x951=((0.045)*sj9);
3097 IkReal x952=IKcos(j6);
3098 IkReal x953=(pz*x952);
3099 IkReal x954=IKsin(j6);
3100 IkReal x955=(cj4*px*x954);
3101 IkReal x956=(py*sj4);
3102 IkReal x957=(x954*x956);
3103 IkReal x958=(px*sj4);
3104 IkReal x959=((1.0)*cj4*py);
3105 IkReal x960=(cj4*sj8);
3106 IkReal x961=((0.045)*cj8);
3107 IkReal x962=((0.045)*cj9);
3108 IkReal x963=(cj8*x954);
3109 IkReal x964=((0.3)*sj9);
3110 IkReal x965=(sj8*x958);
3111 IkReal x966=(pz*x963);
3112 IkReal x967=(px*(((1.0)*cj4)));
3113 IkReal x968=(cj8*x952);
3114 IkReal x969=((1.0)*x956);
3115 IkReal x970=((0.09)*cj8*x952);
3116 evalcond[0]=((-0.55)+x953+x955+x957+(((-1.0)*x951))+(((-1.0)*x950)));
3117 evalcond[1]=((((-1.0)*cj8*x959))+((cj8*x958))+(((-1.0)*pz*sj8*x954))+((sj8*x952*x956))+((px*x952*x960)));
3118 evalcond[2]=((((-0.55)*x952))+pz+(((-1.0)*x962*x963))+(((-1.0)*x951*x952))+((x954*x961))+((x963*x964))+(((-1.0)*x950*x952)));
3119 evalcond[3]=((0.045)+(((-1.0)*x968*x969))+(((-1.0)*sj8*x959))+x966+x964+x965+(((-1.0)*x962))+(((-1.0)*x967*x968)));
3120 evalcond[4]=(((x952*x961))+((x964*x968))+(((0.55)*x954))+(((-1.0)*x962*x968))+(((-1.0)*x969))+((x951*x954))+((x950*x954))+(((-1.0)*x967)));
3121 evalcond[5]=((-0.2125)+(((1.1)*x957))+(((1.1)*x953))+(((-0.09)*x965))+(((1.1)*x955))+(((0.09)*py*x960))+((cj4*px*x970))+((x956*x970))+(((-0.09)*x966))+(((-1.0)*(1.0)*pp)));
3122 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
3123 {
3124 continue;
3125 }
3126 }
3127 
3128 rotationfunction0(solutions);
3129 }
3130 }
3131 
3132 }
3133 
3134 }
3135 
3136 } else
3137 {
3138 {
3139 IkReal j6array[1], cj6array[1], sj6array[1];
3140 bool j6valid[1]={false};
3141 _nj6 = 1;
3142 IkReal x971=py*py;
3143 IkReal x972=(sj8*x971);
3144 IkReal x973=(cj4*px*sj8);
3145 IkReal x974=cj4*cj4;
3146 IkReal x975=px*px;
3147 IkReal x976=((0.55)*sj8);
3148 IkReal x977=(cj8*px);
3149 IkReal x978=((0.3)*cj9);
3150 IkReal x979=((0.045)*sj9);
3151 IkReal x980=(py*sj4*sj8);
3152 IkReal x981=(pz*sj8);
3153 IkReal x982=(cj4*cj8*sj4);
3154 CheckValue<IkReal> x983 = IKatan2WithCheck(IkReal((((x973*x978))+((x973*x979))+((pz*sj4*x977))+(((-1.0)*cj4*cj8*py*pz))+((cj4*px*x976))+((x979*x980))+((x978*x980))+((py*sj4*x976)))),(((pz*x976))+(((2.0)*py*x974*x977))+((x979*x981))+((x971*x982))+(((-1.0)*py*x977))+((x978*x981))+(((-1.0)*x975*x982))),IKFAST_ATAN2_MAGTHRESH);
3155 if(!x983.valid){
3156 continue;
3157 }
3158 CheckValue<IkReal> x984=IKPowWithIntegerCheck(IKsign(((((2.0)*py*sj4*x973))+((sj8*(pz*pz)))+x972+(((-1.0)*x972*x974))+((sj8*x974*x975)))),-1);
3159 if(!x984.valid){
3160 continue;
3161 }
3162 j6array[0]=((-1.5707963267949)+(x983.value)+(((1.5707963267949)*(x984.value))));
3163 sj6array[0]=IKsin(j6array[0]);
3164 cj6array[0]=IKcos(j6array[0]);
3165 if( j6array[0] > IKPI )
3166 {
3167     j6array[0]-=IK2PI;
3168 }
3169 else if( j6array[0] < -IKPI )
3170 {    j6array[0]+=IK2PI;
3171 }
3172 j6valid[0] = true;
3173 for(int ij6 = 0; ij6 < 1; ++ij6)
3174 {
3175 if( !j6valid[ij6] )
3176 {
3177     continue;
3178 }
3179 _ij6[0] = ij6; _ij6[1] = -1;
3180 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
3181 {
3182 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
3183 {
3184     j6valid[iij6]=false; _ij6[1] = iij6; break;
3185 }
3186 }
3187 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
3188 {
3189 IkReal evalcond[6];
3190 IkReal x985=((0.3)*cj9);
3191 IkReal x986=((0.045)*sj9);
3192 IkReal x987=IKcos(j6);
3193 IkReal x988=(pz*x987);
3194 IkReal x989=IKsin(j6);
3195 IkReal x990=(cj4*px*x989);
3196 IkReal x991=(py*sj4);
3197 IkReal x992=(x989*x991);
3198 IkReal x993=(px*sj4);
3199 IkReal x994=((1.0)*cj4*py);
3200 IkReal x995=(cj4*sj8);
3201 IkReal x996=((0.045)*cj8);
3202 IkReal x997=((0.045)*cj9);
3203 IkReal x998=(cj8*x989);
3204 IkReal x999=((0.3)*sj9);
3205 IkReal x1000=(sj8*x993);
3206 IkReal x1001=(pz*x998);
3207 IkReal x1002=(px*(((1.0)*cj4)));
3208 IkReal x1003=(cj8*x987);
3209 IkReal x1004=((1.0)*x991);
3210 IkReal x1005=((0.09)*cj8*x987);
3211 evalcond[0]=((-0.55)+(((-1.0)*x985))+(((-1.0)*x986))+x988+x990+x992);
3212 evalcond[1]=((((-1.0)*cj8*x994))+(((-1.0)*pz*sj8*x989))+((px*x987*x995))+((sj8*x987*x991))+((cj8*x993)));
3213 evalcond[2]=((((-1.0)*x986*x987))+pz+(((-0.55)*x987))+(((-1.0)*x997*x998))+((x998*x999))+(((-1.0)*x985*x987))+((x989*x996)));
3214 evalcond[3]=((0.045)+(((-1.0)*sj8*x994))+(((-1.0)*x997))+x1000+x1001+(((-1.0)*x1002*x1003))+(((-1.0)*x1003*x1004))+x999);
3215 evalcond[4]=((((-1.0)*x1003*x997))+((x985*x989))+((x1003*x999))+(((0.55)*x989))+(((-1.0)*x1004))+(((-1.0)*x1002))+((x986*x989))+((x987*x996)));
3216 evalcond[5]=((-0.2125)+(((1.1)*x990))+((cj4*px*x1005))+((x1005*x991))+(((-0.09)*x1001))+(((0.09)*py*x995))+(((-0.09)*x1000))+(((-1.0)*(1.0)*pp))+(((1.1)*x988))+(((1.1)*x992)));
3217 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
3218 {
3219 continue;
3220 }
3221 }
3222 
3223 rotationfunction0(solutions);
3224 }
3225 }
3226 
3227 }
3228 
3229 }
3230 
3231 } else
3232 {
3233 {
3234 IkReal j6array[1], cj6array[1], sj6array[1];
3235 bool j6valid[1]={false};
3236 _nj6 = 1;
3237 IkReal x1006=(cj4*px);
3238 IkReal x1007=((0.045)*pz);
3239 IkReal x1008=(py*sj4);
3240 IkReal x1009=((0.3)*cj9);
3241 IkReal x1010=((0.045)*sj9);
3242 IkReal x1011=(cj8*cj9);
3243 IkReal x1012=(cj8*sj9);
3244 IkReal x1013=cj9*cj9;
3245 IkReal x1014=((1.0)*pz);
3246 CheckValue<IkReal> x1015 = IKatan2WithCheck(IkReal(((-0.304525)+(((-1.0)*(0.027)*cj9*sj9))+(((-1.0)*(0.0495)*sj9))+(pz*pz)+(((-0.087975)*x1013))+(((-1.0)*(0.33)*cj9)))),((((-0.087975)*sj9*x1011))+(((-1.0)*x1008*x1014))+(((-1.0)*x1006*x1014))+(((0.027)*cj8*x1013))+(((0.01125)*x1011))+(((-0.167025)*x1012))+(((-1.0)*(0.03825)*cj8))),IKFAST_ATAN2_MAGTHRESH);
3247 if(!x1015.valid){
3248 continue;
3249 }
3250 CheckValue<IkReal> x1016=IKPowWithIntegerCheck(IKsign(((((-1.0)*cj8*x1007))+((x1007*x1011))+(((-0.3)*pz*x1012))+(((-0.55)*x1008))+(((-1.0)*x1008*x1010))+(((-0.55)*x1006))+(((-1.0)*x1008*x1009))+(((-1.0)*x1006*x1009))+(((-1.0)*x1006*x1010)))),-1);
3251 if(!x1016.valid){
3252 continue;
3253 }
3254 j6array[0]=((-1.5707963267949)+(x1015.value)+(((1.5707963267949)*(x1016.value))));
3255 sj6array[0]=IKsin(j6array[0]);
3256 cj6array[0]=IKcos(j6array[0]);
3257 if( j6array[0] > IKPI )
3258 {
3259     j6array[0]-=IK2PI;
3260 }
3261 else if( j6array[0] < -IKPI )
3262 {    j6array[0]+=IK2PI;
3263 }
3264 j6valid[0] = true;
3265 for(int ij6 = 0; ij6 < 1; ++ij6)
3266 {
3267 if( !j6valid[ij6] )
3268 {
3269     continue;
3270 }
3271 _ij6[0] = ij6; _ij6[1] = -1;
3272 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
3273 {
3274 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
3275 {
3276     j6valid[iij6]=false; _ij6[1] = iij6; break;
3277 }
3278 }
3279 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
3280 {
3281 IkReal evalcond[6];
3282 IkReal x1017=((0.3)*cj9);
3283 IkReal x1018=((0.045)*sj9);
3284 IkReal x1019=IKcos(j6);
3285 IkReal x1020=(pz*x1019);
3286 IkReal x1021=IKsin(j6);
3287 IkReal x1022=(cj4*px*x1021);
3288 IkReal x1023=(py*sj4);
3289 IkReal x1024=(x1021*x1023);
3290 IkReal x1025=(px*sj4);
3291 IkReal x1026=((1.0)*cj4*py);
3292 IkReal x1027=(cj4*sj8);
3293 IkReal x1028=((0.045)*cj8);
3294 IkReal x1029=((0.045)*cj9);
3295 IkReal x1030=(cj8*x1021);
3296 IkReal x1031=((0.3)*sj9);
3297 IkReal x1032=(sj8*x1025);
3298 IkReal x1033=(pz*x1030);
3299 IkReal x1034=(px*(((1.0)*cj4)));
3300 IkReal x1035=(cj8*x1019);
3301 IkReal x1036=((1.0)*x1023);
3302 IkReal x1037=((0.09)*cj8*x1019);
3303 evalcond[0]=((-0.55)+x1020+x1022+x1024+(((-1.0)*x1018))+(((-1.0)*x1017)));
3304 evalcond[1]=((((-1.0)*cj8*x1026))+(((-1.0)*pz*sj8*x1021))+((px*x1019*x1027))+((cj8*x1025))+((sj8*x1019*x1023)));
3305 evalcond[2]=((((-1.0)*x1018*x1019))+(((-1.0)*x1029*x1030))+((x1030*x1031))+((x1021*x1028))+(((-0.55)*x1019))+pz+(((-1.0)*x1017*x1019)));
3306 evalcond[3]=((0.045)+(((-1.0)*x1029))+(((-1.0)*x1035*x1036))+(((-1.0)*x1034*x1035))+x1031+x1033+x1032+(((-1.0)*sj8*x1026)));
3307 evalcond[4]=(((x1031*x1035))+(((0.55)*x1021))+(((-1.0)*x1036))+((x1019*x1028))+((x1017*x1021))+((x1018*x1021))+(((-1.0)*x1029*x1035))+(((-1.0)*x1034)));
3308 evalcond[5]=((-0.2125)+((cj4*px*x1037))+((x1023*x1037))+(((1.1)*x1024))+(((-0.09)*x1032))+(((0.09)*py*x1027))+(((1.1)*x1020))+(((-1.0)*(1.0)*pp))+(((1.1)*x1022))+(((-0.09)*x1033)));
3309 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
3310 {
3311 continue;
3312 }
3313 }
3314 
3315 rotationfunction0(solutions);
3316 }
3317 }
3318 
3319 }
3320 
3321 }
3322 }
3323 }
3324 
3325 }
3326 
3327 }
3328 
3329 } else
3330 {
3331 {
3332 IkReal j6array[2], cj6array[2], sj6array[2];
3333 bool j6valid[2]={false};
3334 _nj6 = 2;
3335 IkReal x1038=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
3336 IkReal x1039=((0.045)*cj8);
3337 IkReal x1040=((((-1.0)*cj9*x1039))+x1039+(((0.3)*cj8*sj9)));
3338 CheckValue<IkReal> x1043 = IKatan2WithCheck(IkReal(x1038),x1040,IKFAST_ATAN2_MAGTHRESH);
3339 if(!x1043.valid){
3340 continue;
3341 }
3342 IkReal x1041=((-1.0)*(x1043.value));
3343 if((((x1040*x1040)+(x1038*x1038))) < -0.00001)
3344 continue;
3345 CheckValue<IkReal> x1044=IKPowWithIntegerCheck(IKabs(IKsqrt(((x1040*x1040)+(x1038*x1038)))),-1);
3346 if(!x1044.valid){
3347 continue;
3348 }
3349 if( ((pz*(x1044.value))) < -1-IKFAST_SINCOS_THRESH || ((pz*(x1044.value))) > 1+IKFAST_SINCOS_THRESH )
3350     continue;
3351 IkReal x1042=IKasin((pz*(x1044.value)));
3352 j6array[0]=((((-1.0)*x1042))+x1041);
3353 sj6array[0]=IKsin(j6array[0]);
3354 cj6array[0]=IKcos(j6array[0]);
3355 j6array[1]=((3.14159265358979)+x1042+x1041);
3356 sj6array[1]=IKsin(j6array[1]);
3357 cj6array[1]=IKcos(j6array[1]);
3358 if( j6array[0] > IKPI )
3359 {
3360     j6array[0]-=IK2PI;
3361 }
3362 else if( j6array[0] < -IKPI )
3363 {    j6array[0]+=IK2PI;
3364 }
3365 j6valid[0] = true;
3366 if( j6array[1] > IKPI )
3367 {
3368     j6array[1]-=IK2PI;
3369 }
3370 else if( j6array[1] < -IKPI )
3371 {    j6array[1]+=IK2PI;
3372 }
3373 j6valid[1] = true;
3374 for(int ij6 = 0; ij6 < 2; ++ij6)
3375 {
3376 if( !j6valid[ij6] )
3377 {
3378     continue;
3379 }
3380 _ij6[0] = ij6; _ij6[1] = -1;
3381 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
3382 {
3383 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
3384 {
3385     j6valid[iij6]=false; _ij6[1] = iij6; break;
3386 }
3387 }
3388 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
3389 
3390 {
3391 IkReal j4eval[2];
3392 IkReal x1045=((((-1.0)*(1.0)*sj6*(pz*pz)))+((pp*sj6)));
3393 j4eval[0]=x1045;
3394 j4eval[1]=IKsign(x1045);
3395 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
3396 {
3397 {
3398 IkReal j4eval[2];
3399 IkReal x1046=(cj8*sj6);
3400 IkReal x1047=(((x1046*(pz*pz)))+(((-1.0)*pp*x1046)));
3401 j4eval[0]=x1047;
3402 j4eval[1]=IKsign(x1047);
3403 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
3404 {
3405 {
3406 IkReal j4eval[2];
3407 IkReal x1048=(pp+(((-1.0)*(1.0)*(pz*pz))));
3408 j4eval[0]=x1048;
3409 j4eval[1]=IKsign(x1048);
3410 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
3411 {
3412 {
3413 IkReal evalcond[4];
3414 bool bgotonextstatement = true;
3415 do
3416 {
3417 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j8)))), 6.28318530717959)));
3418 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
3419 evalcond[2]=((((-1.0)*(0.3)*cj6*cj9))+(((-1.0)*(0.55)*cj6))+pz+(((-1.0)*(0.045)*cj6*sj9)));
3420 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  )
3421 {
3422 bgotonextstatement=false;
3423 {
3424 IkReal j4eval[3];
3425 sj8=1.0;
3426 cj8=0;
3427 j8=1.5707963267949;
3428 IkReal x1049=((((-1.0)*(1.0)*cj6*(pz*pz)))+((cj6*pp)));
3429 IkReal x1050=((1.51009803921569)*cj6);
3430 IkReal x1051=(pz*sj6);
3431 IkReal x1052=((1.32323529411765)*cj6*cj9);
3432 IkReal x1053=((3.92156862745098)*cj6*pp);
3433 j4eval[0]=x1049;
3434 j4eval[1]=IKsign(x1049);
3435 j4eval[2]=((IKabs((((py*x1053))+(((-1.0)*py*x1052))+(((-1.0)*py*x1050))+((px*x1051)))))+(IKabs((((px*x1052))+((px*x1050))+((py*x1051))+(((-1.0)*px*x1053))))));
3436 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3437 {
3438 {
3439 IkReal j4eval[3];
3440 sj8=1.0;
3441 cj8=0;
3442 j8=1.5707963267949;
3443 IkReal x1054=(cj6*pp);
3444 IkReal x1055=(cj6*(pz*pz));
3445 IkReal x1056=((0.2125)*cj6);
3446 IkReal x1057=((1.1)*pz);
3447 IkReal x1058=((0.09)*pz*sj6);
3448 j4eval[0]=((((-1.0)*x1055))+x1054);
3449 j4eval[1]=IKsign(((((-0.09)*x1055))+(((0.09)*x1054))));
3450 j4eval[2]=((IKabs((((py*x1058))+((px*x1057))+(((-1.0)*px*x1054))+(((-1.0)*px*x1056)))))+(IKabs((((py*x1056))+((py*x1054))+(((-1.0)*py*x1057))+((px*x1058))))));
3451 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3452 {
3453 {
3454 IkReal j4eval[3];
3455 sj8=1.0;
3456 cj8=0;
3457 j8=1.5707963267949;
3458 IkReal x1059=(pp+(((-1.0)*(1.0)*(pz*pz))));
3459 IkReal x1060=((1.32323529411765)*cj9);
3460 IkReal x1061=((3.92156862745098)*pp);
3461 IkReal x1062=((0.316735294117647)*sj6);
3462 IkReal x1063=((0.108264705882353)*cj9*sj6);
3463 IkReal x1064=((0.588235294117647)*pp*sj6);
3464 j4eval[0]=x1059;
3465 j4eval[1]=((IKabs(((((-1.0)*(1.51009803921569)*py))+((px*x1064))+(((-1.0)*py*x1060))+((px*x1063))+((py*x1061))+((px*x1062)))))+(IKabs((((px*x1060))+(((-1.0)*px*x1061))+(((1.51009803921569)*px))+((py*x1063))+((py*x1062))+((py*x1064))))));
3466 j4eval[2]=IKsign(x1059);
3467 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3468 {
3469 {
3470 IkReal evalcond[7];
3471 bool bgotonextstatement = true;
3472 do
3473 {
3474 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j6)))), 6.28318530717959)));
3475 evalcond[1]=((-1.0)*(((1.0)*pz)));
3476 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  )
3477 {
3478 bgotonextstatement=false;
3479 {
3480 IkReal j4eval[3];
3481 sj8=1.0;
3482 cj8=0;
3483 j8=1.5707963267949;
3484 sj6=1.0;
3485 cj6=0;
3486 j6=1.5707963267949;
3487 IkReal x1065=(pp+(((-1.0)*(1.0)*(pz*pz))));
3488 IkReal x1066=(cj9*px);
3489 IkReal x1067=(cj9*py);
3490 IkReal x1068=((3.92156862745098)*pp);
3491 IkReal x1069=((0.045)*sj9);
3492 j4eval[0]=x1065;
3493 j4eval[1]=((IKabs(((((1.51009803921569)*px))+((py*x1069))+(((0.55)*py))+(((0.3)*x1067))+(((1.32323529411765)*x1066))+(((-1.0)*px*x1068)))))+(IKabs(((((0.3)*x1066))+(((-1.0)*(1.51009803921569)*py))+(((-1.32323529411765)*x1067))+(((0.55)*px))+((py*x1068))+((px*x1069))))));
3494 j4eval[2]=IKsign(x1065);
3495 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3496 {
3497 {
3498 IkReal j4eval[3];
3499 sj8=1.0;
3500 cj8=0;
3501 j8=1.5707963267949;
3502 sj6=1.0;
3503 cj6=0;
3504 j6=1.5707963267949;
3505 IkReal x1070=(pp+(((-1.0)*(1.0)*(pz*pz))));
3506 IkReal x1071=(cj9*px);
3507 IkReal x1072=(cj9*py);
3508 IkReal x1073=(pp*px);
3509 IkReal x1074=(pp*py);
3510 j4eval[0]=x1070;
3511 j4eval[1]=((IKabs(((((0.108264705882353)*x1072))+(((0.588235294117647)*x1074))+(((1.32323529411765)*x1071))+(((0.316735294117647)*py))+(((1.51009803921569)*px))+(((-3.92156862745098)*x1073)))))+(IKabs(((((-1.32323529411765)*x1072))+(((0.588235294117647)*x1073))+(((3.92156862745098)*x1074))+(((0.316735294117647)*px))+(((0.108264705882353)*x1071))+(((-1.0)*(1.51009803921569)*py))))));
3512 j4eval[2]=IKsign(x1070);
3513 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3514 {
3515 {
3516 IkReal j4eval[3];
3517 sj8=1.0;
3518 cj8=0;
3519 j8=1.5707963267949;
3520 sj6=1.0;
3521 cj6=0;
3522 j6=1.5707963267949;
3523 IkReal x1075=pz*pz;
3524 IkReal x1076=(cj9*px);
3525 IkReal x1077=(cj9*py);
3526 IkReal x1078=(pp*px);
3527 IkReal x1079=(pp*py);
3528 j4eval[0]=((((-1.0)*x1075))+pp);
3529 j4eval[1]=((IKabs(((((0.348408823529412)*py))+(((1.66110784313725)*px))+(((1.45555882352941)*x1076))+(((0.647058823529412)*x1079))+(((-4.31372549019608)*x1078))+(((0.119091176470588)*x1077)))))+(IKabs(((((0.348408823529412)*px))+(((-1.45555882352941)*x1077))+(((4.31372549019608)*x1079))+(((0.647058823529412)*x1078))+(((-1.0)*(1.66110784313725)*py))+(((0.119091176470588)*x1076))))));
3530 j4eval[2]=IKsign(((((1.1)*pp))+(((-1.1)*x1075))));
3531 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3532 {
3533 {
3534 IkReal evalcond[6];
3535 bool bgotonextstatement = true;
3536 do
3537 {
3538 IkReal x1080=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
3539 evalcond[0]=((IKabs(py))+(IKabs(px)));
3540 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
3541 evalcond[2]=x1080;
3542 evalcond[3]=x1080;
3543 evalcond[4]=((0.316735294117647)+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp)));
3544 evalcond[5]=((-0.2125)+(((-1.0)*(1.0)*pp)));
3545 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
3546 {
3547 bgotonextstatement=false;
3548 {
3549 IkReal j4array[4], cj4array[4], sj4array[4];
3550 bool j4valid[4]={false};
3551 _nj4 = 4;
3552 j4array[0]=0;
3553 sj4array[0]=IKsin(j4array[0]);
3554 cj4array[0]=IKcos(j4array[0]);
3555 j4array[1]=1.5707963267949;
3556 sj4array[1]=IKsin(j4array[1]);
3557 cj4array[1]=IKcos(j4array[1]);
3558 j4array[2]=3.14159265358979;
3559 sj4array[2]=IKsin(j4array[2]);
3560 cj4array[2]=IKcos(j4array[2]);
3561 j4array[3]=-1.5707963267949;
3562 sj4array[3]=IKsin(j4array[3]);
3563 cj4array[3]=IKcos(j4array[3]);
3564 if( j4array[0] > IKPI )
3565 {
3566     j4array[0]-=IK2PI;
3567 }
3568 else if( j4array[0] < -IKPI )
3569 {    j4array[0]+=IK2PI;
3570 }
3571 j4valid[0] = true;
3572 if( j4array[1] > IKPI )
3573 {
3574     j4array[1]-=IK2PI;
3575 }
3576 else if( j4array[1] < -IKPI )
3577 {    j4array[1]+=IK2PI;
3578 }
3579 j4valid[1] = true;
3580 if( j4array[2] > IKPI )
3581 {
3582     j4array[2]-=IK2PI;
3583 }
3584 else if( j4array[2] < -IKPI )
3585 {    j4array[2]+=IK2PI;
3586 }
3587 j4valid[2] = true;
3588 if( j4array[3] > IKPI )
3589 {
3590     j4array[3]-=IK2PI;
3591 }
3592 else if( j4array[3] < -IKPI )
3593 {    j4array[3]+=IK2PI;
3594 }
3595 j4valid[3] = true;
3596 for(int ij4 = 0; ij4 < 4; ++ij4)
3597 {
3598 if( !j4valid[ij4] )
3599 {
3600     continue;
3601 }
3602 _ij4[0] = ij4; _ij4[1] = -1;
3603 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
3604 {
3605 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
3606 {
3607     j4valid[iij4]=false; _ij4[1] = iij4; break;
3608 }
3609 }
3610 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
3611 
3612 rotationfunction0(solutions);
3613 }
3614 }
3615 
3616 }
3617 } while(0);
3618 if( bgotonextstatement )
3619 {
3620 bool bgotonextstatement = true;
3621 do
3622 {
3623 if( 1 )
3624 {
3625 bgotonextstatement=false;
3626 continue; // branch miss [j4]
3627 
3628 }
3629 } while(0);
3630 if( bgotonextstatement )
3631 {
3632 }
3633 }
3634 }
3635 
3636 } else
3637 {
3638 {
3639 IkReal j4array[1], cj4array[1], sj4array[1];
3640 bool j4valid[1]={false};
3641 _nj4 = 1;
3642 IkReal x1081=(cj9*px);
3643 IkReal x1082=(cj9*py);
3644 IkReal x1083=(pp*px);
3645 IkReal x1084=(pp*py);
3646 CheckValue<IkReal> x1085 = IKatan2WithCheck(IkReal(((((0.119091176470588)*x1082))+(((0.348408823529412)*py))+(((1.66110784313725)*px))+(((0.647058823529412)*x1084))+(((-4.31372549019608)*x1083))+(((1.45555882352941)*x1081)))),((((4.31372549019608)*x1084))+(((0.119091176470588)*x1081))+(((0.348408823529412)*px))+(((0.647058823529412)*x1083))+(((-1.45555882352941)*x1082))+(((-1.0)*(1.66110784313725)*py))),IKFAST_ATAN2_MAGTHRESH);
3647 if(!x1085.valid){
3648 continue;
3649 }
3650 CheckValue<IkReal> x1086=IKPowWithIntegerCheck(IKsign(((((1.1)*pp))+(((-1.0)*(1.1)*(pz*pz))))),-1);
3651 if(!x1086.valid){
3652 continue;
3653 }
3654 j4array[0]=((-1.5707963267949)+(x1085.value)+(((1.5707963267949)*(x1086.value))));
3655 sj4array[0]=IKsin(j4array[0]);
3656 cj4array[0]=IKcos(j4array[0]);
3657 if( j4array[0] > IKPI )
3658 {
3659     j4array[0]-=IK2PI;
3660 }
3661 else if( j4array[0] < -IKPI )
3662 {    j4array[0]+=IK2PI;
3663 }
3664 j4valid[0] = true;
3665 for(int ij4 = 0; ij4 < 1; ++ij4)
3666 {
3667 if( !j4valid[ij4] )
3668 {
3669     continue;
3670 }
3671 _ij4[0] = ij4; _ij4[1] = -1;
3672 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
3673 {
3674 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
3675 {
3676     j4valid[iij4]=false; _ij4[1] = iij4; break;
3677 }
3678 }
3679 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
3680 {
3681 IkReal evalcond[4];
3682 IkReal x1087=IKcos(j4);
3683 IkReal x1088=(px*x1087);
3684 IkReal x1089=IKsin(j4);
3685 IkReal x1090=(py*x1089);
3686 IkReal x1091=(px*x1089);
3687 IkReal x1092=(py*x1087);
3688 evalcond[0]=((-0.55)+x1088+(((-1.0)*(0.3)*cj9))+x1090+(((-1.0)*(0.045)*sj9)));
3689 evalcond[1]=((-1.51009803921569)+(((-1.0)*x1092))+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1091);
3690 evalcond[2]=((0.316735294117647)+(((-1.0)*x1090))+(((-1.0)*x1088))+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp)));
3691 evalcond[3]=((-0.2125)+(((1.1)*x1090))+(((0.09)*x1092))+(((-0.09)*x1091))+(((1.1)*x1088))+(((-1.0)*(1.0)*pp)));
3692 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
3693 {
3694 continue;
3695 }
3696 }
3697 
3698 rotationfunction0(solutions);
3699 }
3700 }
3701 
3702 }
3703 
3704 }
3705 
3706 } else
3707 {
3708 {
3709 IkReal j4array[1], cj4array[1], sj4array[1];
3710 bool j4valid[1]={false};
3711 _nj4 = 1;
3712 IkReal x1093=(cj9*px);
3713 IkReal x1094=(cj9*py);
3714 IkReal x1095=(pp*px);
3715 IkReal x1096=(pp*py);
3716 CheckValue<IkReal> x1097 = IKatan2WithCheck(IkReal(((((-3.92156862745098)*x1095))+(((0.316735294117647)*py))+(((1.51009803921569)*px))+(((0.108264705882353)*x1094))+(((1.32323529411765)*x1093))+(((0.588235294117647)*x1096)))),((((0.108264705882353)*x1093))+(((0.588235294117647)*x1095))+(((-1.32323529411765)*x1094))+(((0.316735294117647)*px))+(((-1.0)*(1.51009803921569)*py))+(((3.92156862745098)*x1096))),IKFAST_ATAN2_MAGTHRESH);
3717 if(!x1097.valid){
3718 continue;
3719 }
3720 CheckValue<IkReal> x1098=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
3721 if(!x1098.valid){
3722 continue;
3723 }
3724 j4array[0]=((-1.5707963267949)+(x1097.value)+(((1.5707963267949)*(x1098.value))));
3725 sj4array[0]=IKsin(j4array[0]);
3726 cj4array[0]=IKcos(j4array[0]);
3727 if( j4array[0] > IKPI )
3728 {
3729     j4array[0]-=IK2PI;
3730 }
3731 else if( j4array[0] < -IKPI )
3732 {    j4array[0]+=IK2PI;
3733 }
3734 j4valid[0] = true;
3735 for(int ij4 = 0; ij4 < 1; ++ij4)
3736 {
3737 if( !j4valid[ij4] )
3738 {
3739     continue;
3740 }
3741 _ij4[0] = ij4; _ij4[1] = -1;
3742 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
3743 {
3744 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
3745 {
3746     j4valid[iij4]=false; _ij4[1] = iij4; break;
3747 }
3748 }
3749 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
3750 {
3751 IkReal evalcond[4];
3752 IkReal x1099=IKcos(j4);
3753 IkReal x1100=(px*x1099);
3754 IkReal x1101=IKsin(j4);
3755 IkReal x1102=(py*x1101);
3756 IkReal x1103=(px*x1101);
3757 IkReal x1104=(py*x1099);
3758 evalcond[0]=((-0.55)+x1102+x1100+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
3759 evalcond[1]=((-1.51009803921569)+(((-1.0)*x1104))+(((-1.0)*(1.32323529411765)*cj9))+x1103+(((3.92156862745098)*pp)));
3760 evalcond[2]=((0.316735294117647)+(((-1.0)*x1102))+(((-1.0)*x1100))+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp)));
3761 evalcond[3]=((-0.2125)+(((-0.09)*x1103))+(((1.1)*x1100))+(((1.1)*x1102))+(((-1.0)*(1.0)*pp))+(((0.09)*x1104)));
3762 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
3763 {
3764 continue;
3765 }
3766 }
3767 
3768 rotationfunction0(solutions);
3769 }
3770 }
3771 
3772 }
3773 
3774 }
3775 
3776 } else
3777 {
3778 {
3779 IkReal j4array[1], cj4array[1], sj4array[1];
3780 bool j4valid[1]={false};
3781 _nj4 = 1;
3782 IkReal x1105=(cj9*px);
3783 IkReal x1106=(cj9*py);
3784 IkReal x1107=((3.92156862745098)*pp);
3785 IkReal x1108=((0.045)*sj9);
3786 CheckValue<IkReal> x1109=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
3787 if(!x1109.valid){
3788 continue;
3789 }
3790 CheckValue<IkReal> x1110 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1107))+((py*x1108))+(((1.51009803921569)*px))+(((0.55)*py))+(((1.32323529411765)*x1105))+(((0.3)*x1106)))),((((-1.32323529411765)*x1106))+(((-1.0)*(1.51009803921569)*py))+((py*x1107))+(((0.55)*px))+((px*x1108))+(((0.3)*x1105))),IKFAST_ATAN2_MAGTHRESH);
3791 if(!x1110.valid){
3792 continue;
3793 }
3794 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1109.value)))+(x1110.value));
3795 sj4array[0]=IKsin(j4array[0]);
3796 cj4array[0]=IKcos(j4array[0]);
3797 if( j4array[0] > IKPI )
3798 {
3799     j4array[0]-=IK2PI;
3800 }
3801 else if( j4array[0] < -IKPI )
3802 {    j4array[0]+=IK2PI;
3803 }
3804 j4valid[0] = true;
3805 for(int ij4 = 0; ij4 < 1; ++ij4)
3806 {
3807 if( !j4valid[ij4] )
3808 {
3809     continue;
3810 }
3811 _ij4[0] = ij4; _ij4[1] = -1;
3812 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
3813 {
3814 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
3815 {
3816     j4valid[iij4]=false; _ij4[1] = iij4; break;
3817 }
3818 }
3819 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
3820 {
3821 IkReal evalcond[4];
3822 IkReal x1111=IKcos(j4);
3823 IkReal x1112=(px*x1111);
3824 IkReal x1113=IKsin(j4);
3825 IkReal x1114=(py*x1113);
3826 IkReal x1115=(px*x1113);
3827 IkReal x1116=(py*x1111);
3828 evalcond[0]=((-0.55)+x1112+x1114+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
3829 evalcond[1]=((-1.51009803921569)+x1115+(((-1.0)*(1.32323529411765)*cj9))+(((-1.0)*x1116))+(((3.92156862745098)*pp)));
3830 evalcond[2]=((0.316735294117647)+(((-1.0)*x1114))+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp))+(((-1.0)*x1112)));
3831 evalcond[3]=((-0.2125)+(((-0.09)*x1115))+(((1.1)*x1114))+(((1.1)*x1112))+(((-1.0)*(1.0)*pp))+(((0.09)*x1116)));
3832 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
3833 {
3834 continue;
3835 }
3836 }
3837 
3838 rotationfunction0(solutions);
3839 }
3840 }
3841 
3842 }
3843 
3844 }
3845 
3846 }
3847 } while(0);
3848 if( bgotonextstatement )
3849 {
3850 bool bgotonextstatement = true;
3851 do
3852 {
3853 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j6)))), 6.28318530717959)));
3854 evalcond[1]=pz;
3855 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  )
3856 {
3857 bgotonextstatement=false;
3858 {
3859 IkReal j4eval[3];
3860 sj8=1.0;
3861 cj8=0;
3862 j8=1.5707963267949;
3863 sj6=-1.0;
3864 cj6=0;
3865 j6=-1.5707963267949;
3866 IkReal x1117=(pp+(((-1.0)*(1.0)*(pz*pz))));
3867 IkReal x1118=(cj9*px);
3868 IkReal x1119=(cj9*py);
3869 IkReal x1120=((3.92156862745098)*pp);
3870 IkReal x1121=((0.045)*sj9);
3871 j4eval[0]=x1117;
3872 j4eval[1]=((IKabs(((((-0.3)*x1119))+(((1.51009803921569)*px))+(((1.32323529411765)*x1118))+(((-1.0)*px*x1120))+(((-1.0)*py*x1121))+(((-1.0)*(0.55)*py)))))+(IKabs(((((-1.0)*px*x1121))+(((-1.0)*(0.55)*px))+(((-0.3)*x1118))+(((-1.0)*(1.51009803921569)*py))+((py*x1120))+(((-1.32323529411765)*x1119))))));
3873 j4eval[2]=IKsign(x1117);
3874 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3875 {
3876 {
3877 IkReal j4eval[3];
3878 sj8=1.0;
3879 cj8=0;
3880 j8=1.5707963267949;
3881 sj6=-1.0;
3882 cj6=0;
3883 j6=-1.5707963267949;
3884 IkReal x1122=(pp+(((-1.0)*(1.0)*(pz*pz))));
3885 IkReal x1123=(cj9*px);
3886 IkReal x1124=(cj9*py);
3887 IkReal x1125=(pp*px);
3888 IkReal x1126=(pp*py);
3889 j4eval[0]=x1122;
3890 j4eval[1]=((IKabs(((((-0.108264705882353)*x1124))+(((1.51009803921569)*px))+(((-1.0)*(0.316735294117647)*py))+(((-3.92156862745098)*x1125))+(((-0.588235294117647)*x1126))+(((1.32323529411765)*x1123)))))+(IKabs(((((-0.108264705882353)*x1123))+(((-1.0)*(1.51009803921569)*py))+(((-1.0)*(0.316735294117647)*px))+(((-0.588235294117647)*x1125))+(((3.92156862745098)*x1126))+(((-1.32323529411765)*x1124))))));
3891 j4eval[2]=IKsign(x1122);
3892 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3893 {
3894 {
3895 IkReal j4eval[3];
3896 sj8=1.0;
3897 cj8=0;
3898 j8=1.5707963267949;
3899 sj6=-1.0;
3900 cj6=0;
3901 j6=-1.5707963267949;
3902 IkReal x1127=pz*pz;
3903 IkReal x1128=(cj9*px);
3904 IkReal x1129=(cj9*py);
3905 IkReal x1130=(pp*px);
3906 IkReal x1131=(pp*py);
3907 j4eval[0]=(x1127+(((-1.0)*(1.0)*pp)));
3908 j4eval[1]=IKsign(((((1.1)*x1127))+(((-1.0)*(1.1)*pp))));
3909 j4eval[2]=((IKabs(((((0.348408823529412)*px))+(((1.66110784313725)*py))+(((0.119091176470588)*x1128))+(((0.647058823529412)*x1130))+(((1.45555882352941)*x1129))+(((-4.31372549019608)*x1131)))))+(IKabs(((((0.647058823529412)*x1131))+(((0.348408823529412)*py))+(((0.119091176470588)*x1129))+(((4.31372549019608)*x1130))+(((-1.0)*(1.66110784313725)*px))+(((-1.45555882352941)*x1128))))));
3910 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
3911 {
3912 {
3913 IkReal evalcond[6];
3914 bool bgotonextstatement = true;
3915 do
3916 {
3917 IkReal x1132=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
3918 evalcond[0]=((IKabs(py))+(IKabs(px)));
3919 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
3920 evalcond[2]=x1132;
3921 evalcond[3]=x1132;
3922 evalcond[4]=((-0.316735294117647)+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9)));
3923 evalcond[5]=((-0.2125)+(((-1.0)*(1.0)*pp)));
3924 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
3925 {
3926 bgotonextstatement=false;
3927 {
3928 IkReal j4array[4], cj4array[4], sj4array[4];
3929 bool j4valid[4]={false};
3930 _nj4 = 4;
3931 j4array[0]=0;
3932 sj4array[0]=IKsin(j4array[0]);
3933 cj4array[0]=IKcos(j4array[0]);
3934 j4array[1]=1.5707963267949;
3935 sj4array[1]=IKsin(j4array[1]);
3936 cj4array[1]=IKcos(j4array[1]);
3937 j4array[2]=3.14159265358979;
3938 sj4array[2]=IKsin(j4array[2]);
3939 cj4array[2]=IKcos(j4array[2]);
3940 j4array[3]=-1.5707963267949;
3941 sj4array[3]=IKsin(j4array[3]);
3942 cj4array[3]=IKcos(j4array[3]);
3943 if( j4array[0] > IKPI )
3944 {
3945     j4array[0]-=IK2PI;
3946 }
3947 else if( j4array[0] < -IKPI )
3948 {    j4array[0]+=IK2PI;
3949 }
3950 j4valid[0] = true;
3951 if( j4array[1] > IKPI )
3952 {
3953     j4array[1]-=IK2PI;
3954 }
3955 else if( j4array[1] < -IKPI )
3956 {    j4array[1]+=IK2PI;
3957 }
3958 j4valid[1] = true;
3959 if( j4array[2] > IKPI )
3960 {
3961     j4array[2]-=IK2PI;
3962 }
3963 else if( j4array[2] < -IKPI )
3964 {    j4array[2]+=IK2PI;
3965 }
3966 j4valid[2] = true;
3967 if( j4array[3] > IKPI )
3968 {
3969     j4array[3]-=IK2PI;
3970 }
3971 else if( j4array[3] < -IKPI )
3972 {    j4array[3]+=IK2PI;
3973 }
3974 j4valid[3] = true;
3975 for(int ij4 = 0; ij4 < 4; ++ij4)
3976 {
3977 if( !j4valid[ij4] )
3978 {
3979     continue;
3980 }
3981 _ij4[0] = ij4; _ij4[1] = -1;
3982 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
3983 {
3984 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
3985 {
3986     j4valid[iij4]=false; _ij4[1] = iij4; break;
3987 }
3988 }
3989 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
3990 
3991 rotationfunction0(solutions);
3992 }
3993 }
3994 
3995 }
3996 } while(0);
3997 if( bgotonextstatement )
3998 {
3999 bool bgotonextstatement = true;
4000 do
4001 {
4002 if( 1 )
4003 {
4004 bgotonextstatement=false;
4005 continue; // branch miss [j4]
4006 
4007 }
4008 } while(0);
4009 if( bgotonextstatement )
4010 {
4011 }
4012 }
4013 }
4014 
4015 } else
4016 {
4017 {
4018 IkReal j4array[1], cj4array[1], sj4array[1];
4019 bool j4valid[1]={false};
4020 _nj4 = 1;
4021 IkReal x1133=(cj9*px);
4022 IkReal x1134=(cj9*py);
4023 IkReal x1135=(pp*px);
4024 IkReal x1136=(pp*py);
4025 CheckValue<IkReal> x1137 = IKatan2WithCheck(IkReal(((((4.31372549019608)*x1135))+(((-1.45555882352941)*x1133))+(((0.348408823529412)*py))+(((0.119091176470588)*x1134))+(((-1.0)*(1.66110784313725)*px))+(((0.647058823529412)*x1136)))),((((0.348408823529412)*px))+(((0.119091176470588)*x1133))+(((1.66110784313725)*py))+(((1.45555882352941)*x1134))+(((-4.31372549019608)*x1136))+(((0.647058823529412)*x1135))),IKFAST_ATAN2_MAGTHRESH);
4026 if(!x1137.valid){
4027 continue;
4028 }
4029 CheckValue<IkReal> x1138=IKPowWithIntegerCheck(IKsign(((((1.1)*(pz*pz)))+(((-1.0)*(1.1)*pp)))),-1);
4030 if(!x1138.valid){
4031 continue;
4032 }
4033 j4array[0]=((-1.5707963267949)+(x1137.value)+(((1.5707963267949)*(x1138.value))));
4034 sj4array[0]=IKsin(j4array[0]);
4035 cj4array[0]=IKcos(j4array[0]);
4036 if( j4array[0] > IKPI )
4037 {
4038     j4array[0]-=IK2PI;
4039 }
4040 else if( j4array[0] < -IKPI )
4041 {    j4array[0]+=IK2PI;
4042 }
4043 j4valid[0] = true;
4044 for(int ij4 = 0; ij4 < 1; ++ij4)
4045 {
4046 if( !j4valid[ij4] )
4047 {
4048     continue;
4049 }
4050 _ij4[0] = ij4; _ij4[1] = -1;
4051 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4052 {
4053 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4054 {
4055     j4valid[iij4]=false; _ij4[1] = iij4; break;
4056 }
4057 }
4058 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4059 {
4060 IkReal evalcond[4];
4061 IkReal x1139=IKsin(j4);
4062 IkReal x1140=(px*x1139);
4063 IkReal x1141=IKcos(j4);
4064 IkReal x1142=(py*x1141);
4065 IkReal x1143=(px*x1141);
4066 IkReal x1144=(py*x1139);
4067 IkReal x1145=((((-1.0)*x1144))+(((-1.0)*x1143)));
4068 evalcond[0]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+x1140+(((3.92156862745098)*pp))+(((-1.0)*x1142)));
4069 evalcond[1]=((-0.55)+x1145+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4070 evalcond[2]=((-0.316735294117647)+x1145+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9)));
4071 evalcond[3]=((-0.2125)+(((-0.09)*x1140))+(((-1.1)*x1144))+(((-1.1)*x1143))+(((0.09)*x1142))+(((-1.0)*(1.0)*pp)));
4072 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4073 {
4074 continue;
4075 }
4076 }
4077 
4078 rotationfunction0(solutions);
4079 }
4080 }
4081 
4082 }
4083 
4084 }
4085 
4086 } else
4087 {
4088 {
4089 IkReal j4array[1], cj4array[1], sj4array[1];
4090 bool j4valid[1]={false};
4091 _nj4 = 1;
4092 IkReal x1146=(cj9*px);
4093 IkReal x1147=(cj9*py);
4094 IkReal x1148=(pp*px);
4095 IkReal x1149=(pp*py);
4096 CheckValue<IkReal> x1150 = IKatan2WithCheck(IkReal(((((1.51009803921569)*px))+(((-1.0)*(0.316735294117647)*py))+(((-0.108264705882353)*x1147))+(((-0.588235294117647)*x1149))+(((1.32323529411765)*x1146))+(((-3.92156862745098)*x1148)))),((((-0.108264705882353)*x1146))+(((-1.32323529411765)*x1147))+(((3.92156862745098)*x1149))+(((-1.0)*(1.51009803921569)*py))+(((-1.0)*(0.316735294117647)*px))+(((-0.588235294117647)*x1148))),IKFAST_ATAN2_MAGTHRESH);
4097 if(!x1150.valid){
4098 continue;
4099 }
4100 CheckValue<IkReal> x1151=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
4101 if(!x1151.valid){
4102 continue;
4103 }
4104 j4array[0]=((-1.5707963267949)+(x1150.value)+(((1.5707963267949)*(x1151.value))));
4105 sj4array[0]=IKsin(j4array[0]);
4106 cj4array[0]=IKcos(j4array[0]);
4107 if( j4array[0] > IKPI )
4108 {
4109     j4array[0]-=IK2PI;
4110 }
4111 else if( j4array[0] < -IKPI )
4112 {    j4array[0]+=IK2PI;
4113 }
4114 j4valid[0] = true;
4115 for(int ij4 = 0; ij4 < 1; ++ij4)
4116 {
4117 if( !j4valid[ij4] )
4118 {
4119     continue;
4120 }
4121 _ij4[0] = ij4; _ij4[1] = -1;
4122 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4123 {
4124 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4125 {
4126     j4valid[iij4]=false; _ij4[1] = iij4; break;
4127 }
4128 }
4129 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4130 {
4131 IkReal evalcond[4];
4132 IkReal x1152=IKsin(j4);
4133 IkReal x1153=(px*x1152);
4134 IkReal x1154=IKcos(j4);
4135 IkReal x1155=(py*x1154);
4136 IkReal x1156=(px*x1154);
4137 IkReal x1157=(py*x1152);
4138 IkReal x1158=((((-1.0)*x1156))+(((-1.0)*x1157)));
4139 evalcond[0]=((-1.51009803921569)+(((-1.0)*x1155))+x1153+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
4140 evalcond[1]=((-0.55)+x1158+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4141 evalcond[2]=((-0.316735294117647)+x1158+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9)));
4142 evalcond[3]=((-0.2125)+(((-1.1)*x1156))+(((-1.1)*x1157))+(((-0.09)*x1153))+(((-1.0)*(1.0)*pp))+(((0.09)*x1155)));
4143 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4144 {
4145 continue;
4146 }
4147 }
4148 
4149 rotationfunction0(solutions);
4150 }
4151 }
4152 
4153 }
4154 
4155 }
4156 
4157 } else
4158 {
4159 {
4160 IkReal j4array[1], cj4array[1], sj4array[1];
4161 bool j4valid[1]={false};
4162 _nj4 = 1;
4163 IkReal x1159=(cj9*px);
4164 IkReal x1160=(cj9*py);
4165 IkReal x1161=((3.92156862745098)*pp);
4166 IkReal x1162=((0.045)*sj9);
4167 CheckValue<IkReal> x1163=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
4168 if(!x1163.valid){
4169 continue;
4170 }
4171 CheckValue<IkReal> x1164 = IKatan2WithCheck(IkReal(((((-0.3)*x1160))+(((1.51009803921569)*px))+(((-1.0)*py*x1162))+(((-1.0)*px*x1161))+(((1.32323529411765)*x1159))+(((-1.0)*(0.55)*py)))),((((-1.0)*(0.55)*px))+(((-1.32323529411765)*x1160))+(((-1.0)*(1.51009803921569)*py))+(((-0.3)*x1159))+((py*x1161))+(((-1.0)*px*x1162))),IKFAST_ATAN2_MAGTHRESH);
4172 if(!x1164.valid){
4173 continue;
4174 }
4175 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1163.value)))+(x1164.value));
4176 sj4array[0]=IKsin(j4array[0]);
4177 cj4array[0]=IKcos(j4array[0]);
4178 if( j4array[0] > IKPI )
4179 {
4180     j4array[0]-=IK2PI;
4181 }
4182 else if( j4array[0] < -IKPI )
4183 {    j4array[0]+=IK2PI;
4184 }
4185 j4valid[0] = true;
4186 for(int ij4 = 0; ij4 < 1; ++ij4)
4187 {
4188 if( !j4valid[ij4] )
4189 {
4190     continue;
4191 }
4192 _ij4[0] = ij4; _ij4[1] = -1;
4193 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4194 {
4195 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4196 {
4197     j4valid[iij4]=false; _ij4[1] = iij4; break;
4198 }
4199 }
4200 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4201 {
4202 IkReal evalcond[4];
4203 IkReal x1165=IKsin(j4);
4204 IkReal x1166=(px*x1165);
4205 IkReal x1167=IKcos(j4);
4206 IkReal x1168=(py*x1167);
4207 IkReal x1169=(px*x1167);
4208 IkReal x1170=(py*x1165);
4209 IkReal x1171=((((-1.0)*x1169))+(((-1.0)*x1170)));
4210 evalcond[0]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((-1.0)*x1168))+(((3.92156862745098)*pp))+x1166);
4211 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1171+(((-1.0)*(0.045)*sj9)));
4212 evalcond[2]=((-0.316735294117647)+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9))+x1171);
4213 evalcond[3]=((-0.2125)+(((-1.1)*x1170))+(((-1.1)*x1169))+(((0.09)*x1168))+(((-0.09)*x1166))+(((-1.0)*(1.0)*pp)));
4214 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4215 {
4216 continue;
4217 }
4218 }
4219 
4220 rotationfunction0(solutions);
4221 }
4222 }
4223 
4224 }
4225 
4226 }
4227 
4228 }
4229 } while(0);
4230 if( bgotonextstatement )
4231 {
4232 bool bgotonextstatement = true;
4233 do
4234 {
4235 IkReal x1172=(cj6*pz);
4236 IkReal x1173=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
4237 evalcond[0]=((IKabs(py))+(IKabs(px)));
4238 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1172+(((-1.0)*(0.045)*sj9)));
4239 evalcond[2]=x1173;
4240 evalcond[3]=((-1.0)*(((1.0)*pz*sj6)));
4241 evalcond[4]=x1173;
4242 evalcond[5]=((((0.108264705882353)*cj9*sj6))+(((0.588235294117647)*pp*sj6))+(((0.316735294117647)*sj6)));
4243 evalcond[6]=((-0.2125)+(((1.1)*x1172))+(((-1.0)*(1.0)*pp)));
4244 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  )
4245 {
4246 bgotonextstatement=false;
4247 {
4248 IkReal j4array[4], cj4array[4], sj4array[4];
4249 bool j4valid[4]={false};
4250 _nj4 = 4;
4251 j4array[0]=0;
4252 sj4array[0]=IKsin(j4array[0]);
4253 cj4array[0]=IKcos(j4array[0]);
4254 j4array[1]=1.5707963267949;
4255 sj4array[1]=IKsin(j4array[1]);
4256 cj4array[1]=IKcos(j4array[1]);
4257 j4array[2]=3.14159265358979;
4258 sj4array[2]=IKsin(j4array[2]);
4259 cj4array[2]=IKcos(j4array[2]);
4260 j4array[3]=-1.5707963267949;
4261 sj4array[3]=IKsin(j4array[3]);
4262 cj4array[3]=IKcos(j4array[3]);
4263 if( j4array[0] > IKPI )
4264 {
4265     j4array[0]-=IK2PI;
4266 }
4267 else if( j4array[0] < -IKPI )
4268 {    j4array[0]+=IK2PI;
4269 }
4270 j4valid[0] = true;
4271 if( j4array[1] > IKPI )
4272 {
4273     j4array[1]-=IK2PI;
4274 }
4275 else if( j4array[1] < -IKPI )
4276 {    j4array[1]+=IK2PI;
4277 }
4278 j4valid[1] = true;
4279 if( j4array[2] > IKPI )
4280 {
4281     j4array[2]-=IK2PI;
4282 }
4283 else if( j4array[2] < -IKPI )
4284 {    j4array[2]+=IK2PI;
4285 }
4286 j4valid[2] = true;
4287 if( j4array[3] > IKPI )
4288 {
4289     j4array[3]-=IK2PI;
4290 }
4291 else if( j4array[3] < -IKPI )
4292 {    j4array[3]+=IK2PI;
4293 }
4294 j4valid[3] = true;
4295 for(int ij4 = 0; ij4 < 4; ++ij4)
4296 {
4297 if( !j4valid[ij4] )
4298 {
4299     continue;
4300 }
4301 _ij4[0] = ij4; _ij4[1] = -1;
4302 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
4303 {
4304 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4305 {
4306     j4valid[iij4]=false; _ij4[1] = iij4; break;
4307 }
4308 }
4309 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4310 
4311 rotationfunction0(solutions);
4312 }
4313 }
4314 
4315 }
4316 } while(0);
4317 if( bgotonextstatement )
4318 {
4319 bool bgotonextstatement = true;
4320 do
4321 {
4322 if( 1 )
4323 {
4324 bgotonextstatement=false;
4325 continue; // branch miss [j4]
4326 
4327 }
4328 } while(0);
4329 if( bgotonextstatement )
4330 {
4331 }
4332 }
4333 }
4334 }
4335 }
4336 
4337 } else
4338 {
4339 {
4340 IkReal j4array[1], cj4array[1], sj4array[1];
4341 bool j4valid[1]={false};
4342 _nj4 = 1;
4343 IkReal x1174=((1.32323529411765)*cj9);
4344 IkReal x1175=((3.92156862745098)*pp);
4345 IkReal x1176=((0.316735294117647)*sj6);
4346 IkReal x1177=((0.108264705882353)*cj9*sj6);
4347 IkReal x1178=((0.588235294117647)*pp*sj6);
4348 CheckValue<IkReal> x1179 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1175))+((px*x1174))+(((1.51009803921569)*px))+((py*x1178))+((py*x1177))+((py*x1176)))),(((px*x1176))+(((-1.0)*(1.51009803921569)*py))+((px*x1178))+((py*x1175))+(((-1.0)*py*x1174))+((px*x1177))),IKFAST_ATAN2_MAGTHRESH);
4349 if(!x1179.valid){
4350 continue;
4351 }
4352 CheckValue<IkReal> x1180=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
4353 if(!x1180.valid){
4354 continue;
4355 }
4356 j4array[0]=((-1.5707963267949)+(x1179.value)+(((1.5707963267949)*(x1180.value))));
4357 sj4array[0]=IKsin(j4array[0]);
4358 cj4array[0]=IKcos(j4array[0]);
4359 if( j4array[0] > IKPI )
4360 {
4361     j4array[0]-=IK2PI;
4362 }
4363 else if( j4array[0] < -IKPI )
4364 {    j4array[0]+=IK2PI;
4365 }
4366 j4valid[0] = true;
4367 for(int ij4 = 0; ij4 < 1; ++ij4)
4368 {
4369 if( !j4valid[ij4] )
4370 {
4371     continue;
4372 }
4373 _ij4[0] = ij4; _ij4[1] = -1;
4374 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4375 {
4376 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4377 {
4378     j4valid[iij4]=false; _ij4[1] = iij4; break;
4379 }
4380 }
4381 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4382 {
4383 IkReal evalcond[5];
4384 IkReal x1181=IKcos(j4);
4385 IkReal x1182=(px*x1181);
4386 IkReal x1183=IKsin(j4);
4387 IkReal x1184=(py*x1183);
4388 IkReal x1185=(px*x1183);
4389 IkReal x1186=((1.0)*x1181);
4390 IkReal x1187=(cj6*pz);
4391 IkReal x1188=(sj6*x1182);
4392 IkReal x1189=(sj6*x1184);
4393 evalcond[0]=(((cj6*x1184))+((cj6*x1182))+(((-1.0)*(1.0)*pz*sj6)));
4394 evalcond[1]=((-1.51009803921569)+(((-1.0)*py*x1186))+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1185);
4395 evalcond[2]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1187+x1188+x1189+(((-1.0)*(0.045)*sj9)));
4396 evalcond[3]=((((0.108264705882353)*cj9*sj6))+(((-1.0)*x1184))+(((-1.0)*px*x1186))+(((0.588235294117647)*pp*sj6))+(((0.316735294117647)*sj6)));
4397 evalcond[4]=((-0.2125)+(((1.1)*x1188))+(((-0.09)*x1185))+(((0.09)*py*x1181))+(((-1.0)*(1.0)*pp))+(((1.1)*x1187))+(((1.1)*x1189)));
4398 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
4399 {
4400 continue;
4401 }
4402 }
4403 
4404 rotationfunction0(solutions);
4405 }
4406 }
4407 
4408 }
4409 
4410 }
4411 
4412 } else
4413 {
4414 {
4415 IkReal j4array[1], cj4array[1], sj4array[1];
4416 bool j4valid[1]={false};
4417 _nj4 = 1;
4418 IkReal x1190=(cj6*pp);
4419 IkReal x1191=((0.2125)*cj6);
4420 IkReal x1192=((1.1)*pz);
4421 IkReal x1193=((0.09)*pz*sj6);
4422 CheckValue<IkReal> x1194 = IKatan2WithCheck(IkReal((((px*x1192))+(((-1.0)*px*x1190))+((py*x1193))+(((-1.0)*px*x1191)))),(((py*x1190))+(((-1.0)*py*x1192))+((py*x1191))+((px*x1193))),IKFAST_ATAN2_MAGTHRESH);
4423 if(!x1194.valid){
4424 continue;
4425 }
4426 CheckValue<IkReal> x1195=IKPowWithIntegerCheck(IKsign(((((0.09)*x1190))+(((-1.0)*(0.09)*cj6*(pz*pz))))),-1);
4427 if(!x1195.valid){
4428 continue;
4429 }
4430 j4array[0]=((-1.5707963267949)+(x1194.value)+(((1.5707963267949)*(x1195.value))));
4431 sj4array[0]=IKsin(j4array[0]);
4432 cj4array[0]=IKcos(j4array[0]);
4433 if( j4array[0] > IKPI )
4434 {
4435     j4array[0]-=IK2PI;
4436 }
4437 else if( j4array[0] < -IKPI )
4438 {    j4array[0]+=IK2PI;
4439 }
4440 j4valid[0] = true;
4441 for(int ij4 = 0; ij4 < 1; ++ij4)
4442 {
4443 if( !j4valid[ij4] )
4444 {
4445     continue;
4446 }
4447 _ij4[0] = ij4; _ij4[1] = -1;
4448 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4449 {
4450 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4451 {
4452     j4valid[iij4]=false; _ij4[1] = iij4; break;
4453 }
4454 }
4455 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4456 {
4457 IkReal evalcond[5];
4458 IkReal x1196=IKcos(j4);
4459 IkReal x1197=(px*x1196);
4460 IkReal x1198=IKsin(j4);
4461 IkReal x1199=(py*x1198);
4462 IkReal x1200=(px*x1198);
4463 IkReal x1201=((1.0)*x1196);
4464 IkReal x1202=(cj6*pz);
4465 IkReal x1203=(sj6*x1197);
4466 IkReal x1204=(sj6*x1199);
4467 evalcond[0]=(((cj6*x1199))+((cj6*x1197))+(((-1.0)*(1.0)*pz*sj6)));
4468 evalcond[1]=((-1.51009803921569)+x1200+(((-1.0)*(1.32323529411765)*cj9))+(((-1.0)*py*x1201))+(((3.92156862745098)*pp)));
4469 evalcond[2]=((-0.55)+x1202+x1203+x1204+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4470 evalcond[3]=((((0.108264705882353)*cj9*sj6))+(((0.588235294117647)*pp*sj6))+(((-1.0)*px*x1201))+(((0.316735294117647)*sj6))+(((-1.0)*x1199)));
4471 evalcond[4]=((-0.2125)+(((1.1)*x1204))+(((1.1)*x1203))+(((-0.09)*x1200))+(((0.09)*py*x1196))+(((1.1)*x1202))+(((-1.0)*(1.0)*pp)));
4472 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
4473 {
4474 continue;
4475 }
4476 }
4477 
4478 rotationfunction0(solutions);
4479 }
4480 }
4481 
4482 }
4483 
4484 }
4485 
4486 } else
4487 {
4488 {
4489 IkReal j4array[1], cj4array[1], sj4array[1];
4490 bool j4valid[1]={false};
4491 _nj4 = 1;
4492 IkReal x1205=((1.51009803921569)*cj6);
4493 IkReal x1206=(pz*sj6);
4494 IkReal x1207=((1.32323529411765)*cj6*cj9);
4495 IkReal x1208=((3.92156862745098)*cj6*pp);
4496 CheckValue<IkReal> x1209 = IKatan2WithCheck(IkReal((((px*x1205))+((px*x1207))+((py*x1206))+(((-1.0)*px*x1208)))),((((-1.0)*py*x1205))+((py*x1208))+((px*x1206))+(((-1.0)*py*x1207))),IKFAST_ATAN2_MAGTHRESH);
4497 if(!x1209.valid){
4498 continue;
4499 }
4500 CheckValue<IkReal> x1210=IKPowWithIntegerCheck(IKsign(((((-1.0)*(1.0)*cj6*(pz*pz)))+((cj6*pp)))),-1);
4501 if(!x1210.valid){
4502 continue;
4503 }
4504 j4array[0]=((-1.5707963267949)+(x1209.value)+(((1.5707963267949)*(x1210.value))));
4505 sj4array[0]=IKsin(j4array[0]);
4506 cj4array[0]=IKcos(j4array[0]);
4507 if( j4array[0] > IKPI )
4508 {
4509     j4array[0]-=IK2PI;
4510 }
4511 else if( j4array[0] < -IKPI )
4512 {    j4array[0]+=IK2PI;
4513 }
4514 j4valid[0] = true;
4515 for(int ij4 = 0; ij4 < 1; ++ij4)
4516 {
4517 if( !j4valid[ij4] )
4518 {
4519     continue;
4520 }
4521 _ij4[0] = ij4; _ij4[1] = -1;
4522 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4523 {
4524 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4525 {
4526     j4valid[iij4]=false; _ij4[1] = iij4; break;
4527 }
4528 }
4529 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4530 {
4531 IkReal evalcond[5];
4532 IkReal x1211=IKcos(j4);
4533 IkReal x1212=(px*x1211);
4534 IkReal x1213=IKsin(j4);
4535 IkReal x1214=(py*x1213);
4536 IkReal x1215=(px*x1213);
4537 IkReal x1216=((1.0)*x1211);
4538 IkReal x1217=(cj6*pz);
4539 IkReal x1218=(sj6*x1212);
4540 IkReal x1219=(sj6*x1214);
4541 evalcond[0]=(((cj6*x1212))+((cj6*x1214))+(((-1.0)*(1.0)*pz*sj6)));
4542 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1215+(((-1.0)*py*x1216)));
4543 evalcond[2]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1218+x1219+x1217+(((-1.0)*(0.045)*sj9)));
4544 evalcond[3]=((((0.108264705882353)*cj9*sj6))+(((-1.0)*x1214))+(((0.588235294117647)*pp*sj6))+(((-1.0)*px*x1216))+(((0.316735294117647)*sj6)));
4545 evalcond[4]=((-0.2125)+(((1.1)*x1217))+(((1.1)*x1218))+(((-0.09)*x1215))+(((1.1)*x1219))+(((-1.0)*(1.0)*pp))+(((0.09)*py*x1211)));
4546 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
4547 {
4548 continue;
4549 }
4550 }
4551 
4552 rotationfunction0(solutions);
4553 }
4554 }
4555 
4556 }
4557 
4558 }
4559 
4560 }
4561 } while(0);
4562 if( bgotonextstatement )
4563 {
4564 bool bgotonextstatement = true;
4565 do
4566 {
4567 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j8)))), 6.28318530717959)));
4568 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
4569 evalcond[2]=((((-1.0)*(0.3)*cj6*cj9))+(((-1.0)*(0.55)*cj6))+pz+(((-1.0)*(0.045)*cj6*sj9)));
4570 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  )
4571 {
4572 bgotonextstatement=false;
4573 {
4574 IkReal j4eval[3];
4575 sj8=-1.0;
4576 cj8=0;
4577 j8=-1.5707963267949;
4578 IkReal x1220=((((-1.0)*(1.0)*cj6*(pz*pz)))+((cj6*pp)));
4579 IkReal x1221=((1.51009803921569)*cj6);
4580 IkReal x1222=(pz*sj6);
4581 IkReal x1223=((1.32323529411765)*cj6*cj9);
4582 IkReal x1224=((3.92156862745098)*cj6*pp);
4583 j4eval[0]=x1220;
4584 j4eval[1]=((IKabs((((py*x1221))+((py*x1223))+((px*x1222))+(((-1.0)*py*x1224)))))+(IKabs(((((-1.0)*px*x1221))+((py*x1222))+(((-1.0)*px*x1223))+((px*x1224))))));
4585 j4eval[2]=IKsign(x1220);
4586 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4587 {
4588 {
4589 IkReal j4eval[3];
4590 sj8=-1.0;
4591 cj8=0;
4592 j8=-1.5707963267949;
4593 IkReal x1225=(cj6*pp);
4594 IkReal x1226=((1.0)*x1225);
4595 IkReal x1227=(cj6*(pz*pz));
4596 IkReal x1228=((0.2125)*cj6);
4597 IkReal x1229=((1.1)*pz);
4598 IkReal x1230=((0.09)*pz*sj6);
4599 j4eval[0]=((((-1.0)*x1226))+x1227);
4600 j4eval[1]=IKsign(((((-0.09)*x1225))+(((0.09)*x1227))));
4601 j4eval[2]=((IKabs((((py*x1228))+((py*x1225))+(((-1.0)*py*x1229))+(((-1.0)*px*x1230)))))+(IKabs(((((-1.0)*px*x1228))+(((-1.0)*px*x1226))+((px*x1229))+(((-1.0)*py*x1230))))));
4602 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4603 {
4604 {
4605 IkReal j4eval[3];
4606 sj8=-1.0;
4607 cj8=0;
4608 j8=-1.5707963267949;
4609 IkReal x1231=(pp+(((-1.0)*(1.0)*(pz*pz))));
4610 IkReal x1232=((1.32323529411765)*cj9);
4611 IkReal x1233=((3.92156862745098)*pp);
4612 IkReal x1234=((0.316735294117647)*sj6);
4613 IkReal x1235=((0.108264705882353)*cj9*sj6);
4614 IkReal x1236=((0.588235294117647)*pp*sj6);
4615 j4eval[0]=x1231;
4616 j4eval[1]=((IKabs((((px*x1233))+(((-1.0)*(1.51009803921569)*px))+(((-1.0)*px*x1232))+((py*x1234))+((py*x1236))+((py*x1235)))))+(IKabs(((((-1.0)*py*x1233))+((py*x1232))+((px*x1236))+((px*x1235))+(((1.51009803921569)*py))+((px*x1234))))));
4617 j4eval[2]=IKsign(x1231);
4618 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4619 {
4620 {
4621 IkReal evalcond[7];
4622 bool bgotonextstatement = true;
4623 do
4624 {
4625 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j6)))), 6.28318530717959)));
4626 evalcond[1]=pz;
4627 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  )
4628 {
4629 bgotonextstatement=false;
4630 {
4631 IkReal j4eval[3];
4632 sj8=-1.0;
4633 cj8=0;
4634 j8=-1.5707963267949;
4635 sj6=1.0;
4636 cj6=0;
4637 j6=1.5707963267949;
4638 IkReal x1237=(pp+(((-1.0)*(1.0)*(pz*pz))));
4639 IkReal x1238=(cj9*px);
4640 IkReal x1239=(cj9*py);
4641 IkReal x1240=((3.92156862745098)*pp);
4642 IkReal x1241=((0.045)*sj9);
4643 j4eval[0]=x1237;
4644 j4eval[1]=((IKabs((((px*x1240))+(((-1.0)*(1.51009803921569)*px))+(((0.55)*py))+(((0.3)*x1239))+((py*x1241))+(((-1.32323529411765)*x1238)))))+(IKabs((((px*x1241))+(((1.51009803921569)*py))+(((1.32323529411765)*x1239))+(((-1.0)*py*x1240))+(((0.55)*px))+(((0.3)*x1238))))));
4645 j4eval[2]=IKsign(x1237);
4646 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4647 {
4648 {
4649 IkReal j4eval[3];
4650 sj8=-1.0;
4651 cj8=0;
4652 j8=-1.5707963267949;
4653 sj6=1.0;
4654 cj6=0;
4655 j6=1.5707963267949;
4656 IkReal x1242=(pp+(((-1.0)*(1.0)*(pz*pz))));
4657 IkReal x1243=(cj9*px);
4658 IkReal x1244=(cj9*py);
4659 IkReal x1245=(pp*px);
4660 IkReal x1246=(pp*py);
4661 j4eval[0]=x1242;
4662 j4eval[1]=((IKabs(((((-1.32323529411765)*x1243))+(((0.316735294117647)*py))+(((-1.0)*(1.51009803921569)*px))+(((0.108264705882353)*x1244))+(((0.588235294117647)*x1246))+(((3.92156862745098)*x1245)))))+(IKabs(((((0.588235294117647)*x1245))+(((1.32323529411765)*x1244))+(((-3.92156862745098)*x1246))+(((0.316735294117647)*px))+(((1.51009803921569)*py))+(((0.108264705882353)*x1243))))));
4663 j4eval[2]=IKsign(x1242);
4664 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4665 {
4666 {
4667 IkReal j4eval[3];
4668 sj8=-1.0;
4669 cj8=0;
4670 j8=-1.5707963267949;
4671 sj6=1.0;
4672 cj6=0;
4673 j6=1.5707963267949;
4674 IkReal x1247=pz*pz;
4675 IkReal x1248=(cj9*px);
4676 IkReal x1249=(cj9*py);
4677 IkReal x1250=(pp*px);
4678 IkReal x1251=(pp*py);
4679 j4eval[0]=(pp+(((-1.0)*x1247)));
4680 j4eval[1]=((IKabs(((((0.348408823529412)*py))+(((0.119091176470588)*x1249))+(((0.647058823529412)*x1251))+(((-1.45555882352941)*x1248))+(((4.31372549019608)*x1250))+(((-1.0)*(1.66110784313725)*px)))))+(IKabs(((((1.45555882352941)*x1249))+(((0.348408823529412)*px))+(((1.66110784313725)*py))+(((0.647058823529412)*x1250))+(((0.119091176470588)*x1248))+(((-4.31372549019608)*x1251))))));
4681 j4eval[2]=IKsign(((((1.1)*pp))+(((-1.1)*x1247))));
4682 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
4683 {
4684 {
4685 IkReal evalcond[6];
4686 bool bgotonextstatement = true;
4687 do
4688 {
4689 IkReal x1252=((1.32323529411765)*cj9);
4690 IkReal x1253=((3.92156862745098)*pp);
4691 evalcond[0]=((IKabs(py))+(IKabs(px)));
4692 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4693 evalcond[2]=((1.51009803921569)+(((-1.0)*x1253))+x1252);
4694 evalcond[3]=((-1.51009803921569)+(((-1.0)*x1252))+x1253);
4695 evalcond[4]=((0.316735294117647)+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp)));
4696 evalcond[5]=((-0.2125)+(((-1.0)*(1.0)*pp)));
4697 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
4698 {
4699 bgotonextstatement=false;
4700 {
4701 IkReal j4array[4], cj4array[4], sj4array[4];
4702 bool j4valid[4]={false};
4703 _nj4 = 4;
4704 j4array[0]=0;
4705 sj4array[0]=IKsin(j4array[0]);
4706 cj4array[0]=IKcos(j4array[0]);
4707 j4array[1]=1.5707963267949;
4708 sj4array[1]=IKsin(j4array[1]);
4709 cj4array[1]=IKcos(j4array[1]);
4710 j4array[2]=3.14159265358979;
4711 sj4array[2]=IKsin(j4array[2]);
4712 cj4array[2]=IKcos(j4array[2]);
4713 j4array[3]=-1.5707963267949;
4714 sj4array[3]=IKsin(j4array[3]);
4715 cj4array[3]=IKcos(j4array[3]);
4716 if( j4array[0] > IKPI )
4717 {
4718     j4array[0]-=IK2PI;
4719 }
4720 else if( j4array[0] < -IKPI )
4721 {    j4array[0]+=IK2PI;
4722 }
4723 j4valid[0] = true;
4724 if( j4array[1] > IKPI )
4725 {
4726     j4array[1]-=IK2PI;
4727 }
4728 else if( j4array[1] < -IKPI )
4729 {    j4array[1]+=IK2PI;
4730 }
4731 j4valid[1] = true;
4732 if( j4array[2] > IKPI )
4733 {
4734     j4array[2]-=IK2PI;
4735 }
4736 else if( j4array[2] < -IKPI )
4737 {    j4array[2]+=IK2PI;
4738 }
4739 j4valid[2] = true;
4740 if( j4array[3] > IKPI )
4741 {
4742     j4array[3]-=IK2PI;
4743 }
4744 else if( j4array[3] < -IKPI )
4745 {    j4array[3]+=IK2PI;
4746 }
4747 j4valid[3] = true;
4748 for(int ij4 = 0; ij4 < 4; ++ij4)
4749 {
4750 if( !j4valid[ij4] )
4751 {
4752     continue;
4753 }
4754 _ij4[0] = ij4; _ij4[1] = -1;
4755 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
4756 {
4757 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4758 {
4759     j4valid[iij4]=false; _ij4[1] = iij4; break;
4760 }
4761 }
4762 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4763 
4764 rotationfunction0(solutions);
4765 }
4766 }
4767 
4768 }
4769 } while(0);
4770 if( bgotonextstatement )
4771 {
4772 bool bgotonextstatement = true;
4773 do
4774 {
4775 if( 1 )
4776 {
4777 bgotonextstatement=false;
4778 continue; // branch miss [j4]
4779 
4780 }
4781 } while(0);
4782 if( bgotonextstatement )
4783 {
4784 }
4785 }
4786 }
4787 
4788 } else
4789 {
4790 {
4791 IkReal j4array[1], cj4array[1], sj4array[1];
4792 bool j4valid[1]={false};
4793 _nj4 = 1;
4794 IkReal x1254=(cj9*px);
4795 IkReal x1255=(cj9*py);
4796 IkReal x1256=(pp*px);
4797 IkReal x1257=(pp*py);
4798 CheckValue<IkReal> x1258 = IKatan2WithCheck(IkReal(((((0.348408823529412)*py))+(((0.647058823529412)*x1257))+(((4.31372549019608)*x1256))+(((0.119091176470588)*x1255))+(((-1.0)*(1.66110784313725)*px))+(((-1.45555882352941)*x1254)))),((((0.348408823529412)*px))+(((1.66110784313725)*py))+(((0.119091176470588)*x1254))+(((-4.31372549019608)*x1257))+(((0.647058823529412)*x1256))+(((1.45555882352941)*x1255))),IKFAST_ATAN2_MAGTHRESH);
4799 if(!x1258.valid){
4800 continue;
4801 }
4802 CheckValue<IkReal> x1259=IKPowWithIntegerCheck(IKsign(((((1.1)*pp))+(((-1.0)*(1.1)*(pz*pz))))),-1);
4803 if(!x1259.valid){
4804 continue;
4805 }
4806 j4array[0]=((-1.5707963267949)+(x1258.value)+(((1.5707963267949)*(x1259.value))));
4807 sj4array[0]=IKsin(j4array[0]);
4808 cj4array[0]=IKcos(j4array[0]);
4809 if( j4array[0] > IKPI )
4810 {
4811     j4array[0]-=IK2PI;
4812 }
4813 else if( j4array[0] < -IKPI )
4814 {    j4array[0]+=IK2PI;
4815 }
4816 j4valid[0] = true;
4817 for(int ij4 = 0; ij4 < 1; ++ij4)
4818 {
4819 if( !j4valid[ij4] )
4820 {
4821     continue;
4822 }
4823 _ij4[0] = ij4; _ij4[1] = -1;
4824 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4825 {
4826 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4827 {
4828     j4valid[iij4]=false; _ij4[1] = iij4; break;
4829 }
4830 }
4831 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4832 {
4833 IkReal evalcond[4];
4834 IkReal x1260=IKcos(j4);
4835 IkReal x1261=(px*x1260);
4836 IkReal x1262=IKsin(j4);
4837 IkReal x1263=(py*x1262);
4838 IkReal x1264=(px*x1262);
4839 IkReal x1265=(py*x1260);
4840 evalcond[0]=((-0.55)+x1261+x1263+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4841 evalcond[1]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*x1265))+x1264+(((1.32323529411765)*cj9)));
4842 evalcond[2]=((0.316735294117647)+(((-1.0)*x1261))+(((-1.0)*x1263))+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp)));
4843 evalcond[3]=((-0.2125)+(((0.09)*x1264))+(((-0.09)*x1265))+(((-1.0)*(1.0)*pp))+(((1.1)*x1263))+(((1.1)*x1261)));
4844 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4845 {
4846 continue;
4847 }
4848 }
4849 
4850 rotationfunction0(solutions);
4851 }
4852 }
4853 
4854 }
4855 
4856 }
4857 
4858 } else
4859 {
4860 {
4861 IkReal j4array[1], cj4array[1], sj4array[1];
4862 bool j4valid[1]={false};
4863 _nj4 = 1;
4864 IkReal x1266=(cj9*px);
4865 IkReal x1267=(cj9*py);
4866 IkReal x1268=(pp*px);
4867 IkReal x1269=(pp*py);
4868 CheckValue<IkReal> x1270 = IKatan2WithCheck(IkReal(((((0.316735294117647)*py))+(((0.108264705882353)*x1267))+(((-1.32323529411765)*x1266))+(((3.92156862745098)*x1268))+(((-1.0)*(1.51009803921569)*px))+(((0.588235294117647)*x1269)))),((((0.588235294117647)*x1268))+(((1.32323529411765)*x1267))+(((0.316735294117647)*px))+(((1.51009803921569)*py))+(((-3.92156862745098)*x1269))+(((0.108264705882353)*x1266))),IKFAST_ATAN2_MAGTHRESH);
4869 if(!x1270.valid){
4870 continue;
4871 }
4872 CheckValue<IkReal> x1271=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
4873 if(!x1271.valid){
4874 continue;
4875 }
4876 j4array[0]=((-1.5707963267949)+(x1270.value)+(((1.5707963267949)*(x1271.value))));
4877 sj4array[0]=IKsin(j4array[0]);
4878 cj4array[0]=IKcos(j4array[0]);
4879 if( j4array[0] > IKPI )
4880 {
4881     j4array[0]-=IK2PI;
4882 }
4883 else if( j4array[0] < -IKPI )
4884 {    j4array[0]+=IK2PI;
4885 }
4886 j4valid[0] = true;
4887 for(int ij4 = 0; ij4 < 1; ++ij4)
4888 {
4889 if( !j4valid[ij4] )
4890 {
4891     continue;
4892 }
4893 _ij4[0] = ij4; _ij4[1] = -1;
4894 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4895 {
4896 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4897 {
4898     j4valid[iij4]=false; _ij4[1] = iij4; break;
4899 }
4900 }
4901 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4902 {
4903 IkReal evalcond[4];
4904 IkReal x1272=IKcos(j4);
4905 IkReal x1273=(px*x1272);
4906 IkReal x1274=IKsin(j4);
4907 IkReal x1275=(py*x1274);
4908 IkReal x1276=(px*x1274);
4909 IkReal x1277=(py*x1272);
4910 evalcond[0]=((-0.55)+x1275+x1273+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4911 evalcond[1]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+x1276+(((1.32323529411765)*cj9))+(((-1.0)*x1277)));
4912 evalcond[2]=((0.316735294117647)+(((0.108264705882353)*cj9))+(((-1.0)*x1273))+(((0.588235294117647)*pp))+(((-1.0)*x1275)));
4913 evalcond[3]=((-0.2125)+(((0.09)*x1276))+(((1.1)*x1275))+(((1.1)*x1273))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1277)));
4914 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4915 {
4916 continue;
4917 }
4918 }
4919 
4920 rotationfunction0(solutions);
4921 }
4922 }
4923 
4924 }
4925 
4926 }
4927 
4928 } else
4929 {
4930 {
4931 IkReal j4array[1], cj4array[1], sj4array[1];
4932 bool j4valid[1]={false};
4933 _nj4 = 1;
4934 IkReal x1278=(cj9*px);
4935 IkReal x1279=(cj9*py);
4936 IkReal x1280=((3.92156862745098)*pp);
4937 IkReal x1281=((0.045)*sj9);
4938 CheckValue<IkReal> x1282=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
4939 if(!x1282.valid){
4940 continue;
4941 }
4942 CheckValue<IkReal> x1283 = IKatan2WithCheck(IkReal(((((-1.0)*(1.51009803921569)*px))+(((-1.32323529411765)*x1278))+(((0.55)*py))+((px*x1280))+((py*x1281))+(((0.3)*x1279)))),((((-1.0)*py*x1280))+(((1.32323529411765)*x1279))+(((1.51009803921569)*py))+(((0.3)*x1278))+(((0.55)*px))+((px*x1281))),IKFAST_ATAN2_MAGTHRESH);
4943 if(!x1283.valid){
4944 continue;
4945 }
4946 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1282.value)))+(x1283.value));
4947 sj4array[0]=IKsin(j4array[0]);
4948 cj4array[0]=IKcos(j4array[0]);
4949 if( j4array[0] > IKPI )
4950 {
4951     j4array[0]-=IK2PI;
4952 }
4953 else if( j4array[0] < -IKPI )
4954 {    j4array[0]+=IK2PI;
4955 }
4956 j4valid[0] = true;
4957 for(int ij4 = 0; ij4 < 1; ++ij4)
4958 {
4959 if( !j4valid[ij4] )
4960 {
4961     continue;
4962 }
4963 _ij4[0] = ij4; _ij4[1] = -1;
4964 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
4965 {
4966 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
4967 {
4968     j4valid[iij4]=false; _ij4[1] = iij4; break;
4969 }
4970 }
4971 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
4972 {
4973 IkReal evalcond[4];
4974 IkReal x1284=IKcos(j4);
4975 IkReal x1285=(px*x1284);
4976 IkReal x1286=IKsin(j4);
4977 IkReal x1287=(py*x1286);
4978 IkReal x1288=(px*x1286);
4979 IkReal x1289=(py*x1284);
4980 evalcond[0]=((-0.55)+x1287+x1285+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
4981 evalcond[1]=((1.51009803921569)+(((-1.0)*x1289))+(((-1.0)*(3.92156862745098)*pp))+x1288+(((1.32323529411765)*cj9)));
4982 evalcond[2]=((0.316735294117647)+(((-1.0)*x1285))+(((0.108264705882353)*cj9))+(((0.588235294117647)*pp))+(((-1.0)*x1287)));
4983 evalcond[3]=((-0.2125)+(((0.09)*x1288))+(((-0.09)*x1289))+(((1.1)*x1287))+(((-1.0)*(1.0)*pp))+(((1.1)*x1285)));
4984 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
4985 {
4986 continue;
4987 }
4988 }
4989 
4990 rotationfunction0(solutions);
4991 }
4992 }
4993 
4994 }
4995 
4996 }
4997 
4998 }
4999 } while(0);
5000 if( bgotonextstatement )
5001 {
5002 bool bgotonextstatement = true;
5003 do
5004 {
5005 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j6)))), 6.28318530717959)));
5006 evalcond[1]=((-1.0)*(((1.0)*pz)));
5007 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  )
5008 {
5009 bgotonextstatement=false;
5010 {
5011 IkReal j4eval[3];
5012 sj8=-1.0;
5013 cj8=0;
5014 j8=-1.5707963267949;
5015 sj6=-1.0;
5016 cj6=0;
5017 j6=-1.5707963267949;
5018 IkReal x1290=(pp+(((-1.0)*(1.0)*(pz*pz))));
5019 IkReal x1291=(cj9*px);
5020 IkReal x1292=(cj9*py);
5021 IkReal x1293=((3.92156862745098)*pp);
5022 IkReal x1294=((0.045)*sj9);
5023 j4eval[0]=x1290;
5024 j4eval[1]=((IKabs(((((-1.32323529411765)*x1291))+((px*x1293))+(((-1.0)*(1.51009803921569)*px))+(((-1.0)*py*x1294))+(((-0.3)*x1292))+(((-1.0)*(0.55)*py)))))+(IKabs(((((-1.0)*(0.55)*px))+(((-0.3)*x1291))+(((-1.0)*px*x1294))+(((1.51009803921569)*py))+(((-1.0)*py*x1293))+(((1.32323529411765)*x1292))))));
5025 j4eval[2]=IKsign(x1290);
5026 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5027 {
5028 {
5029 IkReal j4eval[3];
5030 sj8=-1.0;
5031 cj8=0;
5032 j8=-1.5707963267949;
5033 sj6=-1.0;
5034 cj6=0;
5035 j6=-1.5707963267949;
5036 IkReal x1295=(pp+(((-1.0)*(1.0)*(pz*pz))));
5037 IkReal x1296=(cj9*px);
5038 IkReal x1297=(cj9*py);
5039 IkReal x1298=(pp*px);
5040 IkReal x1299=(pp*py);
5041 j4eval[0]=x1295;
5042 j4eval[1]=((IKabs(((((-3.92156862745098)*x1299))+(((1.51009803921569)*py))+(((-0.108264705882353)*x1296))+(((-1.0)*(0.316735294117647)*px))+(((1.32323529411765)*x1297))+(((-0.588235294117647)*x1298)))))+(IKabs(((((-0.588235294117647)*x1299))+(((-1.32323529411765)*x1296))+(((-1.0)*(1.51009803921569)*px))+(((-1.0)*(0.316735294117647)*py))+(((-0.108264705882353)*x1297))+(((3.92156862745098)*x1298))))));
5043 j4eval[2]=IKsign(x1295);
5044 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5045 {
5046 {
5047 IkReal j4eval[3];
5048 sj8=-1.0;
5049 cj8=0;
5050 j8=-1.5707963267949;
5051 sj6=-1.0;
5052 cj6=0;
5053 j6=-1.5707963267949;
5054 IkReal x1300=pz*pz;
5055 IkReal x1301=(cj9*px);
5056 IkReal x1302=(cj9*py);
5057 IkReal x1303=(pp*px);
5058 IkReal x1304=(pp*py);
5059 j4eval[0]=(x1300+(((-1.0)*(1.0)*pp)));
5060 j4eval[1]=IKsign(((((1.1)*x1300))+(((-1.0)*(1.1)*pp))));
5061 j4eval[2]=((IKabs(((((4.31372549019608)*x1304))+(((0.348408823529412)*px))+(((0.119091176470588)*x1301))+(((-1.0)*(1.66110784313725)*py))+(((0.647058823529412)*x1303))+(((-1.45555882352941)*x1302)))))+(IKabs(((((0.348408823529412)*py))+(((1.66110784313725)*px))+(((1.45555882352941)*x1301))+(((-4.31372549019608)*x1303))+(((0.647058823529412)*x1304))+(((0.119091176470588)*x1302))))));
5062 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5063 {
5064 {
5065 IkReal evalcond[6];
5066 bool bgotonextstatement = true;
5067 do
5068 {
5069 IkReal x1305=((1.32323529411765)*cj9);
5070 IkReal x1306=((3.92156862745098)*pp);
5071 evalcond[0]=((IKabs(py))+(IKabs(px)));
5072 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
5073 evalcond[2]=((1.51009803921569)+(((-1.0)*x1306))+x1305);
5074 evalcond[3]=((-1.51009803921569)+x1306+(((-1.0)*x1305)));
5075 evalcond[4]=((-0.316735294117647)+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9)));
5076 evalcond[5]=((-0.2125)+(((-1.0)*(1.0)*pp)));
5077 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
5078 {
5079 bgotonextstatement=false;
5080 {
5081 IkReal j4array[4], cj4array[4], sj4array[4];
5082 bool j4valid[4]={false};
5083 _nj4 = 4;
5084 j4array[0]=0;
5085 sj4array[0]=IKsin(j4array[0]);
5086 cj4array[0]=IKcos(j4array[0]);
5087 j4array[1]=1.5707963267949;
5088 sj4array[1]=IKsin(j4array[1]);
5089 cj4array[1]=IKcos(j4array[1]);
5090 j4array[2]=3.14159265358979;
5091 sj4array[2]=IKsin(j4array[2]);
5092 cj4array[2]=IKcos(j4array[2]);
5093 j4array[3]=-1.5707963267949;
5094 sj4array[3]=IKsin(j4array[3]);
5095 cj4array[3]=IKcos(j4array[3]);
5096 if( j4array[0] > IKPI )
5097 {
5098     j4array[0]-=IK2PI;
5099 }
5100 else if( j4array[0] < -IKPI )
5101 {    j4array[0]+=IK2PI;
5102 }
5103 j4valid[0] = true;
5104 if( j4array[1] > IKPI )
5105 {
5106     j4array[1]-=IK2PI;
5107 }
5108 else if( j4array[1] < -IKPI )
5109 {    j4array[1]+=IK2PI;
5110 }
5111 j4valid[1] = true;
5112 if( j4array[2] > IKPI )
5113 {
5114     j4array[2]-=IK2PI;
5115 }
5116 else if( j4array[2] < -IKPI )
5117 {    j4array[2]+=IK2PI;
5118 }
5119 j4valid[2] = true;
5120 if( j4array[3] > IKPI )
5121 {
5122     j4array[3]-=IK2PI;
5123 }
5124 else if( j4array[3] < -IKPI )
5125 {    j4array[3]+=IK2PI;
5126 }
5127 j4valid[3] = true;
5128 for(int ij4 = 0; ij4 < 4; ++ij4)
5129 {
5130 if( !j4valid[ij4] )
5131 {
5132     continue;
5133 }
5134 _ij4[0] = ij4; _ij4[1] = -1;
5135 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
5136 {
5137 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5138 {
5139     j4valid[iij4]=false; _ij4[1] = iij4; break;
5140 }
5141 }
5142 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5143 
5144 rotationfunction0(solutions);
5145 }
5146 }
5147 
5148 }
5149 } while(0);
5150 if( bgotonextstatement )
5151 {
5152 bool bgotonextstatement = true;
5153 do
5154 {
5155 if( 1 )
5156 {
5157 bgotonextstatement=false;
5158 continue; // branch miss [j4]
5159 
5160 }
5161 } while(0);
5162 if( bgotonextstatement )
5163 {
5164 }
5165 }
5166 }
5167 
5168 } else
5169 {
5170 {
5171 IkReal j4array[1], cj4array[1], sj4array[1];
5172 bool j4valid[1]={false};
5173 _nj4 = 1;
5174 IkReal x1307=(cj9*px);
5175 IkReal x1308=(cj9*py);
5176 IkReal x1309=(pp*px);
5177 IkReal x1310=(pp*py);
5178 CheckValue<IkReal> x1311=IKPowWithIntegerCheck(IKsign(((((1.1)*(pz*pz)))+(((-1.0)*(1.1)*pp)))),-1);
5179 if(!x1311.valid){
5180 continue;
5181 }
5182 CheckValue<IkReal> x1312 = IKatan2WithCheck(IkReal(((((1.45555882352941)*x1307))+(((0.348408823529412)*py))+(((1.66110784313725)*px))+(((0.119091176470588)*x1308))+(((-4.31372549019608)*x1309))+(((0.647058823529412)*x1310)))),((((0.647058823529412)*x1309))+(((0.348408823529412)*px))+(((4.31372549019608)*x1310))+(((-1.45555882352941)*x1308))+(((0.119091176470588)*x1307))+(((-1.0)*(1.66110784313725)*py))),IKFAST_ATAN2_MAGTHRESH);
5183 if(!x1312.valid){
5184 continue;
5185 }
5186 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1311.value)))+(x1312.value));
5187 sj4array[0]=IKsin(j4array[0]);
5188 cj4array[0]=IKcos(j4array[0]);
5189 if( j4array[0] > IKPI )
5190 {
5191     j4array[0]-=IK2PI;
5192 }
5193 else if( j4array[0] < -IKPI )
5194 {    j4array[0]+=IK2PI;
5195 }
5196 j4valid[0] = true;
5197 for(int ij4 = 0; ij4 < 1; ++ij4)
5198 {
5199 if( !j4valid[ij4] )
5200 {
5201     continue;
5202 }
5203 _ij4[0] = ij4; _ij4[1] = -1;
5204 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5205 {
5206 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5207 {
5208     j4valid[iij4]=false; _ij4[1] = iij4; break;
5209 }
5210 }
5211 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5212 {
5213 IkReal evalcond[4];
5214 IkReal x1313=IKsin(j4);
5215 IkReal x1314=(px*x1313);
5216 IkReal x1315=IKcos(j4);
5217 IkReal x1316=(py*x1315);
5218 IkReal x1317=(px*x1315);
5219 IkReal x1318=(py*x1313);
5220 IkReal x1319=((((-1.0)*x1318))+(((-1.0)*x1317)));
5221 evalcond[0]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*x1316))+(((1.32323529411765)*cj9))+x1314);
5222 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9))+x1319);
5223 evalcond[2]=((-0.316735294117647)+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9))+x1319);
5224 evalcond[3]=((-0.2125)+(((-1.1)*x1317))+(((-1.0)*(1.0)*pp))+(((0.09)*x1314))+(((-0.09)*x1316))+(((-1.1)*x1318)));
5225 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
5226 {
5227 continue;
5228 }
5229 }
5230 
5231 rotationfunction0(solutions);
5232 }
5233 }
5234 
5235 }
5236 
5237 }
5238 
5239 } else
5240 {
5241 {
5242 IkReal j4array[1], cj4array[1], sj4array[1];
5243 bool j4valid[1]={false};
5244 _nj4 = 1;
5245 IkReal x1320=(cj9*px);
5246 IkReal x1321=(cj9*py);
5247 IkReal x1322=(pp*px);
5248 IkReal x1323=(pp*py);
5249 CheckValue<IkReal> x1324=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
5250 if(!x1324.valid){
5251 continue;
5252 }
5253 CheckValue<IkReal> x1325 = IKatan2WithCheck(IkReal(((((-0.108264705882353)*x1321))+(((-1.0)*(1.51009803921569)*px))+(((-1.32323529411765)*x1320))+(((-1.0)*(0.316735294117647)*py))+(((3.92156862745098)*x1322))+(((-0.588235294117647)*x1323)))),((((-3.92156862745098)*x1323))+(((-0.588235294117647)*x1322))+(((-0.108264705882353)*x1320))+(((1.51009803921569)*py))+(((1.32323529411765)*x1321))+(((-1.0)*(0.316735294117647)*px))),IKFAST_ATAN2_MAGTHRESH);
5254 if(!x1325.valid){
5255 continue;
5256 }
5257 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1324.value)))+(x1325.value));
5258 sj4array[0]=IKsin(j4array[0]);
5259 cj4array[0]=IKcos(j4array[0]);
5260 if( j4array[0] > IKPI )
5261 {
5262     j4array[0]-=IK2PI;
5263 }
5264 else if( j4array[0] < -IKPI )
5265 {    j4array[0]+=IK2PI;
5266 }
5267 j4valid[0] = true;
5268 for(int ij4 = 0; ij4 < 1; ++ij4)
5269 {
5270 if( !j4valid[ij4] )
5271 {
5272     continue;
5273 }
5274 _ij4[0] = ij4; _ij4[1] = -1;
5275 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5276 {
5277 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5278 {
5279     j4valid[iij4]=false; _ij4[1] = iij4; break;
5280 }
5281 }
5282 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5283 {
5284 IkReal evalcond[4];
5285 IkReal x1326=IKsin(j4);
5286 IkReal x1327=(px*x1326);
5287 IkReal x1328=IKcos(j4);
5288 IkReal x1329=(py*x1328);
5289 IkReal x1330=(px*x1328);
5290 IkReal x1331=(py*x1326);
5291 IkReal x1332=((((-1.0)*x1330))+(((-1.0)*x1331)));
5292 evalcond[0]=((1.51009803921569)+x1327+(((-1.0)*x1329))+(((-1.0)*(3.92156862745098)*pp))+(((1.32323529411765)*cj9)));
5293 evalcond[1]=((-0.55)+x1332+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
5294 evalcond[2]=((-0.316735294117647)+x1332+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9)));
5295 evalcond[3]=((-0.2125)+(((-1.1)*x1330))+(((0.09)*x1327))+(((-0.09)*x1329))+(((-1.0)*(1.0)*pp))+(((-1.1)*x1331)));
5296 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
5297 {
5298 continue;
5299 }
5300 }
5301 
5302 rotationfunction0(solutions);
5303 }
5304 }
5305 
5306 }
5307 
5308 }
5309 
5310 } else
5311 {
5312 {
5313 IkReal j4array[1], cj4array[1], sj4array[1];
5314 bool j4valid[1]={false};
5315 _nj4 = 1;
5316 IkReal x1333=(cj9*px);
5317 IkReal x1334=(cj9*py);
5318 IkReal x1335=((3.92156862745098)*pp);
5319 IkReal x1336=((0.045)*sj9);
5320 CheckValue<IkReal> x1337 = IKatan2WithCheck(IkReal(((((-1.32323529411765)*x1333))+(((-0.3)*x1334))+((px*x1335))+(((-1.0)*(1.51009803921569)*px))+(((-1.0)*py*x1336))+(((-1.0)*(0.55)*py)))),((((-1.0)*(0.55)*px))+(((-1.0)*py*x1335))+(((-1.0)*px*x1336))+(((1.51009803921569)*py))+(((-0.3)*x1333))+(((1.32323529411765)*x1334))),IKFAST_ATAN2_MAGTHRESH);
5321 if(!x1337.valid){
5322 continue;
5323 }
5324 CheckValue<IkReal> x1338=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
5325 if(!x1338.valid){
5326 continue;
5327 }
5328 j4array[0]=((-1.5707963267949)+(x1337.value)+(((1.5707963267949)*(x1338.value))));
5329 sj4array[0]=IKsin(j4array[0]);
5330 cj4array[0]=IKcos(j4array[0]);
5331 if( j4array[0] > IKPI )
5332 {
5333     j4array[0]-=IK2PI;
5334 }
5335 else if( j4array[0] < -IKPI )
5336 {    j4array[0]+=IK2PI;
5337 }
5338 j4valid[0] = true;
5339 for(int ij4 = 0; ij4 < 1; ++ij4)
5340 {
5341 if( !j4valid[ij4] )
5342 {
5343     continue;
5344 }
5345 _ij4[0] = ij4; _ij4[1] = -1;
5346 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5347 {
5348 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5349 {
5350     j4valid[iij4]=false; _ij4[1] = iij4; break;
5351 }
5352 }
5353 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5354 {
5355 IkReal evalcond[4];
5356 IkReal x1339=IKsin(j4);
5357 IkReal x1340=(px*x1339);
5358 IkReal x1341=IKcos(j4);
5359 IkReal x1342=(py*x1341);
5360 IkReal x1343=(px*x1341);
5361 IkReal x1344=(py*x1339);
5362 IkReal x1345=((((-1.0)*x1343))+(((-1.0)*x1344)));
5363 evalcond[0]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*x1342))+x1340+(((1.32323529411765)*cj9)));
5364 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9))+x1345);
5365 evalcond[2]=((-0.316735294117647)+(((-1.0)*(0.588235294117647)*pp))+(((-1.0)*(0.108264705882353)*cj9))+x1345);
5366 evalcond[3]=((-0.2125)+(((-1.1)*x1344))+(((-1.1)*x1343))+(((0.09)*x1340))+(((-0.09)*x1342))+(((-1.0)*(1.0)*pp)));
5367 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  )
5368 {
5369 continue;
5370 }
5371 }
5372 
5373 rotationfunction0(solutions);
5374 }
5375 }
5376 
5377 }
5378 
5379 }
5380 
5381 }
5382 } while(0);
5383 if( bgotonextstatement )
5384 {
5385 bool bgotonextstatement = true;
5386 do
5387 {
5388 IkReal x1346=(cj6*pz);
5389 IkReal x1347=((1.32323529411765)*cj9);
5390 IkReal x1348=((3.92156862745098)*pp);
5391 evalcond[0]=((IKabs(py))+(IKabs(px)));
5392 evalcond[1]=((-0.55)+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9))+x1346);
5393 evalcond[2]=((1.51009803921569)+(((-1.0)*x1348))+x1347);
5394 evalcond[3]=(pz*sj6);
5395 evalcond[4]=((-1.51009803921569)+(((-1.0)*x1347))+x1348);
5396 evalcond[5]=((((0.108264705882353)*cj9*sj6))+(((0.588235294117647)*pp*sj6))+(((0.316735294117647)*sj6)));
5397 evalcond[6]=((-0.2125)+(((1.1)*x1346))+(((-1.0)*(1.0)*pp)));
5398 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  )
5399 {
5400 bgotonextstatement=false;
5401 {
5402 IkReal j4array[4], cj4array[4], sj4array[4];
5403 bool j4valid[4]={false};
5404 _nj4 = 4;
5405 j4array[0]=0;
5406 sj4array[0]=IKsin(j4array[0]);
5407 cj4array[0]=IKcos(j4array[0]);
5408 j4array[1]=1.5707963267949;
5409 sj4array[1]=IKsin(j4array[1]);
5410 cj4array[1]=IKcos(j4array[1]);
5411 j4array[2]=3.14159265358979;
5412 sj4array[2]=IKsin(j4array[2]);
5413 cj4array[2]=IKcos(j4array[2]);
5414 j4array[3]=-1.5707963267949;
5415 sj4array[3]=IKsin(j4array[3]);
5416 cj4array[3]=IKcos(j4array[3]);
5417 if( j4array[0] > IKPI )
5418 {
5419     j4array[0]-=IK2PI;
5420 }
5421 else if( j4array[0] < -IKPI )
5422 {    j4array[0]+=IK2PI;
5423 }
5424 j4valid[0] = true;
5425 if( j4array[1] > IKPI )
5426 {
5427     j4array[1]-=IK2PI;
5428 }
5429 else if( j4array[1] < -IKPI )
5430 {    j4array[1]+=IK2PI;
5431 }
5432 j4valid[1] = true;
5433 if( j4array[2] > IKPI )
5434 {
5435     j4array[2]-=IK2PI;
5436 }
5437 else if( j4array[2] < -IKPI )
5438 {    j4array[2]+=IK2PI;
5439 }
5440 j4valid[2] = true;
5441 if( j4array[3] > IKPI )
5442 {
5443     j4array[3]-=IK2PI;
5444 }
5445 else if( j4array[3] < -IKPI )
5446 {    j4array[3]+=IK2PI;
5447 }
5448 j4valid[3] = true;
5449 for(int ij4 = 0; ij4 < 4; ++ij4)
5450 {
5451 if( !j4valid[ij4] )
5452 {
5453     continue;
5454 }
5455 _ij4[0] = ij4; _ij4[1] = -1;
5456 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
5457 {
5458 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5459 {
5460     j4valid[iij4]=false; _ij4[1] = iij4; break;
5461 }
5462 }
5463 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5464 
5465 rotationfunction0(solutions);
5466 }
5467 }
5468 
5469 }
5470 } while(0);
5471 if( bgotonextstatement )
5472 {
5473 bool bgotonextstatement = true;
5474 do
5475 {
5476 if( 1 )
5477 {
5478 bgotonextstatement=false;
5479 continue; // branch miss [j4]
5480 
5481 }
5482 } while(0);
5483 if( bgotonextstatement )
5484 {
5485 }
5486 }
5487 }
5488 }
5489 }
5490 
5491 } else
5492 {
5493 {
5494 IkReal j4array[1], cj4array[1], sj4array[1];
5495 bool j4valid[1]={false};
5496 _nj4 = 1;
5497 IkReal x1349=((1.32323529411765)*cj9);
5498 IkReal x1350=((3.92156862745098)*pp);
5499 IkReal x1351=((0.316735294117647)*sj6);
5500 IkReal x1352=((0.108264705882353)*cj9*sj6);
5501 IkReal x1353=((0.588235294117647)*pp*sj6);
5502 CheckValue<IkReal> x1354 = IKatan2WithCheck(IkReal((((py*x1353))+(((-1.0)*(1.51009803921569)*px))+(((-1.0)*px*x1349))+((py*x1352))+((px*x1350))+((py*x1351)))),(((px*x1351))+((px*x1353))+(((1.51009803921569)*py))+((py*x1349))+((px*x1352))+(((-1.0)*py*x1350))),IKFAST_ATAN2_MAGTHRESH);
5503 if(!x1354.valid){
5504 continue;
5505 }
5506 CheckValue<IkReal> x1355=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
5507 if(!x1355.valid){
5508 continue;
5509 }
5510 j4array[0]=((-1.5707963267949)+(x1354.value)+(((1.5707963267949)*(x1355.value))));
5511 sj4array[0]=IKsin(j4array[0]);
5512 cj4array[0]=IKcos(j4array[0]);
5513 if( j4array[0] > IKPI )
5514 {
5515     j4array[0]-=IK2PI;
5516 }
5517 else if( j4array[0] < -IKPI )
5518 {    j4array[0]+=IK2PI;
5519 }
5520 j4valid[0] = true;
5521 for(int ij4 = 0; ij4 < 1; ++ij4)
5522 {
5523 if( !j4valid[ij4] )
5524 {
5525     continue;
5526 }
5527 _ij4[0] = ij4; _ij4[1] = -1;
5528 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5529 {
5530 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5531 {
5532     j4valid[iij4]=false; _ij4[1] = iij4; break;
5533 }
5534 }
5535 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5536 {
5537 IkReal evalcond[5];
5538 IkReal x1356=IKcos(j4);
5539 IkReal x1357=((1.0)*x1356);
5540 IkReal x1358=(px*x1357);
5541 IkReal x1359=IKsin(j4);
5542 IkReal x1360=(py*x1359);
5543 IkReal x1361=((1.0)*x1360);
5544 IkReal x1362=(px*x1359);
5545 IkReal x1363=(cj6*pz);
5546 IkReal x1364=(px*sj6*x1356);
5547 IkReal x1365=(sj6*x1360);
5548 evalcond[0]=((((-1.0)*cj6*x1361))+(((-1.0)*cj6*x1358))+((pz*sj6)));
5549 evalcond[1]=((1.51009803921569)+(((-1.0)*py*x1357))+(((-1.0)*(3.92156862745098)*pp))+x1362+(((1.32323529411765)*cj9)));
5550 evalcond[2]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1363+x1365+x1364+(((-1.0)*(0.045)*sj9)));
5551 evalcond[3]=((((0.108264705882353)*cj9*sj6))+(((0.588235294117647)*pp*sj6))+(((-1.0)*x1361))+(((-1.0)*x1358))+(((0.316735294117647)*sj6)));
5552 evalcond[4]=((-0.2125)+(((1.1)*x1364))+(((1.1)*x1365))+(((-0.09)*py*x1356))+(((-1.0)*(1.0)*pp))+(((1.1)*x1363))+(((0.09)*x1362)));
5553 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
5554 {
5555 continue;
5556 }
5557 }
5558 
5559 rotationfunction0(solutions);
5560 }
5561 }
5562 
5563 }
5564 
5565 }
5566 
5567 } else
5568 {
5569 {
5570 IkReal j4array[1], cj4array[1], sj4array[1];
5571 bool j4valid[1]={false};
5572 _nj4 = 1;
5573 IkReal x1366=(cj6*pp);
5574 IkReal x1367=((0.2125)*cj6);
5575 IkReal x1368=((1.1)*pz);
5576 IkReal x1369=((0.09)*pz*sj6);
5577 CheckValue<IkReal> x1370 = IKatan2WithCheck(IkReal((((px*x1368))+(((-1.0)*px*x1367))+(((-1.0)*px*x1366))+(((-1.0)*py*x1369)))),((((-1.0)*px*x1369))+(((-1.0)*py*x1368))+((py*x1367))+((py*x1366))),IKFAST_ATAN2_MAGTHRESH);
5578 if(!x1370.valid){
5579 continue;
5580 }
5581 CheckValue<IkReal> x1371=IKPowWithIntegerCheck(IKsign(((((0.09)*cj6*(pz*pz)))+(((-0.09)*x1366)))),-1);
5582 if(!x1371.valid){
5583 continue;
5584 }
5585 j4array[0]=((-1.5707963267949)+(x1370.value)+(((1.5707963267949)*(x1371.value))));
5586 sj4array[0]=IKsin(j4array[0]);
5587 cj4array[0]=IKcos(j4array[0]);
5588 if( j4array[0] > IKPI )
5589 {
5590     j4array[0]-=IK2PI;
5591 }
5592 else if( j4array[0] < -IKPI )
5593 {    j4array[0]+=IK2PI;
5594 }
5595 j4valid[0] = true;
5596 for(int ij4 = 0; ij4 < 1; ++ij4)
5597 {
5598 if( !j4valid[ij4] )
5599 {
5600     continue;
5601 }
5602 _ij4[0] = ij4; _ij4[1] = -1;
5603 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5604 {
5605 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5606 {
5607     j4valid[iij4]=false; _ij4[1] = iij4; break;
5608 }
5609 }
5610 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5611 {
5612 IkReal evalcond[5];
5613 IkReal x1372=IKcos(j4);
5614 IkReal x1373=((1.0)*x1372);
5615 IkReal x1374=(px*x1373);
5616 IkReal x1375=IKsin(j4);
5617 IkReal x1376=(py*x1375);
5618 IkReal x1377=((1.0)*x1376);
5619 IkReal x1378=(px*x1375);
5620 IkReal x1379=(cj6*pz);
5621 IkReal x1380=(px*sj6*x1372);
5622 IkReal x1381=(sj6*x1376);
5623 evalcond[0]=((((-1.0)*cj6*x1374))+((pz*sj6))+(((-1.0)*cj6*x1377)));
5624 evalcond[1]=((1.51009803921569)+x1378+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*py*x1373))+(((1.32323529411765)*cj9)));
5625 evalcond[2]=((-0.55)+x1379+x1380+x1381+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
5626 evalcond[3]=((((0.108264705882353)*cj9*sj6))+(((-1.0)*x1374))+(((0.588235294117647)*pp*sj6))+(((0.316735294117647)*sj6))+(((-1.0)*x1377)));
5627 evalcond[4]=((-0.2125)+(((-0.09)*py*x1372))+(((0.09)*x1378))+(((1.1)*x1379))+(((1.1)*x1381))+(((1.1)*x1380))+(((-1.0)*(1.0)*pp)));
5628 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
5629 {
5630 continue;
5631 }
5632 }
5633 
5634 rotationfunction0(solutions);
5635 }
5636 }
5637 
5638 }
5639 
5640 }
5641 
5642 } else
5643 {
5644 {
5645 IkReal j4array[1], cj4array[1], sj4array[1];
5646 bool j4valid[1]={false};
5647 _nj4 = 1;
5648 IkReal x1382=((1.51009803921569)*cj6);
5649 IkReal x1383=(pz*sj6);
5650 IkReal x1384=((1.32323529411765)*cj6*cj9);
5651 IkReal x1385=((3.92156862745098)*cj6*pp);
5652 CheckValue<IkReal> x1386=IKPowWithIntegerCheck(IKsign(((((-1.0)*(1.0)*cj6*(pz*pz)))+((cj6*pp)))),-1);
5653 if(!x1386.valid){
5654 continue;
5655 }
5656 CheckValue<IkReal> x1387 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1384))+(((-1.0)*px*x1382))+((py*x1383))+((px*x1385)))),((((-1.0)*py*x1385))+((py*x1384))+((px*x1383))+((py*x1382))),IKFAST_ATAN2_MAGTHRESH);
5657 if(!x1387.valid){
5658 continue;
5659 }
5660 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1386.value)))+(x1387.value));
5661 sj4array[0]=IKsin(j4array[0]);
5662 cj4array[0]=IKcos(j4array[0]);
5663 if( j4array[0] > IKPI )
5664 {
5665     j4array[0]-=IK2PI;
5666 }
5667 else if( j4array[0] < -IKPI )
5668 {    j4array[0]+=IK2PI;
5669 }
5670 j4valid[0] = true;
5671 for(int ij4 = 0; ij4 < 1; ++ij4)
5672 {
5673 if( !j4valid[ij4] )
5674 {
5675     continue;
5676 }
5677 _ij4[0] = ij4; _ij4[1] = -1;
5678 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5679 {
5680 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5681 {
5682     j4valid[iij4]=false; _ij4[1] = iij4; break;
5683 }
5684 }
5685 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5686 {
5687 IkReal evalcond[5];
5688 IkReal x1388=IKcos(j4);
5689 IkReal x1389=((1.0)*x1388);
5690 IkReal x1390=(px*x1389);
5691 IkReal x1391=IKsin(j4);
5692 IkReal x1392=(py*x1391);
5693 IkReal x1393=((1.0)*x1392);
5694 IkReal x1394=(px*x1391);
5695 IkReal x1395=(cj6*pz);
5696 IkReal x1396=(px*sj6*x1388);
5697 IkReal x1397=(sj6*x1392);
5698 evalcond[0]=((((-1.0)*cj6*x1393))+((pz*sj6))+(((-1.0)*cj6*x1390)));
5699 evalcond[1]=((1.51009803921569)+(((-1.0)*py*x1389))+(((-1.0)*(3.92156862745098)*pp))+x1394+(((1.32323529411765)*cj9)));
5700 evalcond[2]=((-0.55)+(((-1.0)*(0.3)*cj9))+x1397+x1396+x1395+(((-1.0)*(0.045)*sj9)));
5701 evalcond[3]=((((-1.0)*x1393))+(((0.108264705882353)*cj9*sj6))+(((0.588235294117647)*pp*sj6))+(((0.316735294117647)*sj6))+(((-1.0)*x1390)));
5702 evalcond[4]=((-0.2125)+(((1.1)*x1395))+(((0.09)*x1394))+(((-0.09)*py*x1388))+(((1.1)*x1396))+(((1.1)*x1397))+(((-1.0)*(1.0)*pp)));
5703 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
5704 {
5705 continue;
5706 }
5707 }
5708 
5709 rotationfunction0(solutions);
5710 }
5711 }
5712 
5713 }
5714 
5715 }
5716 
5717 }
5718 } while(0);
5719 if( bgotonextstatement )
5720 {
5721 bool bgotonextstatement = true;
5722 do
5723 {
5724 IkReal x1398=((-0.55)+pz+(((-1.0)*(0.3)*cj9))+(((-1.0)*(0.045)*sj9)));
5725 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j6))), 6.28318530717959)));
5726 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
5727 evalcond[2]=x1398;
5728 evalcond[3]=x1398;
5729 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
5730 {
5731 bgotonextstatement=false;
5732 {
5733 IkReal j4eval[3];
5734 sj6=0;
5735 cj6=1.0;
5736 j6=0;
5737 IkReal x1399=(pp+(((-1.0)*(1.0)*(pz*pz))));
5738 IkReal x1400=((1.51009803921569)*cj8);
5739 IkReal x1401=((1.51009803921569)*sj8);
5740 IkReal x1402=((1.32323529411765)*cj8*cj9);
5741 IkReal x1403=((3.92156862745098)*cj8*pp);
5742 IkReal x1404=((1.32323529411765)*cj9*sj8);
5743 IkReal x1405=((3.92156862745098)*pp*sj8);
5744 j4eval[0]=x1399;
5745 j4eval[1]=((IKabs((((py*x1403))+((px*x1401))+(((-1.0)*py*x1402))+((px*x1404))+(((-1.0)*px*x1405))+(((-1.0)*py*x1400)))))+(IKabs(((((-1.0)*px*x1400))+(((-1.0)*py*x1404))+(((-1.0)*px*x1402))+(((-1.0)*py*x1401))+((py*x1405))+((px*x1403))))));
5746 j4eval[2]=IKsign(x1399);
5747 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5748 {
5749 {
5750 IkReal j4eval[2];
5751 sj6=0;
5752 cj6=1.0;
5753 j6=0;
5754 IkReal x1406=(((cj8*(pz*pz)))+(((-1.0)*(1.0)*cj8*pp)));
5755 j4eval[0]=x1406;
5756 j4eval[1]=IKsign(x1406);
5757 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
5758 {
5759 {
5760 IkReal j4eval[2];
5761 sj6=0;
5762 cj6=1.0;
5763 j6=0;
5764 IkReal x1407=((((-1.0)*(1.0)*sj8*(pz*pz)))+((pp*sj8)));
5765 j4eval[0]=x1407;
5766 j4eval[1]=IKsign(x1407);
5767 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
5768 {
5769 {
5770 IkReal evalcond[6];
5771 bool bgotonextstatement = true;
5772 do
5773 {
5774 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j8))), 6.28318530717959)));
5775 if( IKabs(evalcond[0]) < 0.0000010000000000  )
5776 {
5777 bgotonextstatement=false;
5778 {
5779 IkReal j4eval[3];
5780 sj6=0;
5781 cj6=1.0;
5782 j6=0;
5783 sj8=0;
5784 cj8=1.0;
5785 j8=0;
5786 IkReal x1408=(pp+(((-1.0)*(1.0)*(pz*pz))));
5787 IkReal x1409=((13497.0)*cj9);
5788 IkReal x1410=((40000.0)*pp);
5789 j4eval[0]=x1408;
5790 j4eval[1]=((IKabs((((py*x1410))+(((-1.0)*(15403.0)*py))+(((-1.0)*py*x1409)))))+(IKabs(((((-1.0)*px*x1409))+(((-1.0)*(15403.0)*px))+((px*x1410))))));
5791 j4eval[2]=IKsign(x1408);
5792 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5793 {
5794 {
5795 IkReal j4eval[3];
5796 sj6=0;
5797 cj6=1.0;
5798 j6=0;
5799 sj8=0;
5800 cj8=1.0;
5801 j8=0;
5802 IkReal x1411=pz*pz;
5803 IkReal x1412=((80.0)*pp);
5804 IkReal x1413=((88.0)*pz);
5805 j4eval[0]=((((-1.0)*x1411))+pp);
5806 j4eval[1]=((IKabs(((((-1.0)*px*x1413))+((px*x1412))+(((17.0)*px)))))+(IKabs((((py*x1412))+(((17.0)*py))+(((-1.0)*py*x1413))))));
5807 j4eval[2]=IKsign(((((9.0)*pp))+(((-9.0)*x1411))));
5808 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
5809 {
5810 {
5811 IkReal evalcond[5];
5812 bool bgotonextstatement = true;
5813 do
5814 {
5815 IkReal x1414=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
5816 evalcond[0]=((IKabs(py))+(IKabs(px)));
5817 evalcond[1]=0;
5818 evalcond[2]=x1414;
5819 evalcond[3]=x1414;
5820 evalcond[4]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
5821 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
5822 {
5823 bgotonextstatement=false;
5824 {
5825 IkReal j4array[4], cj4array[4], sj4array[4];
5826 bool j4valid[4]={false};
5827 _nj4 = 4;
5828 j4array[0]=0;
5829 sj4array[0]=IKsin(j4array[0]);
5830 cj4array[0]=IKcos(j4array[0]);
5831 j4array[1]=1.5707963267949;
5832 sj4array[1]=IKsin(j4array[1]);
5833 cj4array[1]=IKcos(j4array[1]);
5834 j4array[2]=3.14159265358979;
5835 sj4array[2]=IKsin(j4array[2]);
5836 cj4array[2]=IKcos(j4array[2]);
5837 j4array[3]=-1.5707963267949;
5838 sj4array[3]=IKsin(j4array[3]);
5839 cj4array[3]=IKcos(j4array[3]);
5840 if( j4array[0] > IKPI )
5841 {
5842     j4array[0]-=IK2PI;
5843 }
5844 else if( j4array[0] < -IKPI )
5845 {    j4array[0]+=IK2PI;
5846 }
5847 j4valid[0] = true;
5848 if( j4array[1] > IKPI )
5849 {
5850     j4array[1]-=IK2PI;
5851 }
5852 else if( j4array[1] < -IKPI )
5853 {    j4array[1]+=IK2PI;
5854 }
5855 j4valid[1] = true;
5856 if( j4array[2] > IKPI )
5857 {
5858     j4array[2]-=IK2PI;
5859 }
5860 else if( j4array[2] < -IKPI )
5861 {    j4array[2]+=IK2PI;
5862 }
5863 j4valid[2] = true;
5864 if( j4array[3] > IKPI )
5865 {
5866     j4array[3]-=IK2PI;
5867 }
5868 else if( j4array[3] < -IKPI )
5869 {    j4array[3]+=IK2PI;
5870 }
5871 j4valid[3] = true;
5872 for(int ij4 = 0; ij4 < 4; ++ij4)
5873 {
5874 if( !j4valid[ij4] )
5875 {
5876     continue;
5877 }
5878 _ij4[0] = ij4; _ij4[1] = -1;
5879 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
5880 {
5881 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5882 {
5883     j4valid[iij4]=false; _ij4[1] = iij4; break;
5884 }
5885 }
5886 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5887 
5888 rotationfunction0(solutions);
5889 }
5890 }
5891 
5892 }
5893 } while(0);
5894 if( bgotonextstatement )
5895 {
5896 bool bgotonextstatement = true;
5897 do
5898 {
5899 if( 1 )
5900 {
5901 bgotonextstatement=false;
5902 continue; // branch miss [j4]
5903 
5904 }
5905 } while(0);
5906 if( bgotonextstatement )
5907 {
5908 }
5909 }
5910 }
5911 
5912 } else
5913 {
5914 {
5915 IkReal j4array[1], cj4array[1], sj4array[1];
5916 bool j4valid[1]={false};
5917 _nj4 = 1;
5918 IkReal x1415=((100.0)*pp);
5919 IkReal x1416=((110.0)*pz);
5920 CheckValue<IkReal> x1417=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
5921 if(!x1417.valid){
5922 continue;
5923 }
5924 CheckValue<IkReal> x1418 = IKatan2WithCheck(IkReal((((py*x1415))+(((21.25)*py))+(((-1.0)*py*x1416)))),(((px*x1415))+(((-1.0)*px*x1416))+(((21.25)*px))),IKFAST_ATAN2_MAGTHRESH);
5925 if(!x1418.valid){
5926 continue;
5927 }
5928 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1417.value)))+(x1418.value));
5929 sj4array[0]=IKsin(j4array[0]);
5930 cj4array[0]=IKcos(j4array[0]);
5931 if( j4array[0] > IKPI )
5932 {
5933     j4array[0]-=IK2PI;
5934 }
5935 else if( j4array[0] < -IKPI )
5936 {    j4array[0]+=IK2PI;
5937 }
5938 j4valid[0] = true;
5939 for(int ij4 = 0; ij4 < 1; ++ij4)
5940 {
5941 if( !j4valid[ij4] )
5942 {
5943     continue;
5944 }
5945 _ij4[0] = ij4; _ij4[1] = -1;
5946 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
5947 {
5948 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
5949 {
5950     j4valid[iij4]=false; _ij4[1] = iij4; break;
5951 }
5952 }
5953 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
5954 {
5955 IkReal evalcond[3];
5956 IkReal x1419=IKsin(j4);
5957 IkReal x1420=IKcos(j4);
5958 IkReal x1421=(px*x1420);
5959 IkReal x1422=(py*x1419);
5960 evalcond[0]=((((-1.0)*py*x1420))+((px*x1419)));
5961 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((-1.0)*x1421))+(((-1.0)*x1422))+(((3.92156862745098)*pp)));
5962 evalcond[2]=((-0.2125)+(((1.1)*pz))+(((0.09)*x1421))+(((0.09)*x1422))+(((-1.0)*(1.0)*pp)));
5963 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
5964 {
5965 continue;
5966 }
5967 }
5968 
5969 rotationfunction0(solutions);
5970 }
5971 }
5972 
5973 }
5974 
5975 }
5976 
5977 } else
5978 {
5979 {
5980 IkReal j4array[1], cj4array[1], sj4array[1];
5981 bool j4valid[1]={false};
5982 _nj4 = 1;
5983 IkReal x1423=((1.32323529411765)*cj9);
5984 IkReal x1424=((3.92156862745098)*pp);
5985 CheckValue<IkReal> x1425 = IKatan2WithCheck(IkReal((((py*x1424))+(((-1.0)*(1.51009803921569)*py))+(((-1.0)*py*x1423)))),((((-1.0)*px*x1423))+(((-1.0)*(1.51009803921569)*px))+((px*x1424))),IKFAST_ATAN2_MAGTHRESH);
5986 if(!x1425.valid){
5987 continue;
5988 }
5989 CheckValue<IkReal> x1426=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
5990 if(!x1426.valid){
5991 continue;
5992 }
5993 j4array[0]=((-1.5707963267949)+(x1425.value)+(((1.5707963267949)*(x1426.value))));
5994 sj4array[0]=IKsin(j4array[0]);
5995 cj4array[0]=IKcos(j4array[0]);
5996 if( j4array[0] > IKPI )
5997 {
5998     j4array[0]-=IK2PI;
5999 }
6000 else if( j4array[0] < -IKPI )
6001 {    j4array[0]+=IK2PI;
6002 }
6003 j4valid[0] = true;
6004 for(int ij4 = 0; ij4 < 1; ++ij4)
6005 {
6006 if( !j4valid[ij4] )
6007 {
6008     continue;
6009 }
6010 _ij4[0] = ij4; _ij4[1] = -1;
6011 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6012 {
6013 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6014 {
6015     j4valid[iij4]=false; _ij4[1] = iij4; break;
6016 }
6017 }
6018 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6019 {
6020 IkReal evalcond[3];
6021 IkReal x1427=IKsin(j4);
6022 IkReal x1428=IKcos(j4);
6023 IkReal x1429=(px*x1428);
6024 IkReal x1430=(py*x1427);
6025 evalcond[0]=((((-1.0)*py*x1428))+((px*x1427)));
6026 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+(((-1.0)*x1430))+(((-1.0)*x1429)));
6027 evalcond[2]=((-0.2125)+(((1.1)*pz))+(((0.09)*x1430))+(((-1.0)*(1.0)*pp))+(((0.09)*x1429)));
6028 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6029 {
6030 continue;
6031 }
6032 }
6033 
6034 rotationfunction0(solutions);
6035 }
6036 }
6037 
6038 }
6039 
6040 }
6041 
6042 }
6043 } while(0);
6044 if( bgotonextstatement )
6045 {
6046 bool bgotonextstatement = true;
6047 do
6048 {
6049 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j8)))), 6.28318530717959)));
6050 if( IKabs(evalcond[0]) < 0.0000010000000000  )
6051 {
6052 bgotonextstatement=false;
6053 {
6054 IkReal j4eval[3];
6055 sj6=0;
6056 cj6=1.0;
6057 j6=0;
6058 sj8=0;
6059 cj8=-1.0;
6060 j8=3.14159265358979;
6061 IkReal x1431=(pp+(((-1.0)*(1.0)*(pz*pz))));
6062 IkReal x1432=((13497.0)*cj9);
6063 IkReal x1433=((40000.0)*pp);
6064 j4eval[0]=x1431;
6065 j4eval[1]=((IKabs(((((15403.0)*px))+((px*x1432))+(((-1.0)*px*x1433)))))+(IKabs(((((15403.0)*py))+((py*x1432))+(((-1.0)*py*x1433))))));
6066 j4eval[2]=IKsign(x1431);
6067 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6068 {
6069 {
6070 IkReal j4eval[3];
6071 sj6=0;
6072 cj6=1.0;
6073 j6=0;
6074 sj8=0;
6075 cj8=-1.0;
6076 j8=3.14159265358979;
6077 IkReal x1434=pz*pz;
6078 IkReal x1435=((80.0)*pp);
6079 IkReal x1436=((88.0)*pz);
6080 j4eval[0]=(pp+(((-1.0)*x1434)));
6081 j4eval[1]=IKsign(((((9.0)*pp))+(((-9.0)*x1434))));
6082 j4eval[2]=((IKabs(((((-1.0)*(17.0)*px))+((px*x1436))+(((-1.0)*px*x1435)))))+(IKabs((((py*x1436))+(((-1.0)*py*x1435))+(((-1.0)*(17.0)*py))))));
6083 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6084 {
6085 {
6086 IkReal evalcond[5];
6087 bool bgotonextstatement = true;
6088 do
6089 {
6090 IkReal x1437=((1.32323529411765)*cj9);
6091 IkReal x1438=((3.92156862745098)*pp);
6092 evalcond[0]=((IKabs(py))+(IKabs(px)));
6093 evalcond[1]=0;
6094 evalcond[2]=((-1.51009803921569)+x1438+(((-1.0)*x1437)));
6095 evalcond[3]=((1.51009803921569)+(((-1.0)*x1438))+x1437);
6096 evalcond[4]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
6097 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
6098 {
6099 bgotonextstatement=false;
6100 {
6101 IkReal j4array[4], cj4array[4], sj4array[4];
6102 bool j4valid[4]={false};
6103 _nj4 = 4;
6104 j4array[0]=0;
6105 sj4array[0]=IKsin(j4array[0]);
6106 cj4array[0]=IKcos(j4array[0]);
6107 j4array[1]=1.5707963267949;
6108 sj4array[1]=IKsin(j4array[1]);
6109 cj4array[1]=IKcos(j4array[1]);
6110 j4array[2]=3.14159265358979;
6111 sj4array[2]=IKsin(j4array[2]);
6112 cj4array[2]=IKcos(j4array[2]);
6113 j4array[3]=-1.5707963267949;
6114 sj4array[3]=IKsin(j4array[3]);
6115 cj4array[3]=IKcos(j4array[3]);
6116 if( j4array[0] > IKPI )
6117 {
6118     j4array[0]-=IK2PI;
6119 }
6120 else if( j4array[0] < -IKPI )
6121 {    j4array[0]+=IK2PI;
6122 }
6123 j4valid[0] = true;
6124 if( j4array[1] > IKPI )
6125 {
6126     j4array[1]-=IK2PI;
6127 }
6128 else if( j4array[1] < -IKPI )
6129 {    j4array[1]+=IK2PI;
6130 }
6131 j4valid[1] = true;
6132 if( j4array[2] > IKPI )
6133 {
6134     j4array[2]-=IK2PI;
6135 }
6136 else if( j4array[2] < -IKPI )
6137 {    j4array[2]+=IK2PI;
6138 }
6139 j4valid[2] = true;
6140 if( j4array[3] > IKPI )
6141 {
6142     j4array[3]-=IK2PI;
6143 }
6144 else if( j4array[3] < -IKPI )
6145 {    j4array[3]+=IK2PI;
6146 }
6147 j4valid[3] = true;
6148 for(int ij4 = 0; ij4 < 4; ++ij4)
6149 {
6150 if( !j4valid[ij4] )
6151 {
6152     continue;
6153 }
6154 _ij4[0] = ij4; _ij4[1] = -1;
6155 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
6156 {
6157 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6158 {
6159     j4valid[iij4]=false; _ij4[1] = iij4; break;
6160 }
6161 }
6162 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6163 
6164 rotationfunction0(solutions);
6165 }
6166 }
6167 
6168 }
6169 } while(0);
6170 if( bgotonextstatement )
6171 {
6172 bool bgotonextstatement = true;
6173 do
6174 {
6175 if( 1 )
6176 {
6177 bgotonextstatement=false;
6178 continue; // branch miss [j4]
6179 
6180 }
6181 } while(0);
6182 if( bgotonextstatement )
6183 {
6184 }
6185 }
6186 }
6187 
6188 } else
6189 {
6190 {
6191 IkReal j4array[1], cj4array[1], sj4array[1];
6192 bool j4valid[1]={false};
6193 _nj4 = 1;
6194 IkReal x1439=((100.0)*pp);
6195 IkReal x1440=((110.0)*pz);
6196 CheckValue<IkReal> x1441=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
6197 if(!x1441.valid){
6198 continue;
6199 }
6200 CheckValue<IkReal> x1442 = IKatan2WithCheck(IkReal((((py*x1440))+(((-1.0)*(21.25)*py))+(((-1.0)*py*x1439)))),(((px*x1440))+(((-1.0)*(21.25)*px))+(((-1.0)*px*x1439))),IKFAST_ATAN2_MAGTHRESH);
6201 if(!x1442.valid){
6202 continue;
6203 }
6204 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1441.value)))+(x1442.value));
6205 sj4array[0]=IKsin(j4array[0]);
6206 cj4array[0]=IKcos(j4array[0]);
6207 if( j4array[0] > IKPI )
6208 {
6209     j4array[0]-=IK2PI;
6210 }
6211 else if( j4array[0] < -IKPI )
6212 {    j4array[0]+=IK2PI;
6213 }
6214 j4valid[0] = true;
6215 for(int ij4 = 0; ij4 < 1; ++ij4)
6216 {
6217 if( !j4valid[ij4] )
6218 {
6219     continue;
6220 }
6221 _ij4[0] = ij4; _ij4[1] = -1;
6222 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6223 {
6224 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6225 {
6226     j4valid[iij4]=false; _ij4[1] = iij4; break;
6227 }
6228 }
6229 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6230 {
6231 IkReal evalcond[3];
6232 IkReal x1443=IKsin(j4);
6233 IkReal x1444=IKcos(j4);
6234 IkReal x1445=(px*x1444);
6235 IkReal x1446=(py*x1443);
6236 evalcond[0]=((((-1.0)*py*x1444))+((px*x1443)));
6237 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1446+x1445);
6238 evalcond[2]=((-0.2125)+(((1.1)*pz))+(((-0.09)*x1446))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1445)));
6239 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6240 {
6241 continue;
6242 }
6243 }
6244 
6245 rotationfunction0(solutions);
6246 }
6247 }
6248 
6249 }
6250 
6251 }
6252 
6253 } else
6254 {
6255 {
6256 IkReal j4array[1], cj4array[1], sj4array[1];
6257 bool j4valid[1]={false};
6258 _nj4 = 1;
6259 IkReal x1447=((1.32323529411765)*cj9);
6260 IkReal x1448=((3.92156862745098)*pp);
6261 CheckValue<IkReal> x1449=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
6262 if(!x1449.valid){
6263 continue;
6264 }
6265 CheckValue<IkReal> x1450 = IKatan2WithCheck(IkReal(((((-1.0)*py*x1448))+(((1.51009803921569)*py))+((py*x1447)))),((((-1.0)*px*x1448))+(((1.51009803921569)*px))+((px*x1447))),IKFAST_ATAN2_MAGTHRESH);
6266 if(!x1450.valid){
6267 continue;
6268 }
6269 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1449.value)))+(x1450.value));
6270 sj4array[0]=IKsin(j4array[0]);
6271 cj4array[0]=IKcos(j4array[0]);
6272 if( j4array[0] > IKPI )
6273 {
6274     j4array[0]-=IK2PI;
6275 }
6276 else if( j4array[0] < -IKPI )
6277 {    j4array[0]+=IK2PI;
6278 }
6279 j4valid[0] = true;
6280 for(int ij4 = 0; ij4 < 1; ++ij4)
6281 {
6282 if( !j4valid[ij4] )
6283 {
6284     continue;
6285 }
6286 _ij4[0] = ij4; _ij4[1] = -1;
6287 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6288 {
6289 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6290 {
6291     j4valid[iij4]=false; _ij4[1] = iij4; break;
6292 }
6293 }
6294 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6295 {
6296 IkReal evalcond[3];
6297 IkReal x1451=IKsin(j4);
6298 IkReal x1452=IKcos(j4);
6299 IkReal x1453=(px*x1452);
6300 IkReal x1454=(py*x1451);
6301 evalcond[0]=(((px*x1451))+(((-1.0)*py*x1452)));
6302 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1453+x1454);
6303 evalcond[2]=((-0.2125)+(((-0.09)*x1453))+(((1.1)*pz))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1454)));
6304 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6305 {
6306 continue;
6307 }
6308 }
6309 
6310 rotationfunction0(solutions);
6311 }
6312 }
6313 
6314 }
6315 
6316 }
6317 
6318 }
6319 } while(0);
6320 if( bgotonextstatement )
6321 {
6322 bool bgotonextstatement = true;
6323 do
6324 {
6325 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j8)))), 6.28318530717959)));
6326 if( IKabs(evalcond[0]) < 0.0000010000000000  )
6327 {
6328 bgotonextstatement=false;
6329 {
6330 IkReal j4eval[3];
6331 sj6=0;
6332 cj6=1.0;
6333 j6=0;
6334 sj8=1.0;
6335 cj8=0;
6336 j8=1.5707963267949;
6337 IkReal x1455=(pp+(((-1.0)*(1.0)*(pz*pz))));
6338 IkReal x1456=((13497.0)*cj9);
6339 IkReal x1457=((40000.0)*pp);
6340 j4eval[0]=x1455;
6341 j4eval[1]=((IKabs(((((15403.0)*px))+(((-1.0)*px*x1457))+((px*x1456)))))+(IKabs(((((-1.0)*py*x1456))+((py*x1457))+(((-1.0)*(15403.0)*py))))));
6342 j4eval[2]=IKsign(x1455);
6343 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6344 {
6345 {
6346 IkReal j4eval[3];
6347 sj6=0;
6348 cj6=1.0;
6349 j6=0;
6350 sj8=1.0;
6351 cj8=0;
6352 j8=1.5707963267949;
6353 IkReal x1458=pz*pz;
6354 IkReal x1459=((80.0)*pp);
6355 IkReal x1460=((88.0)*pz);
6356 j4eval[0]=(pp+(((-1.0)*x1458)));
6357 j4eval[1]=IKsign(((((-9.0)*x1458))+(((9.0)*pp))));
6358 j4eval[2]=((IKabs(((((-1.0)*py*x1460))+((py*x1459))+(((17.0)*py)))))+(IKabs(((((-1.0)*(17.0)*px))+(((-1.0)*px*x1459))+((px*x1460))))));
6359 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6360 {
6361 {
6362 IkReal evalcond[5];
6363 bool bgotonextstatement = true;
6364 do
6365 {
6366 IkReal x1461=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
6367 evalcond[0]=((IKabs(py))+(IKabs(px)));
6368 evalcond[1]=x1461;
6369 evalcond[2]=0;
6370 evalcond[3]=x1461;
6371 evalcond[4]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
6372 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
6373 {
6374 bgotonextstatement=false;
6375 {
6376 IkReal j4array[4], cj4array[4], sj4array[4];
6377 bool j4valid[4]={false};
6378 _nj4 = 4;
6379 j4array[0]=0;
6380 sj4array[0]=IKsin(j4array[0]);
6381 cj4array[0]=IKcos(j4array[0]);
6382 j4array[1]=1.5707963267949;
6383 sj4array[1]=IKsin(j4array[1]);
6384 cj4array[1]=IKcos(j4array[1]);
6385 j4array[2]=3.14159265358979;
6386 sj4array[2]=IKsin(j4array[2]);
6387 cj4array[2]=IKcos(j4array[2]);
6388 j4array[3]=-1.5707963267949;
6389 sj4array[3]=IKsin(j4array[3]);
6390 cj4array[3]=IKcos(j4array[3]);
6391 if( j4array[0] > IKPI )
6392 {
6393     j4array[0]-=IK2PI;
6394 }
6395 else if( j4array[0] < -IKPI )
6396 {    j4array[0]+=IK2PI;
6397 }
6398 j4valid[0] = true;
6399 if( j4array[1] > IKPI )
6400 {
6401     j4array[1]-=IK2PI;
6402 }
6403 else if( j4array[1] < -IKPI )
6404 {    j4array[1]+=IK2PI;
6405 }
6406 j4valid[1] = true;
6407 if( j4array[2] > IKPI )
6408 {
6409     j4array[2]-=IK2PI;
6410 }
6411 else if( j4array[2] < -IKPI )
6412 {    j4array[2]+=IK2PI;
6413 }
6414 j4valid[2] = true;
6415 if( j4array[3] > IKPI )
6416 {
6417     j4array[3]-=IK2PI;
6418 }
6419 else if( j4array[3] < -IKPI )
6420 {    j4array[3]+=IK2PI;
6421 }
6422 j4valid[3] = true;
6423 for(int ij4 = 0; ij4 < 4; ++ij4)
6424 {
6425 if( !j4valid[ij4] )
6426 {
6427     continue;
6428 }
6429 _ij4[0] = ij4; _ij4[1] = -1;
6430 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
6431 {
6432 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6433 {
6434     j4valid[iij4]=false; _ij4[1] = iij4; break;
6435 }
6436 }
6437 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6438 
6439 rotationfunction0(solutions);
6440 }
6441 }
6442 
6443 }
6444 } while(0);
6445 if( bgotonextstatement )
6446 {
6447 bool bgotonextstatement = true;
6448 do
6449 {
6450 if( 1 )
6451 {
6452 bgotonextstatement=false;
6453 continue; // branch miss [j4]
6454 
6455 }
6456 } while(0);
6457 if( bgotonextstatement )
6458 {
6459 }
6460 }
6461 }
6462 
6463 } else
6464 {
6465 {
6466 IkReal j4array[1], cj4array[1], sj4array[1];
6467 bool j4valid[1]={false};
6468 _nj4 = 1;
6469 IkReal x1462=((100.0)*pp);
6470 IkReal x1463=((110.0)*pz);
6471 CheckValue<IkReal> x1464=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
6472 if(!x1464.valid){
6473 continue;
6474 }
6475 CheckValue<IkReal> x1465 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1462))+(((-1.0)*(21.25)*px))+((px*x1463)))),(((py*x1462))+(((21.25)*py))+(((-1.0)*py*x1463))),IKFAST_ATAN2_MAGTHRESH);
6476 if(!x1465.valid){
6477 continue;
6478 }
6479 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1464.value)))+(x1465.value));
6480 sj4array[0]=IKsin(j4array[0]);
6481 cj4array[0]=IKcos(j4array[0]);
6482 if( j4array[0] > IKPI )
6483 {
6484     j4array[0]-=IK2PI;
6485 }
6486 else if( j4array[0] < -IKPI )
6487 {    j4array[0]+=IK2PI;
6488 }
6489 j4valid[0] = true;
6490 for(int ij4 = 0; ij4 < 1; ++ij4)
6491 {
6492 if( !j4valid[ij4] )
6493 {
6494     continue;
6495 }
6496 _ij4[0] = ij4; _ij4[1] = -1;
6497 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6498 {
6499 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6500 {
6501     j4valid[iij4]=false; _ij4[1] = iij4; break;
6502 }
6503 }
6504 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6505 {
6506 IkReal evalcond[3];
6507 IkReal x1466=IKcos(j4);
6508 IkReal x1467=IKsin(j4);
6509 IkReal x1468=(px*x1467);
6510 IkReal x1469=(py*x1466);
6511 evalcond[0]=(((py*x1467))+((px*x1466)));
6512 evalcond[1]=((-1.51009803921569)+(((-1.0)*x1469))+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1468);
6513 evalcond[2]=((-0.2125)+(((1.1)*pz))+(((0.09)*x1469))+(((-0.09)*x1468))+(((-1.0)*(1.0)*pp)));
6514 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6515 {
6516 continue;
6517 }
6518 }
6519 
6520 rotationfunction0(solutions);
6521 }
6522 }
6523 
6524 }
6525 
6526 }
6527 
6528 } else
6529 {
6530 {
6531 IkReal j4array[1], cj4array[1], sj4array[1];
6532 bool j4valid[1]={false};
6533 _nj4 = 1;
6534 IkReal x1470=((1.32323529411765)*cj9);
6535 IkReal x1471=((3.92156862745098)*pp);
6536 CheckValue<IkReal> x1472=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
6537 if(!x1472.valid){
6538 continue;
6539 }
6540 CheckValue<IkReal> x1473 = IKatan2WithCheck(IkReal((((px*x1470))+(((-1.0)*px*x1471))+(((1.51009803921569)*px)))),(((py*x1471))+(((-1.0)*(1.51009803921569)*py))+(((-1.0)*py*x1470))),IKFAST_ATAN2_MAGTHRESH);
6541 if(!x1473.valid){
6542 continue;
6543 }
6544 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1472.value)))+(x1473.value));
6545 sj4array[0]=IKsin(j4array[0]);
6546 cj4array[0]=IKcos(j4array[0]);
6547 if( j4array[0] > IKPI )
6548 {
6549     j4array[0]-=IK2PI;
6550 }
6551 else if( j4array[0] < -IKPI )
6552 {    j4array[0]+=IK2PI;
6553 }
6554 j4valid[0] = true;
6555 for(int ij4 = 0; ij4 < 1; ++ij4)
6556 {
6557 if( !j4valid[ij4] )
6558 {
6559     continue;
6560 }
6561 _ij4[0] = ij4; _ij4[1] = -1;
6562 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6563 {
6564 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6565 {
6566     j4valid[iij4]=false; _ij4[1] = iij4; break;
6567 }
6568 }
6569 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6570 {
6571 IkReal evalcond[3];
6572 IkReal x1474=IKcos(j4);
6573 IkReal x1475=IKsin(j4);
6574 IkReal x1476=(px*x1475);
6575 IkReal x1477=(py*x1474);
6576 evalcond[0]=(((px*x1474))+((py*x1475)));
6577 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+(((-1.0)*x1477))+x1476);
6578 evalcond[2]=((-0.2125)+(((-0.09)*x1476))+(((0.09)*x1477))+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
6579 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6580 {
6581 continue;
6582 }
6583 }
6584 
6585 rotationfunction0(solutions);
6586 }
6587 }
6588 
6589 }
6590 
6591 }
6592 
6593 }
6594 } while(0);
6595 if( bgotonextstatement )
6596 {
6597 bool bgotonextstatement = true;
6598 do
6599 {
6600 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j8)))), 6.28318530717959)));
6601 if( IKabs(evalcond[0]) < 0.0000010000000000  )
6602 {
6603 bgotonextstatement=false;
6604 {
6605 IkReal j4eval[3];
6606 sj6=0;
6607 cj6=1.0;
6608 j6=0;
6609 sj8=-1.0;
6610 cj8=0;
6611 j8=-1.5707963267949;
6612 IkReal x1478=(pp+(((-1.0)*(1.0)*(pz*pz))));
6613 IkReal x1479=((13497.0)*cj9);
6614 IkReal x1480=((40000.0)*pp);
6615 j4eval[0]=x1478;
6616 j4eval[1]=((IKabs(((((-1.0)*py*x1480))+(((15403.0)*py))+((py*x1479)))))+(IKabs(((((-1.0)*px*x1479))+((px*x1480))+(((-1.0)*(15403.0)*px))))));
6617 j4eval[2]=IKsign(x1478);
6618 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6619 {
6620 {
6621 IkReal j4eval[3];
6622 sj6=0;
6623 cj6=1.0;
6624 j6=0;
6625 sj8=-1.0;
6626 cj8=0;
6627 j8=-1.5707963267949;
6628 IkReal x1481=pz*pz;
6629 IkReal x1482=((80.0)*pp);
6630 IkReal x1483=((88.0)*pz);
6631 j4eval[0]=((((-1.0)*x1481))+pp);
6632 j4eval[1]=((IKabs(((((-1.0)*py*x1482))+((py*x1483))+(((-1.0)*(17.0)*py)))))+(IKabs(((((17.0)*px))+((px*x1482))+(((-1.0)*px*x1483))))));
6633 j4eval[2]=IKsign(((((-9.0)*x1481))+(((9.0)*pp))));
6634 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
6635 {
6636 {
6637 IkReal evalcond[5];
6638 bool bgotonextstatement = true;
6639 do
6640 {
6641 IkReal x1484=((1.32323529411765)*cj9);
6642 IkReal x1485=((3.92156862745098)*pp);
6643 evalcond[0]=((IKabs(py))+(IKabs(px)));
6644 evalcond[1]=((1.51009803921569)+(((-1.0)*x1485))+x1484);
6645 evalcond[2]=0;
6646 evalcond[3]=((-1.51009803921569)+x1485+(((-1.0)*x1484)));
6647 evalcond[4]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
6648 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
6649 {
6650 bgotonextstatement=false;
6651 {
6652 IkReal j4array[4], cj4array[4], sj4array[4];
6653 bool j4valid[4]={false};
6654 _nj4 = 4;
6655 j4array[0]=0;
6656 sj4array[0]=IKsin(j4array[0]);
6657 cj4array[0]=IKcos(j4array[0]);
6658 j4array[1]=1.5707963267949;
6659 sj4array[1]=IKsin(j4array[1]);
6660 cj4array[1]=IKcos(j4array[1]);
6661 j4array[2]=3.14159265358979;
6662 sj4array[2]=IKsin(j4array[2]);
6663 cj4array[2]=IKcos(j4array[2]);
6664 j4array[3]=-1.5707963267949;
6665 sj4array[3]=IKsin(j4array[3]);
6666 cj4array[3]=IKcos(j4array[3]);
6667 if( j4array[0] > IKPI )
6668 {
6669     j4array[0]-=IK2PI;
6670 }
6671 else if( j4array[0] < -IKPI )
6672 {    j4array[0]+=IK2PI;
6673 }
6674 j4valid[0] = true;
6675 if( j4array[1] > IKPI )
6676 {
6677     j4array[1]-=IK2PI;
6678 }
6679 else if( j4array[1] < -IKPI )
6680 {    j4array[1]+=IK2PI;
6681 }
6682 j4valid[1] = true;
6683 if( j4array[2] > IKPI )
6684 {
6685     j4array[2]-=IK2PI;
6686 }
6687 else if( j4array[2] < -IKPI )
6688 {    j4array[2]+=IK2PI;
6689 }
6690 j4valid[2] = true;
6691 if( j4array[3] > IKPI )
6692 {
6693     j4array[3]-=IK2PI;
6694 }
6695 else if( j4array[3] < -IKPI )
6696 {    j4array[3]+=IK2PI;
6697 }
6698 j4valid[3] = true;
6699 for(int ij4 = 0; ij4 < 4; ++ij4)
6700 {
6701 if( !j4valid[ij4] )
6702 {
6703     continue;
6704 }
6705 _ij4[0] = ij4; _ij4[1] = -1;
6706 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
6707 {
6708 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6709 {
6710     j4valid[iij4]=false; _ij4[1] = iij4; break;
6711 }
6712 }
6713 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6714 
6715 rotationfunction0(solutions);
6716 }
6717 }
6718 
6719 }
6720 } while(0);
6721 if( bgotonextstatement )
6722 {
6723 bool bgotonextstatement = true;
6724 do
6725 {
6726 if( 1 )
6727 {
6728 bgotonextstatement=false;
6729 continue; // branch miss [j4]
6730 
6731 }
6732 } while(0);
6733 if( bgotonextstatement )
6734 {
6735 }
6736 }
6737 }
6738 
6739 } else
6740 {
6741 {
6742 IkReal j4array[1], cj4array[1], sj4array[1];
6743 bool j4valid[1]={false};
6744 _nj4 = 1;
6745 IkReal x1486=((100.0)*pp);
6746 IkReal x1487=((110.0)*pz);
6747 CheckValue<IkReal> x1488 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1487))+((px*x1486))+(((21.25)*px)))),((((-1.0)*py*x1486))+(((-1.0)*(21.25)*py))+((py*x1487))),IKFAST_ATAN2_MAGTHRESH);
6748 if(!x1488.valid){
6749 continue;
6750 }
6751 CheckValue<IkReal> x1489=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
6752 if(!x1489.valid){
6753 continue;
6754 }
6755 j4array[0]=((-1.5707963267949)+(x1488.value)+(((1.5707963267949)*(x1489.value))));
6756 sj4array[0]=IKsin(j4array[0]);
6757 cj4array[0]=IKcos(j4array[0]);
6758 if( j4array[0] > IKPI )
6759 {
6760     j4array[0]-=IK2PI;
6761 }
6762 else if( j4array[0] < -IKPI )
6763 {    j4array[0]+=IK2PI;
6764 }
6765 j4valid[0] = true;
6766 for(int ij4 = 0; ij4 < 1; ++ij4)
6767 {
6768 if( !j4valid[ij4] )
6769 {
6770     continue;
6771 }
6772 _ij4[0] = ij4; _ij4[1] = -1;
6773 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6774 {
6775 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6776 {
6777     j4valid[iij4]=false; _ij4[1] = iij4; break;
6778 }
6779 }
6780 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6781 {
6782 IkReal evalcond[3];
6783 IkReal x1490=IKcos(j4);
6784 IkReal x1491=((1.0)*x1490);
6785 IkReal x1492=IKsin(j4);
6786 IkReal x1493=(px*x1492);
6787 evalcond[0]=((((-1.0)*py*x1492))+(((-1.0)*px*x1491)));
6788 evalcond[1]=((1.51009803921569)+x1493+(((-1.0)*py*x1491))+(((-1.0)*(3.92156862745098)*pp))+(((1.32323529411765)*cj9)));
6789 evalcond[2]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp))+(((-0.09)*py*x1490))+(((0.09)*x1493)));
6790 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6791 {
6792 continue;
6793 }
6794 }
6795 
6796 rotationfunction0(solutions);
6797 }
6798 }
6799 
6800 }
6801 
6802 }
6803 
6804 } else
6805 {
6806 {
6807 IkReal j4array[1], cj4array[1], sj4array[1];
6808 bool j4valid[1]={false};
6809 _nj4 = 1;
6810 IkReal x1494=((1.32323529411765)*cj9);
6811 IkReal x1495=((3.92156862745098)*pp);
6812 CheckValue<IkReal> x1496 = IKatan2WithCheck(IkReal(((((-1.0)*(1.51009803921569)*px))+(((-1.0)*px*x1494))+((px*x1495)))),((((-1.0)*py*x1495))+(((1.51009803921569)*py))+((py*x1494))),IKFAST_ATAN2_MAGTHRESH);
6813 if(!x1496.valid){
6814 continue;
6815 }
6816 CheckValue<IkReal> x1497=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
6817 if(!x1497.valid){
6818 continue;
6819 }
6820 j4array[0]=((-1.5707963267949)+(x1496.value)+(((1.5707963267949)*(x1497.value))));
6821 sj4array[0]=IKsin(j4array[0]);
6822 cj4array[0]=IKcos(j4array[0]);
6823 if( j4array[0] > IKPI )
6824 {
6825     j4array[0]-=IK2PI;
6826 }
6827 else if( j4array[0] < -IKPI )
6828 {    j4array[0]+=IK2PI;
6829 }
6830 j4valid[0] = true;
6831 for(int ij4 = 0; ij4 < 1; ++ij4)
6832 {
6833 if( !j4valid[ij4] )
6834 {
6835     continue;
6836 }
6837 _ij4[0] = ij4; _ij4[1] = -1;
6838 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
6839 {
6840 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6841 {
6842     j4valid[iij4]=false; _ij4[1] = iij4; break;
6843 }
6844 }
6845 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6846 {
6847 IkReal evalcond[3];
6848 IkReal x1498=IKcos(j4);
6849 IkReal x1499=((1.0)*x1498);
6850 IkReal x1500=IKsin(j4);
6851 IkReal x1501=(px*x1500);
6852 evalcond[0]=((((-1.0)*px*x1499))+(((-1.0)*py*x1500)));
6853 evalcond[1]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*py*x1499))+x1501+(((1.32323529411765)*cj9)));
6854 evalcond[2]=((-0.2125)+(((-0.09)*py*x1498))+(((1.1)*pz))+(((-1.0)*(1.0)*pp))+(((0.09)*x1501)));
6855 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
6856 {
6857 continue;
6858 }
6859 }
6860 
6861 rotationfunction0(solutions);
6862 }
6863 }
6864 
6865 }
6866 
6867 }
6868 
6869 }
6870 } while(0);
6871 if( bgotonextstatement )
6872 {
6873 bool bgotonextstatement = true;
6874 do
6875 {
6876 IkReal x1502=((1.32323529411765)*cj9);
6877 IkReal x1503=((3.92156862745098)*pp);
6878 evalcond[0]=((IKabs(py))+(IKabs(px)));
6879 evalcond[1]=(((sj8*x1503))+(((-1.0)*(1.51009803921569)*sj8))+(((-1.0)*sj8*x1502)));
6880 evalcond[2]=0;
6881 evalcond[3]=((-1.51009803921569)+(((-1.0)*x1502))+x1503);
6882 evalcond[4]=((((-1.0)*(1.51009803921569)*cj8))+((cj8*x1503))+(((-1.0)*cj8*x1502)));
6883 evalcond[5]=((-0.2125)+(((1.1)*pz))+(((-1.0)*(1.0)*pp)));
6884 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
6885 {
6886 bgotonextstatement=false;
6887 {
6888 IkReal j4array[4], cj4array[4], sj4array[4];
6889 bool j4valid[4]={false};
6890 _nj4 = 4;
6891 j4array[0]=0;
6892 sj4array[0]=IKsin(j4array[0]);
6893 cj4array[0]=IKcos(j4array[0]);
6894 j4array[1]=1.5707963267949;
6895 sj4array[1]=IKsin(j4array[1]);
6896 cj4array[1]=IKcos(j4array[1]);
6897 j4array[2]=3.14159265358979;
6898 sj4array[2]=IKsin(j4array[2]);
6899 cj4array[2]=IKcos(j4array[2]);
6900 j4array[3]=-1.5707963267949;
6901 sj4array[3]=IKsin(j4array[3]);
6902 cj4array[3]=IKcos(j4array[3]);
6903 if( j4array[0] > IKPI )
6904 {
6905     j4array[0]-=IK2PI;
6906 }
6907 else if( j4array[0] < -IKPI )
6908 {    j4array[0]+=IK2PI;
6909 }
6910 j4valid[0] = true;
6911 if( j4array[1] > IKPI )
6912 {
6913     j4array[1]-=IK2PI;
6914 }
6915 else if( j4array[1] < -IKPI )
6916 {    j4array[1]+=IK2PI;
6917 }
6918 j4valid[1] = true;
6919 if( j4array[2] > IKPI )
6920 {
6921     j4array[2]-=IK2PI;
6922 }
6923 else if( j4array[2] < -IKPI )
6924 {    j4array[2]+=IK2PI;
6925 }
6926 j4valid[2] = true;
6927 if( j4array[3] > IKPI )
6928 {
6929     j4array[3]-=IK2PI;
6930 }
6931 else if( j4array[3] < -IKPI )
6932 {    j4array[3]+=IK2PI;
6933 }
6934 j4valid[3] = true;
6935 for(int ij4 = 0; ij4 < 4; ++ij4)
6936 {
6937 if( !j4valid[ij4] )
6938 {
6939     continue;
6940 }
6941 _ij4[0] = ij4; _ij4[1] = -1;
6942 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
6943 {
6944 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
6945 {
6946     j4valid[iij4]=false; _ij4[1] = iij4; break;
6947 }
6948 }
6949 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
6950 
6951 rotationfunction0(solutions);
6952 }
6953 }
6954 
6955 }
6956 } while(0);
6957 if( bgotonextstatement )
6958 {
6959 bool bgotonextstatement = true;
6960 do
6961 {
6962 if( 1 )
6963 {
6964 bgotonextstatement=false;
6965 continue; // branch miss [j4]
6966 
6967 }
6968 } while(0);
6969 if( bgotonextstatement )
6970 {
6971 }
6972 }
6973 }
6974 }
6975 }
6976 }
6977 }
6978 
6979 } else
6980 {
6981 {
6982 IkReal j4array[1], cj4array[1], sj4array[1];
6983 bool j4valid[1]={false};
6984 _nj4 = 1;
6985 IkReal x1504=((1.51009803921569)*px);
6986 IkReal x1505=((1.32323529411765)*cj9);
6987 IkReal x1506=(px*x1505);
6988 IkReal x1507=((3.92156862745098)*pp);
6989 IkReal x1508=(px*x1507);
6990 IkReal x1509=((1.51009803921569)*py);
6991 IkReal x1510=(cj8*sj8);
6992 IkReal x1511=cj8*cj8;
6993 IkReal x1512=(py*x1505);
6994 IkReal x1513=((3.92156862745098)*cj8*pp*sj8);
6995 IkReal x1514=(py*x1507);
6996 CheckValue<IkReal> x1515=IKPowWithIntegerCheck(IKsign(((((-1.0)*(1.0)*sj8*(pz*pz)))+((pp*sj8)))),-1);
6997 if(!x1515.valid){
6998 continue;
6999 }
7000 CheckValue<IkReal> x1516 = IKatan2WithCheck(IkReal(((((-1.0)*x1506*x1511))+(((-1.0)*x1510*x1512))+(((-1.0)*x1508))+(((-1.0)*x1504*x1511))+((x1508*x1511))+((py*x1513))+(((-1.0)*x1509*x1510))+x1504+x1506)),((((-1.0)*x1512))+((px*x1513))+(((-1.0)*x1506*x1510))+x1514+(((-1.0)*x1511*x1514))+((x1509*x1511))+(((-1.0)*x1504*x1510))+(((-1.0)*x1509))+((x1511*x1512))),IKFAST_ATAN2_MAGTHRESH);
7001 if(!x1516.valid){
7002 continue;
7003 }
7004 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1515.value)))+(x1516.value));
7005 sj4array[0]=IKsin(j4array[0]);
7006 cj4array[0]=IKcos(j4array[0]);
7007 if( j4array[0] > IKPI )
7008 {
7009     j4array[0]-=IK2PI;
7010 }
7011 else if( j4array[0] < -IKPI )
7012 {    j4array[0]+=IK2PI;
7013 }
7014 j4valid[0] = true;
7015 for(int ij4 = 0; ij4 < 1; ++ij4)
7016 {
7017 if( !j4valid[ij4] )
7018 {
7019     continue;
7020 }
7021 _ij4[0] = ij4; _ij4[1] = -1;
7022 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7023 {
7024 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7025 {
7026     j4valid[iij4]=false; _ij4[1] = iij4; break;
7027 }
7028 }
7029 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7030 {
7031 IkReal evalcond[5];
7032 IkReal x1517=((1.32323529411765)*cj9);
7033 IkReal x1518=((3.92156862745098)*pp);
7034 IkReal x1519=IKsin(j4);
7035 IkReal x1520=(px*x1519);
7036 IkReal x1521=IKcos(j4);
7037 IkReal x1522=((1.0)*x1521);
7038 IkReal x1523=(py*x1522);
7039 IkReal x1524=(px*x1522);
7040 IkReal x1525=(py*x1519);
7041 IkReal x1526=((1.0)*x1525);
7042 IkReal x1527=(px*x1521);
7043 IkReal x1528=(sj8*x1520);
7044 IkReal x1529=((0.09)*cj8);
7045 evalcond[0]=((((-1.0)*sj8*x1517))+(((-1.0)*x1523))+((sj8*x1518))+x1520+(((-1.0)*(1.51009803921569)*sj8)));
7046 evalcond[1]=((((-1.0)*(1.51009803921569)*cj8))+(((-1.0)*x1526))+((cj8*x1518))+(((-1.0)*x1524))+(((-1.0)*cj8*x1517)));
7047 evalcond[2]=(((sj8*x1527))+(((-1.0)*cj8*x1523))+((cj8*x1520))+((sj8*x1525)));
7048 evalcond[3]=((-1.51009803921569)+x1518+(((-1.0)*cj8*x1526))+(((-1.0)*sj8*x1523))+(((-1.0)*x1517))+(((-1.0)*cj8*x1524))+x1528);
7049 evalcond[4]=((-0.2125)+((x1527*x1529))+(((0.09)*py*sj8*x1521))+((x1525*x1529))+(((1.1)*pz))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1528)));
7050 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
7051 {
7052 continue;
7053 }
7054 }
7055 
7056 rotationfunction0(solutions);
7057 }
7058 }
7059 
7060 }
7061 
7062 }
7063 
7064 } else
7065 {
7066 {
7067 IkReal j4array[1], cj4array[1], sj4array[1];
7068 bool j4valid[1]={false};
7069 _nj4 = 1;
7070 IkReal x1530=((1.51009803921569)*cj8*sj8);
7071 IkReal x1531=cj8*cj8;
7072 IkReal x1532=((1.51009803921569)*x1531);
7073 IkReal x1533=((1.32323529411765)*cj8*cj9*sj8);
7074 IkReal x1534=((3.92156862745098)*cj8*pp*sj8);
7075 IkReal x1535=((1.32323529411765)*cj9*x1531);
7076 IkReal x1536=((3.92156862745098)*pp*x1531);
7077 CheckValue<IkReal> x1537 = IKatan2WithCheck(IkReal(((((-1.0)*py*x1536))+((px*x1534))+(((-1.0)*px*x1530))+(((-1.0)*px*x1533))+((py*x1535))+((py*x1532)))),(((px*x1532))+(((-1.0)*py*x1534))+(((-1.0)*px*x1536))+((px*x1535))+((py*x1533))+((py*x1530))),IKFAST_ATAN2_MAGTHRESH);
7078 if(!x1537.valid){
7079 continue;
7080 }
7081 CheckValue<IkReal> x1538=IKPowWithIntegerCheck(IKsign((((cj8*(pz*pz)))+(((-1.0)*cj8*pp)))),-1);
7082 if(!x1538.valid){
7083 continue;
7084 }
7085 j4array[0]=((-1.5707963267949)+(x1537.value)+(((1.5707963267949)*(x1538.value))));
7086 sj4array[0]=IKsin(j4array[0]);
7087 cj4array[0]=IKcos(j4array[0]);
7088 if( j4array[0] > IKPI )
7089 {
7090     j4array[0]-=IK2PI;
7091 }
7092 else if( j4array[0] < -IKPI )
7093 {    j4array[0]+=IK2PI;
7094 }
7095 j4valid[0] = true;
7096 for(int ij4 = 0; ij4 < 1; ++ij4)
7097 {
7098 if( !j4valid[ij4] )
7099 {
7100     continue;
7101 }
7102 _ij4[0] = ij4; _ij4[1] = -1;
7103 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7104 {
7105 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7106 {
7107     j4valid[iij4]=false; _ij4[1] = iij4; break;
7108 }
7109 }
7110 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7111 {
7112 IkReal evalcond[5];
7113 IkReal x1539=((1.32323529411765)*cj9);
7114 IkReal x1540=((3.92156862745098)*pp);
7115 IkReal x1541=IKsin(j4);
7116 IkReal x1542=(px*x1541);
7117 IkReal x1543=IKcos(j4);
7118 IkReal x1544=((1.0)*x1543);
7119 IkReal x1545=(py*x1544);
7120 IkReal x1546=(px*x1544);
7121 IkReal x1547=(py*x1541);
7122 IkReal x1548=((1.0)*x1547);
7123 IkReal x1549=(px*x1543);
7124 IkReal x1550=(sj8*x1542);
7125 IkReal x1551=((0.09)*cj8);
7126 evalcond[0]=(x1542+(((-1.0)*sj8*x1539))+((sj8*x1540))+(((-1.0)*x1545))+(((-1.0)*(1.51009803921569)*sj8)));
7127 evalcond[1]=((((-1.0)*(1.51009803921569)*cj8))+((cj8*x1540))+(((-1.0)*x1546))+(((-1.0)*cj8*x1539))+(((-1.0)*x1548)));
7128 evalcond[2]=(((sj8*x1547))+(((-1.0)*cj8*x1545))+((cj8*x1542))+((sj8*x1549)));
7129 evalcond[3]=((-1.51009803921569)+(((-1.0)*cj8*x1546))+x1540+x1550+(((-1.0)*x1539))+(((-1.0)*cj8*x1548))+(((-1.0)*sj8*x1545)));
7130 evalcond[4]=((-0.2125)+(((1.1)*pz))+((x1549*x1551))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1550))+(((0.09)*py*sj8*x1543))+((x1547*x1551)));
7131 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
7132 {
7133 continue;
7134 }
7135 }
7136 
7137 rotationfunction0(solutions);
7138 }
7139 }
7140 
7141 }
7142 
7143 }
7144 
7145 } else
7146 {
7147 {
7148 IkReal j4array[1], cj4array[1], sj4array[1];
7149 bool j4valid[1]={false};
7150 _nj4 = 1;
7151 IkReal x1552=((1.51009803921569)*cj8);
7152 IkReal x1553=((1.51009803921569)*sj8);
7153 IkReal x1554=((1.32323529411765)*cj8*cj9);
7154 IkReal x1555=((3.92156862745098)*cj8*pp);
7155 IkReal x1556=((1.32323529411765)*cj9*sj8);
7156 IkReal x1557=((3.92156862745098)*pp*sj8);
7157 CheckValue<IkReal> x1558 = IKatan2WithCheck(IkReal(((((-1.0)*py*x1554))+(((-1.0)*py*x1552))+(((-1.0)*px*x1557))+((py*x1555))+((px*x1556))+((px*x1553)))),((((-1.0)*px*x1552))+((py*x1557))+(((-1.0)*py*x1553))+(((-1.0)*py*x1556))+(((-1.0)*px*x1554))+((px*x1555))),IKFAST_ATAN2_MAGTHRESH);
7158 if(!x1558.valid){
7159 continue;
7160 }
7161 CheckValue<IkReal> x1559=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
7162 if(!x1559.valid){
7163 continue;
7164 }
7165 j4array[0]=((-1.5707963267949)+(x1558.value)+(((1.5707963267949)*(x1559.value))));
7166 sj4array[0]=IKsin(j4array[0]);
7167 cj4array[0]=IKcos(j4array[0]);
7168 if( j4array[0] > IKPI )
7169 {
7170     j4array[0]-=IK2PI;
7171 }
7172 else if( j4array[0] < -IKPI )
7173 {    j4array[0]+=IK2PI;
7174 }
7175 j4valid[0] = true;
7176 for(int ij4 = 0; ij4 < 1; ++ij4)
7177 {
7178 if( !j4valid[ij4] )
7179 {
7180     continue;
7181 }
7182 _ij4[0] = ij4; _ij4[1] = -1;
7183 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7184 {
7185 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7186 {
7187     j4valid[iij4]=false; _ij4[1] = iij4; break;
7188 }
7189 }
7190 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7191 {
7192 IkReal evalcond[5];
7193 IkReal x1560=((1.32323529411765)*cj9);
7194 IkReal x1561=((3.92156862745098)*pp);
7195 IkReal x1562=IKsin(j4);
7196 IkReal x1563=(px*x1562);
7197 IkReal x1564=IKcos(j4);
7198 IkReal x1565=((1.0)*x1564);
7199 IkReal x1566=(py*x1565);
7200 IkReal x1567=(px*x1565);
7201 IkReal x1568=(py*x1562);
7202 IkReal x1569=((1.0)*x1568);
7203 IkReal x1570=(px*x1564);
7204 IkReal x1571=(sj8*x1563);
7205 IkReal x1572=((0.09)*cj8);
7206 evalcond[0]=(((sj8*x1561))+x1563+(((-1.0)*(1.51009803921569)*sj8))+(((-1.0)*sj8*x1560))+(((-1.0)*x1566)));
7207 evalcond[1]=((((-1.0)*(1.51009803921569)*cj8))+(((-1.0)*cj8*x1560))+(((-1.0)*x1569))+((cj8*x1561))+(((-1.0)*x1567)));
7208 evalcond[2]=((((-1.0)*cj8*x1566))+((sj8*x1570))+((cj8*x1563))+((sj8*x1568)));
7209 evalcond[3]=((-1.51009803921569)+(((-1.0)*x1560))+(((-1.0)*sj8*x1566))+x1571+x1561+(((-1.0)*cj8*x1569))+(((-1.0)*cj8*x1567)));
7210 evalcond[4]=((-0.2125)+(((-0.09)*x1571))+((x1570*x1572))+(((0.09)*py*sj8*x1564))+(((1.1)*pz))+(((-1.0)*(1.0)*pp))+((x1568*x1572)));
7211 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
7212 {
7213 continue;
7214 }
7215 }
7216 
7217 rotationfunction0(solutions);
7218 }
7219 }
7220 
7221 }
7222 
7223 }
7224 
7225 }
7226 } while(0);
7227 if( bgotonextstatement )
7228 {
7229 bool bgotonextstatement = true;
7230 do
7231 {
7232 IkReal x1573=((0.3)*cj9);
7233 IkReal x1574=((0.045)*sj9);
7234 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j6)))), 6.28318530717959)));
7235 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
7236 evalcond[2]=((-0.55)+(((-1.0)*(1.0)*pz))+(((-1.0)*x1573))+(((-1.0)*x1574)));
7237 evalcond[3]=((0.55)+x1574+x1573+pz);
7238 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
7239 {
7240 bgotonextstatement=false;
7241 {
7242 IkReal j4eval[3];
7243 sj6=0;
7244 cj6=-1.0;
7245 j6=3.14159265358979;
7246 IkReal x1575=(pp+(((-1.0)*(1.0)*(pz*pz))));
7247 IkReal x1576=((1.51009803921569)*cj8);
7248 IkReal x1577=((1.51009803921569)*sj8);
7249 IkReal x1578=((1.32323529411765)*cj8*cj9);
7250 IkReal x1579=((3.92156862745098)*cj8*pp);
7251 IkReal x1580=((1.32323529411765)*cj9*sj8);
7252 IkReal x1581=((3.92156862745098)*pp*sj8);
7253 j4eval[0]=x1575;
7254 j4eval[1]=((IKabs(((((-1.0)*py*x1579))+((px*x1577))+((py*x1578))+(((-1.0)*px*x1581))+((py*x1576))+((px*x1580)))))+(IKabs((((px*x1578))+(((-1.0)*py*x1580))+((px*x1576))+(((-1.0)*px*x1579))+((py*x1581))+(((-1.0)*py*x1577))))));
7255 j4eval[2]=IKsign(x1575);
7256 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
7257 {
7258 {
7259 IkReal j4eval[2];
7260 sj6=0;
7261 cj6=-1.0;
7262 j6=3.14159265358979;
7263 IkReal x1582=(((cj8*(pz*pz)))+(((-1.0)*(1.0)*cj8*pp)));
7264 j4eval[0]=x1582;
7265 j4eval[1]=IKsign(x1582);
7266 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
7267 {
7268 {
7269 IkReal j4eval[2];
7270 sj6=0;
7271 cj6=-1.0;
7272 j6=3.14159265358979;
7273 IkReal x1583=((((-1.0)*(1.0)*cj8*(pz*pz)))+((cj8*pp)));
7274 j4eval[0]=x1583;
7275 j4eval[1]=IKsign(x1583);
7276 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  )
7277 {
7278 {
7279 IkReal evalcond[6];
7280 bool bgotonextstatement = true;
7281 do
7282 {
7283 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j8)))), 6.28318530717959)));
7284 if( IKabs(evalcond[0]) < 0.0000010000000000  )
7285 {
7286 bgotonextstatement=false;
7287 {
7288 IkReal j4eval[3];
7289 sj6=0;
7290 cj6=-1.0;
7291 j6=3.14159265358979;
7292 sj8=1.0;
7293 cj8=0;
7294 j8=1.5707963267949;
7295 IkReal x1584=(pp+(((-1.0)*(1.0)*(pz*pz))));
7296 IkReal x1585=((13497.0)*cj9);
7297 IkReal x1586=((40000.0)*pp);
7298 j4eval[0]=x1584;
7299 j4eval[1]=((IKabs(((((15403.0)*px))+((px*x1585))+(((-1.0)*px*x1586)))))+(IKabs(((((-1.0)*py*x1585))+((py*x1586))+(((-1.0)*(15403.0)*py))))));
7300 j4eval[2]=IKsign(x1584);
7301 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
7302 {
7303 {
7304 IkReal j4eval[3];
7305 sj6=0;
7306 cj6=-1.0;
7307 j6=3.14159265358979;
7308 sj8=1.0;
7309 cj8=0;
7310 j8=1.5707963267949;
7311 IkReal x1587=pz*pz;
7312 IkReal x1588=((80.0)*pp);
7313 IkReal x1589=((88.0)*pz);
7314 j4eval[0]=(pp+(((-1.0)*x1587)));
7315 j4eval[1]=((IKabs((((py*x1589))+(((17.0)*py))+((py*x1588)))))+(IKabs((((px*x1588))+(((17.0)*px))+((px*x1589))))));
7316 j4eval[2]=IKsign(((((9.0)*pp))+(((-9.0)*x1587))));
7317 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
7318 {
7319 {
7320 IkReal evalcond[5];
7321 bool bgotonextstatement = true;
7322 do
7323 {
7324 IkReal x1590=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp)));
7325 evalcond[0]=((IKabs(py))+(IKabs(px)));
7326 evalcond[1]=x1590;
7327 evalcond[2]=0;
7328 evalcond[3]=x1590;
7329 evalcond[4]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-1.0)*(1.0)*pp)));
7330 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
7331 {
7332 bgotonextstatement=false;
7333 {
7334 IkReal j4array[4], cj4array[4], sj4array[4];
7335 bool j4valid[4]={false};
7336 _nj4 = 4;
7337 j4array[0]=0;
7338 sj4array[0]=IKsin(j4array[0]);
7339 cj4array[0]=IKcos(j4array[0]);
7340 j4array[1]=1.5707963267949;
7341 sj4array[1]=IKsin(j4array[1]);
7342 cj4array[1]=IKcos(j4array[1]);
7343 j4array[2]=3.14159265358979;
7344 sj4array[2]=IKsin(j4array[2]);
7345 cj4array[2]=IKcos(j4array[2]);
7346 j4array[3]=-1.5707963267949;
7347 sj4array[3]=IKsin(j4array[3]);
7348 cj4array[3]=IKcos(j4array[3]);
7349 if( j4array[0] > IKPI )
7350 {
7351     j4array[0]-=IK2PI;
7352 }
7353 else if( j4array[0] < -IKPI )
7354 {    j4array[0]+=IK2PI;
7355 }
7356 j4valid[0] = true;
7357 if( j4array[1] > IKPI )
7358 {
7359     j4array[1]-=IK2PI;
7360 }
7361 else if( j4array[1] < -IKPI )
7362 {    j4array[1]+=IK2PI;
7363 }
7364 j4valid[1] = true;
7365 if( j4array[2] > IKPI )
7366 {
7367     j4array[2]-=IK2PI;
7368 }
7369 else if( j4array[2] < -IKPI )
7370 {    j4array[2]+=IK2PI;
7371 }
7372 j4valid[2] = true;
7373 if( j4array[3] > IKPI )
7374 {
7375     j4array[3]-=IK2PI;
7376 }
7377 else if( j4array[3] < -IKPI )
7378 {    j4array[3]+=IK2PI;
7379 }
7380 j4valid[3] = true;
7381 for(int ij4 = 0; ij4 < 4; ++ij4)
7382 {
7383 if( !j4valid[ij4] )
7384 {
7385     continue;
7386 }
7387 _ij4[0] = ij4; _ij4[1] = -1;
7388 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
7389 {
7390 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7391 {
7392     j4valid[iij4]=false; _ij4[1] = iij4; break;
7393 }
7394 }
7395 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7396 
7397 rotationfunction0(solutions);
7398 }
7399 }
7400 
7401 }
7402 } while(0);
7403 if( bgotonextstatement )
7404 {
7405 bool bgotonextstatement = true;
7406 do
7407 {
7408 if( 1 )
7409 {
7410 bgotonextstatement=false;
7411 continue; // branch miss [j4]
7412 
7413 }
7414 } while(0);
7415 if( bgotonextstatement )
7416 {
7417 }
7418 }
7419 }
7420 
7421 } else
7422 {
7423 {
7424 IkReal j4array[1], cj4array[1], sj4array[1];
7425 bool j4valid[1]={false};
7426 _nj4 = 1;
7427 IkReal x1591=((100.0)*pp);
7428 IkReal x1592=((110.0)*pz);
7429 CheckValue<IkReal> x1593 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1591))+(((-1.0)*(21.25)*px))+(((-1.0)*px*x1592)))),(((py*x1591))+((py*x1592))+(((21.25)*py))),IKFAST_ATAN2_MAGTHRESH);
7430 if(!x1593.valid){
7431 continue;
7432 }
7433 CheckValue<IkReal> x1594=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
7434 if(!x1594.valid){
7435 continue;
7436 }
7437 j4array[0]=((-1.5707963267949)+(x1593.value)+(((1.5707963267949)*(x1594.value))));
7438 sj4array[0]=IKsin(j4array[0]);
7439 cj4array[0]=IKcos(j4array[0]);
7440 if( j4array[0] > IKPI )
7441 {
7442     j4array[0]-=IK2PI;
7443 }
7444 else if( j4array[0] < -IKPI )
7445 {    j4array[0]+=IK2PI;
7446 }
7447 j4valid[0] = true;
7448 for(int ij4 = 0; ij4 < 1; ++ij4)
7449 {
7450 if( !j4valid[ij4] )
7451 {
7452     continue;
7453 }
7454 _ij4[0] = ij4; _ij4[1] = -1;
7455 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7456 {
7457 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7458 {
7459     j4valid[iij4]=false; _ij4[1] = iij4; break;
7460 }
7461 }
7462 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7463 {
7464 IkReal evalcond[3];
7465 IkReal x1595=IKcos(j4);
7466 IkReal x1596=((1.0)*x1595);
7467 IkReal x1597=IKsin(j4);
7468 IkReal x1598=(px*x1597);
7469 evalcond[0]=((((-1.0)*px*x1596))+(((-1.0)*py*x1597)));
7470 evalcond[1]=((-1.51009803921569)+(((-1.0)*py*x1596))+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1598);
7471 evalcond[2]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-0.09)*x1598))+(((0.09)*py*x1595))+(((-1.0)*(1.0)*pp)));
7472 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
7473 {
7474 continue;
7475 }
7476 }
7477 
7478 rotationfunction0(solutions);
7479 }
7480 }
7481 
7482 }
7483 
7484 }
7485 
7486 } else
7487 {
7488 {
7489 IkReal j4array[1], cj4array[1], sj4array[1];
7490 bool j4valid[1]={false};
7491 _nj4 = 1;
7492 IkReal x1599=((1.32323529411765)*cj9);
7493 IkReal x1600=((3.92156862745098)*pp);
7494 CheckValue<IkReal> x1601=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
7495 if(!x1601.valid){
7496 continue;
7497 }
7498 CheckValue<IkReal> x1602 = IKatan2WithCheck(IkReal((((px*x1599))+(((1.51009803921569)*px))+(((-1.0)*px*x1600)))),((((-1.0)*(1.51009803921569)*py))+(((-1.0)*py*x1599))+((py*x1600))),IKFAST_ATAN2_MAGTHRESH);
7499 if(!x1602.valid){
7500 continue;
7501 }
7502 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1601.value)))+(x1602.value));
7503 sj4array[0]=IKsin(j4array[0]);
7504 cj4array[0]=IKcos(j4array[0]);
7505 if( j4array[0] > IKPI )
7506 {
7507     j4array[0]-=IK2PI;
7508 }
7509 else if( j4array[0] < -IKPI )
7510 {    j4array[0]+=IK2PI;
7511 }
7512 j4valid[0] = true;
7513 for(int ij4 = 0; ij4 < 1; ++ij4)
7514 {
7515 if( !j4valid[ij4] )
7516 {
7517     continue;
7518 }
7519 _ij4[0] = ij4; _ij4[1] = -1;
7520 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7521 {
7522 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7523 {
7524     j4valid[iij4]=false; _ij4[1] = iij4; break;
7525 }
7526 }
7527 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7528 {
7529 IkReal evalcond[3];
7530 IkReal x1603=IKcos(j4);
7531 IkReal x1604=((1.0)*x1603);
7532 IkReal x1605=IKsin(j4);
7533 IkReal x1606=(px*x1605);
7534 evalcond[0]=((((-1.0)*px*x1604))+(((-1.0)*py*x1605)));
7535 evalcond[1]=((-1.51009803921569)+(((-1.0)*(1.32323529411765)*cj9))+(((3.92156862745098)*pp))+x1606+(((-1.0)*py*x1604)));
7536 evalcond[2]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-0.09)*x1606))+(((-1.0)*(1.0)*pp))+(((0.09)*py*x1603)));
7537 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
7538 {
7539 continue;
7540 }
7541 }
7542 
7543 rotationfunction0(solutions);
7544 }
7545 }
7546 
7547 }
7548 
7549 }
7550 
7551 }
7552 } while(0);
7553 if( bgotonextstatement )
7554 {
7555 bool bgotonextstatement = true;
7556 do
7557 {
7558 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j8)))), 6.28318530717959)));
7559 if( IKabs(evalcond[0]) < 0.0000010000000000  )
7560 {
7561 bgotonextstatement=false;
7562 {
7563 IkReal j4eval[3];
7564 sj6=0;
7565 cj6=-1.0;
7566 j6=3.14159265358979;
7567 sj8=-1.0;
7568 cj8=0;
7569 j8=-1.5707963267949;
7570 IkReal x1607=(pp+(((-1.0)*(1.0)*(pz*pz))));
7571 IkReal x1608=((13497.0)*cj9);
7572 IkReal x1609=((40000.0)*pp);
7573 j4eval[0]=x1607;
7574 j4eval[1]=((IKabs(((((-1.0)*py*x1609))+(((15403.0)*py))+((py*x1608)))))+(IKabs(((((-1.0)*px*x1608))+(((-1.0)*(15403.0)*px))+((px*x1609))))));
7575 j4eval[2]=IKsign(x1607);
7576 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
7577 {
7578 {
7579 IkReal j4eval[3];
7580 sj6=0;
7581 cj6=-1.0;
7582 j6=3.14159265358979;
7583 sj8=-1.0;
7584 cj8=0;
7585 j8=-1.5707963267949;
7586 IkReal x1610=pz*pz;
7587 IkReal x1611=((80.0)*pp);
7588 IkReal x1612=((88.0)*pz);
7589 j4eval[0]=(pp+(((-1.0)*x1610)));
7590 j4eval[1]=((IKabs(((((17.0)*py))+((py*x1612))+((py*x1611)))))+(IKabs(((((17.0)*px))+((px*x1612))+((px*x1611))))));
7591 j4eval[2]=IKsign(((((-9.0)*x1610))+(((9.0)*pp))));
7592 if( IKabs(j4eval[0]) < 0.0000010000000000  || IKabs(j4eval[1]) < 0.0000010000000000  || IKabs(j4eval[2]) < 0.0000010000000000  )
7593 {
7594 {
7595 IkReal evalcond[5];
7596 bool bgotonextstatement = true;
7597 do
7598 {
7599 IkReal x1613=((1.32323529411765)*cj9);
7600 IkReal x1614=((3.92156862745098)*pp);
7601 evalcond[0]=((IKabs(py))+(IKabs(px)));
7602 evalcond[1]=((1.51009803921569)+(((-1.0)*x1614))+x1613);
7603 evalcond[2]=0;
7604 evalcond[3]=((-1.51009803921569)+(((-1.0)*x1613))+x1614);
7605 evalcond[4]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-1.0)*(1.0)*pp)));
7606 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  )
7607 {
7608 bgotonextstatement=false;
7609 {
7610 IkReal j4array[4], cj4array[4], sj4array[4];
7611 bool j4valid[4]={false};
7612 _nj4 = 4;
7613 j4array[0]=0;
7614 sj4array[0]=IKsin(j4array[0]);
7615 cj4array[0]=IKcos(j4array[0]);
7616 j4array[1]=1.5707963267949;
7617 sj4array[1]=IKsin(j4array[1]);
7618 cj4array[1]=IKcos(j4array[1]);
7619 j4array[2]=3.14159265358979;
7620 sj4array[2]=IKsin(j4array[2]);
7621 cj4array[2]=IKcos(j4array[2]);
7622 j4array[3]=-1.5707963267949;
7623 sj4array[3]=IKsin(j4array[3]);
7624 cj4array[3]=IKcos(j4array[3]);
7625 if( j4array[0] > IKPI )
7626 {
7627     j4array[0]-=IK2PI;
7628 }
7629 else if( j4array[0] < -IKPI )
7630 {    j4array[0]+=IK2PI;
7631 }
7632 j4valid[0] = true;
7633 if( j4array[1] > IKPI )
7634 {
7635     j4array[1]-=IK2PI;
7636 }
7637 else if( j4array[1] < -IKPI )
7638 {    j4array[1]+=IK2PI;
7639 }
7640 j4valid[1] = true;
7641 if( j4array[2] > IKPI )
7642 {
7643     j4array[2]-=IK2PI;
7644 }
7645 else if( j4array[2] < -IKPI )
7646 {    j4array[2]+=IK2PI;
7647 }
7648 j4valid[2] = true;
7649 if( j4array[3] > IKPI )
7650 {
7651     j4array[3]-=IK2PI;
7652 }
7653 else if( j4array[3] < -IKPI )
7654 {    j4array[3]+=IK2PI;
7655 }
7656 j4valid[3] = true;
7657 for(int ij4 = 0; ij4 < 4; ++ij4)
7658 {
7659 if( !j4valid[ij4] )
7660 {
7661     continue;
7662 }
7663 _ij4[0] = ij4; _ij4[1] = -1;
7664 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
7665 {
7666 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7667 {
7668     j4valid[iij4]=false; _ij4[1] = iij4; break;
7669 }
7670 }
7671 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7672 
7673 rotationfunction0(solutions);
7674 }
7675 }
7676 
7677 }
7678 } while(0);
7679 if( bgotonextstatement )
7680 {
7681 bool bgotonextstatement = true;
7682 do
7683 {
7684 if( 1 )
7685 {
7686 bgotonextstatement=false;
7687 continue; // branch miss [j4]
7688 
7689 }
7690 } while(0);
7691 if( bgotonextstatement )
7692 {
7693 }
7694 }
7695 }
7696 
7697 } else
7698 {
7699 {
7700 IkReal j4array[1], cj4array[1], sj4array[1];
7701 bool j4valid[1]={false};
7702 _nj4 = 1;
7703 IkReal x1615=((100.0)*pp);
7704 IkReal x1616=((110.0)*pz);
7705 CheckValue<IkReal> x1617 = IKatan2WithCheck(IkReal((((px*x1616))+(((21.25)*px))+((px*x1615)))),((((-1.0)*py*x1616))+(((-1.0)*(21.25)*py))+(((-1.0)*py*x1615))),IKFAST_ATAN2_MAGTHRESH);
7706 if(!x1617.valid){
7707 continue;
7708 }
7709 CheckValue<IkReal> x1618=IKPowWithIntegerCheck(IKsign(((((-1.0)*(9.0)*(pz*pz)))+(((9.0)*pp)))),-1);
7710 if(!x1618.valid){
7711 continue;
7712 }
7713 j4array[0]=((-1.5707963267949)+(x1617.value)+(((1.5707963267949)*(x1618.value))));
7714 sj4array[0]=IKsin(j4array[0]);
7715 cj4array[0]=IKcos(j4array[0]);
7716 if( j4array[0] > IKPI )
7717 {
7718     j4array[0]-=IK2PI;
7719 }
7720 else if( j4array[0] < -IKPI )
7721 {    j4array[0]+=IK2PI;
7722 }
7723 j4valid[0] = true;
7724 for(int ij4 = 0; ij4 < 1; ++ij4)
7725 {
7726 if( !j4valid[ij4] )
7727 {
7728     continue;
7729 }
7730 _ij4[0] = ij4; _ij4[1] = -1;
7731 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7732 {
7733 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7734 {
7735     j4valid[iij4]=false; _ij4[1] = iij4; break;
7736 }
7737 }
7738 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7739 {
7740 IkReal evalcond[3];
7741 IkReal x1619=IKcos(j4);
7742 IkReal x1620=IKsin(j4);
7743 IkReal x1621=(px*x1620);
7744 IkReal x1622=(py*x1619);
7745 evalcond[0]=(((px*x1619))+((py*x1620)));
7746 evalcond[1]=((1.51009803921569)+(((-1.0)*x1622))+(((-1.0)*(3.92156862745098)*pp))+x1621+(((1.32323529411765)*cj9)));
7747 evalcond[2]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((0.09)*x1621))+(((-0.09)*x1622))+(((-1.0)*(1.0)*pp)));
7748 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
7749 {
7750 continue;
7751 }
7752 }
7753 
7754 rotationfunction0(solutions);
7755 }
7756 }
7757 
7758 }
7759 
7760 }
7761 
7762 } else
7763 {
7764 {
7765 IkReal j4array[1], cj4array[1], sj4array[1];
7766 bool j4valid[1]={false};
7767 _nj4 = 1;
7768 IkReal x1623=((1.32323529411765)*cj9);
7769 IkReal x1624=((3.92156862745098)*pp);
7770 CheckValue<IkReal> x1625 = IKatan2WithCheck(IkReal(((((-1.0)*(1.51009803921569)*px))+(((-1.0)*px*x1623))+((px*x1624)))),(((py*x1623))+(((1.51009803921569)*py))+(((-1.0)*py*x1624))),IKFAST_ATAN2_MAGTHRESH);
7771 if(!x1625.valid){
7772 continue;
7773 }
7774 CheckValue<IkReal> x1626=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
7775 if(!x1626.valid){
7776 continue;
7777 }
7778 j4array[0]=((-1.5707963267949)+(x1625.value)+(((1.5707963267949)*(x1626.value))));
7779 sj4array[0]=IKsin(j4array[0]);
7780 cj4array[0]=IKcos(j4array[0]);
7781 if( j4array[0] > IKPI )
7782 {
7783     j4array[0]-=IK2PI;
7784 }
7785 else if( j4array[0] < -IKPI )
7786 {    j4array[0]+=IK2PI;
7787 }
7788 j4valid[0] = true;
7789 for(int ij4 = 0; ij4 < 1; ++ij4)
7790 {
7791 if( !j4valid[ij4] )
7792 {
7793     continue;
7794 }
7795 _ij4[0] = ij4; _ij4[1] = -1;
7796 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7797 {
7798 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7799 {
7800     j4valid[iij4]=false; _ij4[1] = iij4; break;
7801 }
7802 }
7803 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7804 {
7805 IkReal evalcond[3];
7806 IkReal x1627=IKcos(j4);
7807 IkReal x1628=IKsin(j4);
7808 IkReal x1629=(px*x1628);
7809 IkReal x1630=(py*x1627);
7810 evalcond[0]=(((py*x1628))+((px*x1627)));
7811 evalcond[1]=((1.51009803921569)+(((-1.0)*(3.92156862745098)*pp))+(((-1.0)*x1630))+x1629+(((1.32323529411765)*cj9)));
7812 evalcond[2]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((0.09)*x1629))+(((-0.09)*x1630))+(((-1.0)*(1.0)*pp)));
7813 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  )
7814 {
7815 continue;
7816 }
7817 }
7818 
7819 rotationfunction0(solutions);
7820 }
7821 }
7822 
7823 }
7824 
7825 }
7826 
7827 }
7828 } while(0);
7829 if( bgotonextstatement )
7830 {
7831 bool bgotonextstatement = true;
7832 do
7833 {
7834 IkReal x1631=((1.32323529411765)*cj9);
7835 IkReal x1632=((3.92156862745098)*pp);
7836 evalcond[0]=((IKabs(py))+(IKabs(px)));
7837 evalcond[1]=((((-1.0)*sj8*x1631))+((sj8*x1632))+(((-1.0)*(1.51009803921569)*sj8)));
7838 evalcond[2]=0;
7839 evalcond[3]=((-1.51009803921569)+(((-1.0)*x1631))+x1632);
7840 evalcond[4]=((((1.51009803921569)*cj8))+(((-1.0)*cj8*x1632))+((cj8*x1631)));
7841 evalcond[5]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-1.0)*(1.0)*pp)));
7842 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
7843 {
7844 bgotonextstatement=false;
7845 {
7846 IkReal j4array[4], cj4array[4], sj4array[4];
7847 bool j4valid[4]={false};
7848 _nj4 = 4;
7849 j4array[0]=0;
7850 sj4array[0]=IKsin(j4array[0]);
7851 cj4array[0]=IKcos(j4array[0]);
7852 j4array[1]=1.5707963267949;
7853 sj4array[1]=IKsin(j4array[1]);
7854 cj4array[1]=IKcos(j4array[1]);
7855 j4array[2]=3.14159265358979;
7856 sj4array[2]=IKsin(j4array[2]);
7857 cj4array[2]=IKcos(j4array[2]);
7858 j4array[3]=-1.5707963267949;
7859 sj4array[3]=IKsin(j4array[3]);
7860 cj4array[3]=IKcos(j4array[3]);
7861 if( j4array[0] > IKPI )
7862 {
7863     j4array[0]-=IK2PI;
7864 }
7865 else if( j4array[0] < -IKPI )
7866 {    j4array[0]+=IK2PI;
7867 }
7868 j4valid[0] = true;
7869 if( j4array[1] > IKPI )
7870 {
7871     j4array[1]-=IK2PI;
7872 }
7873 else if( j4array[1] < -IKPI )
7874 {    j4array[1]+=IK2PI;
7875 }
7876 j4valid[1] = true;
7877 if( j4array[2] > IKPI )
7878 {
7879     j4array[2]-=IK2PI;
7880 }
7881 else if( j4array[2] < -IKPI )
7882 {    j4array[2]+=IK2PI;
7883 }
7884 j4valid[2] = true;
7885 if( j4array[3] > IKPI )
7886 {
7887     j4array[3]-=IK2PI;
7888 }
7889 else if( j4array[3] < -IKPI )
7890 {    j4array[3]+=IK2PI;
7891 }
7892 j4valid[3] = true;
7893 for(int ij4 = 0; ij4 < 4; ++ij4)
7894 {
7895 if( !j4valid[ij4] )
7896 {
7897     continue;
7898 }
7899 _ij4[0] = ij4; _ij4[1] = -1;
7900 for(int iij4 = ij4+1; iij4 < 4; ++iij4)
7901 {
7902 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7903 {
7904     j4valid[iij4]=false; _ij4[1] = iij4; break;
7905 }
7906 }
7907 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7908 
7909 rotationfunction0(solutions);
7910 }
7911 }
7912 
7913 }
7914 } while(0);
7915 if( bgotonextstatement )
7916 {
7917 bool bgotonextstatement = true;
7918 do
7919 {
7920 if( 1 )
7921 {
7922 bgotonextstatement=false;
7923 continue; // branch miss [j4]
7924 
7925 }
7926 } while(0);
7927 if( bgotonextstatement )
7928 {
7929 }
7930 }
7931 }
7932 }
7933 }
7934 
7935 } else
7936 {
7937 {
7938 IkReal j4array[1], cj4array[1], sj4array[1];
7939 bool j4valid[1]={false};
7940 _nj4 = 1;
7941 IkReal x1633=((1.51009803921569)*cj8*sj8);
7942 IkReal x1634=cj8*cj8;
7943 IkReal x1635=((1.51009803921569)*x1634);
7944 IkReal x1636=((1.32323529411765)*cj8*cj9*sj8);
7945 IkReal x1637=((3.92156862745098)*cj8*pp*sj8);
7946 IkReal x1638=((1.32323529411765)*cj9*x1634);
7947 IkReal x1639=((3.92156862745098)*pp*x1634);
7948 CheckValue<IkReal> x1640 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1637))+((py*x1635))+((py*x1638))+((px*x1633))+((px*x1636))+(((-1.0)*py*x1639)))),(((px*x1638))+((py*x1637))+(((-1.0)*px*x1639))+(((-1.0)*py*x1633))+((px*x1635))+(((-1.0)*py*x1636))),IKFAST_ATAN2_MAGTHRESH);
7949 if(!x1640.valid){
7950 continue;
7951 }
7952 CheckValue<IkReal> x1641=IKPowWithIntegerCheck(IKsign(((((-1.0)*(1.0)*cj8*(pz*pz)))+((cj8*pp)))),-1);
7953 if(!x1641.valid){
7954 continue;
7955 }
7956 j4array[0]=((-1.5707963267949)+(x1640.value)+(((1.5707963267949)*(x1641.value))));
7957 sj4array[0]=IKsin(j4array[0]);
7958 cj4array[0]=IKcos(j4array[0]);
7959 if( j4array[0] > IKPI )
7960 {
7961     j4array[0]-=IK2PI;
7962 }
7963 else if( j4array[0] < -IKPI )
7964 {    j4array[0]+=IK2PI;
7965 }
7966 j4valid[0] = true;
7967 for(int ij4 = 0; ij4 < 1; ++ij4)
7968 {
7969 if( !j4valid[ij4] )
7970 {
7971     continue;
7972 }
7973 _ij4[0] = ij4; _ij4[1] = -1;
7974 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
7975 {
7976 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
7977 {
7978     j4valid[iij4]=false; _ij4[1] = iij4; break;
7979 }
7980 }
7981 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
7982 {
7983 IkReal evalcond[5];
7984 IkReal x1642=((1.32323529411765)*cj9);
7985 IkReal x1643=((3.92156862745098)*pp);
7986 IkReal x1644=IKsin(j4);
7987 IkReal x1645=(px*x1644);
7988 IkReal x1646=IKcos(j4);
7989 IkReal x1647=((1.0)*x1646);
7990 IkReal x1648=(py*x1647);
7991 IkReal x1649=(px*x1647);
7992 IkReal x1650=(py*x1644);
7993 IkReal x1651=((1.0)*x1650);
7994 IkReal x1652=(cj8*px*x1646);
7995 IkReal x1653=(cj8*x1650);
7996 IkReal x1654=(sj8*x1645);
7997 evalcond[0]=(((sj8*x1643))+(((-1.0)*sj8*x1642))+(((-1.0)*x1648))+(((-1.0)*(1.51009803921569)*sj8))+x1645);
7998 evalcond[1]=(((cj8*x1642))+(((1.51009803921569)*cj8))+(((-1.0)*cj8*x1643))+(((-1.0)*x1651))+(((-1.0)*x1649)));
7999 evalcond[2]=((((-1.0)*sj8*x1649))+(((-1.0)*sj8*x1651))+((cj8*x1645))+(((-1.0)*cj8*x1648)));
8000 evalcond[3]=((-1.51009803921569)+(((-1.0)*sj8*x1648))+x1654+x1652+x1653+(((-1.0)*x1642))+x1643);
8001 evalcond[4]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-0.09)*x1654))+(((0.09)*py*sj8*x1646))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1652))+(((-0.09)*x1653)));
8002 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
8003 {
8004 continue;
8005 }
8006 }
8007 
8008 rotationfunction0(solutions);
8009 }
8010 }
8011 
8012 }
8013 
8014 }
8015 
8016 } else
8017 {
8018 {
8019 IkReal j4array[1], cj4array[1], sj4array[1];
8020 bool j4valid[1]={false};
8021 _nj4 = 1;
8022 IkReal x1655=((1.51009803921569)*cj8*sj8);
8023 IkReal x1656=cj8*cj8;
8024 IkReal x1657=((1.51009803921569)*x1656);
8025 IkReal x1658=((1.32323529411765)*cj8*cj9*sj8);
8026 IkReal x1659=((3.92156862745098)*cj8*pp*sj8);
8027 IkReal x1660=((1.32323529411765)*cj9*x1656);
8028 IkReal x1661=((3.92156862745098)*pp*x1656);
8029 CheckValue<IkReal> x1662=IKPowWithIntegerCheck(IKsign((((cj8*(pz*pz)))+(((-1.0)*cj8*pp)))),-1);
8030 if(!x1662.valid){
8031 continue;
8032 }
8033 CheckValue<IkReal> x1663 = IKatan2WithCheck(IkReal(((((-1.0)*px*x1658))+((py*x1661))+((px*x1659))+(((-1.0)*py*x1660))+(((-1.0)*px*x1655))+(((-1.0)*py*x1657)))),((((-1.0)*px*x1660))+((py*x1658))+(((-1.0)*py*x1659))+((px*x1661))+(((-1.0)*px*x1657))+((py*x1655))),IKFAST_ATAN2_MAGTHRESH);
8034 if(!x1663.valid){
8035 continue;
8036 }
8037 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1662.value)))+(x1663.value));
8038 sj4array[0]=IKsin(j4array[0]);
8039 cj4array[0]=IKcos(j4array[0]);
8040 if( j4array[0] > IKPI )
8041 {
8042     j4array[0]-=IK2PI;
8043 }
8044 else if( j4array[0] < -IKPI )
8045 {    j4array[0]+=IK2PI;
8046 }
8047 j4valid[0] = true;
8048 for(int ij4 = 0; ij4 < 1; ++ij4)
8049 {
8050 if( !j4valid[ij4] )
8051 {
8052     continue;
8053 }
8054 _ij4[0] = ij4; _ij4[1] = -1;
8055 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
8056 {
8057 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8058 {
8059     j4valid[iij4]=false; _ij4[1] = iij4; break;
8060 }
8061 }
8062 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8063 {
8064 IkReal evalcond[5];
8065 IkReal x1664=((1.32323529411765)*cj9);
8066 IkReal x1665=((3.92156862745098)*pp);
8067 IkReal x1666=IKsin(j4);
8068 IkReal x1667=(px*x1666);
8069 IkReal x1668=IKcos(j4);
8070 IkReal x1669=((1.0)*x1668);
8071 IkReal x1670=(py*x1669);
8072 IkReal x1671=(px*x1669);
8073 IkReal x1672=(py*x1666);
8074 IkReal x1673=((1.0)*x1672);
8075 IkReal x1674=(cj8*px*x1668);
8076 IkReal x1675=(cj8*x1672);
8077 IkReal x1676=(sj8*x1667);
8078 evalcond[0]=(((sj8*x1665))+(((-1.0)*sj8*x1664))+(((-1.0)*x1670))+(((-1.0)*(1.51009803921569)*sj8))+x1667);
8079 evalcond[1]=((((-1.0)*cj8*x1665))+(((1.51009803921569)*cj8))+(((-1.0)*x1673))+((cj8*x1664))+(((-1.0)*x1671)));
8080 evalcond[2]=(((cj8*x1667))+(((-1.0)*sj8*x1673))+(((-1.0)*cj8*x1670))+(((-1.0)*sj8*x1671)));
8081 evalcond[3]=((-1.51009803921569)+x1676+x1674+x1675+(((-1.0)*x1664))+(((-1.0)*sj8*x1670))+x1665);
8082 evalcond[4]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((0.09)*py*sj8*x1668))+(((-0.09)*x1674))+(((-0.09)*x1676))+(((-1.0)*(1.0)*pp))+(((-0.09)*x1675)));
8083 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
8084 {
8085 continue;
8086 }
8087 }
8088 
8089 rotationfunction0(solutions);
8090 }
8091 }
8092 
8093 }
8094 
8095 }
8096 
8097 } else
8098 {
8099 {
8100 IkReal j4array[1], cj4array[1], sj4array[1];
8101 bool j4valid[1]={false};
8102 _nj4 = 1;
8103 IkReal x1677=((1.51009803921569)*cj8);
8104 IkReal x1678=((1.51009803921569)*sj8);
8105 IkReal x1679=((1.32323529411765)*cj8*cj9);
8106 IkReal x1680=((3.92156862745098)*cj8*pp);
8107 IkReal x1681=((1.32323529411765)*cj9*sj8);
8108 IkReal x1682=((3.92156862745098)*pp*sj8);
8109 CheckValue<IkReal> x1683=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
8110 if(!x1683.valid){
8111 continue;
8112 }
8113 CheckValue<IkReal> x1684 = IKatan2WithCheck(IkReal((((py*x1677))+(((-1.0)*px*x1682))+((px*x1678))+((py*x1679))+((px*x1681))+(((-1.0)*py*x1680)))),((((-1.0)*py*x1678))+((py*x1682))+(((-1.0)*px*x1680))+((px*x1679))+((px*x1677))+(((-1.0)*py*x1681))),IKFAST_ATAN2_MAGTHRESH);
8114 if(!x1684.valid){
8115 continue;
8116 }
8117 j4array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1683.value)))+(x1684.value));
8118 sj4array[0]=IKsin(j4array[0]);
8119 cj4array[0]=IKcos(j4array[0]);
8120 if( j4array[0] > IKPI )
8121 {
8122     j4array[0]-=IK2PI;
8123 }
8124 else if( j4array[0] < -IKPI )
8125 {    j4array[0]+=IK2PI;
8126 }
8127 j4valid[0] = true;
8128 for(int ij4 = 0; ij4 < 1; ++ij4)
8129 {
8130 if( !j4valid[ij4] )
8131 {
8132     continue;
8133 }
8134 _ij4[0] = ij4; _ij4[1] = -1;
8135 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
8136 {
8137 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8138 {
8139     j4valid[iij4]=false; _ij4[1] = iij4; break;
8140 }
8141 }
8142 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8143 {
8144 IkReal evalcond[5];
8145 IkReal x1685=((1.32323529411765)*cj9);
8146 IkReal x1686=((3.92156862745098)*pp);
8147 IkReal x1687=IKsin(j4);
8148 IkReal x1688=(px*x1687);
8149 IkReal x1689=IKcos(j4);
8150 IkReal x1690=((1.0)*x1689);
8151 IkReal x1691=(py*x1690);
8152 IkReal x1692=(px*x1690);
8153 IkReal x1693=(py*x1687);
8154 IkReal x1694=((1.0)*x1693);
8155 IkReal x1695=(cj8*px*x1689);
8156 IkReal x1696=(cj8*x1693);
8157 IkReal x1697=(sj8*x1688);
8158 evalcond[0]=(x1688+(((-1.0)*x1691))+(((-1.0)*sj8*x1685))+((sj8*x1686))+(((-1.0)*(1.51009803921569)*sj8)));
8159 evalcond[1]=(((cj8*x1685))+(((-1.0)*cj8*x1686))+(((-1.0)*x1692))+(((1.51009803921569)*cj8))+(((-1.0)*x1694)));
8160 evalcond[2]=((((-1.0)*cj8*x1691))+(((-1.0)*sj8*x1692))+((cj8*x1688))+(((-1.0)*sj8*x1694)));
8161 evalcond[3]=((-1.51009803921569)+x1695+x1696+x1697+x1686+(((-1.0)*sj8*x1691))+(((-1.0)*x1685)));
8162 evalcond[4]=((-0.2125)+(((-1.0)*(1.1)*pz))+(((-0.09)*x1697))+(((-0.09)*x1696))+(((-0.09)*x1695))+(((0.09)*py*sj8*x1689))+(((-1.0)*(1.0)*pp)));
8163 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
8164 {
8165 continue;
8166 }
8167 }
8168 
8169 rotationfunction0(solutions);
8170 }
8171 }
8172 
8173 }
8174 
8175 }
8176 
8177 }
8178 } while(0);
8179 if( bgotonextstatement )
8180 {
8181 bool bgotonextstatement = true;
8182 do
8183 {
8184 if( 1 )
8185 {
8186 bgotonextstatement=false;
8187 continue; // branch miss [j4]
8188 
8189 }
8190 } while(0);
8191 if( bgotonextstatement )
8192 {
8193 }
8194 }
8195 }
8196 }
8197 }
8198 }
8199 
8200 } else
8201 {
8202 {
8203 IkReal j4array[1], cj4array[1], sj4array[1];
8204 bool j4valid[1]={false};
8205 _nj4 = 1;
8206 IkReal x1698=((0.045)*sj8);
8207 IkReal x1699=(px*x1698);
8208 IkReal x1700=((0.55)*sj6);
8209 IkReal x1701=((0.045)*cj6*cj8);
8210 IkReal x1702=(py*x1701);
8211 IkReal x1703=((0.3)*cj9*sj6);
8212 IkReal x1704=((0.3)*sj8);
8213 IkReal x1705=(px*sj9);
8214 IkReal x1706=((0.045)*sj6);
8215 IkReal x1707=(py*sj9);
8216 IkReal x1708=((0.3)*cj6*cj8);
8217 IkReal x1709=(py*x1698);
8218 IkReal x1710=(px*x1701);
8219 CheckValue<IkReal> x1711 = IKatan2WithCheck(IkReal(((((-1.0)*x1699))+(((-1.0)*x1704*x1705))+(((-1.0)*cj9*x1702))+((py*x1700))+x1702+((x1706*x1707))+((py*x1703))+((cj9*x1699))+((x1707*x1708)))),(x1709+(((-1.0)*cj9*x1709))+x1710+((px*x1700))+((px*x1703))+((x1705*x1708))+((x1704*x1707))+(((-1.0)*cj9*x1710))+((x1705*x1706))),IKFAST_ATAN2_MAGTHRESH);
8220 if(!x1711.valid){
8221 continue;
8222 }
8223 CheckValue<IkReal> x1712=IKPowWithIntegerCheck(IKsign((pp+(((-1.0)*(1.0)*(pz*pz))))),-1);
8224 if(!x1712.valid){
8225 continue;
8226 }
8227 j4array[0]=((-1.5707963267949)+(x1711.value)+(((1.5707963267949)*(x1712.value))));
8228 sj4array[0]=IKsin(j4array[0]);
8229 cj4array[0]=IKcos(j4array[0]);
8230 if( j4array[0] > IKPI )
8231 {
8232     j4array[0]-=IK2PI;
8233 }
8234 else if( j4array[0] < -IKPI )
8235 {    j4array[0]+=IK2PI;
8236 }
8237 j4valid[0] = true;
8238 for(int ij4 = 0; ij4 < 1; ++ij4)
8239 {
8240 if( !j4valid[ij4] )
8241 {
8242     continue;
8243 }
8244 _ij4[0] = ij4; _ij4[1] = -1;
8245 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
8246 {
8247 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8248 {
8249     j4valid[iij4]=false; _ij4[1] = iij4; break;
8250 }
8251 }
8252 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8253 {
8254 IkReal evalcond[6];
8255 IkReal x1713=((0.3)*cj9);
8256 IkReal x1714=((0.045)*sj9);
8257 IkReal x1715=(cj6*pz);
8258 IkReal x1716=IKcos(j4);
8259 IkReal x1717=(px*sj6*x1716);
8260 IkReal x1718=IKsin(j4);
8261 IkReal x1719=(py*x1718);
8262 IkReal x1720=(sj6*x1719);
8263 IkReal x1721=((0.045)*cj9);
8264 IkReal x1722=(px*x1718);
8265 IkReal x1723=((0.3)*sj9);
8266 IkReal x1724=((1.0)*x1716);
8267 IkReal x1725=(py*x1724);
8268 IkReal x1726=(sj8*x1716);
8269 IkReal x1727=(cj6*cj8);
8270 IkReal x1728=(px*x1724);
8271 IkReal x1729=((1.0)*x1719);
8272 IkReal x1730=(cj8*pz*sj6);
8273 IkReal x1731=(sj8*x1722);
8274 IkReal x1732=((0.09)*cj6*cj8);
8275 evalcond[0]=((-0.55)+(((-1.0)*x1714))+x1715+x1717+(((-1.0)*x1713))+x1720);
8276 evalcond[1]=((((-1.0)*sj8*x1721))+(((-1.0)*x1725))+(((0.045)*sj8))+x1722+((sj8*x1723)));
8277 evalcond[2]=(((cj6*sj8*x1719))+((cj6*px*x1726))+(((-1.0)*(1.0)*pz*sj6*sj8))+(((-1.0)*cj8*x1725))+((cj8*x1722)));
8278 evalcond[3]=((((0.045)*x1727))+((x1723*x1727))+((sj6*x1714))+(((0.55)*sj6))+(((-1.0)*x1721*x1727))+(((-1.0)*x1729))+(((-1.0)*x1728))+((sj6*x1713)));
8279 evalcond[4]=((0.045)+(((-1.0)*x1721))+(((-1.0)*x1727*x1729))+(((-1.0)*x1727*x1728))+(((-1.0)*sj8*x1725))+x1723+x1731+x1730);
8280 evalcond[5]=((-0.2125)+(((0.09)*py*x1726))+(((-0.09)*x1731))+((x1719*x1732))+(((1.1)*x1717))+((px*x1716*x1732))+(((1.1)*x1720))+(((-1.0)*(1.0)*pp))+(((1.1)*x1715))+(((-0.09)*x1730)));
8281 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
8282 {
8283 continue;
8284 }
8285 }
8286 
8287 rotationfunction0(solutions);
8288 }
8289 }
8290 
8291 }
8292 
8293 }
8294 
8295 } else
8296 {
8297 {
8298 IkReal j4array[1], cj4array[1], sj4array[1];
8299 bool j4valid[1]={false};
8300 _nj4 = 1;
8301 IkReal x1733=(cj8*sj6);
8302 IkReal x1734=((0.55)*cj8);
8303 IkReal x1735=((0.55)*cj6);
8304 IkReal x1736=(px*sj8);
8305 IkReal x1737=((0.3)*cj8*cj9);
8306 IkReal x1738=((0.045)*cj8*sj9);
8307 IkReal x1739=(cj6*cj8*pz);
8308 IkReal x1740=((0.3)*cj6*cj9);
8309 IkReal x1741=((0.045)*cj6*sj9);
8310 IkReal x1742=(py*sj8);
8311 CheckValue<IkReal> x1743 = IKatan2WithCheck(IkReal(((((-1.0)*pz*x1736))+((x1735*x1736))+((py*x1739))+(((-1.0)*py*x1738))+((x1736*x1740))+(((-1.0)*py*x1737))+(((-1.0)*py*x1734))+((x1736*x1741)))),((((-1.0)*px*x1738))+((px*x1739))+(((-1.0)*px*x1737))+(((-1.0)*px*x1734))+(((-1.0)*x1740*x1742))+(((-1.0)*x1735*x1742))+(((-1.0)*x1741*x1742))+((pz*x1742))),IKFAST_ATAN2_MAGTHRESH);
8312 if(!x1743.valid){
8313 continue;
8314 }
8315 CheckValue<IkReal> x1744=IKPowWithIntegerCheck(IKsign((((x1733*(pz*pz)))+(((-1.0)*pp*x1733)))),-1);
8316 if(!x1744.valid){
8317 continue;
8318 }
8319 j4array[0]=((-1.5707963267949)+(x1743.value)+(((1.5707963267949)*(x1744.value))));
8320 sj4array[0]=IKsin(j4array[0]);
8321 cj4array[0]=IKcos(j4array[0]);
8322 if( j4array[0] > IKPI )
8323 {
8324     j4array[0]-=IK2PI;
8325 }
8326 else if( j4array[0] < -IKPI )
8327 {    j4array[0]+=IK2PI;
8328 }
8329 j4valid[0] = true;
8330 for(int ij4 = 0; ij4 < 1; ++ij4)
8331 {
8332 if( !j4valid[ij4] )
8333 {
8334     continue;
8335 }
8336 _ij4[0] = ij4; _ij4[1] = -1;
8337 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
8338 {
8339 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8340 {
8341     j4valid[iij4]=false; _ij4[1] = iij4; break;
8342 }
8343 }
8344 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8345 {
8346 IkReal evalcond[6];
8347 IkReal x1745=((0.3)*cj9);
8348 IkReal x1746=((0.045)*sj9);
8349 IkReal x1747=(cj6*pz);
8350 IkReal x1748=IKcos(j4);
8351 IkReal x1749=(px*sj6*x1748);
8352 IkReal x1750=IKsin(j4);
8353 IkReal x1751=(py*x1750);
8354 IkReal x1752=(sj6*x1751);
8355 IkReal x1753=((0.045)*cj9);
8356 IkReal x1754=(px*x1750);
8357 IkReal x1755=((0.3)*sj9);
8358 IkReal x1756=((1.0)*x1748);
8359 IkReal x1757=(py*x1756);
8360 IkReal x1758=(sj8*x1748);
8361 IkReal x1759=(cj6*cj8);
8362 IkReal x1760=(px*x1756);
8363 IkReal x1761=((1.0)*x1751);
8364 IkReal x1762=(cj8*pz*sj6);
8365 IkReal x1763=(sj8*x1754);
8366 IkReal x1764=((0.09)*cj6*cj8);
8367 evalcond[0]=((-0.55)+(((-1.0)*x1746))+(((-1.0)*x1745))+x1747+x1749+x1752);
8368 evalcond[1]=((((0.045)*sj8))+(((-1.0)*sj8*x1753))+((sj8*x1755))+(((-1.0)*x1757))+x1754);
8369 evalcond[2]=(((cj6*sj8*x1751))+(((-1.0)*cj8*x1757))+((cj8*x1754))+(((-1.0)*(1.0)*pz*sj6*sj8))+((cj6*px*x1758)));
8370 evalcond[3]=((((-1.0)*x1761))+(((-1.0)*x1753*x1759))+(((0.55)*sj6))+((x1755*x1759))+((sj6*x1746))+(((0.045)*x1759))+((sj6*x1745))+(((-1.0)*x1760)));
8371 evalcond[4]=((0.045)+(((-1.0)*sj8*x1757))+(((-1.0)*x1759*x1760))+(((-1.0)*x1759*x1761))+x1762+x1763+(((-1.0)*x1753))+x1755);
8372 evalcond[5]=((-0.2125)+(((-0.09)*x1762))+((px*x1748*x1764))+(((1.1)*x1749))+((x1751*x1764))+(((0.09)*py*x1758))+(((-1.0)*(1.0)*pp))+(((1.1)*x1747))+(((1.1)*x1752))+(((-0.09)*x1763)));
8373 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
8374 {
8375 continue;
8376 }
8377 }
8378 
8379 rotationfunction0(solutions);
8380 }
8381 }
8382 
8383 }
8384 
8385 }
8386 
8387 } else
8388 {
8389 {
8390 IkReal j4array[1], cj4array[1], sj4array[1];
8391 bool j4valid[1]={false};
8392 _nj4 = 1;
8393 IkReal x1765=((0.3)*cj9);
8394 IkReal x1766=((0.045)*sj9);
8395 IkReal x1767=((1.0)*cj6*pz);
8396 IkReal x1768=((0.045)*sj6*sj8);
8397 IkReal x1769=(px*x1768);
8398 IkReal x1770=((0.3)*sj6*sj8*sj9);
8399 IkReal x1771=(py*x1768);
8400 CheckValue<IkReal> x1772 = IKatan2WithCheck(IkReal((((py*x1765))+((py*x1766))+((cj9*x1769))+(((0.55)*py))+(((-1.0)*x1769))+(((-1.0)*py*x1767))+(((-1.0)*px*x1770)))),(((px*x1766))+((py*x1770))+(((-1.0)*cj9*x1771))+(((0.55)*px))+(((-1.0)*px*x1767))+((px*x1765))+x1771),IKFAST_ATAN2_MAGTHRESH);
8401 if(!x1772.valid){
8402 continue;
8403 }
8404 CheckValue<IkReal> x1773=IKPowWithIntegerCheck(IKsign(((((-1.0)*(1.0)*sj6*(pz*pz)))+((pp*sj6)))),-1);
8405 if(!x1773.valid){
8406 continue;
8407 }
8408 j4array[0]=((-1.5707963267949)+(x1772.value)+(((1.5707963267949)*(x1773.value))));
8409 sj4array[0]=IKsin(j4array[0]);
8410 cj4array[0]=IKcos(j4array[0]);
8411 if( j4array[0] > IKPI )
8412 {
8413     j4array[0]-=IK2PI;
8414 }
8415 else if( j4array[0] < -IKPI )
8416 {    j4array[0]+=IK2PI;
8417 }
8418 j4valid[0] = true;
8419 for(int ij4 = 0; ij4 < 1; ++ij4)
8420 {
8421 if( !j4valid[ij4] )
8422 {
8423     continue;
8424 }
8425 _ij4[0] = ij4; _ij4[1] = -1;
8426 for(int iij4 = ij4+1; iij4 < 1; ++iij4)
8427 {
8428 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8429 {
8430     j4valid[iij4]=false; _ij4[1] = iij4; break;
8431 }
8432 }
8433 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8434 {
8435 IkReal evalcond[6];
8436 IkReal x1774=((0.3)*cj9);
8437 IkReal x1775=((0.045)*sj9);
8438 IkReal x1776=(cj6*pz);
8439 IkReal x1777=IKcos(j4);
8440 IkReal x1778=(px*sj6*x1777);
8441 IkReal x1779=IKsin(j4);
8442 IkReal x1780=(py*x1779);
8443 IkReal x1781=(sj6*x1780);
8444 IkReal x1782=((0.045)*cj9);
8445 IkReal x1783=(px*x1779);
8446 IkReal x1784=((0.3)*sj9);
8447 IkReal x1785=((1.0)*x1777);
8448 IkReal x1786=(py*x1785);
8449 IkReal x1787=(sj8*x1777);
8450 IkReal x1788=(cj6*cj8);
8451 IkReal x1789=(px*x1785);
8452 IkReal x1790=((1.0)*x1780);
8453 IkReal x1791=(cj8*pz*sj6);
8454 IkReal x1792=(sj8*x1783);
8455 IkReal x1793=((0.09)*cj6*cj8);
8456 evalcond[0]=((-0.55)+x1781+(((-1.0)*x1775))+(((-1.0)*x1774))+x1778+x1776);
8457 evalcond[1]=((((0.045)*sj8))+(((-1.0)*x1786))+x1783+(((-1.0)*sj8*x1782))+((sj8*x1784)));
8458 evalcond[2]=((((-1.0)*cj8*x1786))+((cj8*x1783))+((cj6*px*x1787))+(((-1.0)*(1.0)*pz*sj6*sj8))+((cj6*sj8*x1780)));
8459 evalcond[3]=((((-1.0)*x1790))+((x1784*x1788))+(((-1.0)*x1782*x1788))+(((0.55)*sj6))+((sj6*x1775))+(((-1.0)*x1789))+(((0.045)*x1788))+((sj6*x1774)));
8460 evalcond[4]=((0.045)+(((-1.0)*x1782))+(((-1.0)*x1788*x1790))+x1784+(((-1.0)*x1788*x1789))+(((-1.0)*sj8*x1786))+x1792+x1791);
8461 evalcond[5]=((-0.2125)+(((1.1)*x1776))+(((1.1)*x1778))+((x1780*x1793))+(((1.1)*x1781))+(((-1.0)*(1.0)*pp))+(((0.09)*py*x1787))+(((-0.09)*x1792))+((px*x1777*x1793))+(((-0.09)*x1791)));
8462 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
8463 {
8464 continue;
8465 }
8466 }
8467 
8468 rotationfunction0(solutions);
8469 }
8470 }
8471 
8472 }
8473 
8474 }
8475 }
8476 }
8477 
8478 }
8479 
8480 }
8481 
8482 } else
8483 {
8484 {
8485 IkReal j4array[2], cj4array[2], sj4array[2];
8486 bool j4valid[2]={false};
8487 _nj4 = 2;
8488 CheckValue<IkReal> x1797 = IKatan2WithCheck(IkReal(((-1.0)*(((1.0)*py)))),px,IKFAST_ATAN2_MAGTHRESH);
8489 if(!x1797.valid){
8490 continue;
8491 }
8492 IkReal x1794=((-1.0)*(x1797.value));
8493 IkReal x1795=((0.045)*sj8);
8494 if((((py*py)+(px*px))) < -0.00001)
8495 continue;
8496 CheckValue<IkReal> x1798=IKPowWithIntegerCheck(IKabs(IKsqrt(((py*py)+(px*px)))),-1);
8497 if(!x1798.valid){
8498 continue;
8499 }
8500 if( (((x1798.value)*(((((-1.0)*cj9*x1795))+(((0.3)*sj8*sj9))+x1795)))) < -1-IKFAST_SINCOS_THRESH || (((x1798.value)*(((((-1.0)*cj9*x1795))+(((0.3)*sj8*sj9))+x1795)))) > 1+IKFAST_SINCOS_THRESH )
8501     continue;
8502 IkReal x1796=IKasin(((x1798.value)*(((((-1.0)*cj9*x1795))+(((0.3)*sj8*sj9))+x1795))));
8503 j4array[0]=((((-1.0)*x1796))+x1794);
8504 sj4array[0]=IKsin(j4array[0]);
8505 cj4array[0]=IKcos(j4array[0]);
8506 j4array[1]=((3.14159265358979)+x1794+x1796);
8507 sj4array[1]=IKsin(j4array[1]);
8508 cj4array[1]=IKcos(j4array[1]);
8509 if( j4array[0] > IKPI )
8510 {
8511     j4array[0]-=IK2PI;
8512 }
8513 else if( j4array[0] < -IKPI )
8514 {    j4array[0]+=IK2PI;
8515 }
8516 j4valid[0] = true;
8517 if( j4array[1] > IKPI )
8518 {
8519     j4array[1]-=IK2PI;
8520 }
8521 else if( j4array[1] < -IKPI )
8522 {    j4array[1]+=IK2PI;
8523 }
8524 j4valid[1] = true;
8525 for(int ij4 = 0; ij4 < 2; ++ij4)
8526 {
8527 if( !j4valid[ij4] )
8528 {
8529     continue;
8530 }
8531 _ij4[0] = ij4; _ij4[1] = -1;
8532 for(int iij4 = ij4+1; iij4 < 2; ++iij4)
8533 {
8534 if( j4valid[iij4] && IKabs(cj4array[ij4]-cj4array[iij4]) < IKFAST_SOLUTION_THRESH && IKabs(sj4array[ij4]-sj4array[iij4]) < IKFAST_SOLUTION_THRESH )
8535 {
8536     j4valid[iij4]=false; _ij4[1] = iij4; break;
8537 }
8538 }
8539 j4 = j4array[ij4]; cj4 = cj4array[ij4]; sj4 = sj4array[ij4];
8540 
8541 {
8542 IkReal j6eval[2];
8543 IkReal x1799=(cj4*px);
8544 IkReal x1800=(cj8*pz);
8545 IkReal x1801=(py*sj4);
8546 IkReal x1802=(cj4*cj9*px);
8547 IkReal x1803=(cj4*px*sj9);
8548 IkReal x1804=(cj8*pz*sj9);
8549 IkReal x1805=(cj9*py*sj4);
8550 IkReal x1806=(py*sj4*sj9);
8551 IkReal x1807=((0.045)*x1800);
8552 j6eval[0]=((((-6.66666666666667)*x1802))+(((-1.0)*x1806))+(((-12.2222222222222)*x1799))+(((-1.0)*x1803))+(((-6.66666666666667)*x1804))+(((-1.0)*x1800))+(((-6.66666666666667)*x1805))+(((-12.2222222222222)*x1801))+((cj9*x1800)));
8553 j6eval[1]=IKsign(((((-0.3)*x1804))+(((-0.3)*x1802))+(((-0.045)*x1806))+(((-0.55)*x1799))+((cj9*x1807))+(((-0.3)*x1805))+(((-1.0)*x1807))+(((-0.55)*x1801))+(((-0.045)*x1803))));
8554 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8555 {
8556 {
8557 IkReal j6eval[2];
8558 IkReal x1808=(sj8*(py*py));
8559 IkReal x1809=cj4*cj4;
8560 IkReal x1810=((((-1.0)*x1808*x1809))+((sj8*(pz*pz)))+x1808+((sj8*x1809*(px*px)))+(((2.0)*cj4*px*py*sj4*sj8)));
8561 j6eval[0]=x1810;
8562 j6eval[1]=IKsign(x1810);
8563 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8564 {
8565 {
8566 IkReal j6eval[2];
8567 IkReal x1811=(pz*sj8);
8568 IkReal x1812=(cj9*pz*sj8);
8569 IkReal x1813=(pz*sj8*sj9);
8570 IkReal x1814=(cj8*sj8);
8571 IkReal x1815=(cj4*px*x1814);
8572 IkReal x1816=(py*sj4*x1814);
8573 IkReal x1817=((1.0)*cj9);
8574 IkReal x1818=(cj4*cj8*px*sj8*sj9);
8575 IkReal x1819=(cj8*py*sj4*sj8*sj9);
8576 IkReal x1820=((0.045)*x1815);
8577 IkReal x1821=((0.045)*x1816);
8578 j6eval[0]=((((-1.0)*x1816*x1817))+(((6.66666666666667)*x1818))+(((-1.0)*x1813))+x1815+x1816+(((-1.0)*x1815*x1817))+(((-6.66666666666667)*x1812))+(((-12.2222222222222)*x1811))+(((6.66666666666667)*x1819)));
8579 j6eval[1]=IKsign(((((-1.0)*cj9*x1821))+x1821+x1820+(((0.3)*x1819))+(((-1.0)*cj9*x1820))+(((-0.045)*x1813))+(((0.3)*x1818))+(((-0.55)*x1811))+(((-0.3)*x1812))));
8580 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8581 {
8582 {
8583 IkReal evalcond[4];
8584 bool bgotonextstatement = true;
8585 do
8586 {
8587 IkReal x1822=(((px*sj4))+(((-1.0)*(1.0)*cj4*py)));
8588 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j8))), 6.28318530717959)));
8589 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
8590 evalcond[2]=x1822;
8591 evalcond[3]=x1822;
8592 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
8593 {
8594 bgotonextstatement=false;
8595 {
8596 IkReal j6eval[2];
8597 sj8=0;
8598 cj8=1.0;
8599 j8=0;
8600 IkReal x1823=(cj9*pz);
8601 IkReal x1824=(cj4*px);
8602 IkReal x1825=(pp*pz);
8603 IkReal x1826=(py*sj4);
8604 IkReal x1827=(cj4*cj9*px);
8605 IkReal x1828=(cj4*pp*px);
8606 IkReal x1829=(cj9*py*sj4);
8607 IkReal x1830=(pp*py*sj4);
8608 j6eval[0]=((((-36.2220411120167)*x1830))+(((13.9482024812098)*x1826))+(((5.4333061668025)*x1825))+x1823+(((13.9482024812098)*x1824))+(((-36.2220411120167)*x1828))+(((12.2222222222222)*x1827))+(((12.2222222222222)*x1829))+(((2.92556370551481)*pz)));
8609 j6eval[1]=IKsign(((((-3.92156862745098)*x1830))+(((0.316735294117647)*pz))+(((-3.92156862745098)*x1828))+(((1.32323529411765)*x1827))+(((0.588235294117647)*x1825))+(((1.51009803921569)*x1824))+(((1.32323529411765)*x1829))+(((1.51009803921569)*x1826))+(((0.108264705882353)*x1823))));
8610 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8611 {
8612 {
8613 IkReal j6eval[2];
8614 sj8=0;
8615 cj8=1.0;
8616 j8=0;
8617 IkReal x1831=(cj4*px);
8618 IkReal x1832=(py*sj4);
8619 IkReal x1833=(cj9*pz);
8620 IkReal x1834=(pz*sj9);
8621 IkReal x1835=((1.0)*cj9);
8622 IkReal x1836=(cj4*px*sj9);
8623 IkReal x1837=(py*sj4*sj9);
8624 IkReal x1838=((0.045)*x1831);
8625 IkReal x1839=((0.045)*x1832);
8626 j6eval[0]=((((-1.0)*(12.2222222222222)*pz))+(((-1.0)*x1831*x1835))+(((-1.0)*x1834))+(((-6.66666666666667)*x1833))+x1832+x1831+(((6.66666666666667)*x1837))+(((-1.0)*x1832*x1835))+(((6.66666666666667)*x1836)));
8627 j6eval[1]=IKsign(((((-1.0)*(0.55)*pz))+(((0.3)*x1836))+(((-1.0)*cj9*x1839))+(((-1.0)*cj9*x1838))+(((0.3)*x1837))+(((-0.045)*x1834))+(((-0.3)*x1833))+x1839+x1838));
8628 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8629 {
8630 {
8631 IkReal j6eval[2];
8632 sj8=0;
8633 cj8=1.0;
8634 j8=0;
8635 IkReal x1840=(cj4*px);
8636 IkReal x1841=(cj9*pz);
8637 IkReal x1842=(pp*pz);
8638 IkReal x1843=(py*sj4);
8639 IkReal x1844=(cj4*cj9*px);
8640 IkReal x1845=(cj4*pp*px);
8641 IkReal x1846=(cj9*py*sj4);
8642 IkReal x1847=(pp*py*sj4);
8643 j6eval[0]=((((-5.4333061668025)*x1847))+(((-5.4333061668025)*x1845))+(((-36.2220411120167)*x1842))+(((-2.92556370551481)*x1843))+(((-1.0)*x1846))+(((-1.0)*x1844))+(((13.9482024812098)*pz))+(((-2.92556370551481)*x1840))+(((12.2222222222222)*x1841)));
8644 j6eval[1]=IKsign(((((-0.108264705882353)*x1844))+(((1.51009803921569)*pz))+(((1.32323529411765)*x1841))+(((-0.588235294117647)*x1845))+(((-0.108264705882353)*x1846))+(((-0.316735294117647)*x1843))+(((-0.588235294117647)*x1847))+(((-0.316735294117647)*x1840))+(((-3.92156862745098)*x1842))));
8645 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8646 {
8647 {
8648 IkReal evalcond[1];
8649 bool bgotonextstatement = true;
8650 do
8651 {
8652 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j9), 6.28318530717959)))))+(IKabs(pz)));
8653 if( IKabs(evalcond[0]) < 0.0000010000000000  )
8654 {
8655 bgotonextstatement=false;
8656 {
8657 IkReal j6eval[1];
8658 IkReal x1848=((1.0)*py);
8659 sj8=0;
8660 cj8=1.0;
8661 j8=0;
8662 pz=0;
8663 j9=0;
8664 sj9=0;
8665 cj9=1.0;
8666 pp=((py*py)+(px*px));
8667 npx=(((py*r10))+((px*r00)));
8668 npy=(((py*r11))+((px*r01)));
8669 npz=(((px*r02))+((py*r12)));
8670 rxp0_0=((-1.0)*r20*x1848);
8671 rxp0_1=(px*r20);
8672 rxp1_0=((-1.0)*r21*x1848);
8673 rxp1_1=(px*r21);
8674 rxp2_0=((-1.0)*r22*x1848);
8675 rxp2_1=(px*r22);
8676 j6eval[0]=(((py*sj4))+((cj4*px)));
8677 if( IKabs(j6eval[0]) < 0.0000010000000000  )
8678 {
8679 {
8680 IkReal j6eval[1];
8681 IkReal x1849=((1.0)*py);
8682 sj8=0;
8683 cj8=1.0;
8684 j8=0;
8685 pz=0;
8686 j9=0;
8687 sj9=0;
8688 cj9=1.0;
8689 pp=((py*py)+(px*px));
8690 npx=(((py*r10))+((px*r00)));
8691 npy=(((py*r11))+((px*r01)));
8692 npz=(((px*r02))+((py*r12)));
8693 rxp0_0=((-1.0)*r20*x1849);
8694 rxp0_1=(px*r20);
8695 rxp1_0=((-1.0)*r21*x1849);
8696 rxp1_1=(px*r21);
8697 rxp2_0=((-1.0)*r22*x1849);
8698 rxp2_1=(px*r22);
8699 j6eval[0]=((-1.0)+(((-1.0)*(1.3840830449827)*(px*px)))+(((-1.0)*(1.3840830449827)*(py*py))));
8700 if( IKabs(j6eval[0]) < 0.0000010000000000  )
8701 {
8702 {
8703 IkReal j6eval[2];
8704 IkReal x1850=((1.0)*py);
8705 sj8=0;
8706 cj8=1.0;
8707 j8=0;
8708 pz=0;
8709 j9=0;
8710 sj9=0;
8711 cj9=1.0;
8712 pp=((py*py)+(px*px));
8713 npx=(((py*r10))+((px*r00)));
8714 npy=(((py*r11))+((px*r01)));
8715 npz=(((px*r02))+((py*r12)));
8716 rxp0_0=((-1.0)*r20*x1850);
8717 rxp0_1=(px*r20);
8718 rxp1_0=((-1.0)*r21*x1850);
8719 rxp1_1=(px*r21);
8720 rxp2_0=((-1.0)*r22*x1850);
8721 rxp2_1=(px*r22);
8722 IkReal x1851=(cj4*px);
8723 IkReal x1852=(py*sj4);
8724 j6eval[0]=(x1852+x1851);
8725 j6eval[1]=((((-1.0)*(1.3840830449827)*cj4*(px*px*px)))+(((-1.0)*x1852))+(((-1.0)*x1851))+(((-1.3840830449827)*x1852*(px*px)))+(((-1.0)*(1.3840830449827)*sj4*(py*py*py)))+(((-1.3840830449827)*x1851*(py*py))));
8726 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
8727 {
8728 {
8729 IkReal evalcond[4];
8730 bool bgotonextstatement = true;
8731 do
8732 {
8733 evalcond[0]=((IKabs(py))+(IKabs(px)));
8734 evalcond[1]=-0.85;
8735 evalcond[2]=0;
8736 evalcond[3]=-0.2125;
8737 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
8738 {
8739 bgotonextstatement=false;
8740 {
8741 IkReal j6array[2], cj6array[2], sj6array[2];
8742 bool j6valid[2]={false};
8743 _nj6 = 2;
8744 j6array[0]=2.9927027059803;
8745 sj6array[0]=IKsin(j6array[0]);
8746 cj6array[0]=IKcos(j6array[0]);
8747 j6array[1]=6.13429535957009;
8748 sj6array[1]=IKsin(j6array[1]);
8749 cj6array[1]=IKcos(j6array[1]);
8750 if( j6array[0] > IKPI )
8751 {
8752     j6array[0]-=IK2PI;
8753 }
8754 else if( j6array[0] < -IKPI )
8755 {    j6array[0]+=IK2PI;
8756 }
8757 j6valid[0] = true;
8758 if( j6array[1] > IKPI )
8759 {
8760     j6array[1]-=IK2PI;
8761 }
8762 else if( j6array[1] < -IKPI )
8763 {    j6array[1]+=IK2PI;
8764 }
8765 j6valid[1] = true;
8766 for(int ij6 = 0; ij6 < 2; ++ij6)
8767 {
8768 if( !j6valid[ij6] )
8769 {
8770     continue;
8771 }
8772 _ij6[0] = ij6; _ij6[1] = -1;
8773 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
8774 {
8775 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
8776 {
8777     j6valid[iij6]=false; _ij6[1] = iij6; break;
8778 }
8779 }
8780 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
8781 {
8782 IkReal evalcond[1];
8783 evalcond[0]=((0.85)*(IKsin(j6)));
8784 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
8785 {
8786 continue;
8787 }
8788 }
8789 
8790 rotationfunction0(solutions);
8791 }
8792 }
8793 
8794 }
8795 } while(0);
8796 if( bgotonextstatement )
8797 {
8798 bool bgotonextstatement = true;
8799 do
8800 {
8801 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j4), 6.28318530717959)))))+(IKabs(px)));
8802 evalcond[1]=-0.85;
8803 evalcond[2]=0;
8804 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
8805 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
8806 {
8807 bgotonextstatement=false;
8808 {
8809 IkReal j6eval[1];
8810 IkReal x1853=((1.0)*py);
8811 sj8=0;
8812 cj8=1.0;
8813 j8=0;
8814 pz=0;
8815 j9=0;
8816 sj9=0;
8817 cj9=1.0;
8818 pp=py*py;
8819 npx=(py*r10);
8820 npy=(py*r11);
8821 npz=(py*r12);
8822 rxp0_0=((-1.0)*r20*x1853);
8823 rxp0_1=0;
8824 rxp1_0=((-1.0)*r21*x1853);
8825 rxp1_1=0;
8826 rxp2_0=((-1.0)*r22*x1853);
8827 rxp2_1=0;
8828 px=0;
8829 j4=0;
8830 sj4=0;
8831 cj4=1.0;
8832 rxp0_2=(py*r00);
8833 rxp1_2=(py*r01);
8834 rxp2_2=(py*r02);
8835 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
8836 if( IKabs(j6eval[0]) < 0.0000010000000000  )
8837 {
8838 continue; // no branches [j6]
8839 
8840 } else
8841 {
8842 {
8843 IkReal j6array[2], cj6array[2], sj6array[2];
8844 bool j6valid[2]={false};
8845 _nj6 = 2;
8846 IkReal x1854=py*py;
8847 CheckValue<IkReal> x1856 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x1854)))),((-2.83333333333333)+(((3.92156862745098)*x1854))),IKFAST_ATAN2_MAGTHRESH);
8848 if(!x1856.valid){
8849 continue;
8850 }
8851 IkReal x1855=((-1.0)*(x1856.value));
8852 j6array[0]=x1855;
8853 sj6array[0]=IKsin(j6array[0]);
8854 cj6array[0]=IKcos(j6array[0]);
8855 j6array[1]=((3.14159265358979)+x1855);
8856 sj6array[1]=IKsin(j6array[1]);
8857 cj6array[1]=IKcos(j6array[1]);
8858 if( j6array[0] > IKPI )
8859 {
8860     j6array[0]-=IK2PI;
8861 }
8862 else if( j6array[0] < -IKPI )
8863 {    j6array[0]+=IK2PI;
8864 }
8865 j6valid[0] = true;
8866 if( j6array[1] > IKPI )
8867 {
8868     j6array[1]-=IK2PI;
8869 }
8870 else if( j6array[1] < -IKPI )
8871 {    j6array[1]+=IK2PI;
8872 }
8873 j6valid[1] = true;
8874 for(int ij6 = 0; ij6 < 2; ++ij6)
8875 {
8876 if( !j6valid[ij6] )
8877 {
8878     continue;
8879 }
8880 _ij6[0] = ij6; _ij6[1] = -1;
8881 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
8882 {
8883 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
8884 {
8885     j6valid[iij6]=false; _ij6[1] = iij6; break;
8886 }
8887 }
8888 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
8889 {
8890 IkReal evalcond[1];
8891 evalcond[0]=((0.85)*(IKsin(j6)));
8892 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
8893 {
8894 continue;
8895 }
8896 }
8897 
8898 rotationfunction0(solutions);
8899 }
8900 }
8901 
8902 }
8903 
8904 }
8905 
8906 }
8907 } while(0);
8908 if( bgotonextstatement )
8909 {
8910 bool bgotonextstatement = true;
8911 do
8912 {
8913 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(j4, 6.28318530717959)))))+(IKabs(px)));
8914 evalcond[1]=-0.85;
8915 evalcond[2]=0;
8916 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
8917 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
8918 {
8919 bgotonextstatement=false;
8920 {
8921 IkReal j6eval[1];
8922 IkReal x1857=((1.0)*py);
8923 sj8=0;
8924 cj8=1.0;
8925 j8=0;
8926 pz=0;
8927 j9=0;
8928 sj9=0;
8929 cj9=1.0;
8930 pp=py*py;
8931 npx=(py*r10);
8932 npy=(py*r11);
8933 npz=(py*r12);
8934 rxp0_0=((-1.0)*r20*x1857);
8935 rxp0_1=0;
8936 rxp1_0=((-1.0)*r21*x1857);
8937 rxp1_1=0;
8938 rxp2_0=((-1.0)*r22*x1857);
8939 rxp2_1=0;
8940 px=0;
8941 j4=3.14159265358979;
8942 sj4=0;
8943 cj4=-1.0;
8944 rxp0_2=(py*r00);
8945 rxp1_2=(py*r01);
8946 rxp2_2=(py*r02);
8947 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
8948 if( IKabs(j6eval[0]) < 0.0000010000000000  )
8949 {
8950 continue; // no branches [j6]
8951 
8952 } else
8953 {
8954 {
8955 IkReal j6array[2], cj6array[2], sj6array[2];
8956 bool j6valid[2]={false};
8957 _nj6 = 2;
8958 IkReal x1858=py*py;
8959 CheckValue<IkReal> x1860 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x1858)))),((-2.83333333333333)+(((3.92156862745098)*x1858))),IKFAST_ATAN2_MAGTHRESH);
8960 if(!x1860.valid){
8961 continue;
8962 }
8963 IkReal x1859=((-1.0)*(x1860.value));
8964 j6array[0]=x1859;
8965 sj6array[0]=IKsin(j6array[0]);
8966 cj6array[0]=IKcos(j6array[0]);
8967 j6array[1]=((3.14159265358979)+x1859);
8968 sj6array[1]=IKsin(j6array[1]);
8969 cj6array[1]=IKcos(j6array[1]);
8970 if( j6array[0] > IKPI )
8971 {
8972     j6array[0]-=IK2PI;
8973 }
8974 else if( j6array[0] < -IKPI )
8975 {    j6array[0]+=IK2PI;
8976 }
8977 j6valid[0] = true;
8978 if( j6array[1] > IKPI )
8979 {
8980     j6array[1]-=IK2PI;
8981 }
8982 else if( j6array[1] < -IKPI )
8983 {    j6array[1]+=IK2PI;
8984 }
8985 j6valid[1] = true;
8986 for(int ij6 = 0; ij6 < 2; ++ij6)
8987 {
8988 if( !j6valid[ij6] )
8989 {
8990     continue;
8991 }
8992 _ij6[0] = ij6; _ij6[1] = -1;
8993 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
8994 {
8995 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
8996 {
8997     j6valid[iij6]=false; _ij6[1] = iij6; break;
8998 }
8999 }
9000 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9001 {
9002 IkReal evalcond[1];
9003 evalcond[0]=((0.85)*(IKsin(j6)));
9004 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
9005 {
9006 continue;
9007 }
9008 }
9009 
9010 rotationfunction0(solutions);
9011 }
9012 }
9013 
9014 }
9015 
9016 }
9017 
9018 }
9019 } while(0);
9020 if( bgotonextstatement )
9021 {
9022 bool bgotonextstatement = true;
9023 do
9024 {
9025 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((1.5707963267949)+j4), 6.28318530717959)))))+(IKabs(py)));
9026 evalcond[1]=-0.85;
9027 evalcond[2]=0;
9028 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
9029 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
9030 {
9031 bgotonextstatement=false;
9032 {
9033 IkReal j6eval[1];
9034 IkReal x1861=((1.0)*px);
9035 sj8=0;
9036 cj8=1.0;
9037 j8=0;
9038 pz=0;
9039 j9=0;
9040 sj9=0;
9041 cj9=1.0;
9042 pp=px*px;
9043 npx=(px*r00);
9044 npy=(px*r01);
9045 npz=(px*r02);
9046 rxp0_0=0;
9047 rxp0_1=(px*r20);
9048 rxp1_0=0;
9049 rxp1_1=(px*r21);
9050 rxp2_0=0;
9051 rxp2_1=(px*r22);
9052 py=0;
9053 j4=1.5707963267949;
9054 sj4=1.0;
9055 cj4=0;
9056 rxp0_2=((-1.0)*r10*x1861);
9057 rxp1_2=((-1.0)*r11*x1861);
9058 rxp2_2=((-1.0)*r12*x1861);
9059 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
9060 if( IKabs(j6eval[0]) < 0.0000010000000000  )
9061 {
9062 continue; // no branches [j6]
9063 
9064 } else
9065 {
9066 {
9067 IkReal j6array[2], cj6array[2], sj6array[2];
9068 bool j6valid[2]={false};
9069 _nj6 = 2;
9070 IkReal x1862=px*px;
9071 CheckValue<IkReal> x1864 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x1862)))),((-2.83333333333333)+(((3.92156862745098)*x1862))),IKFAST_ATAN2_MAGTHRESH);
9072 if(!x1864.valid){
9073 continue;
9074 }
9075 IkReal x1863=((-1.0)*(x1864.value));
9076 j6array[0]=x1863;
9077 sj6array[0]=IKsin(j6array[0]);
9078 cj6array[0]=IKcos(j6array[0]);
9079 j6array[1]=((3.14159265358979)+x1863);
9080 sj6array[1]=IKsin(j6array[1]);
9081 cj6array[1]=IKcos(j6array[1]);
9082 if( j6array[0] > IKPI )
9083 {
9084     j6array[0]-=IK2PI;
9085 }
9086 else if( j6array[0] < -IKPI )
9087 {    j6array[0]+=IK2PI;
9088 }
9089 j6valid[0] = true;
9090 if( j6array[1] > IKPI )
9091 {
9092     j6array[1]-=IK2PI;
9093 }
9094 else if( j6array[1] < -IKPI )
9095 {    j6array[1]+=IK2PI;
9096 }
9097 j6valid[1] = true;
9098 for(int ij6 = 0; ij6 < 2; ++ij6)
9099 {
9100 if( !j6valid[ij6] )
9101 {
9102     continue;
9103 }
9104 _ij6[0] = ij6; _ij6[1] = -1;
9105 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
9106 {
9107 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9108 {
9109     j6valid[iij6]=false; _ij6[1] = iij6; break;
9110 }
9111 }
9112 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9113 {
9114 IkReal evalcond[1];
9115 evalcond[0]=((0.85)*(IKsin(j6)));
9116 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
9117 {
9118 continue;
9119 }
9120 }
9121 
9122 rotationfunction0(solutions);
9123 }
9124 }
9125 
9126 }
9127 
9128 }
9129 
9130 }
9131 } while(0);
9132 if( bgotonextstatement )
9133 {
9134 bool bgotonextstatement = true;
9135 do
9136 {
9137 evalcond[0]=((IKabs(py))+(IKabs(((-3.14159265358979)+(IKfmod(((4.71238898038469)+j4), 6.28318530717959))))));
9138 evalcond[1]=-0.85;
9139 evalcond[2]=0;
9140 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
9141 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
9142 {
9143 bgotonextstatement=false;
9144 {
9145 IkReal j6eval[1];
9146 IkReal x1865=((1.0)*px);
9147 sj8=0;
9148 cj8=1.0;
9149 j8=0;
9150 pz=0;
9151 j9=0;
9152 sj9=0;
9153 cj9=1.0;
9154 pp=px*px;
9155 npx=(px*r00);
9156 npy=(px*r01);
9157 npz=(px*r02);
9158 rxp0_0=0;
9159 rxp0_1=(px*r20);
9160 rxp1_0=0;
9161 rxp1_1=(px*r21);
9162 rxp2_0=0;
9163 rxp2_1=(px*r22);
9164 py=0;
9165 j4=-1.5707963267949;
9166 sj4=-1.0;
9167 cj4=0;
9168 rxp0_2=((-1.0)*r10*x1865);
9169 rxp1_2=((-1.0)*r11*x1865);
9170 rxp2_2=((-1.0)*r12*x1865);
9171 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
9172 if( IKabs(j6eval[0]) < 0.0000010000000000  )
9173 {
9174 continue; // no branches [j6]
9175 
9176 } else
9177 {
9178 {
9179 IkReal j6array[2], cj6array[2], sj6array[2];
9180 bool j6valid[2]={false};
9181 _nj6 = 2;
9182 IkReal x1866=px*px;
9183 CheckValue<IkReal> x1868 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x1866)))),((-2.83333333333333)+(((3.92156862745098)*x1866))),IKFAST_ATAN2_MAGTHRESH);
9184 if(!x1868.valid){
9185 continue;
9186 }
9187 IkReal x1867=((-1.0)*(x1868.value));
9188 j6array[0]=x1867;
9189 sj6array[0]=IKsin(j6array[0]);
9190 cj6array[0]=IKcos(j6array[0]);
9191 j6array[1]=((3.14159265358979)+x1867);
9192 sj6array[1]=IKsin(j6array[1]);
9193 cj6array[1]=IKcos(j6array[1]);
9194 if( j6array[0] > IKPI )
9195 {
9196     j6array[0]-=IK2PI;
9197 }
9198 else if( j6array[0] < -IKPI )
9199 {    j6array[0]+=IK2PI;
9200 }
9201 j6valid[0] = true;
9202 if( j6array[1] > IKPI )
9203 {
9204     j6array[1]-=IK2PI;
9205 }
9206 else if( j6array[1] < -IKPI )
9207 {    j6array[1]+=IK2PI;
9208 }
9209 j6valid[1] = true;
9210 for(int ij6 = 0; ij6 < 2; ++ij6)
9211 {
9212 if( !j6valid[ij6] )
9213 {
9214     continue;
9215 }
9216 _ij6[0] = ij6; _ij6[1] = -1;
9217 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
9218 {
9219 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9220 {
9221     j6valid[iij6]=false; _ij6[1] = iij6; break;
9222 }
9223 }
9224 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9225 {
9226 IkReal evalcond[1];
9227 evalcond[0]=((0.85)*(IKsin(j6)));
9228 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
9229 {
9230 continue;
9231 }
9232 }
9233 
9234 rotationfunction0(solutions);
9235 }
9236 }
9237 
9238 }
9239 
9240 }
9241 
9242 }
9243 } while(0);
9244 if( bgotonextstatement )
9245 {
9246 bool bgotonextstatement = true;
9247 do
9248 {
9249 if( 1 )
9250 {
9251 bgotonextstatement=false;
9252 continue; // branch miss [j6]
9253 
9254 }
9255 } while(0);
9256 if( bgotonextstatement )
9257 {
9258 }
9259 }
9260 }
9261 }
9262 }
9263 }
9264 }
9265 
9266 } else
9267 {
9268 {
9269 IkReal j6array[1], cj6array[1], sj6array[1];
9270 bool j6valid[1]={false};
9271 _nj6 = 1;
9272 IkReal x1869=(cj4*px);
9273 IkReal x1870=(py*sj4);
9274 IkReal x1871=px*px;
9275 IkReal x1872=py*py;
9276 CheckValue<IkReal> x1873=IKPowWithIntegerCheck(((((20.0)*x1870))+(((20.0)*x1869))),-1);
9277 if(!x1873.valid){
9278 continue;
9279 }
9280 CheckValue<IkReal> x1874=IKPowWithIntegerCheck(((((-1.0)*(11.7647058823529)*cj4*(px*px*px)))+(((-11.7647058823529)*x1869*x1872))+(((-8.5)*x1869))+(((-8.5)*x1870))+(((-11.7647058823529)*x1870*x1871))+(((-1.0)*(11.7647058823529)*sj4*(py*py*py)))),-1);
9281 if(!x1874.valid){
9282 continue;
9283 }
9284 if( IKabs(((17.0)*(x1873.value))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x1874.value)*(((48.1666666666667)+(((-66.6666666666667)*x1872))+(((-66.6666666666667)*x1871)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((17.0)*(x1873.value)))+IKsqr(((x1874.value)*(((48.1666666666667)+(((-66.6666666666667)*x1872))+(((-66.6666666666667)*x1871))))))-1) <= IKFAST_SINCOS_THRESH )
9285     continue;
9286 j6array[0]=IKatan2(((17.0)*(x1873.value)), ((x1874.value)*(((48.1666666666667)+(((-66.6666666666667)*x1872))+(((-66.6666666666667)*x1871))))));
9287 sj6array[0]=IKsin(j6array[0]);
9288 cj6array[0]=IKcos(j6array[0]);
9289 if( j6array[0] > IKPI )
9290 {
9291     j6array[0]-=IK2PI;
9292 }
9293 else if( j6array[0] < -IKPI )
9294 {    j6array[0]+=IK2PI;
9295 }
9296 j6valid[0] = true;
9297 for(int ij6 = 0; ij6 < 1; ++ij6)
9298 {
9299 if( !j6valid[ij6] )
9300 {
9301     continue;
9302 }
9303 _ij6[0] = ij6; _ij6[1] = -1;
9304 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9305 {
9306 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9307 {
9308     j6valid[iij6]=false; _ij6[1] = iij6; break;
9309 }
9310 }
9311 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9312 {
9313 IkReal evalcond[5];
9314 IkReal x1875=IKsin(j6);
9315 IkReal x1876=(cj4*px);
9316 IkReal x1877=(x1875*x1876);
9317 IkReal x1878=(py*sj4);
9318 IkReal x1879=(x1875*x1878);
9319 IkReal x1880=((1.0)*x1876);
9320 IkReal x1881=((1.0)*x1878);
9321 IkReal x1882=IKcos(j6);
9322 IkReal x1883=px*px;
9323 IkReal x1884=((3.92156862745098)*x1875);
9324 IkReal x1885=((0.588235294117647)*x1882);
9325 IkReal x1886=py*py;
9326 IkReal x1887=((0.09)*x1882);
9327 evalcond[0]=((-0.85)+x1879+x1877);
9328 evalcond[1]=((((-1.0)*x1880))+(((0.85)*x1875))+(((-1.0)*x1881)));
9329 evalcond[2]=((((-1.0)*x1881*x1882))+(((-1.0)*x1880*x1882)));
9330 evalcond[3]=((((-0.425)*x1882))+(((-1.0)*x1885*x1886))+((x1884*x1886))+(((-1.0)*x1883*x1885))+((x1883*x1884))+(((-2.83333333333333)*x1875)));
9331 evalcond[4]=((-0.2125)+(((1.1)*x1879))+(((-1.0)*x1883))+(((-1.0)*x1886))+(((1.1)*x1877))+((x1876*x1887))+((x1878*x1887)));
9332 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9333 {
9334 continue;
9335 }
9336 }
9337 
9338 rotationfunction0(solutions);
9339 }
9340 }
9341 
9342 }
9343 
9344 }
9345 
9346 } else
9347 {
9348 {
9349 IkReal j6array[1], cj6array[1], sj6array[1];
9350 bool j6valid[1]={false};
9351 _nj6 = 1;
9352 IkReal x1888=(cj4*px);
9353 IkReal x1889=(py*sj4);
9354 IkReal x1890=px*px;
9355 IkReal x1891=py*py;
9356 CheckValue<IkReal> x1892=IKPowWithIntegerCheck(((-7.225)+(((-10.0)*x1891))+(((-10.0)*x1890))),-1);
9357 if(!x1892.valid){
9358 continue;
9359 }
9360 if( IKabs(((((1.17647058823529)*x1888))+(((1.17647058823529)*x1889)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x1892.value)*(((((56.6666666666667)*x1889))+(((56.6666666666667)*x1888))+(((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x1888*x1891))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((-78.4313725490196)*x1889*x1890)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x1888))+(((1.17647058823529)*x1889))))+IKsqr(((x1892.value)*(((((56.6666666666667)*x1889))+(((56.6666666666667)*x1888))+(((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x1888*x1891))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((-78.4313725490196)*x1889*x1890))))))-1) <= IKFAST_SINCOS_THRESH )
9361     continue;
9362 j6array[0]=IKatan2(((((1.17647058823529)*x1888))+(((1.17647058823529)*x1889))), ((x1892.value)*(((((56.6666666666667)*x1889))+(((56.6666666666667)*x1888))+(((-1.0)*(78.4313725490196)*sj4*(py*py*py)))+(((-78.4313725490196)*x1888*x1891))+(((-1.0)*(78.4313725490196)*cj4*(px*px*px)))+(((-78.4313725490196)*x1889*x1890))))));
9363 sj6array[0]=IKsin(j6array[0]);
9364 cj6array[0]=IKcos(j6array[0]);
9365 if( j6array[0] > IKPI )
9366 {
9367     j6array[0]-=IK2PI;
9368 }
9369 else if( j6array[0] < -IKPI )
9370 {    j6array[0]+=IK2PI;
9371 }
9372 j6valid[0] = true;
9373 for(int ij6 = 0; ij6 < 1; ++ij6)
9374 {
9375 if( !j6valid[ij6] )
9376 {
9377     continue;
9378 }
9379 _ij6[0] = ij6; _ij6[1] = -1;
9380 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9381 {
9382 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9383 {
9384     j6valid[iij6]=false; _ij6[1] = iij6; break;
9385 }
9386 }
9387 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9388 {
9389 IkReal evalcond[5];
9390 IkReal x1893=IKsin(j6);
9391 IkReal x1894=(cj4*px);
9392 IkReal x1895=(x1893*x1894);
9393 IkReal x1896=(py*sj4);
9394 IkReal x1897=(x1893*x1896);
9395 IkReal x1898=((1.0)*x1894);
9396 IkReal x1899=((1.0)*x1896);
9397 IkReal x1900=IKcos(j6);
9398 IkReal x1901=px*px;
9399 IkReal x1902=((3.92156862745098)*x1893);
9400 IkReal x1903=((0.588235294117647)*x1900);
9401 IkReal x1904=py*py;
9402 IkReal x1905=((0.09)*x1900);
9403 evalcond[0]=((-0.85)+x1897+x1895);
9404 evalcond[1]=((((-1.0)*x1898))+(((0.85)*x1893))+(((-1.0)*x1899)));
9405 evalcond[2]=((((-1.0)*x1898*x1900))+(((-1.0)*x1899*x1900)));
9406 evalcond[3]=((((-1.0)*x1901*x1903))+(((-1.0)*x1903*x1904))+((x1902*x1904))+((x1901*x1902))+(((-0.425)*x1900))+(((-2.83333333333333)*x1893)));
9407 evalcond[4]=((-0.2125)+(((-1.0)*x1901))+(((1.1)*x1895))+(((1.1)*x1897))+(((-1.0)*x1904))+((x1894*x1905))+((x1896*x1905)));
9408 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9409 {
9410 continue;
9411 }
9412 }
9413 
9414 rotationfunction0(solutions);
9415 }
9416 }
9417 
9418 }
9419 
9420 }
9421 
9422 } else
9423 {
9424 {
9425 IkReal j6array[1], cj6array[1], sj6array[1];
9426 bool j6valid[1]={false};
9427 _nj6 = 1;
9428 IkReal x1906=(cj4*px);
9429 IkReal x1907=(py*sj4);
9430 IkReal x1908=px*px;
9431 IkReal x1909=py*py;
9432 IkReal x1910=((1.29411764705882)*(cj4*cj4));
9433 CheckValue<IkReal> x1911=IKPowWithIntegerCheck(((((0.09)*x1907))+(((0.09)*x1906))),-1);
9434 if(!x1911.valid){
9435 continue;
9436 }
9437 if( IKabs(((((1.17647058823529)*x1907))+(((1.17647058823529)*x1906)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x1911.value)*(((0.2125)+(((-1.0)*x1908*x1910))+((x1909*x1910))+x1908+(((-0.294117647058824)*x1909))+(((-2.58823529411765)*cj4*px*x1907)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x1907))+(((1.17647058823529)*x1906))))+IKsqr(((x1911.value)*(((0.2125)+(((-1.0)*x1908*x1910))+((x1909*x1910))+x1908+(((-0.294117647058824)*x1909))+(((-2.58823529411765)*cj4*px*x1907))))))-1) <= IKFAST_SINCOS_THRESH )
9438     continue;
9439 j6array[0]=IKatan2(((((1.17647058823529)*x1907))+(((1.17647058823529)*x1906))), ((x1911.value)*(((0.2125)+(((-1.0)*x1908*x1910))+((x1909*x1910))+x1908+(((-0.294117647058824)*x1909))+(((-2.58823529411765)*cj4*px*x1907))))));
9440 sj6array[0]=IKsin(j6array[0]);
9441 cj6array[0]=IKcos(j6array[0]);
9442 if( j6array[0] > IKPI )
9443 {
9444     j6array[0]-=IK2PI;
9445 }
9446 else if( j6array[0] < -IKPI )
9447 {    j6array[0]+=IK2PI;
9448 }
9449 j6valid[0] = true;
9450 for(int ij6 = 0; ij6 < 1; ++ij6)
9451 {
9452 if( !j6valid[ij6] )
9453 {
9454     continue;
9455 }
9456 _ij6[0] = ij6; _ij6[1] = -1;
9457 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9458 {
9459 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9460 {
9461     j6valid[iij6]=false; _ij6[1] = iij6; break;
9462 }
9463 }
9464 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9465 {
9466 IkReal evalcond[5];
9467 IkReal x1912=IKsin(j6);
9468 IkReal x1913=(cj4*px);
9469 IkReal x1914=(x1912*x1913);
9470 IkReal x1915=(py*sj4);
9471 IkReal x1916=(x1912*x1915);
9472 IkReal x1917=((1.0)*x1913);
9473 IkReal x1918=((1.0)*x1915);
9474 IkReal x1919=IKcos(j6);
9475 IkReal x1920=px*px;
9476 IkReal x1921=((3.92156862745098)*x1912);
9477 IkReal x1922=((0.588235294117647)*x1919);
9478 IkReal x1923=py*py;
9479 IkReal x1924=((0.09)*x1919);
9480 evalcond[0]=((-0.85)+x1914+x1916);
9481 evalcond[1]=((((0.85)*x1912))+(((-1.0)*x1918))+(((-1.0)*x1917)));
9482 evalcond[2]=((((-1.0)*x1917*x1919))+(((-1.0)*x1918*x1919)));
9483 evalcond[3]=((((-1.0)*x1920*x1922))+(((-1.0)*x1922*x1923))+((x1921*x1923))+((x1920*x1921))+(((-0.425)*x1919))+(((-2.83333333333333)*x1912)));
9484 evalcond[4]=((-0.2125)+((x1913*x1924))+(((-1.0)*x1923))+(((1.1)*x1916))+((x1915*x1924))+(((1.1)*x1914))+(((-1.0)*x1920)));
9485 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9486 {
9487 continue;
9488 }
9489 }
9490 
9491 rotationfunction0(solutions);
9492 }
9493 }
9494 
9495 }
9496 
9497 }
9498 
9499 }
9500 } while(0);
9501 if( bgotonextstatement )
9502 {
9503 bool bgotonextstatement = true;
9504 do
9505 {
9506 if( 1 )
9507 {
9508 bgotonextstatement=false;
9509 continue; // branch miss [j6]
9510 
9511 }
9512 } while(0);
9513 if( bgotonextstatement )
9514 {
9515 }
9516 }
9517 }
9518 
9519 } else
9520 {
9521 {
9522 IkReal j6array[1], cj6array[1], sj6array[1];
9523 bool j6valid[1]={false};
9524 _nj6 = 1;
9525 IkReal x1925=(cj4*px);
9526 IkReal x1926=(py*sj4);
9527 IkReal x1927=((0.108264705882353)*cj9);
9528 IkReal x1928=((0.588235294117647)*pp);
9529 IkReal x1929=(cj9*pp);
9530 IkReal x1930=(cj9*sj9);
9531 IkReal x1931=(pp*sj9);
9532 IkReal x1932=cj9*cj9;
9533 IkReal x1933=((1.0)*pz);
9534 CheckValue<IkReal> x1934=IKPowWithIntegerCheck(IKsign(((((1.51009803921569)*pz))+(((1.32323529411765)*cj9*pz))+(((-1.0)*(3.92156862745098)*pp*pz))+(((-1.0)*x1926*x1928))+(((-1.0)*x1926*x1927))+(((-1.0)*x1925*x1927))+(((-0.316735294117647)*x1925))+(((-0.316735294117647)*x1926))+(((-1.0)*x1925*x1928)))),-1);
9535 if(!x1934.valid){
9536 continue;
9537 }
9538 CheckValue<IkReal> x1935 = IKatan2WithCheck(IkReal(((-0.174204411764706)+(((-0.00487191176470588)*x1930))+(((-0.0264705882352941)*x1931))+(pz*pz)+(((-0.176470588235294)*x1929))+(((-1.0)*(0.154566176470588)*cj9))+(((-0.0324794117647059)*x1932))+(((-1.0)*(0.323529411764706)*pp))+(((-1.0)*(0.0142530882352941)*sj9)))),((0.830553921568627)+(((-1.17647058823529)*x1929))+(((-0.176470588235294)*x1931))+(((0.396970588235294)*x1932))+(((-1.0)*x1926*x1933))+(((1.18080882352941)*cj9))+(((-1.0)*(2.15686274509804)*pp))+(((-1.0)*x1925*x1933))+(((0.0679544117647059)*sj9))+(((0.0595455882352941)*x1930))),IKFAST_ATAN2_MAGTHRESH);
9539 if(!x1935.valid){
9540 continue;
9541 }
9542 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x1934.value)))+(x1935.value));
9543 sj6array[0]=IKsin(j6array[0]);
9544 cj6array[0]=IKcos(j6array[0]);
9545 if( j6array[0] > IKPI )
9546 {
9547     j6array[0]-=IK2PI;
9548 }
9549 else if( j6array[0] < -IKPI )
9550 {    j6array[0]+=IK2PI;
9551 }
9552 j6valid[0] = true;
9553 for(int ij6 = 0; ij6 < 1; ++ij6)
9554 {
9555 if( !j6valid[ij6] )
9556 {
9557     continue;
9558 }
9559 _ij6[0] = ij6; _ij6[1] = -1;
9560 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9561 {
9562 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9563 {
9564     j6valid[iij6]=false; _ij6[1] = iij6; break;
9565 }
9566 }
9567 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9568 {
9569 IkReal evalcond[5];
9570 IkReal x1936=((0.3)*cj9);
9571 IkReal x1937=((0.045)*sj9);
9572 IkReal x1938=IKcos(j6);
9573 IkReal x1939=(pz*x1938);
9574 IkReal x1940=IKsin(j6);
9575 IkReal x1941=(cj4*px);
9576 IkReal x1942=(x1940*x1941);
9577 IkReal x1943=(py*sj4);
9578 IkReal x1944=(x1940*x1943);
9579 IkReal x1945=((0.045)*cj9);
9580 IkReal x1946=((0.3)*sj9);
9581 IkReal x1947=(pz*x1940);
9582 IkReal x1948=((1.0)*x1941);
9583 IkReal x1949=((1.0)*x1943);
9584 IkReal x1950=((0.09)*x1938);
9585 evalcond[0]=((-0.55)+x1944+x1942+x1939+(((-1.0)*x1937))+(((-1.0)*x1936)));
9586 evalcond[1]=((0.045)+x1946+x1947+(((-1.0)*x1945))+(((-1.0)*x1938*x1948))+(((-1.0)*x1938*x1949)));
9587 evalcond[2]=((((-1.51009803921569)*x1940))+pz+(((3.92156862745098)*pp*x1940))+(((-0.588235294117647)*pp*x1938))+(((-0.108264705882353)*cj9*x1938))+(((-1.32323529411765)*cj9*x1940))+(((-0.316735294117647)*x1938)));
9588 evalcond[3]=((((-1.0)*x1948))+((x1936*x1940))+(((0.55)*x1940))+(((-1.0)*x1938*x1945))+(((-1.0)*x1949))+(((0.045)*x1938))+((x1937*x1940))+((x1938*x1946)));
9589 evalcond[4]=((-0.2125)+(((1.1)*x1944))+((x1943*x1950))+((x1941*x1950))+(((1.1)*x1942))+(((1.1)*x1939))+(((-0.09)*x1947))+(((-1.0)*(1.0)*pp)));
9590 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9591 {
9592 continue;
9593 }
9594 }
9595 
9596 rotationfunction0(solutions);
9597 }
9598 }
9599 
9600 }
9601 
9602 }
9603 
9604 } else
9605 {
9606 {
9607 IkReal j6array[1], cj6array[1], sj6array[1];
9608 bool j6valid[1]={false};
9609 _nj6 = 1;
9610 IkReal x1951=((0.045)*cj4*px);
9611 IkReal x1952=((0.045)*py*sj4);
9612 IkReal x1953=((0.3)*sj9);
9613 IkReal x1954=(cj4*px);
9614 IkReal x1955=(py*sj4);
9615 IkReal x1956=(cj9*sj9);
9616 IkReal x1957=cj9*cj9;
9617 IkReal x1958=((1.0)*pz);
9618 IkReal x1959=py*py;
9619 IkReal x1960=cj4*cj4;
9620 CheckValue<IkReal> x1961 = IKatan2WithCheck(IkReal(((0.03825)+(((-1.0)*x1955*x1958))+(((0.087975)*x1956))+(((-0.027)*x1957))+(((0.167025)*sj9))+(((-1.0)*(0.01125)*cj9))+(((-1.0)*x1954*x1958)))),((-0.304525)+(((-1.0)*x1959*x1960))+((x1960*(px*px)))+(((-1.0)*(0.0495)*sj9))+(((-0.087975)*x1957))+(((-1.0)*(0.33)*cj9))+(((2.0)*cj4*px*x1955))+(((-0.027)*x1956))+x1959),IKFAST_ATAN2_MAGTHRESH);
9621 if(!x1961.valid){
9622 continue;
9623 }
9624 CheckValue<IkReal> x1962=IKPowWithIntegerCheck(IKsign(((((-1.0)*(0.55)*pz))+((x1953*x1954))+(((-1.0)*cj9*x1952))+((x1953*x1955))+(((-1.0)*cj9*x1951))+x1951+x1952+(((-1.0)*(0.045)*pz*sj9))+(((-1.0)*(0.3)*cj9*pz)))),-1);
9625 if(!x1962.valid){
9626 continue;
9627 }
9628 j6array[0]=((-1.5707963267949)+(x1961.value)+(((1.5707963267949)*(x1962.value))));
9629 sj6array[0]=IKsin(j6array[0]);
9630 cj6array[0]=IKcos(j6array[0]);
9631 if( j6array[0] > IKPI )
9632 {
9633     j6array[0]-=IK2PI;
9634 }
9635 else if( j6array[0] < -IKPI )
9636 {    j6array[0]+=IK2PI;
9637 }
9638 j6valid[0] = true;
9639 for(int ij6 = 0; ij6 < 1; ++ij6)
9640 {
9641 if( !j6valid[ij6] )
9642 {
9643     continue;
9644 }
9645 _ij6[0] = ij6; _ij6[1] = -1;
9646 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9647 {
9648 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9649 {
9650     j6valid[iij6]=false; _ij6[1] = iij6; break;
9651 }
9652 }
9653 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9654 {
9655 IkReal evalcond[5];
9656 IkReal x1963=((0.3)*cj9);
9657 IkReal x1964=((0.045)*sj9);
9658 IkReal x1965=IKcos(j6);
9659 IkReal x1966=(pz*x1965);
9660 IkReal x1967=IKsin(j6);
9661 IkReal x1968=(cj4*px);
9662 IkReal x1969=(x1967*x1968);
9663 IkReal x1970=(py*sj4);
9664 IkReal x1971=(x1967*x1970);
9665 IkReal x1972=((0.045)*cj9);
9666 IkReal x1973=((0.3)*sj9);
9667 IkReal x1974=(pz*x1967);
9668 IkReal x1975=((1.0)*x1968);
9669 IkReal x1976=((1.0)*x1970);
9670 IkReal x1977=((0.09)*x1965);
9671 evalcond[0]=((-0.55)+x1966+x1969+(((-1.0)*x1964))+x1971+(((-1.0)*x1963)));
9672 evalcond[1]=((0.045)+(((-1.0)*x1965*x1976))+(((-1.0)*x1965*x1975))+(((-1.0)*x1972))+x1973+x1974);
9673 evalcond[2]=((((-0.316735294117647)*x1965))+(((-0.588235294117647)*pp*x1965))+pz+(((-1.51009803921569)*x1967))+(((-0.108264705882353)*cj9*x1965))+(((3.92156862745098)*pp*x1967))+(((-1.32323529411765)*cj9*x1967)));
9674 evalcond[3]=((((0.045)*x1965))+((x1964*x1967))+((x1963*x1967))+(((-1.0)*x1976))+(((-1.0)*x1965*x1972))+(((-1.0)*x1975))+(((0.55)*x1967))+((x1965*x1973)));
9675 evalcond[4]=((-0.2125)+(((1.1)*x1966))+(((1.1)*x1969))+(((1.1)*x1971))+(((-0.09)*x1974))+((x1970*x1977))+((x1968*x1977))+(((-1.0)*(1.0)*pp)));
9676 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9677 {
9678 continue;
9679 }
9680 }
9681 
9682 rotationfunction0(solutions);
9683 }
9684 }
9685 
9686 }
9687 
9688 }
9689 
9690 } else
9691 {
9692 {
9693 IkReal j6array[1], cj6array[1], sj6array[1];
9694 bool j6valid[1]={false};
9695 _nj6 = 1;
9696 IkReal x1978=(cj4*px);
9697 IkReal x1979=(py*sj4);
9698 IkReal x1980=((1.32323529411765)*cj9);
9699 IkReal x1981=((3.92156862745098)*pp);
9700 IkReal x1982=((0.0264705882352941)*pp);
9701 IkReal x1983=(cj9*sj9);
9702 IkReal x1984=((0.176470588235294)*pp);
9703 IkReal x1985=cj9*cj9;
9704 CheckValue<IkReal> x1986 = IKatan2WithCheck(IkReal(((-0.0142530882352941)+((pz*x1979))+(((0.00938117647058823)*cj9))+((cj9*x1982))+(((-0.0324794117647059)*x1983))+(((0.00487191176470588)*x1985))+(((-1.0)*x1982))+((pz*x1978))+(((-1.0)*sj9*x1984))+(((-1.0)*(0.0950205882352941)*sj9)))),((0.0679544117647059)+(((0.396970588235294)*x1983))+(((-0.0595455882352941)*x1985))+(pz*pz)+((cj9*x1984))+(((-1.0)*(0.00840882352941177)*cj9))+(((0.453029411764706)*sj9))+(((-1.0)*x1984))+(((-1.0)*(1.17647058823529)*pp*sj9))),IKFAST_ATAN2_MAGTHRESH);
9705 if(!x1986.valid){
9706 continue;
9707 }
9708 CheckValue<IkReal> x1987=IKPowWithIntegerCheck(IKsign(((((-1.0)*x1978*x1981))+(((1.51009803921569)*x1978))+(((1.51009803921569)*x1979))+(((0.316735294117647)*pz))+(((0.108264705882353)*cj9*pz))+(((0.588235294117647)*pp*pz))+((x1978*x1980))+(((-1.0)*x1979*x1981))+((x1979*x1980)))),-1);
9709 if(!x1987.valid){
9710 continue;
9711 }
9712 j6array[0]=((-1.5707963267949)+(x1986.value)+(((1.5707963267949)*(x1987.value))));
9713 sj6array[0]=IKsin(j6array[0]);
9714 cj6array[0]=IKcos(j6array[0]);
9715 if( j6array[0] > IKPI )
9716 {
9717     j6array[0]-=IK2PI;
9718 }
9719 else if( j6array[0] < -IKPI )
9720 {    j6array[0]+=IK2PI;
9721 }
9722 j6valid[0] = true;
9723 for(int ij6 = 0; ij6 < 1; ++ij6)
9724 {
9725 if( !j6valid[ij6] )
9726 {
9727     continue;
9728 }
9729 _ij6[0] = ij6; _ij6[1] = -1;
9730 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
9731 {
9732 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9733 {
9734     j6valid[iij6]=false; _ij6[1] = iij6; break;
9735 }
9736 }
9737 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9738 {
9739 IkReal evalcond[5];
9740 IkReal x1988=((0.3)*cj9);
9741 IkReal x1989=((0.045)*sj9);
9742 IkReal x1990=IKcos(j6);
9743 IkReal x1991=(pz*x1990);
9744 IkReal x1992=IKsin(j6);
9745 IkReal x1993=(cj4*px);
9746 IkReal x1994=(x1992*x1993);
9747 IkReal x1995=(py*sj4);
9748 IkReal x1996=(x1992*x1995);
9749 IkReal x1997=((0.045)*cj9);
9750 IkReal x1998=((0.3)*sj9);
9751 IkReal x1999=(pz*x1992);
9752 IkReal x2000=((1.0)*x1993);
9753 IkReal x2001=((1.0)*x1995);
9754 IkReal x2002=((0.09)*x1990);
9755 evalcond[0]=((-0.55)+(((-1.0)*x1989))+x1996+x1994+x1991+(((-1.0)*x1988)));
9756 evalcond[1]=((0.045)+(((-1.0)*x1990*x2000))+(((-1.0)*x1997))+x1998+x1999+(((-1.0)*x1990*x2001)));
9757 evalcond[2]=((((-0.108264705882353)*cj9*x1990))+(((-0.588235294117647)*pp*x1990))+pz+(((-1.51009803921569)*x1992))+(((-1.32323529411765)*cj9*x1992))+(((3.92156862745098)*pp*x1992))+(((-0.316735294117647)*x1990)));
9758 evalcond[3]=((((0.045)*x1990))+(((-1.0)*x2001))+(((0.55)*x1992))+(((-1.0)*x2000))+(((-1.0)*x1990*x1997))+((x1990*x1998))+((x1989*x1992))+((x1988*x1992)));
9759 evalcond[4]=((-0.2125)+(((1.1)*x1996))+(((1.1)*x1991))+((x1995*x2002))+(((-0.09)*x1999))+((x1993*x2002))+(((-1.0)*(1.0)*pp))+(((1.1)*x1994)));
9760 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
9761 {
9762 continue;
9763 }
9764 }
9765 
9766 rotationfunction0(solutions);
9767 }
9768 }
9769 
9770 }
9771 
9772 }
9773 
9774 }
9775 } while(0);
9776 if( bgotonextstatement )
9777 {
9778 bool bgotonextstatement = true;
9779 do
9780 {
9781 IkReal x2003=(px*sj4);
9782 IkReal x2004=(cj4*py);
9783 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j8)))), 6.28318530717959)));
9784 evalcond[1]=((0.39655)+(((0.0765)*sj9))+(((0.32595)*cj9))+(((-1.0)*(1.0)*pp)));
9785 evalcond[2]=(x2003+(((-1.0)*x2004)));
9786 evalcond[3]=((((-1.0)*x2003))+x2004);
9787 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
9788 {
9789 bgotonextstatement=false;
9790 {
9791 IkReal j6eval[2];
9792 sj8=0;
9793 cj8=-1.0;
9794 j8=3.14159265358979;
9795 IkReal x2005=py*py;
9796 IkReal x2006=cj4*cj4;
9797 IkReal x2007=(x2005+(((-1.0)*x2005*x2006))+(pz*pz)+(((2.0)*cj4*px*py*sj4))+((x2006*(px*px))));
9798 j6eval[0]=x2007;
9799 j6eval[1]=IKsign(x2007);
9800 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
9801 {
9802 {
9803 IkReal j6eval[2];
9804 sj8=0;
9805 cj8=-1.0;
9806 j8=3.14159265358979;
9807 IkReal x2008=(cj4*px);
9808 IkReal x2009=(cj9*pz);
9809 IkReal x2010=(py*sj4);
9810 IkReal x2011=(pz*sj9);
9811 IkReal x2012=(cj4*px*sj9);
9812 IkReal x2013=(py*sj4*sj9);
9813 IkReal x2014=((0.045)*x2008);
9814 IkReal x2015=((0.045)*x2010);
9815 j6eval[0]=(((cj9*x2010))+(((-1.0)*x2010))+((cj9*x2008))+(((-1.0)*(12.2222222222222)*pz))+(((-1.0)*x2011))+(((-6.66666666666667)*x2009))+(((-6.66666666666667)*x2013))+(((-1.0)*x2008))+(((-6.66666666666667)*x2012)));
9816 j6eval[1]=IKsign((((cj9*x2014))+(((-0.3)*x2012))+(((-0.3)*x2013))+(((-1.0)*(0.55)*pz))+(((-0.045)*x2011))+((cj9*x2015))+(((-1.0)*x2014))+(((-1.0)*x2015))+(((-0.3)*x2009))));
9817 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
9818 {
9819 {
9820 IkReal j6eval[2];
9821 sj8=0;
9822 cj8=-1.0;
9823 j8=3.14159265358979;
9824 IkReal x2016=(cj4*px);
9825 IkReal x2017=(cj9*pz);
9826 IkReal x2018=(pp*pz);
9827 IkReal x2019=(py*sj4);
9828 IkReal x2020=(cj4*cj9*px);
9829 IkReal x2021=(cj4*pp*px);
9830 IkReal x2022=(cj9*py*sj4);
9831 IkReal x2023=(pp*py*sj4);
9832 j6eval[0]=((((-2.92556370551481)*x2016))+(((-1.0)*(13.9482024812098)*pz))+(((-5.4333061668025)*x2021))+(((-1.0)*x2022))+(((-12.2222222222222)*x2017))+(((-5.4333061668025)*x2023))+(((-2.92556370551481)*x2019))+(((36.2220411120167)*x2018))+(((-1.0)*x2020)));
9833 j6eval[1]=IKsign(((((-0.588235294117647)*x2021))+(((-1.32323529411765)*x2017))+(((3.92156862745098)*x2018))+(((-0.316735294117647)*x2019))+(((-1.0)*(1.51009803921569)*pz))+(((-0.108264705882353)*x2020))+(((-0.108264705882353)*x2022))+(((-0.588235294117647)*x2023))+(((-0.316735294117647)*x2016))));
9834 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
9835 {
9836 {
9837 IkReal evalcond[1];
9838 bool bgotonextstatement = true;
9839 do
9840 {
9841 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j9), 6.28318530717959)))))+(IKabs(pz)));
9842 if( IKabs(evalcond[0]) < 0.0000010000000000  )
9843 {
9844 bgotonextstatement=false;
9845 {
9846 IkReal j6eval[1];
9847 IkReal x2024=((1.0)*py);
9848 sj8=0;
9849 cj8=-1.0;
9850 j8=3.14159265358979;
9851 pz=0;
9852 j9=0;
9853 sj9=0;
9854 cj9=1.0;
9855 pp=((py*py)+(px*px));
9856 npx=(((py*r10))+((px*r00)));
9857 npy=(((py*r11))+((px*r01)));
9858 npz=(((px*r02))+((py*r12)));
9859 rxp0_0=((-1.0)*r20*x2024);
9860 rxp0_1=(px*r20);
9861 rxp1_0=((-1.0)*r21*x2024);
9862 rxp1_1=(px*r21);
9863 rxp2_0=((-1.0)*r22*x2024);
9864 rxp2_1=(px*r22);
9865 j6eval[0]=((((-1.0)*(1.0)*cj4*px))+(((-1.0)*(1.0)*py*sj4)));
9866 if( IKabs(j6eval[0]) < 0.0000010000000000  )
9867 {
9868 {
9869 IkReal j6eval[1];
9870 IkReal x2025=((1.0)*py);
9871 sj8=0;
9872 cj8=-1.0;
9873 j8=3.14159265358979;
9874 pz=0;
9875 j9=0;
9876 sj9=0;
9877 cj9=1.0;
9878 pp=((py*py)+(px*px));
9879 npx=(((py*r10))+((px*r00)));
9880 npy=(((py*r11))+((px*r01)));
9881 npz=(((px*r02))+((py*r12)));
9882 rxp0_0=((-1.0)*r20*x2025);
9883 rxp0_1=(px*r20);
9884 rxp1_0=((-1.0)*r21*x2025);
9885 rxp1_1=(px*r21);
9886 rxp2_0=((-1.0)*r22*x2025);
9887 rxp2_1=(px*r22);
9888 j6eval[0]=((-1.0)+(((-1.0)*(1.3840830449827)*(px*px)))+(((-1.0)*(1.3840830449827)*(py*py))));
9889 if( IKabs(j6eval[0]) < 0.0000010000000000  )
9890 {
9891 {
9892 IkReal j6eval[2];
9893 IkReal x2026=((1.0)*py);
9894 sj8=0;
9895 cj8=-1.0;
9896 j8=3.14159265358979;
9897 pz=0;
9898 j9=0;
9899 sj9=0;
9900 cj9=1.0;
9901 pp=((py*py)+(px*px));
9902 npx=(((py*r10))+((px*r00)));
9903 npy=(((py*r11))+((px*r01)));
9904 npz=(((px*r02))+((py*r12)));
9905 rxp0_0=((-1.0)*r20*x2026);
9906 rxp0_1=(px*r20);
9907 rxp1_0=((-1.0)*r21*x2026);
9908 rxp1_1=(px*r21);
9909 rxp2_0=((-1.0)*r22*x2026);
9910 rxp2_1=(px*r22);
9911 IkReal x2027=(cj4*px);
9912 IkReal x2028=(py*sj4);
9913 j6eval[0]=(x2027+x2028);
9914 j6eval[1]=((((-1.0)*(1.3840830449827)*cj4*(px*px*px)))+(((-1.0)*x2028))+(((-1.3840830449827)*x2027*(py*py)))+(((-1.0)*(1.3840830449827)*sj4*(py*py*py)))+(((-1.0)*x2027))+(((-1.3840830449827)*x2028*(px*px))));
9915 if( IKabs(j6eval[0]) < 0.0000010000000000  || IKabs(j6eval[1]) < 0.0000010000000000  )
9916 {
9917 {
9918 IkReal evalcond[4];
9919 bool bgotonextstatement = true;
9920 do
9921 {
9922 evalcond[0]=((IKabs(py))+(IKabs(px)));
9923 evalcond[1]=-0.85;
9924 evalcond[2]=0;
9925 evalcond[3]=-0.2125;
9926 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
9927 {
9928 bgotonextstatement=false;
9929 {
9930 IkReal j6array[2], cj6array[2], sj6array[2];
9931 bool j6valid[2]={false};
9932 _nj6 = 2;
9933 j6array[0]=0.148889947609497;
9934 sj6array[0]=IKsin(j6array[0]);
9935 cj6array[0]=IKcos(j6array[0]);
9936 j6array[1]=3.29048260119929;
9937 sj6array[1]=IKsin(j6array[1]);
9938 cj6array[1]=IKcos(j6array[1]);
9939 if( j6array[0] > IKPI )
9940 {
9941     j6array[0]-=IK2PI;
9942 }
9943 else if( j6array[0] < -IKPI )
9944 {    j6array[0]+=IK2PI;
9945 }
9946 j6valid[0] = true;
9947 if( j6array[1] > IKPI )
9948 {
9949     j6array[1]-=IK2PI;
9950 }
9951 else if( j6array[1] < -IKPI )
9952 {    j6array[1]+=IK2PI;
9953 }
9954 j6valid[1] = true;
9955 for(int ij6 = 0; ij6 < 2; ++ij6)
9956 {
9957 if( !j6valid[ij6] )
9958 {
9959     continue;
9960 }
9961 _ij6[0] = ij6; _ij6[1] = -1;
9962 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
9963 {
9964 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
9965 {
9966     j6valid[iij6]=false; _ij6[1] = iij6; break;
9967 }
9968 }
9969 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
9970 {
9971 IkReal evalcond[1];
9972 evalcond[0]=((0.85)*(IKsin(j6)));
9973 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
9974 {
9975 continue;
9976 }
9977 }
9978 
9979 rotationfunction0(solutions);
9980 }
9981 }
9982 
9983 }
9984 } while(0);
9985 if( bgotonextstatement )
9986 {
9987 bool bgotonextstatement = true;
9988 do
9989 {
9990 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((3.14159265358979)+j4), 6.28318530717959)))))+(IKabs(px)));
9991 evalcond[1]=-0.85;
9992 evalcond[2]=0;
9993 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
9994 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
9995 {
9996 bgotonextstatement=false;
9997 {
9998 IkReal j6eval[1];
9999 IkReal x2029=((1.0)*py);
10000 sj8=0;
10001 cj8=-1.0;
10002 j8=3.14159265358979;
10003 pz=0;
10004 j9=0;
10005 sj9=0;
10006 cj9=1.0;
10007 pp=py*py;
10008 npx=(py*r10);
10009 npy=(py*r11);
10010 npz=(py*r12);
10011 rxp0_0=((-1.0)*r20*x2029);
10012 rxp0_1=0;
10013 rxp1_0=((-1.0)*r21*x2029);
10014 rxp1_1=0;
10015 rxp2_0=((-1.0)*r22*x2029);
10016 rxp2_1=0;
10017 px=0;
10018 j4=0;
10019 sj4=0;
10020 cj4=1.0;
10021 rxp0_2=(py*r00);
10022 rxp1_2=(py*r01);
10023 rxp2_2=(py*r02);
10024 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
10025 if( IKabs(j6eval[0]) < 0.0000010000000000  )
10026 {
10027 continue; // no branches [j6]
10028 
10029 } else
10030 {
10031 {
10032 IkReal j6array[2], cj6array[2], sj6array[2];
10033 bool j6valid[2]={false};
10034 _nj6 = 2;
10035 IkReal x2030=py*py;
10036 CheckValue<IkReal> x2032 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x2030)))),((2.83333333333333)+(((-3.92156862745098)*x2030))),IKFAST_ATAN2_MAGTHRESH);
10037 if(!x2032.valid){
10038 continue;
10039 }
10040 IkReal x2031=((-1.0)*(x2032.value));
10041 j6array[0]=x2031;
10042 sj6array[0]=IKsin(j6array[0]);
10043 cj6array[0]=IKcos(j6array[0]);
10044 j6array[1]=((3.14159265358979)+x2031);
10045 sj6array[1]=IKsin(j6array[1]);
10046 cj6array[1]=IKcos(j6array[1]);
10047 if( j6array[0] > IKPI )
10048 {
10049     j6array[0]-=IK2PI;
10050 }
10051 else if( j6array[0] < -IKPI )
10052 {    j6array[0]+=IK2PI;
10053 }
10054 j6valid[0] = true;
10055 if( j6array[1] > IKPI )
10056 {
10057     j6array[1]-=IK2PI;
10058 }
10059 else if( j6array[1] < -IKPI )
10060 {    j6array[1]+=IK2PI;
10061 }
10062 j6valid[1] = true;
10063 for(int ij6 = 0; ij6 < 2; ++ij6)
10064 {
10065 if( !j6valid[ij6] )
10066 {
10067     continue;
10068 }
10069 _ij6[0] = ij6; _ij6[1] = -1;
10070 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
10071 {
10072 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10073 {
10074     j6valid[iij6]=false; _ij6[1] = iij6; break;
10075 }
10076 }
10077 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10078 {
10079 IkReal evalcond[1];
10080 evalcond[0]=((0.85)*(IKsin(j6)));
10081 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
10082 {
10083 continue;
10084 }
10085 }
10086 
10087 rotationfunction0(solutions);
10088 }
10089 }
10090 
10091 }
10092 
10093 }
10094 
10095 }
10096 } while(0);
10097 if( bgotonextstatement )
10098 {
10099 bool bgotonextstatement = true;
10100 do
10101 {
10102 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(j4, 6.28318530717959)))))+(IKabs(px)));
10103 evalcond[1]=-0.85;
10104 evalcond[2]=0;
10105 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(py*py))));
10106 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
10107 {
10108 bgotonextstatement=false;
10109 {
10110 IkReal j6eval[1];
10111 IkReal x2033=((1.0)*py);
10112 sj8=0;
10113 cj8=-1.0;
10114 j8=3.14159265358979;
10115 pz=0;
10116 j9=0;
10117 sj9=0;
10118 cj9=1.0;
10119 pp=py*py;
10120 npx=(py*r10);
10121 npy=(py*r11);
10122 npz=(py*r12);
10123 rxp0_0=((-1.0)*r20*x2033);
10124 rxp0_1=0;
10125 rxp1_0=((-1.0)*r21*x2033);
10126 rxp1_1=0;
10127 rxp2_0=((-1.0)*r22*x2033);
10128 rxp2_1=0;
10129 px=0;
10130 j4=3.14159265358979;
10131 sj4=0;
10132 cj4=-1.0;
10133 rxp0_2=(py*r00);
10134 rxp1_2=(py*r01);
10135 rxp2_2=(py*r02);
10136 j6eval[0]=((1.0)+(((1.91568587540858)*(py*py*py*py)))+(((-1.0)*(2.64633970947792)*(py*py))));
10137 if( IKabs(j6eval[0]) < 0.0000010000000000  )
10138 {
10139 continue; // no branches [j6]
10140 
10141 } else
10142 {
10143 {
10144 IkReal j6array[2], cj6array[2], sj6array[2];
10145 bool j6valid[2]={false};
10146 _nj6 = 2;
10147 IkReal x2034=py*py;
10148 CheckValue<IkReal> x2036 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x2034)))),((2.83333333333333)+(((-3.92156862745098)*x2034))),IKFAST_ATAN2_MAGTHRESH);
10149 if(!x2036.valid){
10150 continue;
10151 }
10152 IkReal x2035=((-1.0)*(x2036.value));
10153 j6array[0]=x2035;
10154 sj6array[0]=IKsin(j6array[0]);
10155 cj6array[0]=IKcos(j6array[0]);
10156 j6array[1]=((3.14159265358979)+x2035);
10157 sj6array[1]=IKsin(j6array[1]);
10158 cj6array[1]=IKcos(j6array[1]);
10159 if( j6array[0] > IKPI )
10160 {
10161     j6array[0]-=IK2PI;
10162 }
10163 else if( j6array[0] < -IKPI )
10164 {    j6array[0]+=IK2PI;
10165 }
10166 j6valid[0] = true;
10167 if( j6array[1] > IKPI )
10168 {
10169     j6array[1]-=IK2PI;
10170 }
10171 else if( j6array[1] < -IKPI )
10172 {    j6array[1]+=IK2PI;
10173 }
10174 j6valid[1] = true;
10175 for(int ij6 = 0; ij6 < 2; ++ij6)
10176 {
10177 if( !j6valid[ij6] )
10178 {
10179     continue;
10180 }
10181 _ij6[0] = ij6; _ij6[1] = -1;
10182 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
10183 {
10184 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10185 {
10186     j6valid[iij6]=false; _ij6[1] = iij6; break;
10187 }
10188 }
10189 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10190 {
10191 IkReal evalcond[1];
10192 evalcond[0]=((0.85)*(IKsin(j6)));
10193 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
10194 {
10195 continue;
10196 }
10197 }
10198 
10199 rotationfunction0(solutions);
10200 }
10201 }
10202 
10203 }
10204 
10205 }
10206 
10207 }
10208 } while(0);
10209 if( bgotonextstatement )
10210 {
10211 bool bgotonextstatement = true;
10212 do
10213 {
10214 evalcond[0]=((IKabs(((-3.14159265358979)+(IKfmod(((1.5707963267949)+j4), 6.28318530717959)))))+(IKabs(py)));
10215 evalcond[1]=-0.85;
10216 evalcond[2]=0;
10217 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
10218 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
10219 {
10220 bgotonextstatement=false;
10221 {
10222 IkReal j6eval[1];
10223 IkReal x2037=((1.0)*px);
10224 sj8=0;
10225 cj8=-1.0;
10226 j8=3.14159265358979;
10227 pz=0;
10228 j9=0;
10229 sj9=0;
10230 cj9=1.0;
10231 pp=px*px;
10232 npx=(px*r00);
10233 npy=(px*r01);
10234 npz=(px*r02);
10235 rxp0_0=0;
10236 rxp0_1=(px*r20);
10237 rxp1_0=0;
10238 rxp1_1=(px*r21);
10239 rxp2_0=0;
10240 rxp2_1=(px*r22);
10241 py=0;
10242 j4=1.5707963267949;
10243 sj4=1.0;
10244 cj4=0;
10245 rxp0_2=((-1.0)*r10*x2037);
10246 rxp1_2=((-1.0)*r11*x2037);
10247 rxp2_2=((-1.0)*r12*x2037);
10248 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
10249 if( IKabs(j6eval[0]) < 0.0000010000000000  )
10250 {
10251 continue; // no branches [j6]
10252 
10253 } else
10254 {
10255 {
10256 IkReal j6array[2], cj6array[2], sj6array[2];
10257 bool j6valid[2]={false};
10258 _nj6 = 2;
10259 IkReal x2038=px*px;
10260 CheckValue<IkReal> x2040 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x2038)))),((2.83333333333333)+(((-3.92156862745098)*x2038))),IKFAST_ATAN2_MAGTHRESH);
10261 if(!x2040.valid){
10262 continue;
10263 }
10264 IkReal x2039=((-1.0)*(x2040.value));
10265 j6array[0]=x2039;
10266 sj6array[0]=IKsin(j6array[0]);
10267 cj6array[0]=IKcos(j6array[0]);
10268 j6array[1]=((3.14159265358979)+x2039);
10269 sj6array[1]=IKsin(j6array[1]);
10270 cj6array[1]=IKcos(j6array[1]);
10271 if( j6array[0] > IKPI )
10272 {
10273     j6array[0]-=IK2PI;
10274 }
10275 else if( j6array[0] < -IKPI )
10276 {    j6array[0]+=IK2PI;
10277 }
10278 j6valid[0] = true;
10279 if( j6array[1] > IKPI )
10280 {
10281     j6array[1]-=IK2PI;
10282 }
10283 else if( j6array[1] < -IKPI )
10284 {    j6array[1]+=IK2PI;
10285 }
10286 j6valid[1] = true;
10287 for(int ij6 = 0; ij6 < 2; ++ij6)
10288 {
10289 if( !j6valid[ij6] )
10290 {
10291     continue;
10292 }
10293 _ij6[0] = ij6; _ij6[1] = -1;
10294 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
10295 {
10296 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10297 {
10298     j6valid[iij6]=false; _ij6[1] = iij6; break;
10299 }
10300 }
10301 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10302 {
10303 IkReal evalcond[1];
10304 evalcond[0]=((0.85)*(IKsin(j6)));
10305 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
10306 {
10307 continue;
10308 }
10309 }
10310 
10311 rotationfunction0(solutions);
10312 }
10313 }
10314 
10315 }
10316 
10317 }
10318 
10319 }
10320 } while(0);
10321 if( bgotonextstatement )
10322 {
10323 bool bgotonextstatement = true;
10324 do
10325 {
10326 evalcond[0]=((IKabs(py))+(IKabs(((-3.14159265358979)+(IKfmod(((4.71238898038469)+j4), 6.28318530717959))))));
10327 evalcond[1]=-0.85;
10328 evalcond[2]=0;
10329 evalcond[3]=((-0.2125)+(((-1.0)*(1.0)*(px*px))));
10330 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  )
10331 {
10332 bgotonextstatement=false;
10333 {
10334 IkReal j6eval[1];
10335 IkReal x2041=((1.0)*px);
10336 sj8=0;
10337 cj8=-1.0;
10338 j8=3.14159265358979;
10339 pz=0;
10340 j9=0;
10341 sj9=0;
10342 cj9=1.0;
10343 pp=px*px;
10344 npx=(px*r00);
10345 npy=(px*r01);
10346 npz=(px*r02);
10347 rxp0_0=0;
10348 rxp0_1=(px*r20);
10349 rxp1_0=0;
10350 rxp1_1=(px*r21);
10351 rxp2_0=0;
10352 rxp2_1=(px*r22);
10353 py=0;
10354 j4=-1.5707963267949;
10355 sj4=-1.0;
10356 cj4=0;
10357 rxp0_2=((-1.0)*r10*x2041);
10358 rxp1_2=((-1.0)*r11*x2041);
10359 rxp2_2=((-1.0)*r12*x2041);
10360 j6eval[0]=((1.0)+(((1.91568587540858)*(px*px*px*px)))+(((-1.0)*(2.64633970947792)*(px*px))));
10361 if( IKabs(j6eval[0]) < 0.0000010000000000  )
10362 {
10363 continue; // no branches [j6]
10364 
10365 } else
10366 {
10367 {
10368 IkReal j6array[2], cj6array[2], sj6array[2];
10369 bool j6valid[2]={false};
10370 _nj6 = 2;
10371 IkReal x2042=px*px;
10372 CheckValue<IkReal> x2044 = IKatan2WithCheck(IkReal(((-0.425)+(((-0.588235294117647)*x2042)))),((2.83333333333333)+(((-3.92156862745098)*x2042))),IKFAST_ATAN2_MAGTHRESH);
10373 if(!x2044.valid){
10374 continue;
10375 }
10376 IkReal x2043=((-1.0)*(x2044.value));
10377 j6array[0]=x2043;
10378 sj6array[0]=IKsin(j6array[0]);
10379 cj6array[0]=IKcos(j6array[0]);
10380 j6array[1]=((3.14159265358979)+x2043);
10381 sj6array[1]=IKsin(j6array[1]);
10382 cj6array[1]=IKcos(j6array[1]);
10383 if( j6array[0] > IKPI )
10384 {
10385     j6array[0]-=IK2PI;
10386 }
10387 else if( j6array[0] < -IKPI )
10388 {    j6array[0]+=IK2PI;
10389 }
10390 j6valid[0] = true;
10391 if( j6array[1] > IKPI )
10392 {
10393     j6array[1]-=IK2PI;
10394 }
10395 else if( j6array[1] < -IKPI )
10396 {    j6array[1]+=IK2PI;
10397 }
10398 j6valid[1] = true;
10399 for(int ij6 = 0; ij6 < 2; ++ij6)
10400 {
10401 if( !j6valid[ij6] )
10402 {
10403     continue;
10404 }
10405 _ij6[0] = ij6; _ij6[1] = -1;
10406 for(int iij6 = ij6+1; iij6 < 2; ++iij6)
10407 {
10408 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10409 {
10410     j6valid[iij6]=false; _ij6[1] = iij6; break;
10411 }
10412 }
10413 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10414 {
10415 IkReal evalcond[1];
10416 evalcond[0]=((0.85)*(IKsin(j6)));
10417 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
10418 {
10419 continue;
10420 }
10421 }
10422 
10423 rotationfunction0(solutions);
10424 }
10425 }
10426 
10427 }
10428 
10429 }
10430 
10431 }
10432 } while(0);
10433 if( bgotonextstatement )
10434 {
10435 bool bgotonextstatement = true;
10436 do
10437 {
10438 if( 1 )
10439 {
10440 bgotonextstatement=false;
10441 continue; // branch miss [j6]
10442 
10443 }
10444 } while(0);
10445 if( bgotonextstatement )
10446 {
10447 }
10448 }
10449 }
10450 }
10451 }
10452 }
10453 }
10454 
10455 } else
10456 {
10457 {
10458 IkReal j6array[1], cj6array[1], sj6array[1];
10459 bool j6valid[1]={false};
10460 _nj6 = 1;
10461 IkReal x2045=(cj4*px);
10462 IkReal x2046=(py*sj4);
10463 IkReal x2047=px*px;
10464 IkReal x2048=py*py;
10465 CheckValue<IkReal> x2049=IKPowWithIntegerCheck(((((20.0)*x2046))+(((20.0)*x2045))),-1);
10466 if(!x2049.valid){
10467 continue;
10468 }
10469 CheckValue<IkReal> x2050=IKPowWithIntegerCheck(((((-8.5)*x2046))+(((-1.0)*(11.7647058823529)*cj4*(px*px*px)))+(((-8.5)*x2045))+(((-11.7647058823529)*x2045*x2048))+(((-11.7647058823529)*x2046*x2047))+(((-1.0)*(11.7647058823529)*sj4*(py*py*py)))),-1);
10470 if(!x2050.valid){
10471 continue;
10472 }
10473 if( IKabs(((17.0)*(x2049.value))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x2050.value)*(((-48.1666666666667)+(((66.6666666666667)*x2047))+(((66.6666666666667)*x2048)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((17.0)*(x2049.value)))+IKsqr(((x2050.value)*(((-48.1666666666667)+(((66.6666666666667)*x2047))+(((66.6666666666667)*x2048))))))-1) <= IKFAST_SINCOS_THRESH )
10474     continue;
10475 j6array[0]=IKatan2(((17.0)*(x2049.value)), ((x2050.value)*(((-48.1666666666667)+(((66.6666666666667)*x2047))+(((66.6666666666667)*x2048))))));
10476 sj6array[0]=IKsin(j6array[0]);
10477 cj6array[0]=IKcos(j6array[0]);
10478 if( j6array[0] > IKPI )
10479 {
10480     j6array[0]-=IK2PI;
10481 }
10482 else if( j6array[0] < -IKPI )
10483 {    j6array[0]+=IK2PI;
10484 }
10485 j6valid[0] = true;
10486 for(int ij6 = 0; ij6 < 1; ++ij6)
10487 {
10488 if( !j6valid[ij6] )
10489 {
10490     continue;
10491 }
10492 _ij6[0] = ij6; _ij6[1] = -1;
10493 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10494 {
10495 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10496 {
10497     j6valid[iij6]=false; _ij6[1] = iij6; break;
10498 }
10499 }
10500 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10501 {
10502 IkReal evalcond[5];
10503 IkReal x2051=IKcos(j6);
10504 IkReal x2052=(cj4*px);
10505 IkReal x2053=(x2051*x2052);
10506 IkReal x2054=(py*sj4);
10507 IkReal x2055=(x2051*x2054);
10508 IkReal x2056=IKsin(j6);
10509 IkReal x2057=(x2052*x2056);
10510 IkReal x2058=(x2054*x2056);
10511 IkReal x2059=px*px;
10512 IkReal x2060=((3.92156862745098)*x2056);
10513 IkReal x2061=((0.588235294117647)*x2051);
10514 IkReal x2062=py*py;
10515 evalcond[0]=(x2055+x2053);
10516 evalcond[1]=((-0.85)+x2057+x2058);
10517 evalcond[2]=((((0.85)*x2056))+(((-1.0)*x2052))+(((-1.0)*x2054)));
10518 evalcond[3]=((((-1.0)*x2061*x2062))+(((-1.0)*x2059*x2061))+(((-0.425)*x2051))+(((-1.0)*x2059*x2060))+(((2.83333333333333)*x2056))+(((-1.0)*x2060*x2062)));
10519 evalcond[4]=((-0.2125)+(((1.1)*x2057))+(((-1.0)*x2059))+(((-0.09)*x2055))+(((1.1)*x2058))+(((-1.0)*x2062))+(((-0.09)*x2053)));
10520 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10521 {
10522 continue;
10523 }
10524 }
10525 
10526 rotationfunction0(solutions);
10527 }
10528 }
10529 
10530 }
10531 
10532 }
10533 
10534 } else
10535 {
10536 {
10537 IkReal j6array[1], cj6array[1], sj6array[1];
10538 bool j6valid[1]={false};
10539 _nj6 = 1;
10540 IkReal x2063=(cj4*px);
10541 IkReal x2064=(py*sj4);
10542 IkReal x2065=px*px;
10543 IkReal x2066=py*py;
10544 CheckValue<IkReal> x2067=IKPowWithIntegerCheck(((-7.225)+(((-10.0)*x2066))+(((-10.0)*x2065))),-1);
10545 if(!x2067.valid){
10546 continue;
10547 }
10548 if( IKabs(((((1.17647058823529)*x2063))+(((1.17647058823529)*x2064)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x2067.value)*(((((-56.6666666666667)*x2064))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((78.4313725490196)*x2063*x2066))+(((78.4313725490196)*x2064*x2065))+(((-56.6666666666667)*x2063)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x2063))+(((1.17647058823529)*x2064))))+IKsqr(((x2067.value)*(((((-56.6666666666667)*x2064))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((78.4313725490196)*x2063*x2066))+(((78.4313725490196)*x2064*x2065))+(((-56.6666666666667)*x2063))))))-1) <= IKFAST_SINCOS_THRESH )
10549     continue;
10550 j6array[0]=IKatan2(((((1.17647058823529)*x2063))+(((1.17647058823529)*x2064))), ((x2067.value)*(((((-56.6666666666667)*x2064))+(((78.4313725490196)*sj4*(py*py*py)))+(((78.4313725490196)*cj4*(px*px*px)))+(((78.4313725490196)*x2063*x2066))+(((78.4313725490196)*x2064*x2065))+(((-56.6666666666667)*x2063))))));
10551 sj6array[0]=IKsin(j6array[0]);
10552 cj6array[0]=IKcos(j6array[0]);
10553 if( j6array[0] > IKPI )
10554 {
10555     j6array[0]-=IK2PI;
10556 }
10557 else if( j6array[0] < -IKPI )
10558 {    j6array[0]+=IK2PI;
10559 }
10560 j6valid[0] = true;
10561 for(int ij6 = 0; ij6 < 1; ++ij6)
10562 {
10563 if( !j6valid[ij6] )
10564 {
10565     continue;
10566 }
10567 _ij6[0] = ij6; _ij6[1] = -1;
10568 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10569 {
10570 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10571 {
10572     j6valid[iij6]=false; _ij6[1] = iij6; break;
10573 }
10574 }
10575 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10576 {
10577 IkReal evalcond[5];
10578 IkReal x2068=IKcos(j6);
10579 IkReal x2069=(cj4*px);
10580 IkReal x2070=(x2068*x2069);
10581 IkReal x2071=(py*sj4);
10582 IkReal x2072=(x2068*x2071);
10583 IkReal x2073=IKsin(j6);
10584 IkReal x2074=(x2069*x2073);
10585 IkReal x2075=(x2071*x2073);
10586 IkReal x2076=px*px;
10587 IkReal x2077=((3.92156862745098)*x2073);
10588 IkReal x2078=((0.588235294117647)*x2068);
10589 IkReal x2079=py*py;
10590 evalcond[0]=(x2070+x2072);
10591 evalcond[1]=((-0.85)+x2075+x2074);
10592 evalcond[2]=((((-1.0)*x2071))+(((0.85)*x2073))+(((-1.0)*x2069)));
10593 evalcond[3]=((((-1.0)*x2076*x2077))+(((-1.0)*x2076*x2078))+(((-0.425)*x2068))+(((-1.0)*x2078*x2079))+(((2.83333333333333)*x2073))+(((-1.0)*x2077*x2079)));
10594 evalcond[4]=((-0.2125)+(((-1.0)*x2079))+(((-1.0)*x2076))+(((1.1)*x2075))+(((-0.09)*x2070))+(((1.1)*x2074))+(((-0.09)*x2072)));
10595 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10596 {
10597 continue;
10598 }
10599 }
10600 
10601 rotationfunction0(solutions);
10602 }
10603 }
10604 
10605 }
10606 
10607 }
10608 
10609 } else
10610 {
10611 {
10612 IkReal j6array[1], cj6array[1], sj6array[1];
10613 bool j6valid[1]={false};
10614 _nj6 = 1;
10615 IkReal x2080=(cj4*px);
10616 IkReal x2081=(py*sj4);
10617 IkReal x2082=px*px;
10618 IkReal x2083=py*py;
10619 IkReal x2084=((1.29411764705882)*(cj4*cj4));
10620 CheckValue<IkReal> x2085=IKPowWithIntegerCheck(((((-0.09)*x2080))+(((-0.09)*x2081))),-1);
10621 if(!x2085.valid){
10622 continue;
10623 }
10624 if( IKabs(((((1.17647058823529)*x2080))+(((1.17647058823529)*x2081)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((x2085.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x2081))+(((-0.294117647058824)*x2083))+((x2083*x2084))+(((-1.0)*x2082*x2084))+x2082)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((1.17647058823529)*x2080))+(((1.17647058823529)*x2081))))+IKsqr(((x2085.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x2081))+(((-0.294117647058824)*x2083))+((x2083*x2084))+(((-1.0)*x2082*x2084))+x2082))))-1) <= IKFAST_SINCOS_THRESH )
10625     continue;
10626 j6array[0]=IKatan2(((((1.17647058823529)*x2080))+(((1.17647058823529)*x2081))), ((x2085.value)*(((0.2125)+(((-2.58823529411765)*cj4*px*x2081))+(((-0.294117647058824)*x2083))+((x2083*x2084))+(((-1.0)*x2082*x2084))+x2082))));
10627 sj6array[0]=IKsin(j6array[0]);
10628 cj6array[0]=IKcos(j6array[0]);
10629 if( j6array[0] > IKPI )
10630 {
10631     j6array[0]-=IK2PI;
10632 }
10633 else if( j6array[0] < -IKPI )
10634 {    j6array[0]+=IK2PI;
10635 }
10636 j6valid[0] = true;
10637 for(int ij6 = 0; ij6 < 1; ++ij6)
10638 {
10639 if( !j6valid[ij6] )
10640 {
10641     continue;
10642 }
10643 _ij6[0] = ij6; _ij6[1] = -1;
10644 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10645 {
10646 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10647 {
10648     j6valid[iij6]=false; _ij6[1] = iij6; break;
10649 }
10650 }
10651 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10652 {
10653 IkReal evalcond[5];
10654 IkReal x2086=IKcos(j6);
10655 IkReal x2087=(cj4*px);
10656 IkReal x2088=(x2086*x2087);
10657 IkReal x2089=(py*sj4);
10658 IkReal x2090=(x2086*x2089);
10659 IkReal x2091=IKsin(j6);
10660 IkReal x2092=(x2087*x2091);
10661 IkReal x2093=(x2089*x2091);
10662 IkReal x2094=px*px;
10663 IkReal x2095=((3.92156862745098)*x2091);
10664 IkReal x2096=((0.588235294117647)*x2086);
10665 IkReal x2097=py*py;
10666 evalcond[0]=(x2090+x2088);
10667 evalcond[1]=((-0.85)+x2093+x2092);
10668 evalcond[2]=((((-1.0)*x2089))+(((-1.0)*x2087))+(((0.85)*x2091)));
10669 evalcond[3]=((((-1.0)*x2095*x2097))+(((-1.0)*x2094*x2096))+(((-1.0)*x2096*x2097))+(((2.83333333333333)*x2091))+(((-1.0)*x2094*x2095))+(((-0.425)*x2086)));
10670 evalcond[4]=((-0.2125)+(((-1.0)*x2094))+(((1.1)*x2093))+(((1.1)*x2092))+(((-1.0)*x2097))+(((-0.09)*x2090))+(((-0.09)*x2088)));
10671 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10672 {
10673 continue;
10674 }
10675 }
10676 
10677 rotationfunction0(solutions);
10678 }
10679 }
10680 
10681 }
10682 
10683 }
10684 
10685 }
10686 } while(0);
10687 if( bgotonextstatement )
10688 {
10689 bool bgotonextstatement = true;
10690 do
10691 {
10692 if( 1 )
10693 {
10694 bgotonextstatement=false;
10695 continue; // branch miss [j6]
10696 
10697 }
10698 } while(0);
10699 if( bgotonextstatement )
10700 {
10701 }
10702 }
10703 }
10704 
10705 } else
10706 {
10707 {
10708 IkReal j6array[1], cj6array[1], sj6array[1];
10709 bool j6valid[1]={false};
10710 _nj6 = 1;
10711 IkReal x2098=(cj4*px);
10712 IkReal x2099=(py*sj4);
10713 IkReal x2100=((0.108264705882353)*cj9);
10714 IkReal x2101=((0.588235294117647)*pp);
10715 IkReal x2102=(cj9*pp);
10716 IkReal x2103=(cj9*sj9);
10717 IkReal x2104=(pp*sj9);
10718 IkReal x2105=cj9*cj9;
10719 IkReal x2106=((1.0)*pz);
10720 CheckValue<IkReal> x2107=IKPowWithIntegerCheck(IKsign(((((-1.0)*x2099*x2100))+(((-1.0)*x2098*x2101))+(((-1.0)*(1.32323529411765)*cj9*pz))+(((3.92156862745098)*pp*pz))+(((-1.0)*x2098*x2100))+(((-1.0)*(1.51009803921569)*pz))+(((-0.316735294117647)*x2098))+(((-1.0)*x2099*x2101))+(((-0.316735294117647)*x2099)))),-1);
10721 if(!x2107.valid){
10722 continue;
10723 }
10724 CheckValue<IkReal> x2108 = IKatan2WithCheck(IkReal(((-0.174204411764706)+(((-0.0324794117647059)*x2105))+(pz*pz)+(((-0.0264705882352941)*x2104))+(((-1.0)*(0.154566176470588)*cj9))+(((-1.0)*(0.323529411764706)*pp))+(((-0.00487191176470588)*x2103))+(((-1.0)*(0.0142530882352941)*sj9))+(((-0.176470588235294)*x2102)))),((-0.830553921568627)+(((-1.0)*(0.0679544117647059)*sj9))+(((-1.0)*(1.18080882352941)*cj9))+(((-0.396970588235294)*x2105))+(((-1.0)*x2099*x2106))+(((-0.0595455882352941)*x2103))+(((2.15686274509804)*pp))+(((-1.0)*x2098*x2106))+(((0.176470588235294)*x2104))+(((1.17647058823529)*x2102))),IKFAST_ATAN2_MAGTHRESH);
10725 if(!x2108.valid){
10726 continue;
10727 }
10728 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x2107.value)))+(x2108.value));
10729 sj6array[0]=IKsin(j6array[0]);
10730 cj6array[0]=IKcos(j6array[0]);
10731 if( j6array[0] > IKPI )
10732 {
10733     j6array[0]-=IK2PI;
10734 }
10735 else if( j6array[0] < -IKPI )
10736 {    j6array[0]+=IK2PI;
10737 }
10738 j6valid[0] = true;
10739 for(int ij6 = 0; ij6 < 1; ++ij6)
10740 {
10741 if( !j6valid[ij6] )
10742 {
10743     continue;
10744 }
10745 _ij6[0] = ij6; _ij6[1] = -1;
10746 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10747 {
10748 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10749 {
10750     j6valid[iij6]=false; _ij6[1] = iij6; break;
10751 }
10752 }
10753 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10754 {
10755 IkReal evalcond[5];
10756 IkReal x2109=((0.3)*cj9);
10757 IkReal x2110=((0.045)*sj9);
10758 IkReal x2111=IKcos(j6);
10759 IkReal x2112=(pz*x2111);
10760 IkReal x2113=IKsin(j6);
10761 IkReal x2114=(cj4*px);
10762 IkReal x2115=(x2113*x2114);
10763 IkReal x2116=(py*sj4);
10764 IkReal x2117=(x2113*x2116);
10765 IkReal x2118=((0.045)*cj9);
10766 IkReal x2119=((0.3)*sj9);
10767 IkReal x2120=(pz*x2113);
10768 IkReal x2121=(x2111*x2114);
10769 IkReal x2122=(x2111*x2116);
10770 evalcond[0]=((-0.55)+x2115+x2117+x2112+(((-1.0)*x2110))+(((-1.0)*x2109)));
10771 evalcond[1]=((0.045)+x2119+x2121+x2122+(((-1.0)*x2118))+(((-1.0)*x2120)));
10772 evalcond[2]=((((-3.92156862745098)*pp*x2113))+pz+(((-0.316735294117647)*x2111))+(((-0.588235294117647)*pp*x2111))+(((1.32323529411765)*cj9*x2113))+(((-0.108264705882353)*cj9*x2111))+(((1.51009803921569)*x2113)));
10773 evalcond[3]=((((-1.0)*x2116))+(((-1.0)*x2114))+((x2111*x2118))+(((-1.0)*x2111*x2119))+((x2110*x2113))+(((0.55)*x2113))+(((-0.045)*x2111))+((x2109*x2113)));
10774 evalcond[4]=((-0.2125)+(((1.1)*x2115))+(((1.1)*x2112))+(((1.1)*x2117))+(((-0.09)*x2122))+(((-1.0)*(1.0)*pp))+(((0.09)*x2120))+(((-0.09)*x2121)));
10775 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10776 {
10777 continue;
10778 }
10779 }
10780 
10781 rotationfunction0(solutions);
10782 }
10783 }
10784 
10785 }
10786 
10787 }
10788 
10789 } else
10790 {
10791 {
10792 IkReal j6array[1], cj6array[1], sj6array[1];
10793 bool j6valid[1]={false};
10794 _nj6 = 1;
10795 IkReal x2123=((0.045)*cj4*px);
10796 IkReal x2124=((0.045)*py*sj4);
10797 IkReal x2125=((0.3)*sj9);
10798 IkReal x2126=(cj4*px);
10799 IkReal x2127=(py*sj4);
10800 IkReal x2128=(cj9*sj9);
10801 IkReal x2129=cj9*cj9;
10802 IkReal x2130=((1.0)*pz);
10803 IkReal x2131=py*py;
10804 IkReal x2132=cj4*cj4;
10805 CheckValue<IkReal> x2133=IKPowWithIntegerCheck(IKsign(((((-1.0)*(0.55)*pz))+(((-1.0)*x2125*x2127))+(((-1.0)*x2125*x2126))+((cj9*x2123))+(((-1.0)*x2123))+((cj9*x2124))+(((-1.0)*x2124))+(((-1.0)*(0.045)*pz*sj9))+(((-1.0)*(0.3)*cj9*pz)))),-1);
10806 if(!x2133.valid){
10807 continue;
10808 }
10809 CheckValue<IkReal> x2134 = IKatan2WithCheck(IkReal(((-0.03825)+(((-0.087975)*x2128))+(((0.027)*x2129))+(((-1.0)*(0.167025)*sj9))+(((-1.0)*x2126*x2130))+(((-1.0)*x2127*x2130))+(((0.01125)*cj9)))),((-0.304525)+((x2132*(px*px)))+(((-1.0)*(0.0495)*sj9))+(((-0.027)*x2128))+(((-1.0)*x2131*x2132))+(((-1.0)*(0.33)*cj9))+(((-0.087975)*x2129))+(((2.0)*cj4*px*x2127))+x2131),IKFAST_ATAN2_MAGTHRESH);
10810 if(!x2134.valid){
10811 continue;
10812 }
10813 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x2133.value)))+(x2134.value));
10814 sj6array[0]=IKsin(j6array[0]);
10815 cj6array[0]=IKcos(j6array[0]);
10816 if( j6array[0] > IKPI )
10817 {
10818     j6array[0]-=IK2PI;
10819 }
10820 else if( j6array[0] < -IKPI )
10821 {    j6array[0]+=IK2PI;
10822 }
10823 j6valid[0] = true;
10824 for(int ij6 = 0; ij6 < 1; ++ij6)
10825 {
10826 if( !j6valid[ij6] )
10827 {
10828     continue;
10829 }
10830 _ij6[0] = ij6; _ij6[1] = -1;
10831 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10832 {
10833 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10834 {
10835     j6valid[iij6]=false; _ij6[1] = iij6; break;
10836 }
10837 }
10838 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10839 {
10840 IkReal evalcond[5];
10841 IkReal x2135=((0.3)*cj9);
10842 IkReal x2136=((0.045)*sj9);
10843 IkReal x2137=IKcos(j6);
10844 IkReal x2138=(pz*x2137);
10845 IkReal x2139=IKsin(j6);
10846 IkReal x2140=(cj4*px);
10847 IkReal x2141=(x2139*x2140);
10848 IkReal x2142=(py*sj4);
10849 IkReal x2143=(x2139*x2142);
10850 IkReal x2144=((0.045)*cj9);
10851 IkReal x2145=((0.3)*sj9);
10852 IkReal x2146=(pz*x2139);
10853 IkReal x2147=(x2137*x2140);
10854 IkReal x2148=(x2137*x2142);
10855 evalcond[0]=((-0.55)+(((-1.0)*x2136))+x2141+x2143+(((-1.0)*x2135))+x2138);
10856 evalcond[1]=((0.045)+x2148+x2145+x2147+(((-1.0)*x2144))+(((-1.0)*x2146)));
10857 evalcond[2]=((((-0.588235294117647)*pp*x2137))+(((1.32323529411765)*cj9*x2139))+(((1.51009803921569)*x2139))+pz+(((-3.92156862745098)*pp*x2139))+(((-0.316735294117647)*x2137))+(((-0.108264705882353)*cj9*x2137)));
10858 evalcond[3]=((((0.55)*x2139))+(((-0.045)*x2137))+(((-1.0)*x2140))+((x2135*x2139))+(((-1.0)*x2142))+((x2136*x2139))+((x2137*x2144))+(((-1.0)*x2137*x2145)));
10859 evalcond[4]=((-0.2125)+(((-0.09)*x2148))+(((1.1)*x2143))+(((-0.09)*x2147))+(((1.1)*x2141))+(((0.09)*x2146))+(((1.1)*x2138))+(((-1.0)*(1.0)*pp)));
10860 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10861 {
10862 continue;
10863 }
10864 }
10865 
10866 rotationfunction0(solutions);
10867 }
10868 }
10869 
10870 }
10871 
10872 }
10873 
10874 } else
10875 {
10876 {
10877 IkReal j6array[1], cj6array[1], sj6array[1];
10878 bool j6valid[1]={false};
10879 _nj6 = 1;
10880 IkReal x2149=py*py;
10881 IkReal x2150=(py*sj4);
10882 IkReal x2151=cj4*cj4;
10883 IkReal x2152=((0.045)*pz);
10884 IkReal x2153=(cj4*px);
10885 IkReal x2154=((0.3)*pz);
10886 IkReal x2155=((0.3)*cj4*px);
10887 IkReal x2156=((0.045)*x2153);
10888 IkReal x2157=((0.3)*py*sj4);
10889 IkReal x2158=((0.045)*x2150);
10890 CheckValue<IkReal> x2159=IKPowWithIntegerCheck(IKsign(((((-1.0)*x2149*x2151))+(pz*pz)+x2149+(((2.0)*cj4*px*x2150))+((x2151*(px*px))))),-1);
10891 if(!x2159.valid){
10892 continue;
10893 }
10894 CheckValue<IkReal> x2160 = IKatan2WithCheck(IkReal((((sj9*x2158))+x2152+(((0.55)*x2150))+((cj9*x2155))+(((0.55)*x2153))+((sj9*x2156))+((sj9*x2154))+(((-1.0)*cj9*x2152))+((cj9*x2157)))),((((-1.0)*sj9*x2157))+(((-1.0)*x2156))+((cj9*x2154))+((sj9*x2152))+(((-1.0)*sj9*x2155))+((cj9*x2156))+(((-1.0)*x2158))+(((0.55)*pz))+((cj9*x2158))),IKFAST_ATAN2_MAGTHRESH);
10895 if(!x2160.valid){
10896 continue;
10897 }
10898 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x2159.value)))+(x2160.value));
10899 sj6array[0]=IKsin(j6array[0]);
10900 cj6array[0]=IKcos(j6array[0]);
10901 if( j6array[0] > IKPI )
10902 {
10903     j6array[0]-=IK2PI;
10904 }
10905 else if( j6array[0] < -IKPI )
10906 {    j6array[0]+=IK2PI;
10907 }
10908 j6valid[0] = true;
10909 for(int ij6 = 0; ij6 < 1; ++ij6)
10910 {
10911 if( !j6valid[ij6] )
10912 {
10913     continue;
10914 }
10915 _ij6[0] = ij6; _ij6[1] = -1;
10916 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
10917 {
10918 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
10919 {
10920     j6valid[iij6]=false; _ij6[1] = iij6; break;
10921 }
10922 }
10923 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
10924 {
10925 IkReal evalcond[5];
10926 IkReal x2161=((0.3)*cj9);
10927 IkReal x2162=((0.045)*sj9);
10928 IkReal x2163=IKcos(j6);
10929 IkReal x2164=(pz*x2163);
10930 IkReal x2165=IKsin(j6);
10931 IkReal x2166=(cj4*px);
10932 IkReal x2167=(x2165*x2166);
10933 IkReal x2168=(py*sj4);
10934 IkReal x2169=(x2165*x2168);
10935 IkReal x2170=((0.045)*cj9);
10936 IkReal x2171=((0.3)*sj9);
10937 IkReal x2172=(pz*x2165);
10938 IkReal x2173=(x2163*x2166);
10939 IkReal x2174=(x2163*x2168);
10940 evalcond[0]=((-0.55)+(((-1.0)*x2162))+x2169+x2164+x2167+(((-1.0)*x2161)));
10941 evalcond[1]=((0.045)+x2173+x2174+x2171+(((-1.0)*x2172))+(((-1.0)*x2170)));
10942 evalcond[2]=((((1.32323529411765)*cj9*x2165))+(((-0.108264705882353)*cj9*x2163))+(((-3.92156862745098)*pp*x2165))+(((-0.588235294117647)*pp*x2163))+pz+(((1.51009803921569)*x2165))+(((-0.316735294117647)*x2163)));
10943 evalcond[3]=(((x2163*x2170))+(((-1.0)*x2168))+((x2161*x2165))+(((-1.0)*x2163*x2171))+(((-0.045)*x2163))+((x2162*x2165))+(((-1.0)*x2166))+(((0.55)*x2165)));
10944 evalcond[4]=((-0.2125)+(((-0.09)*x2174))+(((0.09)*x2172))+(((1.1)*x2164))+(((1.1)*x2167))+(((1.1)*x2169))+(((-1.0)*(1.0)*pp))+(((-0.09)*x2173)));
10945 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  )
10946 {
10947 continue;
10948 }
10949 }
10950 
10951 rotationfunction0(solutions);
10952 }
10953 }
10954 
10955 }
10956 
10957 }
10958 
10959 }
10960 } while(0);
10961 if( bgotonextstatement )
10962 {
10963 bool bgotonextstatement = true;
10964 do
10965 {
10966 if( 1 )
10967 {
10968 bgotonextstatement=false;
10969 continue; // branch miss [j6]
10970 
10971 }
10972 } while(0);
10973 if( bgotonextstatement )
10974 {
10975 }
10976 }
10977 }
10978 }
10979 
10980 } else
10981 {
10982 {
10983 IkReal j6array[1], cj6array[1], sj6array[1];
10984 bool j6valid[1]={false};
10985 _nj6 = 1;
10986 IkReal x2175=(pz*sj8);
10987 IkReal x2176=((0.3)*cj9);
10988 IkReal x2177=((0.045)*sj9);
10989 IkReal x2178=(cj4*px);
10990 IkReal x2179=((0.045)*cj8*sj8);
10991 IkReal x2180=(x2178*x2179);
10992 IkReal x2181=(py*sj4);
10993 IkReal x2182=(x2179*x2181);
10994 IkReal x2183=((0.3)*cj8*sj8*sj9);
10995 IkReal x2184=((0.55)*cj8);
10996 IkReal x2185=(cj4*py);
10997 IkReal x2186=(px*sj4);
10998 IkReal x2187=(cj4*cj8*py);
10999 IkReal x2188=((1.0)*pz*sj8);
11000 IkReal x2189=(cj8*px*sj4);
11001 IkReal x2190=cj8*cj8;
11002 IkReal x2191=((0.045)*x2190);
11003 IkReal x2192=(x2185*x2191);
11004 IkReal x2193=(x2186*x2191);
11005 IkReal x2194=((0.3)*sj9*x2190);
11006 CheckValue<IkReal> x2195=IKPowWithIntegerCheck(IKsign(((((-1.0)*cj9*x2182))+((x2181*x2183))+(((-0.55)*x2175))+(((-1.0)*x2175*x2177))+(((-1.0)*x2175*x2176))+(((-1.0)*cj9*x2180))+((x2178*x2183))+x2182+x2180)),-1);
11007 if(!x2195.valid){
11008 continue;
11009 }
11010 CheckValue<IkReal> x2196 = IKatan2WithCheck(IkReal(((((-1.0)*x2176*x2189))+((x2184*x2185))+((x2176*x2187))+(((-1.0)*x2178*x2188))+((x2177*x2187))+(((-1.0)*x2181*x2188))+(((-1.0)*x2184*x2186))+(((-1.0)*x2177*x2189)))),((((-1.0)*(1.0)*sj8*(pz*pz)))+(((-1.0)*x2193))+x2192+(((-1.0)*x2186*x2194))+(((-1.0)*cj9*x2192))+((x2185*x2194))+((cj9*x2193))),IKFAST_ATAN2_MAGTHRESH);
11011 if(!x2196.valid){
11012 continue;
11013 }
11014 j6array[0]=((-1.5707963267949)+(((1.5707963267949)*(x2195.value)))+(x2196.value));
11015 sj6array[0]=IKsin(j6array[0]);
11016 cj6array[0]=IKcos(j6array[0]);
11017 if( j6array[0] > IKPI )
11018 {
11019     j6array[0]-=IK2PI;
11020 }
11021 else if( j6array[0] < -IKPI )
11022 {    j6array[0]+=IK2PI;
11023 }
11024 j6valid[0] = true;
11025 for(int ij6 = 0; ij6 < 1; ++ij6)
11026 {
11027 if( !j6valid[ij6] )
11028 {
11029     continue;
11030 }
11031 _ij6[0] = ij6; _ij6[1] = -1;
11032 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
11033 {
11034 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
11035 {
11036     j6valid[iij6]=false; _ij6[1] = iij6; break;
11037 }
11038 }
11039 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
11040 {
11041 IkReal evalcond[6];
11042 IkReal x2197=((0.3)*cj9);
11043 IkReal x2198=((0.045)*sj9);
11044 IkReal x2199=IKcos(j6);
11045 IkReal x2200=(pz*x2199);
11046 IkReal x2201=IKsin(j6);
11047 IkReal x2202=(cj4*px*x2201);
11048 IkReal x2203=(py*sj4);
11049 IkReal x2204=(x2201*x2203);
11050 IkReal x2205=(px*sj4);
11051 IkReal x2206=((1.0)*cj4*py);
11052 IkReal x2207=(cj4*sj8);
11053 IkReal x2208=((0.045)*cj8);
11054 IkReal x2209=((0.045)*cj9);
11055 IkReal x2210=(cj8*x2201);
11056 IkReal x2211=((0.3)*sj9);
11057 IkReal x2212=(sj8*x2205);
11058 IkReal x2213=(pz*x2210);
11059 IkReal x2214=(px*(((1.0)*cj4)));
11060 IkReal x2215=(cj8*x2199);
11061 IkReal x2216=((1.0)*x2203);
11062 IkReal x2217=((0.09)*cj8*x2199);
11063 evalcond[0]=((-0.55)+x2204+x2202+x2200+(((-1.0)*x2198))+(((-1.0)*x2197)));
11064 evalcond[1]=(((cj8*x2205))+(((-1.0)*pz*sj8*x2201))+(((-1.0)*cj8*x2206))+((sj8*x2199*x2203))+((px*x2199*x2207)));
11065 evalcond[2]=((((-0.55)*x2199))+(((-1.0)*x2197*x2199))+((x2201*x2208))+pz+(((-1.0)*x2209*x2210))+(((-1.0)*x2198*x2199))+((x2210*x2211)));
11066 evalcond[3]=((0.045)+(((-1.0)*x2215*x2216))+(((-1.0)*x2209))+x2211+x2213+x2212+(((-1.0)*x2214*x2215))+(((-1.0)*sj8*x2206)));
11067 evalcond[4]=(((x2211*x2215))+((x2198*x2201))+(((-1.0)*x2214))+(((-1.0)*x2209*x2215))+(((0.55)*x2201))+((x2199*x2208))+(((-1.0)*x2216))+((x2197*x2201)));
11068 evalcond[5]=((-0.2125)+(((1.1)*x2204))+(((1.1)*x2202))+(((0.09)*py*x2207))+(((-0.09)*x2213))+(((-0.09)*x2212))+((x2203*x2217))+(((-1.0)*(1.0)*pp))+((cj4*px*x2217))+(((1.1)*x2200)));
11069 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
11070 {
11071 continue;
11072 }
11073 }
11074 
11075 rotationfunction0(solutions);
11076 }
11077 }
11078 
11079 }
11080 
11081 }
11082 
11083 } else
11084 {
11085 {
11086 IkReal j6array[1], cj6array[1], sj6array[1];
11087 bool j6valid[1]={false};
11088 _nj6 = 1;
11089 IkReal x2218=py*py;
11090 IkReal x2219=(sj8*x2218);
11091 IkReal x2220=(cj4*px*sj8);
11092 IkReal x2221=cj4*cj4;
11093 IkReal x2222=px*px;
11094 IkReal x2223=((0.55)*sj8);
11095 IkReal x2224=(cj8*px);
11096 IkReal x2225=((0.3)*cj9);
11097 IkReal x2226=((0.045)*sj9);
11098 IkReal x2227=(py*sj4*sj8);
11099 IkReal x2228=(pz*sj8);
11100 IkReal x2229=(cj4*cj8*sj4);
11101 CheckValue<IkReal> x2230 = IKatan2WithCheck(IkReal((((py*sj4*x2223))+((x2220*x2225))+((pz*sj4*x2224))+(((-1.0)*cj4*cj8*py*pz))+((cj4*px*x2223))+((x2226*x2227))+((x2225*x2227))+((x2220*x2226)))),((((2.0)*py*x2221*x2224))+((x2225*x2228))+((x2218*x2229))+((x2226*x2228))+((pz*x2223))+(((-1.0)*x2222*x2229))+(((-1.0)*py*x2224))),IKFAST_ATAN2_MAGTHRESH);
11102 if(!x2230.valid){
11103 continue;
11104 }
11105 CheckValue<IkReal> x2231=IKPowWithIntegerCheck(IKsign(((((-1.0)*x2219*x2221))+(((2.0)*py*sj4*x2220))+x2219+((sj8*(pz*pz)))+((sj8*x2221*x2222)))),-1);
11106 if(!x2231.valid){
11107 continue;
11108 }
11109 j6array[0]=((-1.5707963267949)+(x2230.value)+(((1.5707963267949)*(x2231.value))));
11110 sj6array[0]=IKsin(j6array[0]);
11111 cj6array[0]=IKcos(j6array[0]);
11112 if( j6array[0] > IKPI )
11113 {
11114     j6array[0]-=IK2PI;
11115 }
11116 else if( j6array[0] < -IKPI )
11117 {    j6array[0]+=IK2PI;
11118 }
11119 j6valid[0] = true;
11120 for(int ij6 = 0; ij6 < 1; ++ij6)
11121 {
11122 if( !j6valid[ij6] )
11123 {
11124     continue;
11125 }
11126 _ij6[0] = ij6; _ij6[1] = -1;
11127 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
11128 {
11129 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
11130 {
11131     j6valid[iij6]=false; _ij6[1] = iij6; break;
11132 }
11133 }
11134 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
11135 {
11136 IkReal evalcond[6];
11137 IkReal x2232=((0.3)*cj9);
11138 IkReal x2233=((0.045)*sj9);
11139 IkReal x2234=IKcos(j6);
11140 IkReal x2235=(pz*x2234);
11141 IkReal x2236=IKsin(j6);
11142 IkReal x2237=(cj4*px*x2236);
11143 IkReal x2238=(py*sj4);
11144 IkReal x2239=(x2236*x2238);
11145 IkReal x2240=(px*sj4);
11146 IkReal x2241=((1.0)*cj4*py);
11147 IkReal x2242=(cj4*sj8);
11148 IkReal x2243=((0.045)*cj8);
11149 IkReal x2244=((0.045)*cj9);
11150 IkReal x2245=(cj8*x2236);
11151 IkReal x2246=((0.3)*sj9);
11152 IkReal x2247=(sj8*x2240);
11153 IkReal x2248=(pz*x2245);
11154 IkReal x2249=(px*(((1.0)*cj4)));
11155 IkReal x2250=(cj8*x2234);
11156 IkReal x2251=((1.0)*x2238);
11157 IkReal x2252=((0.09)*cj8*x2234);
11158 evalcond[0]=((-0.55)+x2237+x2235+x2239+(((-1.0)*x2232))+(((-1.0)*x2233)));
11159 evalcond[1]=(((px*x2234*x2242))+((sj8*x2234*x2238))+(((-1.0)*cj8*x2241))+((cj8*x2240))+(((-1.0)*pz*sj8*x2236)));
11160 evalcond[2]=((((-1.0)*x2244*x2245))+((x2236*x2243))+pz+(((-1.0)*x2233*x2234))+(((-1.0)*x2232*x2234))+(((-0.55)*x2234))+((x2245*x2246)));
11161 evalcond[3]=((0.045)+(((-1.0)*x2244))+(((-1.0)*x2249*x2250))+(((-1.0)*sj8*x2241))+x2247+x2246+x2248+(((-1.0)*x2250*x2251)));
11162 evalcond[4]=((((0.55)*x2236))+(((-1.0)*x2249))+((x2233*x2236))+(((-1.0)*x2244*x2250))+((x2246*x2250))+(((-1.0)*x2251))+((x2232*x2236))+((x2234*x2243)));
11163 evalcond[5]=((-0.2125)+(((-0.09)*x2247))+(((-0.09)*x2248))+((x2238*x2252))+(((1.1)*x2239))+(((1.1)*x2237))+(((1.1)*x2235))+((cj4*px*x2252))+(((-1.0)*(1.0)*pp))+(((0.09)*py*x2242)));
11164 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
11165 {
11166 continue;
11167 }
11168 }
11169 
11170 rotationfunction0(solutions);
11171 }
11172 }
11173 
11174 }
11175 
11176 }
11177 
11178 } else
11179 {
11180 {
11181 IkReal j6array[1], cj6array[1], sj6array[1];
11182 bool j6valid[1]={false};
11183 _nj6 = 1;
11184 IkReal x2253=(cj4*px);
11185 IkReal x2254=((0.045)*pz);
11186 IkReal x2255=(py*sj4);
11187 IkReal x2256=((0.3)*cj9);
11188 IkReal x2257=((0.045)*sj9);
11189 IkReal x2258=(cj8*cj9);
11190 IkReal x2259=(cj8*sj9);
11191 IkReal x2260=cj9*cj9;
11192 IkReal x2261=((1.0)*pz);
11193 CheckValue<IkReal> x2262 = IKatan2WithCheck(IkReal(((-0.304525)+(((-1.0)*(0.027)*cj9*sj9))+(((-1.0)*(0.0495)*sj9))+(pz*pz)+(((-0.087975)*x2260))+(((-1.0)*(0.33)*cj9)))),((((-1.0)*x2255*x2261))+(((0.027)*cj8*x2260))+(((0.01125)*x2258))+(((-1.0)*x2253*x2261))+(((-1.0)*(0.03825)*cj8))+(((-0.087975)*sj9*x2258))+(((-0.167025)*x2259))),IKFAST_ATAN2_MAGTHRESH);
11194 if(!x2262.valid){
11195 continue;
11196 }
11197 CheckValue<IkReal> x2263=IKPowWithIntegerCheck(IKsign(((((-1.0)*x2255*x2257))+(((-1.0)*x2255*x2256))+((x2254*x2258))+(((-1.0)*x2253*x2257))+(((-0.55)*x2255))+(((-0.3)*pz*x2259))+(((-1.0)*x2253*x2256))+(((-0.55)*x2253))+(((-1.0)*cj8*x2254)))),-1);
11198 if(!x2263.valid){
11199 continue;
11200 }
11201 j6array[0]=((-1.5707963267949)+(x2262.value)+(((1.5707963267949)*(x2263.value))));
11202 sj6array[0]=IKsin(j6array[0]);
11203 cj6array[0]=IKcos(j6array[0]);
11204 if( j6array[0] > IKPI )
11205 {
11206     j6array[0]-=IK2PI;
11207 }
11208 else if( j6array[0] < -IKPI )
11209 {    j6array[0]+=IK2PI;
11210 }
11211 j6valid[0] = true;
11212 for(int ij6 = 0; ij6 < 1; ++ij6)
11213 {
11214 if( !j6valid[ij6] )
11215 {
11216     continue;
11217 }
11218 _ij6[0] = ij6; _ij6[1] = -1;
11219 for(int iij6 = ij6+1; iij6 < 1; ++iij6)
11220 {
11221 if( j6valid[iij6] && IKabs(cj6array[ij6]-cj6array[iij6]) < IKFAST_SOLUTION_THRESH && IKabs(sj6array[ij6]-sj6array[iij6]) < IKFAST_SOLUTION_THRESH )
11222 {
11223     j6valid[iij6]=false; _ij6[1] = iij6; break;
11224 }
11225 }
11226 j6 = j6array[ij6]; cj6 = cj6array[ij6]; sj6 = sj6array[ij6];
11227 {
11228 IkReal evalcond[6];
11229 IkReal x2264=((0.3)*cj9);
11230 IkReal x2265=((0.045)*sj9);
11231 IkReal x2266=IKcos(j6);
11232 IkReal x2267=(pz*x2266);
11233 IkReal x2268=IKsin(j6);
11234 IkReal x2269=(cj4*px*x2268);
11235 IkReal x2270=(py*sj4);
11236 IkReal x2271=(x2268*x2270);
11237 IkReal x2272=(px*sj4);
11238 IkReal x2273=((1.0)*cj4*py);
11239 IkReal x2274=(cj4*sj8);
11240 IkReal x2275=((0.045)*cj8);
11241 IkReal x2276=((0.045)*cj9);
11242 IkReal x2277=(cj8*x2268);
11243 IkReal x2278=((0.3)*sj9);
11244 IkReal x2279=(sj8*x2272);
11245 IkReal x2280=(pz*x2277);
11246 IkReal x2281=(px*(((1.0)*cj4)));
11247 IkReal x2282=(cj8*x2266);
11248 IkReal x2283=((1.0)*x2270);
11249 IkReal x2284=((0.09)*cj8*x2266);
11250 evalcond[0]=((-0.55)+x2267+x2269+(((-1.0)*x2265))+x2271+(((-1.0)*x2264)));
11251 evalcond[1]=(((cj8*x2272))+(((-1.0)*cj8*x2273))+(((-1.0)*pz*sj8*x2268))+((sj8*x2266*x2270))+((px*x2266*x2274)));
11252 evalcond[2]=((((-1.0)*x2264*x2266))+((x2268*x2275))+pz+(((-1.0)*x2265*x2266))+((x2277*x2278))+(((-0.55)*x2266))+(((-1.0)*x2276*x2277)));
11253 evalcond[3]=((0.045)+(((-1.0)*x2282*x2283))+x2280+(((-1.0)*sj8*x2273))+(((-1.0)*x2281*x2282))+(((-1.0)*x2276))+x2278+x2279);
11254 evalcond[4]=((((-1.0)*x2281))+((x2266*x2275))+(((-1.0)*x2276*x2282))+((x2264*x2268))+((x2278*x2282))+((x2265*x2268))+(((-1.0)*x2283))+(((0.55)*x2268)));
11255 evalcond[5]=((-0.2125)+(((-0.09)*x2279))+(((-0.09)*x2280))+((cj4*px*x2284))+(((0.09)*py*x2274))+(((1.1)*x2267))+((x2270*x2284))+(((-1.0)*(1.0)*pp))+(((1.1)*x2269))+(((1.1)*x2271)));
11256 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  )
11257 {
11258 continue;
11259 }
11260 }
11261 
11262 rotationfunction0(solutions);
11263 }
11264 }
11265 
11266 }
11267 
11268 }
11269 }
11270 }
11271 
11272 }
11273 
11274 }
11275 }
11276 }
11277 }
11278 return solutions.GetNumSolutions()>0;
11279 }
rotationfunction0(IkSolutionListBase<IkReal> & solutions)11280 inline void rotationfunction0(IkSolutionListBase<IkReal>& solutions) {
11281 for(int rotationiter = 0; rotationiter < 1; ++rotationiter) {
11282 IkReal x158=((1.0)*sj9);
11283 IkReal x159=(cj9*sj6);
11284 IkReal x160=((((-1.0)*cj6*x158))+(((-1.0)*cj8*x159)));
11285 IkReal x161=(cj4*sj8);
11286 IkReal x162=(sj6*x158);
11287 IkReal x163=(cj6*cj9);
11288 IkReal x164=(((cj8*x163))+(((-1.0)*x162)));
11289 IkReal x165=(((cj9*x161))+((sj4*x164)));
11290 IkReal x166=((1.0)*sj4*sj8);
11291 IkReal x167=((((-1.0)*cj9*x166))+((cj4*x164)));
11292 IkReal x168=(sj6*sj8);
11293 IkReal x169=(((cj4*cj8))+(((-1.0)*cj6*x166)));
11294 IkReal x170=((((-1.0)*cj6*x161))+(((-1.0)*cj8*sj4)));
11295 IkReal x171=((((-1.0)*cj8*x162))+x163);
11296 IkReal x172=(x159+((cj6*cj8*sj9)));
11297 IkReal x173=(((sj4*x172))+((sj9*x161)));
11298 IkReal x174=(((cj4*x172))+(((-1.0)*sj4*sj8*x158)));
11299 new_r00=(((r00*x167))+((r20*x160))+((r10*x165)));
11300 new_r01=(((r11*x165))+((r21*x160))+((r01*x167)));
11301 new_r02=(((r22*x160))+((r12*x165))+((r02*x167)));
11302 new_r10=(((r20*x168))+((r10*x169))+((r00*x170)));
11303 new_r11=(((r01*x170))+((r21*x168))+((r11*x169)));
11304 new_r12=(((r22*x168))+((r02*x170))+((r12*x169)));
11305 new_r20=(((r20*x171))+((r10*x173))+((r00*x174)));
11306 new_r21=(((r01*x174))+((r11*x173))+((r21*x171)));
11307 new_r22=(((r12*x173))+((r22*x171))+((r02*x174)));
11308 {
11309 IkReal j11array[2], cj11array[2], sj11array[2];
11310 bool j11valid[2]={false};
11311 _nj11 = 2;
11312 cj11array[0]=new_r22;
11313 if( cj11array[0] >= -1-IKFAST_SINCOS_THRESH && cj11array[0] <= 1+IKFAST_SINCOS_THRESH )
11314 {
11315     j11valid[0] = j11valid[1] = true;
11316     j11array[0] = IKacos(cj11array[0]);
11317     sj11array[0] = IKsin(j11array[0]);
11318     cj11array[1] = cj11array[0];
11319     j11array[1] = -j11array[0];
11320     sj11array[1] = -sj11array[0];
11321 }
11322 else if( std::isnan(cj11array[0]) )
11323 {
11324     // probably any value will work
11325     j11valid[0] = true;
11326     cj11array[0] = 1; sj11array[0] = 0; j11array[0] = 0;
11327 }
11328 for(int ij11 = 0; ij11 < 2; ++ij11)
11329 {
11330 if( !j11valid[ij11] )
11331 {
11332     continue;
11333 }
11334 _ij11[0] = ij11; _ij11[1] = -1;
11335 for(int iij11 = ij11+1; iij11 < 2; ++iij11)
11336 {
11337 if( j11valid[iij11] && IKabs(cj11array[ij11]-cj11array[iij11]) < IKFAST_SOLUTION_THRESH && IKabs(sj11array[ij11]-sj11array[iij11]) < IKFAST_SOLUTION_THRESH )
11338 {
11339     j11valid[iij11]=false; _ij11[1] = iij11; break;
11340 }
11341 }
11342 j11 = j11array[ij11]; cj11 = cj11array[ij11]; sj11 = sj11array[ij11];
11343 
11344 {
11345 IkReal j10eval[2];
11346 IkReal x175=((1.0)*sj9);
11347 IkReal x176=(cj9*sj6);
11348 IkReal x177=x160;
11349 IkReal x178=(cj4*sj8);
11350 IkReal x179=(sj6*x175);
11351 IkReal x180=(cj6*cj9);
11352 IkReal x181=(((cj8*x180))+(((-1.0)*x179)));
11353 IkReal x182=(((sj4*x181))+((cj9*x178)));
11354 IkReal x183=((1.0)*sj4*sj8);
11355 IkReal x184=(((cj4*x181))+(((-1.0)*cj9*x183)));
11356 IkReal x185=(sj6*sj8);
11357 IkReal x186=x169;
11358 IkReal x187=x170;
11359 IkReal x188=((((-1.0)*cj8*x179))+x180);
11360 IkReal x189=x172;
11361 IkReal x190=(((sj9*x178))+((sj4*x189)));
11362 IkReal x191=((((-1.0)*sj4*sj8*x175))+((cj4*x189)));
11363 new_r00=(((r20*x177))+((r00*x184))+((r10*x182)));
11364 new_r01=(((r21*x177))+((r11*x182))+((r01*x184)));
11365 new_r02=(((r22*x177))+((r12*x182))+((r02*x184)));
11366 new_r10=(((r10*x186))+((r20*x185))+((r00*x187)));
11367 new_r11=(((r21*x185))+((r11*x186))+((r01*x187)));
11368 new_r12=(((r12*x186))+((r22*x185))+((r02*x187)));
11369 new_r20=(((r00*x191))+((r20*x188))+((r10*x190)));
11370 new_r21=(((r21*x188))+((r11*x190))+((r01*x191)));
11371 new_r22=(((r12*x190))+((r22*x188))+((r02*x191)));
11372 j10eval[0]=sj11;
11373 j10eval[1]=IKsign(sj11);
11374 if( IKabs(j10eval[0]) < 0.0000010000000000  || IKabs(j10eval[1]) < 0.0000010000000000  )
11375 {
11376 {
11377 IkReal j10eval[1];
11378 IkReal x192=((1.0)*sj9);
11379 IkReal x193=(cj9*sj6);
11380 IkReal x194=x160;
11381 IkReal x195=(cj4*sj8);
11382 IkReal x196=(sj6*x192);
11383 IkReal x197=(cj6*cj9);
11384 IkReal x198=(((cj8*x197))+(((-1.0)*x196)));
11385 IkReal x199=(((cj9*x195))+((sj4*x198)));
11386 IkReal x200=((1.0)*sj4*sj8);
11387 IkReal x201=((((-1.0)*cj9*x200))+((cj4*x198)));
11388 IkReal x202=(sj6*sj8);
11389 IkReal x203=x169;
11390 IkReal x204=x170;
11391 IkReal x205=((((-1.0)*cj8*x196))+x197);
11392 IkReal x206=x172;
11393 IkReal x207=(((sj9*x195))+((sj4*x206)));
11394 IkReal x208=(((cj4*x206))+(((-1.0)*sj4*sj8*x192)));
11395 new_r00=(((r20*x194))+((r00*x201))+((r10*x199)));
11396 new_r01=(((r11*x199))+((r01*x201))+((r21*x194)));
11397 new_r02=(((r02*x201))+((r22*x194))+((r12*x199)));
11398 new_r10=(((r00*x204))+((r10*x203))+((r20*x202)));
11399 new_r11=(((r21*x202))+((r11*x203))+((r01*x204)));
11400 new_r12=(((r12*x203))+((r22*x202))+((r02*x204)));
11401 new_r20=(((r20*x205))+((r10*x207))+((r00*x208)));
11402 new_r21=(((r11*x207))+((r01*x208))+((r21*x205)));
11403 new_r22=(((r12*x207))+((r02*x208))+((r22*x205)));
11404 j10eval[0]=sj11;
11405 if( IKabs(j10eval[0]) < 0.0000010000000000  )
11406 {
11407 {
11408 IkReal evalcond[6];
11409 bool bgotonextstatement = true;
11410 do
11411 {
11412 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j11))), 6.28318530717959)));
11413 evalcond[1]=((-1.0)+new_r22);
11414 evalcond[2]=new_r20;
11415 evalcond[3]=new_r02;
11416 evalcond[4]=new_r12;
11417 evalcond[5]=new_r21;
11418 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
11419 {
11420 bgotonextstatement=false;
11421 {
11422 IkReal j10array[2], cj10array[2], sj10array[2];
11423 bool j10valid[2]={false};
11424 _nj10 = 2;
11425 CheckValue<IkReal> x210 = IKatan2WithCheck(IkReal(new_r02),new_r12,IKFAST_ATAN2_MAGTHRESH);
11426 if(!x210.valid){
11427 continue;
11428 }
11429 IkReal x209=((-1.0)*(((1.0)*(x210.value))));
11430 j10array[0]=x209;
11431 sj10array[0]=IKsin(j10array[0]);
11432 cj10array[0]=IKcos(j10array[0]);
11433 j10array[1]=((3.14159265358979)+x209);
11434 sj10array[1]=IKsin(j10array[1]);
11435 cj10array[1]=IKcos(j10array[1]);
11436 if( j10array[0] > IKPI )
11437 {
11438     j10array[0]-=IK2PI;
11439 }
11440 else if( j10array[0] < -IKPI )
11441 {    j10array[0]+=IK2PI;
11442 }
11443 j10valid[0] = true;
11444 if( j10array[1] > IKPI )
11445 {
11446     j10array[1]-=IK2PI;
11447 }
11448 else if( j10array[1] < -IKPI )
11449 {    j10array[1]+=IK2PI;
11450 }
11451 j10valid[1] = true;
11452 for(int ij10 = 0; ij10 < 2; ++ij10)
11453 {
11454 if( !j10valid[ij10] )
11455 {
11456     continue;
11457 }
11458 _ij10[0] = ij10; _ij10[1] = -1;
11459 for(int iij10 = ij10+1; iij10 < 2; ++iij10)
11460 {
11461 if( j10valid[iij10] && IKabs(cj10array[ij10]-cj10array[iij10]) < IKFAST_SOLUTION_THRESH && IKabs(sj10array[ij10]-sj10array[iij10]) < IKFAST_SOLUTION_THRESH )
11462 {
11463     j10valid[iij10]=false; _ij10[1] = iij10; break;
11464 }
11465 }
11466 j10 = j10array[ij10]; cj10 = cj10array[ij10]; sj10 = sj10array[ij10];
11467 {
11468 IkReal evalcond[1];
11469 evalcond[0]=(((new_r12*(IKcos(j10))))+(((-1.0)*(1.0)*new_r02*(IKsin(j10)))));
11470 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
11471 {
11472 continue;
11473 }
11474 }
11475 
11476 {
11477 IkReal j12array[1], cj12array[1], sj12array[1];
11478 bool j12valid[1]={false};
11479 _nj12 = 1;
11480 IkReal x211=((1.0)*new_r01);
11481 if( IKabs(((((-1.0)*cj10*x211))+(((-1.0)*(1.0)*new_r00*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((((-1.0)*sj10*x211))+((cj10*new_r00)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((-1.0)*cj10*x211))+(((-1.0)*(1.0)*new_r00*sj10))))+IKsqr(((((-1.0)*sj10*x211))+((cj10*new_r00))))-1) <= IKFAST_SINCOS_THRESH )
11482     continue;
11483 j12array[0]=IKatan2(((((-1.0)*cj10*x211))+(((-1.0)*(1.0)*new_r00*sj10))), ((((-1.0)*sj10*x211))+((cj10*new_r00))));
11484 sj12array[0]=IKsin(j12array[0]);
11485 cj12array[0]=IKcos(j12array[0]);
11486 if( j12array[0] > IKPI )
11487 {
11488     j12array[0]-=IK2PI;
11489 }
11490 else if( j12array[0] < -IKPI )
11491 {    j12array[0]+=IK2PI;
11492 }
11493 j12valid[0] = true;
11494 for(int ij12 = 0; ij12 < 1; ++ij12)
11495 {
11496 if( !j12valid[ij12] )
11497 {
11498     continue;
11499 }
11500 _ij12[0] = ij12; _ij12[1] = -1;
11501 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
11502 {
11503 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
11504 {
11505     j12valid[iij12]=false; _ij12[1] = iij12; break;
11506 }
11507 }
11508 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
11509 {
11510 IkReal evalcond[8];
11511 IkReal x212=IKsin(j12);
11512 IkReal x213=(cj10*x212);
11513 IkReal x214=IKcos(j12);
11514 IkReal x215=((1.0)*x214);
11515 IkReal x216=((-1.0)*x215);
11516 IkReal x217=((1.0)*sj10);
11517 IkReal x218=((((-1.0)*cj10*x215))+((sj10*x212)));
11518 evalcond[0]=(((cj10*new_r01))+x212+((new_r11*sj10)));
11519 evalcond[1]=(((sj10*x214))+x213+new_r01);
11520 evalcond[2]=(((cj10*new_r00))+((new_r10*sj10))+x216);
11521 evalcond[3]=((((-1.0)*new_r00*x217))+(((-1.0)*x212))+((cj10*new_r10)));
11522 evalcond[4]=(((cj10*new_r11))+x216+(((-1.0)*new_r01*x217)));
11523 evalcond[5]=(x218+new_r00);
11524 evalcond[6]=(x218+new_r11);
11525 evalcond[7]=((((-1.0)*x213))+(((-1.0)*x214*x217))+new_r10);
11526 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
11527 {
11528 continue;
11529 }
11530 }
11531 
11532 {
11533 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
11534 vinfos[0].jointtype = 1;
11535 vinfos[0].foffset = j4;
11536 vinfos[0].indices[0] = _ij4[0];
11537 vinfos[0].indices[1] = _ij4[1];
11538 vinfos[0].maxsolutions = _nj4;
11539 vinfos[1].jointtype = 1;
11540 vinfos[1].foffset = j6;
11541 vinfos[1].indices[0] = _ij6[0];
11542 vinfos[1].indices[1] = _ij6[1];
11543 vinfos[1].maxsolutions = _nj6;
11544 vinfos[2].jointtype = 1;
11545 vinfos[2].foffset = j8;
11546 vinfos[2].indices[0] = _ij8[0];
11547 vinfos[2].indices[1] = _ij8[1];
11548 vinfos[2].maxsolutions = _nj8;
11549 vinfos[3].jointtype = 1;
11550 vinfos[3].foffset = j9;
11551 vinfos[3].indices[0] = _ij9[0];
11552 vinfos[3].indices[1] = _ij9[1];
11553 vinfos[3].maxsolutions = _nj9;
11554 vinfos[4].jointtype = 1;
11555 vinfos[4].foffset = j10;
11556 vinfos[4].indices[0] = _ij10[0];
11557 vinfos[4].indices[1] = _ij10[1];
11558 vinfos[4].maxsolutions = _nj10;
11559 vinfos[5].jointtype = 1;
11560 vinfos[5].foffset = j11;
11561 vinfos[5].indices[0] = _ij11[0];
11562 vinfos[5].indices[1] = _ij11[1];
11563 vinfos[5].maxsolutions = _nj11;
11564 vinfos[6].jointtype = 1;
11565 vinfos[6].foffset = j12;
11566 vinfos[6].indices[0] = _ij12[0];
11567 vinfos[6].indices[1] = _ij12[1];
11568 vinfos[6].maxsolutions = _nj12;
11569 std::vector<int> vfree(0);
11570 solutions.AddSolution(vinfos,vfree);
11571 }
11572 }
11573 }
11574 }
11575 }
11576 
11577 }
11578 } while(0);
11579 if( bgotonextstatement )
11580 {
11581 bool bgotonextstatement = true;
11582 do
11583 {
11584 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j11)))), 6.28318530717959)));
11585 evalcond[1]=((1.0)+new_r22);
11586 evalcond[2]=new_r20;
11587 evalcond[3]=new_r02;
11588 evalcond[4]=new_r12;
11589 evalcond[5]=new_r21;
11590 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  )
11591 {
11592 bgotonextstatement=false;
11593 {
11594 IkReal j10array[2], cj10array[2], sj10array[2];
11595 bool j10valid[2]={false};
11596 _nj10 = 2;
11597 CheckValue<IkReal> x220 = IKatan2WithCheck(IkReal(new_r02),new_r12,IKFAST_ATAN2_MAGTHRESH);
11598 if(!x220.valid){
11599 continue;
11600 }
11601 IkReal x219=((-1.0)*(((1.0)*(x220.value))));
11602 j10array[0]=x219;
11603 sj10array[0]=IKsin(j10array[0]);
11604 cj10array[0]=IKcos(j10array[0]);
11605 j10array[1]=((3.14159265358979)+x219);
11606 sj10array[1]=IKsin(j10array[1]);
11607 cj10array[1]=IKcos(j10array[1]);
11608 if( j10array[0] > IKPI )
11609 {
11610     j10array[0]-=IK2PI;
11611 }
11612 else if( j10array[0] < -IKPI )
11613 {    j10array[0]+=IK2PI;
11614 }
11615 j10valid[0] = true;
11616 if( j10array[1] > IKPI )
11617 {
11618     j10array[1]-=IK2PI;
11619 }
11620 else if( j10array[1] < -IKPI )
11621 {    j10array[1]+=IK2PI;
11622 }
11623 j10valid[1] = true;
11624 for(int ij10 = 0; ij10 < 2; ++ij10)
11625 {
11626 if( !j10valid[ij10] )
11627 {
11628     continue;
11629 }
11630 _ij10[0] = ij10; _ij10[1] = -1;
11631 for(int iij10 = ij10+1; iij10 < 2; ++iij10)
11632 {
11633 if( j10valid[iij10] && IKabs(cj10array[ij10]-cj10array[iij10]) < IKFAST_SOLUTION_THRESH && IKabs(sj10array[ij10]-sj10array[iij10]) < IKFAST_SOLUTION_THRESH )
11634 {
11635     j10valid[iij10]=false; _ij10[1] = iij10; break;
11636 }
11637 }
11638 j10 = j10array[ij10]; cj10 = cj10array[ij10]; sj10 = sj10array[ij10];
11639 {
11640 IkReal evalcond[1];
11641 evalcond[0]=(((new_r12*(IKcos(j10))))+(((-1.0)*(1.0)*new_r02*(IKsin(j10)))));
11642 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  )
11643 {
11644 continue;
11645 }
11646 }
11647 
11648 {
11649 IkReal j12array[1], cj12array[1], sj12array[1];
11650 bool j12valid[1]={false};
11651 _nj12 = 1;
11652 IkReal x221=((1.0)*new_r00);
11653 if( IKabs(((((-1.0)*sj10*x221))+((cj10*new_r01)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((((-1.0)*cj10*x221))+(((-1.0)*(1.0)*new_r01*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((-1.0)*sj10*x221))+((cj10*new_r01))))+IKsqr(((((-1.0)*cj10*x221))+(((-1.0)*(1.0)*new_r01*sj10))))-1) <= IKFAST_SINCOS_THRESH )
11654     continue;
11655 j12array[0]=IKatan2(((((-1.0)*sj10*x221))+((cj10*new_r01))), ((((-1.0)*cj10*x221))+(((-1.0)*(1.0)*new_r01*sj10))));
11656 sj12array[0]=IKsin(j12array[0]);
11657 cj12array[0]=IKcos(j12array[0]);
11658 if( j12array[0] > IKPI )
11659 {
11660     j12array[0]-=IK2PI;
11661 }
11662 else if( j12array[0] < -IKPI )
11663 {    j12array[0]+=IK2PI;
11664 }
11665 j12valid[0] = true;
11666 for(int ij12 = 0; ij12 < 1; ++ij12)
11667 {
11668 if( !j12valid[ij12] )
11669 {
11670     continue;
11671 }
11672 _ij12[0] = ij12; _ij12[1] = -1;
11673 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
11674 {
11675 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
11676 {
11677     j12valid[iij12]=false; _ij12[1] = iij12; break;
11678 }
11679 }
11680 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
11681 {
11682 IkReal evalcond[8];
11683 IkReal x222=IKcos(j12);
11684 IkReal x223=IKsin(j12);
11685 IkReal x224=((1.0)*x223);
11686 IkReal x225=((-1.0)*x224);
11687 IkReal x226=(cj10*x222);
11688 IkReal x227=((1.0)*sj10);
11689 IkReal x228=(((sj10*x222))+(((-1.0)*cj10*x224)));
11690 evalcond[0]=(((cj10*new_r00))+((new_r10*sj10))+x222);
11691 evalcond[1]=(((cj10*new_r01))+((new_r11*sj10))+x225);
11692 evalcond[2]=(((sj10*x223))+new_r00+x226);
11693 evalcond[3]=(((cj10*new_r10))+(((-1.0)*new_r00*x227))+x225);
11694 evalcond[4]=(((cj10*new_r11))+(((-1.0)*x222))+(((-1.0)*new_r01*x227)));
11695 evalcond[5]=(new_r01+x228);
11696 evalcond[6]=(new_r10+x228);
11697 evalcond[7]=((((-1.0)*x226))+new_r11+(((-1.0)*x223*x227)));
11698 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
11699 {
11700 continue;
11701 }
11702 }
11703 
11704 {
11705 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
11706 vinfos[0].jointtype = 1;
11707 vinfos[0].foffset = j4;
11708 vinfos[0].indices[0] = _ij4[0];
11709 vinfos[0].indices[1] = _ij4[1];
11710 vinfos[0].maxsolutions = _nj4;
11711 vinfos[1].jointtype = 1;
11712 vinfos[1].foffset = j6;
11713 vinfos[1].indices[0] = _ij6[0];
11714 vinfos[1].indices[1] = _ij6[1];
11715 vinfos[1].maxsolutions = _nj6;
11716 vinfos[2].jointtype = 1;
11717 vinfos[2].foffset = j8;
11718 vinfos[2].indices[0] = _ij8[0];
11719 vinfos[2].indices[1] = _ij8[1];
11720 vinfos[2].maxsolutions = _nj8;
11721 vinfos[3].jointtype = 1;
11722 vinfos[3].foffset = j9;
11723 vinfos[3].indices[0] = _ij9[0];
11724 vinfos[3].indices[1] = _ij9[1];
11725 vinfos[3].maxsolutions = _nj9;
11726 vinfos[4].jointtype = 1;
11727 vinfos[4].foffset = j10;
11728 vinfos[4].indices[0] = _ij10[0];
11729 vinfos[4].indices[1] = _ij10[1];
11730 vinfos[4].maxsolutions = _nj10;
11731 vinfos[5].jointtype = 1;
11732 vinfos[5].foffset = j11;
11733 vinfos[5].indices[0] = _ij11[0];
11734 vinfos[5].indices[1] = _ij11[1];
11735 vinfos[5].maxsolutions = _nj11;
11736 vinfos[6].jointtype = 1;
11737 vinfos[6].foffset = j12;
11738 vinfos[6].indices[0] = _ij12[0];
11739 vinfos[6].indices[1] = _ij12[1];
11740 vinfos[6].maxsolutions = _nj12;
11741 std::vector<int> vfree(0);
11742 solutions.AddSolution(vinfos,vfree);
11743 }
11744 }
11745 }
11746 }
11747 }
11748 
11749 }
11750 } while(0);
11751 if( bgotonextstatement )
11752 {
11753 bool bgotonextstatement = true;
11754 do
11755 {
11756 if( 1 )
11757 {
11758 bgotonextstatement=false;
11759 continue; // branch miss [j10, j12]
11760 
11761 }
11762 } while(0);
11763 if( bgotonextstatement )
11764 {
11765 }
11766 }
11767 }
11768 }
11769 
11770 } else
11771 {
11772 {
11773 IkReal j10array[1], cj10array[1], sj10array[1];
11774 bool j10valid[1]={false};
11775 _nj10 = 1;
11776 CheckValue<IkReal> x230=IKPowWithIntegerCheck(sj11,-1);
11777 if(!x230.valid){
11778 continue;
11779 }
11780 IkReal x229=x230.value;
11781 CheckValue<IkReal> x231=IKPowWithIntegerCheck(new_r12,-1);
11782 if(!x231.valid){
11783 continue;
11784 }
11785 if( IKabs((x229*(x231.value)*(((1.0)+(((-1.0)*(1.0)*(cj11*cj11)))+(((-1.0)*(1.0)*(new_r02*new_r02))))))) < IKFAST_ATAN2_MAGTHRESH && IKabs((new_r02*x229)) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((x229*(x231.value)*(((1.0)+(((-1.0)*(1.0)*(cj11*cj11)))+(((-1.0)*(1.0)*(new_r02*new_r02)))))))+IKsqr((new_r02*x229))-1) <= IKFAST_SINCOS_THRESH )
11786     continue;
11787 j10array[0]=IKatan2((x229*(x231.value)*(((1.0)+(((-1.0)*(1.0)*(cj11*cj11)))+(((-1.0)*(1.0)*(new_r02*new_r02)))))), (new_r02*x229));
11788 sj10array[0]=IKsin(j10array[0]);
11789 cj10array[0]=IKcos(j10array[0]);
11790 if( j10array[0] > IKPI )
11791 {
11792     j10array[0]-=IK2PI;
11793 }
11794 else if( j10array[0] < -IKPI )
11795 {    j10array[0]+=IK2PI;
11796 }
11797 j10valid[0] = true;
11798 for(int ij10 = 0; ij10 < 1; ++ij10)
11799 {
11800 if( !j10valid[ij10] )
11801 {
11802     continue;
11803 }
11804 _ij10[0] = ij10; _ij10[1] = -1;
11805 for(int iij10 = ij10+1; iij10 < 1; ++iij10)
11806 {
11807 if( j10valid[iij10] && IKabs(cj10array[ij10]-cj10array[iij10]) < IKFAST_SOLUTION_THRESH && IKabs(sj10array[ij10]-sj10array[iij10]) < IKFAST_SOLUTION_THRESH )
11808 {
11809     j10valid[iij10]=false; _ij10[1] = iij10; break;
11810 }
11811 }
11812 j10 = j10array[ij10]; cj10 = cj10array[ij10]; sj10 = sj10array[ij10];
11813 {
11814 IkReal evalcond[8];
11815 IkReal x232=IKcos(j10);
11816 IkReal x233=((1.0)*sj11);
11817 IkReal x234=(x232*x233);
11818 IkReal x235=IKsin(j10);
11819 IkReal x236=(x233*x235);
11820 IkReal x237=(new_r02*x232);
11821 IkReal x238=(new_r12*x235);
11822 IkReal x239=((1.0)*cj11);
11823 evalcond[0]=((((-1.0)*x234))+new_r02);
11824 evalcond[1]=(new_r12+(((-1.0)*x236)));
11825 evalcond[2]=(((new_r12*x232))+(((-1.0)*new_r02*x235)));
11826 evalcond[3]=((((-1.0)*x233))+x237+x238);
11827 evalcond[4]=(((cj11*x238))+(((-1.0)*new_r22*x233))+((cj11*x237)));
11828 evalcond[5]=((((-1.0)*new_r00*x234))+(((-1.0)*new_r10*x236))+(((-1.0)*new_r20*x239)));
11829 evalcond[6]=((((-1.0)*new_r01*x234))+(((-1.0)*new_r21*x239))+(((-1.0)*new_r11*x236)));
11830 evalcond[7]=((1.0)+(((-1.0)*new_r22*x239))+(((-1.0)*x233*x238))+(((-1.0)*x233*x237)));
11831 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
11832 {
11833 continue;
11834 }
11835 }
11836 
11837 {
11838 IkReal j12eval[2];
11839 IkReal x240=((1.0)*sj9);
11840 IkReal x241=(cj9*sj6);
11841 IkReal x242=x160;
11842 IkReal x243=(cj4*sj8);
11843 IkReal x244=(sj6*x240);
11844 IkReal x245=(cj6*cj9);
11845 IkReal x246=(((cj8*x245))+(((-1.0)*x244)));
11846 IkReal x247=(((cj9*x243))+((sj4*x246)));
11847 IkReal x248=((1.0)*sj4*sj8);
11848 IkReal x249=((((-1.0)*cj9*x248))+((cj4*x246)));
11849 IkReal x250=(sj6*sj8);
11850 IkReal x251=x169;
11851 IkReal x252=x170;
11852 IkReal x253=(x245+(((-1.0)*cj8*x244)));
11853 IkReal x254=x172;
11854 IkReal x255=(((sj9*x243))+((sj4*x254)));
11855 IkReal x256=(((cj4*x254))+(((-1.0)*sj4*sj8*x240)));
11856 new_r00=(((r20*x242))+((r00*x249))+((r10*x247)));
11857 new_r01=(((r21*x242))+((r01*x249))+((r11*x247)));
11858 new_r02=(((r22*x242))+((r12*x247))+((r02*x249)));
11859 new_r10=(((r10*x251))+((r20*x250))+((r00*x252)));
11860 new_r11=(((r11*x251))+((r21*x250))+((r01*x252)));
11861 new_r12=(((r22*x250))+((r12*x251))+((r02*x252)));
11862 new_r20=(((r20*x253))+((r00*x256))+((r10*x255)));
11863 new_r21=(((r21*x253))+((r11*x255))+((r01*x256)));
11864 new_r22=(((r02*x256))+((r12*x255))+((r22*x253)));
11865 j12eval[0]=sj11;
11866 j12eval[1]=IKsign(sj11);
11867 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  )
11868 {
11869 {
11870 IkReal j12eval[2];
11871 IkReal x257=((1.0)*sj9);
11872 IkReal x258=(cj9*sj6);
11873 IkReal x259=x160;
11874 IkReal x260=(cj4*sj8);
11875 IkReal x261=(sj6*x257);
11876 IkReal x262=(cj6*cj9);
11877 IkReal x263=(((cj8*x262))+(((-1.0)*x261)));
11878 IkReal x264=(((sj4*x263))+((cj9*x260)));
11879 IkReal x265=((1.0)*sj4*sj8);
11880 IkReal x266=((((-1.0)*cj9*x265))+((cj4*x263)));
11881 IkReal x267=(sj6*sj8);
11882 IkReal x268=x169;
11883 IkReal x269=x170;
11884 IkReal x270=(x262+(((-1.0)*cj8*x261)));
11885 IkReal x271=x172;
11886 IkReal x272=(((sj4*x271))+((sj9*x260)));
11887 IkReal x273=(((cj4*x271))+(((-1.0)*sj4*sj8*x257)));
11888 new_r00=(((r00*x266))+((r20*x259))+((r10*x264)));
11889 new_r01=(((r21*x259))+((r01*x266))+((r11*x264)));
11890 new_r02=(((r02*x266))+((r12*x264))+((r22*x259)));
11891 new_r10=(((r20*x267))+((r00*x269))+((r10*x268)));
11892 new_r11=(((r01*x269))+((r21*x267))+((r11*x268)));
11893 new_r12=(((r22*x267))+((r12*x268))+((r02*x269)));
11894 new_r20=(((r00*x273))+((r10*x272))+((r20*x270)));
11895 new_r21=(((r11*x272))+((r01*x273))+((r21*x270)));
11896 new_r22=(((r12*x272))+((r02*x273))+((r22*x270)));
11897 j12eval[0]=sj10;
11898 j12eval[1]=sj11;
11899 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  )
11900 {
11901 {
11902 IkReal j12eval[3];
11903 IkReal x274=((1.0)*sj9);
11904 IkReal x275=(cj9*sj6);
11905 IkReal x276=x160;
11906 IkReal x277=(cj4*sj8);
11907 IkReal x278=(sj6*x274);
11908 IkReal x279=(cj6*cj9);
11909 IkReal x280=(((cj8*x279))+(((-1.0)*x278)));
11910 IkReal x281=(((cj9*x277))+((sj4*x280)));
11911 IkReal x282=((1.0)*sj4*sj8);
11912 IkReal x283=(((cj4*x280))+(((-1.0)*cj9*x282)));
11913 IkReal x284=(sj6*sj8);
11914 IkReal x285=x169;
11915 IkReal x286=x170;
11916 IkReal x287=((((-1.0)*cj8*x278))+x279);
11917 IkReal x288=x172;
11918 IkReal x289=(((sj9*x277))+((sj4*x288)));
11919 IkReal x290=(((cj4*x288))+(((-1.0)*sj4*sj8*x274)));
11920 new_r00=(((r00*x283))+((r10*x281))+((r20*x276)));
11921 new_r01=(((r01*x283))+((r11*x281))+((r21*x276)));
11922 new_r02=(((r22*x276))+((r02*x283))+((r12*x281)));
11923 new_r10=(((r10*x285))+((r00*x286))+((r20*x284)));
11924 new_r11=(((r01*x286))+((r21*x284))+((r11*x285)));
11925 new_r12=(((r22*x284))+((r02*x286))+((r12*x285)));
11926 new_r20=(((r00*x290))+((r20*x287))+((r10*x289)));
11927 new_r21=(((r21*x287))+((r11*x289))+((r01*x290)));
11928 new_r22=(((r22*x287))+((r12*x289))+((r02*x290)));
11929 j12eval[0]=cj10;
11930 j12eval[1]=cj11;
11931 j12eval[2]=sj11;
11932 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  || IKabs(j12eval[2]) < 0.0000010000000000  )
11933 {
11934 {
11935 IkReal evalcond[12];
11936 bool bgotonextstatement = true;
11937 do
11938 {
11939 IkReal x291=((1.0)*cj11);
11940 IkReal x292=((((-1.0)*x291))+new_r22);
11941 IkReal x293=((1.0)*sj11);
11942 IkReal x294=((((-1.0)*x293))+new_r12);
11943 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j10)))), 6.28318530717959)));
11944 evalcond[1]=x292;
11945 evalcond[2]=x292;
11946 evalcond[3]=new_r02;
11947 evalcond[4]=x294;
11948 evalcond[5]=x294;
11949 evalcond[6]=((((-1.0)*new_r22*x293))+((cj11*new_r12)));
11950 evalcond[7]=((((-1.0)*new_r10*x293))+(((-1.0)*new_r20*x291)));
11951 evalcond[8]=((((-1.0)*new_r11*x293))+(((-1.0)*new_r21*x291)));
11952 evalcond[9]=((1.0)+(((-1.0)*new_r12*x293))+(((-1.0)*new_r22*x291)));
11953 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
11954 {
11955 bgotonextstatement=false;
11956 {
11957 IkReal j12array[1], cj12array[1], sj12array[1];
11958 bool j12valid[1]={false};
11959 _nj12 = 1;
11960 CheckValue<IkReal> x295=IKPowWithIntegerCheck(IKsign(new_r12),-1);
11961 if(!x295.valid){
11962 continue;
11963 }
11964 CheckValue<IkReal> x296 = IKatan2WithCheck(IkReal(new_r21),((-1.0)*(((1.0)*new_r20))),IKFAST_ATAN2_MAGTHRESH);
11965 if(!x296.valid){
11966 continue;
11967 }
11968 j12array[0]=((-1.5707963267949)+(((1.5707963267949)*(x295.value)))+(x296.value));
11969 sj12array[0]=IKsin(j12array[0]);
11970 cj12array[0]=IKcos(j12array[0]);
11971 if( j12array[0] > IKPI )
11972 {
11973     j12array[0]-=IK2PI;
11974 }
11975 else if( j12array[0] < -IKPI )
11976 {    j12array[0]+=IK2PI;
11977 }
11978 j12valid[0] = true;
11979 for(int ij12 = 0; ij12 < 1; ++ij12)
11980 {
11981 if( !j12valid[ij12] )
11982 {
11983     continue;
11984 }
11985 _ij12[0] = ij12; _ij12[1] = -1;
11986 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
11987 {
11988 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
11989 {
11990     j12valid[iij12]=false; _ij12[1] = iij12; break;
11991 }
11992 }
11993 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
11994 {
11995 IkReal evalcond[8];
11996 IkReal x297=IKcos(j12);
11997 IkReal x298=IKsin(j12);
11998 IkReal x299=((1.0)*new_r12);
11999 IkReal x300=((1.0)*x297);
12000 IkReal x301=((-1.0)*x300);
12001 evalcond[0]=(((new_r12*x297))+new_r20);
12002 evalcond[1]=(((new_r22*x298))+new_r11);
12003 evalcond[2]=((((-1.0)*x298*x299))+new_r21);
12004 evalcond[3]=((((-1.0)*new_r22*x300))+new_r10);
12005 evalcond[4]=((((-1.0)*(1.0)*new_r00))+(((-1.0)*x298)));
12006 evalcond[5]=(x301+(((-1.0)*(1.0)*new_r01)));
12007 evalcond[6]=(((new_r11*new_r22))+x298+(((-1.0)*new_r21*x299)));
12008 evalcond[7]=((((-1.0)*new_r20*x299))+x301+((new_r10*new_r22)));
12009 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12010 {
12011 continue;
12012 }
12013 }
12014 
12015 {
12016 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12017 vinfos[0].jointtype = 1;
12018 vinfos[0].foffset = j4;
12019 vinfos[0].indices[0] = _ij4[0];
12020 vinfos[0].indices[1] = _ij4[1];
12021 vinfos[0].maxsolutions = _nj4;
12022 vinfos[1].jointtype = 1;
12023 vinfos[1].foffset = j6;
12024 vinfos[1].indices[0] = _ij6[0];
12025 vinfos[1].indices[1] = _ij6[1];
12026 vinfos[1].maxsolutions = _nj6;
12027 vinfos[2].jointtype = 1;
12028 vinfos[2].foffset = j8;
12029 vinfos[2].indices[0] = _ij8[0];
12030 vinfos[2].indices[1] = _ij8[1];
12031 vinfos[2].maxsolutions = _nj8;
12032 vinfos[3].jointtype = 1;
12033 vinfos[3].foffset = j9;
12034 vinfos[3].indices[0] = _ij9[0];
12035 vinfos[3].indices[1] = _ij9[1];
12036 vinfos[3].maxsolutions = _nj9;
12037 vinfos[4].jointtype = 1;
12038 vinfos[4].foffset = j10;
12039 vinfos[4].indices[0] = _ij10[0];
12040 vinfos[4].indices[1] = _ij10[1];
12041 vinfos[4].maxsolutions = _nj10;
12042 vinfos[5].jointtype = 1;
12043 vinfos[5].foffset = j11;
12044 vinfos[5].indices[0] = _ij11[0];
12045 vinfos[5].indices[1] = _ij11[1];
12046 vinfos[5].maxsolutions = _nj11;
12047 vinfos[6].jointtype = 1;
12048 vinfos[6].foffset = j12;
12049 vinfos[6].indices[0] = _ij12[0];
12050 vinfos[6].indices[1] = _ij12[1];
12051 vinfos[6].maxsolutions = _nj12;
12052 std::vector<int> vfree(0);
12053 solutions.AddSolution(vinfos,vfree);
12054 }
12055 }
12056 }
12057 
12058 }
12059 } while(0);
12060 if( bgotonextstatement )
12061 {
12062 bool bgotonextstatement = true;
12063 do
12064 {
12065 IkReal x302=((1.0)*cj11);
12066 IkReal x303=((((-1.0)*x302))+new_r22);
12067 IkReal x304=((1.0)*sj11);
12068 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j10)))), 6.28318530717959)));
12069 evalcond[1]=x303;
12070 evalcond[2]=x303;
12071 evalcond[3]=new_r02;
12072 evalcond[4]=(sj11+new_r12);
12073 evalcond[5]=((((-1.0)*(1.0)*new_r12))+(((-1.0)*x304)));
12074 evalcond[6]=((((-1.0)*new_r22*x304))+(((-1.0)*new_r12*x302)));
12075 evalcond[7]=(((new_r10*sj11))+(((-1.0)*new_r20*x302)));
12076 evalcond[8]=((((-1.0)*new_r21*x302))+((new_r11*sj11)));
12077 evalcond[9]=((1.0)+(((-1.0)*new_r22*x302))+((new_r12*sj11)));
12078 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
12079 {
12080 bgotonextstatement=false;
12081 {
12082 IkReal j12array[1], cj12array[1], sj12array[1];
12083 bool j12valid[1]={false};
12084 _nj12 = 1;
12085 if( IKabs(new_r00) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r01) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r00)+IKsqr(new_r01)-1) <= IKFAST_SINCOS_THRESH )
12086     continue;
12087 j12array[0]=IKatan2(new_r00, new_r01);
12088 sj12array[0]=IKsin(j12array[0]);
12089 cj12array[0]=IKcos(j12array[0]);
12090 if( j12array[0] > IKPI )
12091 {
12092     j12array[0]-=IK2PI;
12093 }
12094 else if( j12array[0] < -IKPI )
12095 {    j12array[0]+=IK2PI;
12096 }
12097 j12valid[0] = true;
12098 for(int ij12 = 0; ij12 < 1; ++ij12)
12099 {
12100 if( !j12valid[ij12] )
12101 {
12102     continue;
12103 }
12104 _ij12[0] = ij12; _ij12[1] = -1;
12105 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12106 {
12107 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12108 {
12109     j12valid[iij12]=false; _ij12[1] = iij12; break;
12110 }
12111 }
12112 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12113 {
12114 IkReal evalcond[8];
12115 IkReal x305=IKsin(j12);
12116 IkReal x306=((1.0)*(IKcos(j12)));
12117 IkReal x307=((-1.0)*x306);
12118 IkReal x308=((1.0)*new_r11);
12119 IkReal x309=((1.0)*new_r10);
12120 evalcond[0]=(((new_r12*x305))+new_r21);
12121 evalcond[1]=((((-1.0)*x305))+new_r00);
12122 evalcond[2]=(x307+new_r01);
12123 evalcond[3]=((((-1.0)*new_r12*x306))+new_r20);
12124 evalcond[4]=((((-1.0)*x308))+((new_r22*x305)));
12125 evalcond[5]=((((-1.0)*x309))+(((-1.0)*new_r22*x306)));
12126 evalcond[6]=(x305+((new_r12*new_r21))+(((-1.0)*new_r22*x308)));
12127 evalcond[7]=(x307+((new_r12*new_r20))+(((-1.0)*new_r22*x309)));
12128 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12129 {
12130 continue;
12131 }
12132 }
12133 
12134 {
12135 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12136 vinfos[0].jointtype = 1;
12137 vinfos[0].foffset = j4;
12138 vinfos[0].indices[0] = _ij4[0];
12139 vinfos[0].indices[1] = _ij4[1];
12140 vinfos[0].maxsolutions = _nj4;
12141 vinfos[1].jointtype = 1;
12142 vinfos[1].foffset = j6;
12143 vinfos[1].indices[0] = _ij6[0];
12144 vinfos[1].indices[1] = _ij6[1];
12145 vinfos[1].maxsolutions = _nj6;
12146 vinfos[2].jointtype = 1;
12147 vinfos[2].foffset = j8;
12148 vinfos[2].indices[0] = _ij8[0];
12149 vinfos[2].indices[1] = _ij8[1];
12150 vinfos[2].maxsolutions = _nj8;
12151 vinfos[3].jointtype = 1;
12152 vinfos[3].foffset = j9;
12153 vinfos[3].indices[0] = _ij9[0];
12154 vinfos[3].indices[1] = _ij9[1];
12155 vinfos[3].maxsolutions = _nj9;
12156 vinfos[4].jointtype = 1;
12157 vinfos[4].foffset = j10;
12158 vinfos[4].indices[0] = _ij10[0];
12159 vinfos[4].indices[1] = _ij10[1];
12160 vinfos[4].maxsolutions = _nj10;
12161 vinfos[5].jointtype = 1;
12162 vinfos[5].foffset = j11;
12163 vinfos[5].indices[0] = _ij11[0];
12164 vinfos[5].indices[1] = _ij11[1];
12165 vinfos[5].maxsolutions = _nj11;
12166 vinfos[6].jointtype = 1;
12167 vinfos[6].foffset = j12;
12168 vinfos[6].indices[0] = _ij12[0];
12169 vinfos[6].indices[1] = _ij12[1];
12170 vinfos[6].maxsolutions = _nj12;
12171 std::vector<int> vfree(0);
12172 solutions.AddSolution(vinfos,vfree);
12173 }
12174 }
12175 }
12176 
12177 }
12178 } while(0);
12179 if( bgotonextstatement )
12180 {
12181 bool bgotonextstatement = true;
12182 do
12183 {
12184 IkReal x310=((1.0)*cj10);
12185 IkReal x311=((1.0)*sj10);
12186 IkReal x312=((((-1.0)*new_r02*x311))+((cj10*new_r12)));
12187 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j11)))), 6.28318530717959)));
12188 evalcond[1]=new_r22;
12189 evalcond[2]=((((-1.0)*x310))+new_r02);
12190 evalcond[3]=(new_r12+(((-1.0)*x311)));
12191 evalcond[4]=x312;
12192 evalcond[5]=x312;
12193 evalcond[6]=((-1.0)+((cj10*new_r02))+((new_r12*sj10)));
12194 evalcond[7]=(((cj10*new_r01))+((new_r11*sj10)));
12195 evalcond[8]=(((cj10*new_r00))+((new_r10*sj10)));
12196 evalcond[9]=((((-1.0)*new_r10*x311))+(((-1.0)*new_r00*x310)));
12197 evalcond[10]=((((-1.0)*new_r01*x310))+(((-1.0)*new_r11*x311)));
12198 evalcond[11]=((1.0)+(((-1.0)*new_r12*x311))+(((-1.0)*new_r02*x310)));
12199 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  && IKabs(evalcond[10]) < 0.0000010000000000  && IKabs(evalcond[11]) < 0.0000010000000000  )
12200 {
12201 bgotonextstatement=false;
12202 {
12203 IkReal j12array[1], cj12array[1], sj12array[1];
12204 bool j12valid[1]={false};
12205 _nj12 = 1;
12206 if( IKabs(new_r21) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*(((1.0)*new_r20)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r21)+IKsqr(((-1.0)*(((1.0)*new_r20))))-1) <= IKFAST_SINCOS_THRESH )
12207     continue;
12208 j12array[0]=IKatan2(new_r21, ((-1.0)*(((1.0)*new_r20))));
12209 sj12array[0]=IKsin(j12array[0]);
12210 cj12array[0]=IKcos(j12array[0]);
12211 if( j12array[0] > IKPI )
12212 {
12213     j12array[0]-=IK2PI;
12214 }
12215 else if( j12array[0] < -IKPI )
12216 {    j12array[0]+=IK2PI;
12217 }
12218 j12valid[0] = true;
12219 for(int ij12 = 0; ij12 < 1; ++ij12)
12220 {
12221 if( !j12valid[ij12] )
12222 {
12223     continue;
12224 }
12225 _ij12[0] = ij12; _ij12[1] = -1;
12226 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12227 {
12228 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12229 {
12230     j12valid[iij12]=false; _ij12[1] = iij12; break;
12231 }
12232 }
12233 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12234 {
12235 IkReal evalcond[8];
12236 IkReal x313=IKcos(j12);
12237 IkReal x314=IKsin(j12);
12238 IkReal x315=((1.0)*x314);
12239 IkReal x316=((-1.0)*x315);
12240 IkReal x317=((1.0)*x313);
12241 IkReal x318=((1.0)*new_r12);
12242 evalcond[0]=(x313+new_r20);
12243 evalcond[1]=(x316+new_r21);
12244 evalcond[2]=(((new_r12*x313))+new_r01);
12245 evalcond[3]=(((new_r12*x314))+new_r00);
12246 evalcond[4]=((((-1.0)*new_r02*x317))+new_r11);
12247 evalcond[5]=(new_r10+(((-1.0)*new_r02*x315)));
12248 evalcond[6]=((((-1.0)*new_r00*x318))+x316+((new_r02*new_r10)));
12249 evalcond[7]=(((new_r02*new_r11))+(((-1.0)*new_r01*x318))+(((-1.0)*x317)));
12250 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12251 {
12252 continue;
12253 }
12254 }
12255 
12256 {
12257 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12258 vinfos[0].jointtype = 1;
12259 vinfos[0].foffset = j4;
12260 vinfos[0].indices[0] = _ij4[0];
12261 vinfos[0].indices[1] = _ij4[1];
12262 vinfos[0].maxsolutions = _nj4;
12263 vinfos[1].jointtype = 1;
12264 vinfos[1].foffset = j6;
12265 vinfos[1].indices[0] = _ij6[0];
12266 vinfos[1].indices[1] = _ij6[1];
12267 vinfos[1].maxsolutions = _nj6;
12268 vinfos[2].jointtype = 1;
12269 vinfos[2].foffset = j8;
12270 vinfos[2].indices[0] = _ij8[0];
12271 vinfos[2].indices[1] = _ij8[1];
12272 vinfos[2].maxsolutions = _nj8;
12273 vinfos[3].jointtype = 1;
12274 vinfos[3].foffset = j9;
12275 vinfos[3].indices[0] = _ij9[0];
12276 vinfos[3].indices[1] = _ij9[1];
12277 vinfos[3].maxsolutions = _nj9;
12278 vinfos[4].jointtype = 1;
12279 vinfos[4].foffset = j10;
12280 vinfos[4].indices[0] = _ij10[0];
12281 vinfos[4].indices[1] = _ij10[1];
12282 vinfos[4].maxsolutions = _nj10;
12283 vinfos[5].jointtype = 1;
12284 vinfos[5].foffset = j11;
12285 vinfos[5].indices[0] = _ij11[0];
12286 vinfos[5].indices[1] = _ij11[1];
12287 vinfos[5].maxsolutions = _nj11;
12288 vinfos[6].jointtype = 1;
12289 vinfos[6].foffset = j12;
12290 vinfos[6].indices[0] = _ij12[0];
12291 vinfos[6].indices[1] = _ij12[1];
12292 vinfos[6].maxsolutions = _nj12;
12293 std::vector<int> vfree(0);
12294 solutions.AddSolution(vinfos,vfree);
12295 }
12296 }
12297 }
12298 
12299 }
12300 } while(0);
12301 if( bgotonextstatement )
12302 {
12303 bool bgotonextstatement = true;
12304 do
12305 {
12306 IkReal x319=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
12307 IkReal x320=((1.0)+((cj10*new_r02))+((new_r12*sj10)));
12308 IkReal x321=(((cj10*new_r01))+((new_r11*sj10)));
12309 IkReal x322=(((cj10*new_r00))+((new_r10*sj10)));
12310 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j11)))), 6.28318530717959)));
12311 evalcond[1]=new_r22;
12312 evalcond[2]=(cj10+new_r02);
12313 evalcond[3]=(sj10+new_r12);
12314 evalcond[4]=x319;
12315 evalcond[5]=x319;
12316 evalcond[6]=x320;
12317 evalcond[7]=x321;
12318 evalcond[8]=x322;
12319 evalcond[9]=x322;
12320 evalcond[10]=x321;
12321 evalcond[11]=x320;
12322 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  && IKabs(evalcond[10]) < 0.0000010000000000  && IKabs(evalcond[11]) < 0.0000010000000000  )
12323 {
12324 bgotonextstatement=false;
12325 {
12326 IkReal j12array[1], cj12array[1], sj12array[1];
12327 bool j12valid[1]={false};
12328 _nj12 = 1;
12329 if( IKabs(((-1.0)*(((1.0)*new_r21)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r20) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((-1.0)*(((1.0)*new_r21))))+IKsqr(new_r20)-1) <= IKFAST_SINCOS_THRESH )
12330     continue;
12331 j12array[0]=IKatan2(((-1.0)*(((1.0)*new_r21))), new_r20);
12332 sj12array[0]=IKsin(j12array[0]);
12333 cj12array[0]=IKcos(j12array[0]);
12334 if( j12array[0] > IKPI )
12335 {
12336     j12array[0]-=IK2PI;
12337 }
12338 else if( j12array[0] < -IKPI )
12339 {    j12array[0]+=IK2PI;
12340 }
12341 j12valid[0] = true;
12342 for(int ij12 = 0; ij12 < 1; ++ij12)
12343 {
12344 if( !j12valid[ij12] )
12345 {
12346     continue;
12347 }
12348 _ij12[0] = ij12; _ij12[1] = -1;
12349 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12350 {
12351 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12352 {
12353     j12valid[iij12]=false; _ij12[1] = iij12; break;
12354 }
12355 }
12356 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12357 {
12358 IkReal evalcond[8];
12359 IkReal x323=IKsin(j12);
12360 IkReal x324=IKcos(j12);
12361 IkReal x325=((1.0)*x324);
12362 IkReal x326=((-1.0)*x325);
12363 IkReal x327=((1.0)*x323);
12364 IkReal x328=((1.0)*new_r02);
12365 evalcond[0]=(x323+new_r21);
12366 evalcond[1]=(x326+new_r20);
12367 evalcond[2]=(((new_r02*x324))+new_r11);
12368 evalcond[3]=(((new_r02*x323))+new_r10);
12369 evalcond[4]=((((-1.0)*new_r12*x325))+new_r01);
12370 evalcond[5]=((((-1.0)*new_r12*x327))+new_r00);
12371 evalcond[6]=(((new_r00*new_r12))+(((-1.0)*x327))+(((-1.0)*new_r10*x328)));
12372 evalcond[7]=(((new_r01*new_r12))+x326+(((-1.0)*new_r11*x328)));
12373 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12374 {
12375 continue;
12376 }
12377 }
12378 
12379 {
12380 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12381 vinfos[0].jointtype = 1;
12382 vinfos[0].foffset = j4;
12383 vinfos[0].indices[0] = _ij4[0];
12384 vinfos[0].indices[1] = _ij4[1];
12385 vinfos[0].maxsolutions = _nj4;
12386 vinfos[1].jointtype = 1;
12387 vinfos[1].foffset = j6;
12388 vinfos[1].indices[0] = _ij6[0];
12389 vinfos[1].indices[1] = _ij6[1];
12390 vinfos[1].maxsolutions = _nj6;
12391 vinfos[2].jointtype = 1;
12392 vinfos[2].foffset = j8;
12393 vinfos[2].indices[0] = _ij8[0];
12394 vinfos[2].indices[1] = _ij8[1];
12395 vinfos[2].maxsolutions = _nj8;
12396 vinfos[3].jointtype = 1;
12397 vinfos[3].foffset = j9;
12398 vinfos[3].indices[0] = _ij9[0];
12399 vinfos[3].indices[1] = _ij9[1];
12400 vinfos[3].maxsolutions = _nj9;
12401 vinfos[4].jointtype = 1;
12402 vinfos[4].foffset = j10;
12403 vinfos[4].indices[0] = _ij10[0];
12404 vinfos[4].indices[1] = _ij10[1];
12405 vinfos[4].maxsolutions = _nj10;
12406 vinfos[5].jointtype = 1;
12407 vinfos[5].foffset = j11;
12408 vinfos[5].indices[0] = _ij11[0];
12409 vinfos[5].indices[1] = _ij11[1];
12410 vinfos[5].maxsolutions = _nj11;
12411 vinfos[6].jointtype = 1;
12412 vinfos[6].foffset = j12;
12413 vinfos[6].indices[0] = _ij12[0];
12414 vinfos[6].indices[1] = _ij12[1];
12415 vinfos[6].maxsolutions = _nj12;
12416 std::vector<int> vfree(0);
12417 solutions.AddSolution(vinfos,vfree);
12418 }
12419 }
12420 }
12421 
12422 }
12423 } while(0);
12424 if( bgotonextstatement )
12425 {
12426 bool bgotonextstatement = true;
12427 do
12428 {
12429 IkReal x329=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
12430 IkReal x330=(((cj10*new_r02))+((new_r12*sj10)));
12431 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j11))), 6.28318530717959)));
12432 evalcond[1]=((-1.0)+new_r22);
12433 evalcond[2]=new_r20;
12434 evalcond[3]=new_r02;
12435 evalcond[4]=new_r12;
12436 evalcond[5]=new_r21;
12437 evalcond[6]=x329;
12438 evalcond[7]=x329;
12439 evalcond[8]=x330;
12440 evalcond[9]=x330;
12441 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
12442 {
12443 bgotonextstatement=false;
12444 {
12445 IkReal j12array[1], cj12array[1], sj12array[1];
12446 bool j12valid[1]={false};
12447 _nj12 = 1;
12448 IkReal x331=((1.0)*new_r01);
12449 if( IKabs(((((-1.0)*cj10*x331))+(((-1.0)*(1.0)*new_r00*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs((((cj10*new_r00))+(((-1.0)*sj10*x331)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((-1.0)*cj10*x331))+(((-1.0)*(1.0)*new_r00*sj10))))+IKsqr((((cj10*new_r00))+(((-1.0)*sj10*x331))))-1) <= IKFAST_SINCOS_THRESH )
12450     continue;
12451 j12array[0]=IKatan2(((((-1.0)*cj10*x331))+(((-1.0)*(1.0)*new_r00*sj10))), (((cj10*new_r00))+(((-1.0)*sj10*x331))));
12452 sj12array[0]=IKsin(j12array[0]);
12453 cj12array[0]=IKcos(j12array[0]);
12454 if( j12array[0] > IKPI )
12455 {
12456     j12array[0]-=IK2PI;
12457 }
12458 else if( j12array[0] < -IKPI )
12459 {    j12array[0]+=IK2PI;
12460 }
12461 j12valid[0] = true;
12462 for(int ij12 = 0; ij12 < 1; ++ij12)
12463 {
12464 if( !j12valid[ij12] )
12465 {
12466     continue;
12467 }
12468 _ij12[0] = ij12; _ij12[1] = -1;
12469 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12470 {
12471 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12472 {
12473     j12valid[iij12]=false; _ij12[1] = iij12; break;
12474 }
12475 }
12476 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12477 {
12478 IkReal evalcond[8];
12479 IkReal x332=IKsin(j12);
12480 IkReal x333=(cj10*x332);
12481 IkReal x334=IKcos(j12);
12482 IkReal x335=((1.0)*x334);
12483 IkReal x336=((-1.0)*x335);
12484 IkReal x337=((1.0)*sj10);
12485 IkReal x338=(((sj10*x332))+(((-1.0)*cj10*x335)));
12486 evalcond[0]=(((cj10*new_r01))+x332+((new_r11*sj10)));
12487 evalcond[1]=(((sj10*x334))+x333+new_r01);
12488 evalcond[2]=(((cj10*new_r00))+((new_r10*sj10))+x336);
12489 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x332))+(((-1.0)*new_r00*x337)));
12490 evalcond[4]=(((cj10*new_r11))+x336+(((-1.0)*new_r01*x337)));
12491 evalcond[5]=(x338+new_r00);
12492 evalcond[6]=(x338+new_r11);
12493 evalcond[7]=((((-1.0)*x334*x337))+(((-1.0)*x333))+new_r10);
12494 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12495 {
12496 continue;
12497 }
12498 }
12499 
12500 {
12501 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12502 vinfos[0].jointtype = 1;
12503 vinfos[0].foffset = j4;
12504 vinfos[0].indices[0] = _ij4[0];
12505 vinfos[0].indices[1] = _ij4[1];
12506 vinfos[0].maxsolutions = _nj4;
12507 vinfos[1].jointtype = 1;
12508 vinfos[1].foffset = j6;
12509 vinfos[1].indices[0] = _ij6[0];
12510 vinfos[1].indices[1] = _ij6[1];
12511 vinfos[1].maxsolutions = _nj6;
12512 vinfos[2].jointtype = 1;
12513 vinfos[2].foffset = j8;
12514 vinfos[2].indices[0] = _ij8[0];
12515 vinfos[2].indices[1] = _ij8[1];
12516 vinfos[2].maxsolutions = _nj8;
12517 vinfos[3].jointtype = 1;
12518 vinfos[3].foffset = j9;
12519 vinfos[3].indices[0] = _ij9[0];
12520 vinfos[3].indices[1] = _ij9[1];
12521 vinfos[3].maxsolutions = _nj9;
12522 vinfos[4].jointtype = 1;
12523 vinfos[4].foffset = j10;
12524 vinfos[4].indices[0] = _ij10[0];
12525 vinfos[4].indices[1] = _ij10[1];
12526 vinfos[4].maxsolutions = _nj10;
12527 vinfos[5].jointtype = 1;
12528 vinfos[5].foffset = j11;
12529 vinfos[5].indices[0] = _ij11[0];
12530 vinfos[5].indices[1] = _ij11[1];
12531 vinfos[5].maxsolutions = _nj11;
12532 vinfos[6].jointtype = 1;
12533 vinfos[6].foffset = j12;
12534 vinfos[6].indices[0] = _ij12[0];
12535 vinfos[6].indices[1] = _ij12[1];
12536 vinfos[6].maxsolutions = _nj12;
12537 std::vector<int> vfree(0);
12538 solutions.AddSolution(vinfos,vfree);
12539 }
12540 }
12541 }
12542 
12543 }
12544 } while(0);
12545 if( bgotonextstatement )
12546 {
12547 bool bgotonextstatement = true;
12548 do
12549 {
12550 IkReal x339=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
12551 IkReal x340=(cj10*new_r02);
12552 IkReal x341=(new_r12*sj10);
12553 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j11)))), 6.28318530717959)));
12554 evalcond[1]=((1.0)+new_r22);
12555 evalcond[2]=new_r20;
12556 evalcond[3]=new_r02;
12557 evalcond[4]=new_r12;
12558 evalcond[5]=new_r21;
12559 evalcond[6]=x339;
12560 evalcond[7]=x339;
12561 evalcond[8]=(x340+x341);
12562 evalcond[9]=((((-1.0)*x341))+(((-1.0)*x340)));
12563 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
12564 {
12565 bgotonextstatement=false;
12566 {
12567 IkReal j12array[1], cj12array[1], sj12array[1];
12568 bool j12valid[1]={false};
12569 _nj12 = 1;
12570 IkReal x342=((1.0)*new_r00);
12571 if( IKabs((((cj10*new_r01))+(((-1.0)*sj10*x342)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((((-1.0)*cj10*x342))+(((-1.0)*(1.0)*new_r01*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((((cj10*new_r01))+(((-1.0)*sj10*x342))))+IKsqr(((((-1.0)*cj10*x342))+(((-1.0)*(1.0)*new_r01*sj10))))-1) <= IKFAST_SINCOS_THRESH )
12572     continue;
12573 j12array[0]=IKatan2((((cj10*new_r01))+(((-1.0)*sj10*x342))), ((((-1.0)*cj10*x342))+(((-1.0)*(1.0)*new_r01*sj10))));
12574 sj12array[0]=IKsin(j12array[0]);
12575 cj12array[0]=IKcos(j12array[0]);
12576 if( j12array[0] > IKPI )
12577 {
12578     j12array[0]-=IK2PI;
12579 }
12580 else if( j12array[0] < -IKPI )
12581 {    j12array[0]+=IK2PI;
12582 }
12583 j12valid[0] = true;
12584 for(int ij12 = 0; ij12 < 1; ++ij12)
12585 {
12586 if( !j12valid[ij12] )
12587 {
12588     continue;
12589 }
12590 _ij12[0] = ij12; _ij12[1] = -1;
12591 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12592 {
12593 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12594 {
12595     j12valid[iij12]=false; _ij12[1] = iij12; break;
12596 }
12597 }
12598 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12599 {
12600 IkReal evalcond[8];
12601 IkReal x343=IKcos(j12);
12602 IkReal x344=IKsin(j12);
12603 IkReal x345=((1.0)*x344);
12604 IkReal x346=((-1.0)*x345);
12605 IkReal x347=(cj10*x343);
12606 IkReal x348=((1.0)*sj10);
12607 IkReal x349=(((sj10*x343))+(((-1.0)*cj10*x345)));
12608 evalcond[0]=(((cj10*new_r00))+((new_r10*sj10))+x343);
12609 evalcond[1]=(((cj10*new_r01))+((new_r11*sj10))+x346);
12610 evalcond[2]=(((sj10*x344))+x347+new_r00);
12611 evalcond[3]=(((cj10*new_r10))+(((-1.0)*new_r00*x348))+x346);
12612 evalcond[4]=(((cj10*new_r11))+(((-1.0)*new_r01*x348))+(((-1.0)*x343)));
12613 evalcond[5]=(x349+new_r01);
12614 evalcond[6]=(new_r10+x349);
12615 evalcond[7]=((((-1.0)*x347))+(((-1.0)*x344*x348))+new_r11);
12616 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12617 {
12618 continue;
12619 }
12620 }
12621 
12622 {
12623 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12624 vinfos[0].jointtype = 1;
12625 vinfos[0].foffset = j4;
12626 vinfos[0].indices[0] = _ij4[0];
12627 vinfos[0].indices[1] = _ij4[1];
12628 vinfos[0].maxsolutions = _nj4;
12629 vinfos[1].jointtype = 1;
12630 vinfos[1].foffset = j6;
12631 vinfos[1].indices[0] = _ij6[0];
12632 vinfos[1].indices[1] = _ij6[1];
12633 vinfos[1].maxsolutions = _nj6;
12634 vinfos[2].jointtype = 1;
12635 vinfos[2].foffset = j8;
12636 vinfos[2].indices[0] = _ij8[0];
12637 vinfos[2].indices[1] = _ij8[1];
12638 vinfos[2].maxsolutions = _nj8;
12639 vinfos[3].jointtype = 1;
12640 vinfos[3].foffset = j9;
12641 vinfos[3].indices[0] = _ij9[0];
12642 vinfos[3].indices[1] = _ij9[1];
12643 vinfos[3].maxsolutions = _nj9;
12644 vinfos[4].jointtype = 1;
12645 vinfos[4].foffset = j10;
12646 vinfos[4].indices[0] = _ij10[0];
12647 vinfos[4].indices[1] = _ij10[1];
12648 vinfos[4].maxsolutions = _nj10;
12649 vinfos[5].jointtype = 1;
12650 vinfos[5].foffset = j11;
12651 vinfos[5].indices[0] = _ij11[0];
12652 vinfos[5].indices[1] = _ij11[1];
12653 vinfos[5].maxsolutions = _nj11;
12654 vinfos[6].jointtype = 1;
12655 vinfos[6].foffset = j12;
12656 vinfos[6].indices[0] = _ij12[0];
12657 vinfos[6].indices[1] = _ij12[1];
12658 vinfos[6].maxsolutions = _nj12;
12659 std::vector<int> vfree(0);
12660 solutions.AddSolution(vinfos,vfree);
12661 }
12662 }
12663 }
12664 
12665 }
12666 } while(0);
12667 if( bgotonextstatement )
12668 {
12669 bool bgotonextstatement = true;
12670 do
12671 {
12672 IkReal x350=((1.0)*cj11);
12673 IkReal x351=((((-1.0)*x350))+new_r22);
12674 IkReal x352=((1.0)*sj11);
12675 IkReal x353=((((-1.0)*x352))+new_r02);
12676 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j10))), 6.28318530717959)));
12677 evalcond[1]=x351;
12678 evalcond[2]=x351;
12679 evalcond[3]=x353;
12680 evalcond[4]=new_r12;
12681 evalcond[5]=x353;
12682 evalcond[6]=((((-1.0)*new_r22*x352))+((cj11*new_r02)));
12683 evalcond[7]=((((-1.0)*new_r00*x352))+(((-1.0)*new_r20*x350)));
12684 evalcond[8]=((((-1.0)*new_r01*x352))+(((-1.0)*new_r21*x350)));
12685 evalcond[9]=((1.0)+(((-1.0)*new_r02*x352))+(((-1.0)*new_r22*x350)));
12686 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
12687 {
12688 bgotonextstatement=false;
12689 {
12690 IkReal j12array[1], cj12array[1], sj12array[1];
12691 bool j12valid[1]={false};
12692 _nj12 = 1;
12693 if( IKabs(new_r10) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r11) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r10)+IKsqr(new_r11)-1) <= IKFAST_SINCOS_THRESH )
12694     continue;
12695 j12array[0]=IKatan2(new_r10, new_r11);
12696 sj12array[0]=IKsin(j12array[0]);
12697 cj12array[0]=IKcos(j12array[0]);
12698 if( j12array[0] > IKPI )
12699 {
12700     j12array[0]-=IK2PI;
12701 }
12702 else if( j12array[0] < -IKPI )
12703 {    j12array[0]+=IK2PI;
12704 }
12705 j12valid[0] = true;
12706 for(int ij12 = 0; ij12 < 1; ++ij12)
12707 {
12708 if( !j12valid[ij12] )
12709 {
12710     continue;
12711 }
12712 _ij12[0] = ij12; _ij12[1] = -1;
12713 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12714 {
12715 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12716 {
12717     j12valid[iij12]=false; _ij12[1] = iij12; break;
12718 }
12719 }
12720 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12721 {
12722 IkReal evalcond[8];
12723 IkReal x354=IKcos(j12);
12724 IkReal x355=IKsin(j12);
12725 IkReal x356=((1.0)*x354);
12726 IkReal x357=((-1.0)*x356);
12727 IkReal x358=((1.0)*new_r02);
12728 evalcond[0]=(((new_r02*x354))+new_r20);
12729 evalcond[1]=((((-1.0)*x355))+new_r10);
12730 evalcond[2]=(x357+new_r11);
12731 evalcond[3]=(((new_r22*x355))+new_r01);
12732 evalcond[4]=((((-1.0)*x355*x358))+new_r21);
12733 evalcond[5]=((((-1.0)*new_r22*x356))+new_r00);
12734 evalcond[6]=(x355+((new_r01*new_r22))+(((-1.0)*new_r21*x358)));
12735 evalcond[7]=(x357+((new_r00*new_r22))+(((-1.0)*new_r20*x358)));
12736 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12737 {
12738 continue;
12739 }
12740 }
12741 
12742 {
12743 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12744 vinfos[0].jointtype = 1;
12745 vinfos[0].foffset = j4;
12746 vinfos[0].indices[0] = _ij4[0];
12747 vinfos[0].indices[1] = _ij4[1];
12748 vinfos[0].maxsolutions = _nj4;
12749 vinfos[1].jointtype = 1;
12750 vinfos[1].foffset = j6;
12751 vinfos[1].indices[0] = _ij6[0];
12752 vinfos[1].indices[1] = _ij6[1];
12753 vinfos[1].maxsolutions = _nj6;
12754 vinfos[2].jointtype = 1;
12755 vinfos[2].foffset = j8;
12756 vinfos[2].indices[0] = _ij8[0];
12757 vinfos[2].indices[1] = _ij8[1];
12758 vinfos[2].maxsolutions = _nj8;
12759 vinfos[3].jointtype = 1;
12760 vinfos[3].foffset = j9;
12761 vinfos[3].indices[0] = _ij9[0];
12762 vinfos[3].indices[1] = _ij9[1];
12763 vinfos[3].maxsolutions = _nj9;
12764 vinfos[4].jointtype = 1;
12765 vinfos[4].foffset = j10;
12766 vinfos[4].indices[0] = _ij10[0];
12767 vinfos[4].indices[1] = _ij10[1];
12768 vinfos[4].maxsolutions = _nj10;
12769 vinfos[5].jointtype = 1;
12770 vinfos[5].foffset = j11;
12771 vinfos[5].indices[0] = _ij11[0];
12772 vinfos[5].indices[1] = _ij11[1];
12773 vinfos[5].maxsolutions = _nj11;
12774 vinfos[6].jointtype = 1;
12775 vinfos[6].foffset = j12;
12776 vinfos[6].indices[0] = _ij12[0];
12777 vinfos[6].indices[1] = _ij12[1];
12778 vinfos[6].maxsolutions = _nj12;
12779 std::vector<int> vfree(0);
12780 solutions.AddSolution(vinfos,vfree);
12781 }
12782 }
12783 }
12784 
12785 }
12786 } while(0);
12787 if( bgotonextstatement )
12788 {
12789 bool bgotonextstatement = true;
12790 do
12791 {
12792 IkReal x359=((1.0)*cj11);
12793 IkReal x360=((((-1.0)*x359))+new_r22);
12794 IkReal x361=((1.0)*sj11);
12795 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j10)))), 6.28318530717959)));
12796 evalcond[1]=x360;
12797 evalcond[2]=x360;
12798 evalcond[3]=(sj11+new_r02);
12799 evalcond[4]=new_r12;
12800 evalcond[5]=((((-1.0)*(1.0)*new_r02))+(((-1.0)*x361)));
12801 evalcond[6]=((((-1.0)*new_r02*x359))+(((-1.0)*new_r22*x361)));
12802 evalcond[7]=((((-1.0)*new_r20*x359))+((new_r00*sj11)));
12803 evalcond[8]=(((new_r01*sj11))+(((-1.0)*new_r21*x359)));
12804 evalcond[9]=((1.0)+(((-1.0)*new_r22*x359))+((new_r02*sj11)));
12805 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
12806 {
12807 bgotonextstatement=false;
12808 {
12809 IkReal j12array[1], cj12array[1], sj12array[1];
12810 bool j12valid[1]={false};
12811 _nj12 = 1;
12812 CheckValue<IkReal> x362 = IKatan2WithCheck(IkReal(((-1.0)*(((1.0)*new_r21)))),new_r20,IKFAST_ATAN2_MAGTHRESH);
12813 if(!x362.valid){
12814 continue;
12815 }
12816 CheckValue<IkReal> x363=IKPowWithIntegerCheck(IKsign(new_r02),-1);
12817 if(!x363.valid){
12818 continue;
12819 }
12820 j12array[0]=((-1.5707963267949)+(x362.value)+(((1.5707963267949)*(x363.value))));
12821 sj12array[0]=IKsin(j12array[0]);
12822 cj12array[0]=IKcos(j12array[0]);
12823 if( j12array[0] > IKPI )
12824 {
12825     j12array[0]-=IK2PI;
12826 }
12827 else if( j12array[0] < -IKPI )
12828 {    j12array[0]+=IK2PI;
12829 }
12830 j12valid[0] = true;
12831 for(int ij12 = 0; ij12 < 1; ++ij12)
12832 {
12833 if( !j12valid[ij12] )
12834 {
12835     continue;
12836 }
12837 _ij12[0] = ij12; _ij12[1] = -1;
12838 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12839 {
12840 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12841 {
12842     j12valid[iij12]=false; _ij12[1] = iij12; break;
12843 }
12844 }
12845 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12846 {
12847 IkReal evalcond[8];
12848 IkReal x364=IKsin(j12);
12849 IkReal x365=((1.0)*(IKcos(j12)));
12850 IkReal x366=((-1.0)*x365);
12851 IkReal x367=((1.0)*new_r01);
12852 IkReal x368=((1.0)*new_r00);
12853 evalcond[0]=(((new_r02*x364))+new_r21);
12854 evalcond[1]=((((-1.0)*new_r02*x365))+new_r20);
12855 evalcond[2]=((((-1.0)*x364))+(((-1.0)*(1.0)*new_r10)));
12856 evalcond[3]=(x366+(((-1.0)*(1.0)*new_r11)));
12857 evalcond[4]=((((-1.0)*x367))+((new_r22*x364)));
12858 evalcond[5]=((((-1.0)*new_r22*x365))+(((-1.0)*x368)));
12859 evalcond[6]=(((new_r02*new_r21))+x364+(((-1.0)*new_r22*x367)));
12860 evalcond[7]=(((new_r02*new_r20))+x366+(((-1.0)*new_r22*x368)));
12861 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
12862 {
12863 continue;
12864 }
12865 }
12866 
12867 {
12868 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
12869 vinfos[0].jointtype = 1;
12870 vinfos[0].foffset = j4;
12871 vinfos[0].indices[0] = _ij4[0];
12872 vinfos[0].indices[1] = _ij4[1];
12873 vinfos[0].maxsolutions = _nj4;
12874 vinfos[1].jointtype = 1;
12875 vinfos[1].foffset = j6;
12876 vinfos[1].indices[0] = _ij6[0];
12877 vinfos[1].indices[1] = _ij6[1];
12878 vinfos[1].maxsolutions = _nj6;
12879 vinfos[2].jointtype = 1;
12880 vinfos[2].foffset = j8;
12881 vinfos[2].indices[0] = _ij8[0];
12882 vinfos[2].indices[1] = _ij8[1];
12883 vinfos[2].maxsolutions = _nj8;
12884 vinfos[3].jointtype = 1;
12885 vinfos[3].foffset = j9;
12886 vinfos[3].indices[0] = _ij9[0];
12887 vinfos[3].indices[1] = _ij9[1];
12888 vinfos[3].maxsolutions = _nj9;
12889 vinfos[4].jointtype = 1;
12890 vinfos[4].foffset = j10;
12891 vinfos[4].indices[0] = _ij10[0];
12892 vinfos[4].indices[1] = _ij10[1];
12893 vinfos[4].maxsolutions = _nj10;
12894 vinfos[5].jointtype = 1;
12895 vinfos[5].foffset = j11;
12896 vinfos[5].indices[0] = _ij11[0];
12897 vinfos[5].indices[1] = _ij11[1];
12898 vinfos[5].maxsolutions = _nj11;
12899 vinfos[6].jointtype = 1;
12900 vinfos[6].foffset = j12;
12901 vinfos[6].indices[0] = _ij12[0];
12902 vinfos[6].indices[1] = _ij12[1];
12903 vinfos[6].maxsolutions = _nj12;
12904 std::vector<int> vfree(0);
12905 solutions.AddSolution(vinfos,vfree);
12906 }
12907 }
12908 }
12909 
12910 }
12911 } while(0);
12912 if( bgotonextstatement )
12913 {
12914 bool bgotonextstatement = true;
12915 do
12916 {
12917 if( 1 )
12918 {
12919 bgotonextstatement=false;
12920 continue; // branch miss [j12]
12921 
12922 }
12923 } while(0);
12924 if( bgotonextstatement )
12925 {
12926 }
12927 }
12928 }
12929 }
12930 }
12931 }
12932 }
12933 }
12934 }
12935 }
12936 
12937 } else
12938 {
12939 {
12940 IkReal j12array[1], cj12array[1], sj12array[1];
12941 bool j12valid[1]={false};
12942 _nj12 = 1;
12943 CheckValue<IkReal> x370=IKPowWithIntegerCheck(sj11,-1);
12944 if(!x370.valid){
12945 continue;
12946 }
12947 IkReal x369=x370.value;
12948 CheckValue<IkReal> x371=IKPowWithIntegerCheck(cj10,-1);
12949 if(!x371.valid){
12950 continue;
12951 }
12952 CheckValue<IkReal> x372=IKPowWithIntegerCheck(cj11,-1);
12953 if(!x372.valid){
12954 continue;
12955 }
12956 if( IKabs((x369*(x371.value)*(x372.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*new_r20*x369)) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((x369*(x371.value)*(x372.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10))))))+IKsqr(((-1.0)*new_r20*x369))-1) <= IKFAST_SINCOS_THRESH )
12957     continue;
12958 j12array[0]=IKatan2((x369*(x371.value)*(x372.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10))))), ((-1.0)*new_r20*x369));
12959 sj12array[0]=IKsin(j12array[0]);
12960 cj12array[0]=IKcos(j12array[0]);
12961 if( j12array[0] > IKPI )
12962 {
12963     j12array[0]-=IK2PI;
12964 }
12965 else if( j12array[0] < -IKPI )
12966 {    j12array[0]+=IK2PI;
12967 }
12968 j12valid[0] = true;
12969 for(int ij12 = 0; ij12 < 1; ++ij12)
12970 {
12971 if( !j12valid[ij12] )
12972 {
12973     continue;
12974 }
12975 _ij12[0] = ij12; _ij12[1] = -1;
12976 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
12977 {
12978 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
12979 {
12980     j12valid[iij12]=false; _ij12[1] = iij12; break;
12981 }
12982 }
12983 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
12984 {
12985 IkReal evalcond[12];
12986 IkReal x373=IKcos(j12);
12987 IkReal x374=IKsin(j12);
12988 IkReal x375=((1.0)*sj11);
12989 IkReal x376=(cj10*new_r01);
12990 IkReal x377=(new_r11*sj10);
12991 IkReal x378=(cj11*x374);
12992 IkReal x379=((1.0)*sj10);
12993 IkReal x380=((1.0)*x374);
12994 IkReal x381=((1.0)*x373);
12995 IkReal x382=((-1.0)*x381);
12996 IkReal x383=(cj10*new_r00);
12997 IkReal x384=(new_r10*sj10);
12998 IkReal x385=(cj10*x381);
12999 evalcond[0]=(((sj11*x373))+new_r20);
13000 evalcond[1]=((((-1.0)*x374*x375))+new_r21);
13001 evalcond[2]=(x378+x377+x376);
13002 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x380))+(((-1.0)*new_r00*x379)));
13003 evalcond[4]=(((cj10*new_r11))+x382+(((-1.0)*new_r01*x379)));
13004 evalcond[5]=(((sj10*x373))+((cj10*x378))+new_r01);
13005 evalcond[6]=((((-1.0)*cj11*x381))+x384+x383);
13006 evalcond[7]=(((sj10*x374))+(((-1.0)*cj11*x385))+new_r00);
13007 evalcond[8]=((((-1.0)*x385))+new_r11+((sj10*x378)));
13008 evalcond[9]=((((-1.0)*cj10*x380))+(((-1.0)*cj11*x373*x379))+new_r10);
13009 evalcond[10]=(((cj11*x376))+((cj11*x377))+(((-1.0)*new_r21*x375))+x374);
13010 evalcond[11]=((((-1.0)*new_r20*x375))+x382+((cj11*x384))+((cj11*x383)));
13011 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
13012 {
13013 continue;
13014 }
13015 }
13016 
13017 {
13018 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13019 vinfos[0].jointtype = 1;
13020 vinfos[0].foffset = j4;
13021 vinfos[0].indices[0] = _ij4[0];
13022 vinfos[0].indices[1] = _ij4[1];
13023 vinfos[0].maxsolutions = _nj4;
13024 vinfos[1].jointtype = 1;
13025 vinfos[1].foffset = j6;
13026 vinfos[1].indices[0] = _ij6[0];
13027 vinfos[1].indices[1] = _ij6[1];
13028 vinfos[1].maxsolutions = _nj6;
13029 vinfos[2].jointtype = 1;
13030 vinfos[2].foffset = j8;
13031 vinfos[2].indices[0] = _ij8[0];
13032 vinfos[2].indices[1] = _ij8[1];
13033 vinfos[2].maxsolutions = _nj8;
13034 vinfos[3].jointtype = 1;
13035 vinfos[3].foffset = j9;
13036 vinfos[3].indices[0] = _ij9[0];
13037 vinfos[3].indices[1] = _ij9[1];
13038 vinfos[3].maxsolutions = _nj9;
13039 vinfos[4].jointtype = 1;
13040 vinfos[4].foffset = j10;
13041 vinfos[4].indices[0] = _ij10[0];
13042 vinfos[4].indices[1] = _ij10[1];
13043 vinfos[4].maxsolutions = _nj10;
13044 vinfos[5].jointtype = 1;
13045 vinfos[5].foffset = j11;
13046 vinfos[5].indices[0] = _ij11[0];
13047 vinfos[5].indices[1] = _ij11[1];
13048 vinfos[5].maxsolutions = _nj11;
13049 vinfos[6].jointtype = 1;
13050 vinfos[6].foffset = j12;
13051 vinfos[6].indices[0] = _ij12[0];
13052 vinfos[6].indices[1] = _ij12[1];
13053 vinfos[6].maxsolutions = _nj12;
13054 std::vector<int> vfree(0);
13055 solutions.AddSolution(vinfos,vfree);
13056 }
13057 }
13058 }
13059 
13060 }
13061 
13062 }
13063 
13064 } else
13065 {
13066 {
13067 IkReal j12array[1], cj12array[1], sj12array[1];
13068 bool j12valid[1]={false};
13069 _nj12 = 1;
13070 CheckValue<IkReal> x388=IKPowWithIntegerCheck(sj11,-1);
13071 if(!x388.valid){
13072 continue;
13073 }
13074 IkReal x386=x388.value;
13075 IkReal x387=((1.0)*new_r20);
13076 CheckValue<IkReal> x389=IKPowWithIntegerCheck(sj10,-1);
13077 if(!x389.valid){
13078 continue;
13079 }
13080 if( IKabs((x386*(x389.value)*(((((-1.0)*cj10*cj11*x387))+(((-1.0)*(1.0)*new_r00*sj11)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*x386*x387)) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((x386*(x389.value)*(((((-1.0)*cj10*cj11*x387))+(((-1.0)*(1.0)*new_r00*sj11))))))+IKsqr(((-1.0)*x386*x387))-1) <= IKFAST_SINCOS_THRESH )
13081     continue;
13082 j12array[0]=IKatan2((x386*(x389.value)*(((((-1.0)*cj10*cj11*x387))+(((-1.0)*(1.0)*new_r00*sj11))))), ((-1.0)*x386*x387));
13083 sj12array[0]=IKsin(j12array[0]);
13084 cj12array[0]=IKcos(j12array[0]);
13085 if( j12array[0] > IKPI )
13086 {
13087     j12array[0]-=IK2PI;
13088 }
13089 else if( j12array[0] < -IKPI )
13090 {    j12array[0]+=IK2PI;
13091 }
13092 j12valid[0] = true;
13093 for(int ij12 = 0; ij12 < 1; ++ij12)
13094 {
13095 if( !j12valid[ij12] )
13096 {
13097     continue;
13098 }
13099 _ij12[0] = ij12; _ij12[1] = -1;
13100 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13101 {
13102 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13103 {
13104     j12valid[iij12]=false; _ij12[1] = iij12; break;
13105 }
13106 }
13107 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13108 {
13109 IkReal evalcond[12];
13110 IkReal x390=IKcos(j12);
13111 IkReal x391=IKsin(j12);
13112 IkReal x392=((1.0)*sj11);
13113 IkReal x393=(cj10*new_r01);
13114 IkReal x394=(new_r11*sj10);
13115 IkReal x395=(cj11*x391);
13116 IkReal x396=((1.0)*sj10);
13117 IkReal x397=((1.0)*x391);
13118 IkReal x398=((1.0)*x390);
13119 IkReal x399=((-1.0)*x398);
13120 IkReal x400=(cj10*new_r00);
13121 IkReal x401=(new_r10*sj10);
13122 IkReal x402=(cj10*x398);
13123 evalcond[0]=(((sj11*x390))+new_r20);
13124 evalcond[1]=((((-1.0)*x391*x392))+new_r21);
13125 evalcond[2]=(x394+x395+x393);
13126 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x397))+(((-1.0)*new_r00*x396)));
13127 evalcond[4]=(((cj10*new_r11))+x399+(((-1.0)*new_r01*x396)));
13128 evalcond[5]=(((cj10*x395))+((sj10*x390))+new_r01);
13129 evalcond[6]=(x401+x400+(((-1.0)*cj11*x398)));
13130 evalcond[7]=(new_r00+(((-1.0)*cj11*x402))+((sj10*x391)));
13131 evalcond[8]=((((-1.0)*x402))+((sj10*x395))+new_r11);
13132 evalcond[9]=((((-1.0)*cj10*x397))+new_r10+(((-1.0)*cj11*x390*x396)));
13133 evalcond[10]=(x391+((cj11*x393))+((cj11*x394))+(((-1.0)*new_r21*x392)));
13134 evalcond[11]=(x399+((cj11*x400))+(((-1.0)*new_r20*x392))+((cj11*x401)));
13135 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
13136 {
13137 continue;
13138 }
13139 }
13140 
13141 {
13142 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13143 vinfos[0].jointtype = 1;
13144 vinfos[0].foffset = j4;
13145 vinfos[0].indices[0] = _ij4[0];
13146 vinfos[0].indices[1] = _ij4[1];
13147 vinfos[0].maxsolutions = _nj4;
13148 vinfos[1].jointtype = 1;
13149 vinfos[1].foffset = j6;
13150 vinfos[1].indices[0] = _ij6[0];
13151 vinfos[1].indices[1] = _ij6[1];
13152 vinfos[1].maxsolutions = _nj6;
13153 vinfos[2].jointtype = 1;
13154 vinfos[2].foffset = j8;
13155 vinfos[2].indices[0] = _ij8[0];
13156 vinfos[2].indices[1] = _ij8[1];
13157 vinfos[2].maxsolutions = _nj8;
13158 vinfos[3].jointtype = 1;
13159 vinfos[3].foffset = j9;
13160 vinfos[3].indices[0] = _ij9[0];
13161 vinfos[3].indices[1] = _ij9[1];
13162 vinfos[3].maxsolutions = _nj9;
13163 vinfos[4].jointtype = 1;
13164 vinfos[4].foffset = j10;
13165 vinfos[4].indices[0] = _ij10[0];
13166 vinfos[4].indices[1] = _ij10[1];
13167 vinfos[4].maxsolutions = _nj10;
13168 vinfos[5].jointtype = 1;
13169 vinfos[5].foffset = j11;
13170 vinfos[5].indices[0] = _ij11[0];
13171 vinfos[5].indices[1] = _ij11[1];
13172 vinfos[5].maxsolutions = _nj11;
13173 vinfos[6].jointtype = 1;
13174 vinfos[6].foffset = j12;
13175 vinfos[6].indices[0] = _ij12[0];
13176 vinfos[6].indices[1] = _ij12[1];
13177 vinfos[6].maxsolutions = _nj12;
13178 std::vector<int> vfree(0);
13179 solutions.AddSolution(vinfos,vfree);
13180 }
13181 }
13182 }
13183 
13184 }
13185 
13186 }
13187 
13188 } else
13189 {
13190 {
13191 IkReal j12array[1], cj12array[1], sj12array[1];
13192 bool j12valid[1]={false};
13193 _nj12 = 1;
13194 CheckValue<IkReal> x403=IKPowWithIntegerCheck(IKsign(sj11),-1);
13195 if(!x403.valid){
13196 continue;
13197 }
13198 CheckValue<IkReal> x404 = IKatan2WithCheck(IkReal(new_r21),((-1.0)*(((1.0)*new_r20))),IKFAST_ATAN2_MAGTHRESH);
13199 if(!x404.valid){
13200 continue;
13201 }
13202 j12array[0]=((-1.5707963267949)+(((1.5707963267949)*(x403.value)))+(x404.value));
13203 sj12array[0]=IKsin(j12array[0]);
13204 cj12array[0]=IKcos(j12array[0]);
13205 if( j12array[0] > IKPI )
13206 {
13207     j12array[0]-=IK2PI;
13208 }
13209 else if( j12array[0] < -IKPI )
13210 {    j12array[0]+=IK2PI;
13211 }
13212 j12valid[0] = true;
13213 for(int ij12 = 0; ij12 < 1; ++ij12)
13214 {
13215 if( !j12valid[ij12] )
13216 {
13217     continue;
13218 }
13219 _ij12[0] = ij12; _ij12[1] = -1;
13220 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13221 {
13222 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13223 {
13224     j12valid[iij12]=false; _ij12[1] = iij12; break;
13225 }
13226 }
13227 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13228 {
13229 IkReal evalcond[12];
13230 IkReal x405=IKcos(j12);
13231 IkReal x406=IKsin(j12);
13232 IkReal x407=((1.0)*sj11);
13233 IkReal x408=(cj10*new_r01);
13234 IkReal x409=(new_r11*sj10);
13235 IkReal x410=(cj11*x406);
13236 IkReal x411=((1.0)*sj10);
13237 IkReal x412=((1.0)*x406);
13238 IkReal x413=((1.0)*x405);
13239 IkReal x414=((-1.0)*x413);
13240 IkReal x415=(cj10*new_r00);
13241 IkReal x416=(new_r10*sj10);
13242 IkReal x417=(cj10*x413);
13243 evalcond[0]=(((sj11*x405))+new_r20);
13244 evalcond[1]=((((-1.0)*x406*x407))+new_r21);
13245 evalcond[2]=(x410+x409+x408);
13246 evalcond[3]=((((-1.0)*new_r00*x411))+((cj10*new_r10))+(((-1.0)*x412)));
13247 evalcond[4]=(((cj10*new_r11))+x414+(((-1.0)*new_r01*x411)));
13248 evalcond[5]=(((cj10*x410))+((sj10*x405))+new_r01);
13249 evalcond[6]=((((-1.0)*cj11*x413))+x415+x416);
13250 evalcond[7]=((((-1.0)*cj11*x417))+((sj10*x406))+new_r00);
13251 evalcond[8]=(((sj10*x410))+(((-1.0)*x417))+new_r11);
13252 evalcond[9]=((((-1.0)*cj10*x412))+(((-1.0)*cj11*x405*x411))+new_r10);
13253 evalcond[10]=(((cj11*x409))+(((-1.0)*new_r21*x407))+x406+((cj11*x408)));
13254 evalcond[11]=(x414+((cj11*x416))+((cj11*x415))+(((-1.0)*new_r20*x407)));
13255 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
13256 {
13257 continue;
13258 }
13259 }
13260 
13261 {
13262 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13263 vinfos[0].jointtype = 1;
13264 vinfos[0].foffset = j4;
13265 vinfos[0].indices[0] = _ij4[0];
13266 vinfos[0].indices[1] = _ij4[1];
13267 vinfos[0].maxsolutions = _nj4;
13268 vinfos[1].jointtype = 1;
13269 vinfos[1].foffset = j6;
13270 vinfos[1].indices[0] = _ij6[0];
13271 vinfos[1].indices[1] = _ij6[1];
13272 vinfos[1].maxsolutions = _nj6;
13273 vinfos[2].jointtype = 1;
13274 vinfos[2].foffset = j8;
13275 vinfos[2].indices[0] = _ij8[0];
13276 vinfos[2].indices[1] = _ij8[1];
13277 vinfos[2].maxsolutions = _nj8;
13278 vinfos[3].jointtype = 1;
13279 vinfos[3].foffset = j9;
13280 vinfos[3].indices[0] = _ij9[0];
13281 vinfos[3].indices[1] = _ij9[1];
13282 vinfos[3].maxsolutions = _nj9;
13283 vinfos[4].jointtype = 1;
13284 vinfos[4].foffset = j10;
13285 vinfos[4].indices[0] = _ij10[0];
13286 vinfos[4].indices[1] = _ij10[1];
13287 vinfos[4].maxsolutions = _nj10;
13288 vinfos[5].jointtype = 1;
13289 vinfos[5].foffset = j11;
13290 vinfos[5].indices[0] = _ij11[0];
13291 vinfos[5].indices[1] = _ij11[1];
13292 vinfos[5].maxsolutions = _nj11;
13293 vinfos[6].jointtype = 1;
13294 vinfos[6].foffset = j12;
13295 vinfos[6].indices[0] = _ij12[0];
13296 vinfos[6].indices[1] = _ij12[1];
13297 vinfos[6].maxsolutions = _nj12;
13298 std::vector<int> vfree(0);
13299 solutions.AddSolution(vinfos,vfree);
13300 }
13301 }
13302 }
13303 
13304 }
13305 
13306 }
13307 }
13308 }
13309 
13310 }
13311 
13312 }
13313 
13314 } else
13315 {
13316 {
13317 IkReal j10array[1], cj10array[1], sj10array[1];
13318 bool j10valid[1]={false};
13319 _nj10 = 1;
13320 CheckValue<IkReal> x418 = IKatan2WithCheck(IkReal(new_r12),new_r02,IKFAST_ATAN2_MAGTHRESH);
13321 if(!x418.valid){
13322 continue;
13323 }
13324 CheckValue<IkReal> x419=IKPowWithIntegerCheck(IKsign(sj11),-1);
13325 if(!x419.valid){
13326 continue;
13327 }
13328 j10array[0]=((-1.5707963267949)+(x418.value)+(((1.5707963267949)*(x419.value))));
13329 sj10array[0]=IKsin(j10array[0]);
13330 cj10array[0]=IKcos(j10array[0]);
13331 if( j10array[0] > IKPI )
13332 {
13333     j10array[0]-=IK2PI;
13334 }
13335 else if( j10array[0] < -IKPI )
13336 {    j10array[0]+=IK2PI;
13337 }
13338 j10valid[0] = true;
13339 for(int ij10 = 0; ij10 < 1; ++ij10)
13340 {
13341 if( !j10valid[ij10] )
13342 {
13343     continue;
13344 }
13345 _ij10[0] = ij10; _ij10[1] = -1;
13346 for(int iij10 = ij10+1; iij10 < 1; ++iij10)
13347 {
13348 if( j10valid[iij10] && IKabs(cj10array[ij10]-cj10array[iij10]) < IKFAST_SOLUTION_THRESH && IKabs(sj10array[ij10]-sj10array[iij10]) < IKFAST_SOLUTION_THRESH )
13349 {
13350     j10valid[iij10]=false; _ij10[1] = iij10; break;
13351 }
13352 }
13353 j10 = j10array[ij10]; cj10 = cj10array[ij10]; sj10 = sj10array[ij10];
13354 {
13355 IkReal evalcond[8];
13356 IkReal x420=IKcos(j10);
13357 IkReal x421=((1.0)*sj11);
13358 IkReal x422=(x420*x421);
13359 IkReal x423=IKsin(j10);
13360 IkReal x424=(x421*x423);
13361 IkReal x425=(new_r02*x420);
13362 IkReal x426=(new_r12*x423);
13363 IkReal x427=((1.0)*cj11);
13364 evalcond[0]=((((-1.0)*x422))+new_r02);
13365 evalcond[1]=((((-1.0)*x424))+new_r12);
13366 evalcond[2]=((((-1.0)*new_r02*x423))+((new_r12*x420)));
13367 evalcond[3]=((((-1.0)*x421))+x426+x425);
13368 evalcond[4]=(((cj11*x426))+((cj11*x425))+(((-1.0)*new_r22*x421)));
13369 evalcond[5]=((((-1.0)*new_r10*x424))+(((-1.0)*new_r20*x427))+(((-1.0)*new_r00*x422)));
13370 evalcond[6]=((((-1.0)*new_r21*x427))+(((-1.0)*new_r01*x422))+(((-1.0)*new_r11*x424)));
13371 evalcond[7]=((1.0)+(((-1.0)*new_r22*x427))+(((-1.0)*x421*x425))+(((-1.0)*x421*x426)));
13372 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
13373 {
13374 continue;
13375 }
13376 }
13377 
13378 {
13379 IkReal j12eval[2];
13380 IkReal x428=((1.0)*sj9);
13381 IkReal x429=(cj9*sj6);
13382 IkReal x430=x160;
13383 IkReal x431=(cj4*sj8);
13384 IkReal x432=(sj6*x428);
13385 IkReal x433=(cj6*cj9);
13386 IkReal x434=((((-1.0)*x432))+((cj8*x433)));
13387 IkReal x435=(((cj9*x431))+((sj4*x434)));
13388 IkReal x436=((1.0)*sj4*sj8);
13389 IkReal x437=((((-1.0)*cj9*x436))+((cj4*x434)));
13390 IkReal x438=(sj6*sj8);
13391 IkReal x439=x169;
13392 IkReal x440=x170;
13393 IkReal x441=((((-1.0)*cj8*x432))+x433);
13394 IkReal x442=x172;
13395 IkReal x443=(((sj9*x431))+((sj4*x442)));
13396 IkReal x444=(((cj4*x442))+(((-1.0)*sj4*sj8*x428)));
13397 new_r00=(((r20*x430))+((r10*x435))+((r00*x437)));
13398 new_r01=(((r11*x435))+((r01*x437))+((r21*x430)));
13399 new_r02=(((r12*x435))+((r02*x437))+((r22*x430)));
13400 new_r10=(((r20*x438))+((r00*x440))+((r10*x439)));
13401 new_r11=(((r11*x439))+((r21*x438))+((r01*x440)));
13402 new_r12=(((r22*x438))+((r12*x439))+((r02*x440)));
13403 new_r20=(((r10*x443))+((r20*x441))+((r00*x444)));
13404 new_r21=(((r01*x444))+((r21*x441))+((r11*x443)));
13405 new_r22=(((r22*x441))+((r12*x443))+((r02*x444)));
13406 j12eval[0]=sj11;
13407 j12eval[1]=IKsign(sj11);
13408 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  )
13409 {
13410 {
13411 IkReal j12eval[2];
13412 IkReal x445=((1.0)*sj9);
13413 IkReal x446=(cj9*sj6);
13414 IkReal x447=x160;
13415 IkReal x448=(cj4*sj8);
13416 IkReal x449=(sj6*x445);
13417 IkReal x450=(cj6*cj9);
13418 IkReal x451=(((cj8*x450))+(((-1.0)*x449)));
13419 IkReal x452=(((cj9*x448))+((sj4*x451)));
13420 IkReal x453=((1.0)*sj4*sj8);
13421 IkReal x454=(((cj4*x451))+(((-1.0)*cj9*x453)));
13422 IkReal x455=(sj6*sj8);
13423 IkReal x456=x169;
13424 IkReal x457=x170;
13425 IkReal x458=(x450+(((-1.0)*cj8*x449)));
13426 IkReal x459=x172;
13427 IkReal x460=(((sj4*x459))+((sj9*x448)));
13428 IkReal x461=(((cj4*x459))+(((-1.0)*sj4*sj8*x445)));
13429 new_r00=(((r00*x454))+((r20*x447))+((r10*x452)));
13430 new_r01=(((r01*x454))+((r21*x447))+((r11*x452)));
13431 new_r02=(((r02*x454))+((r12*x452))+((r22*x447)));
13432 new_r10=(((r20*x455))+((r00*x457))+((r10*x456)));
13433 new_r11=(((r21*x455))+((r11*x456))+((r01*x457)));
13434 new_r12=(((r12*x456))+((r22*x455))+((r02*x457)));
13435 new_r20=(((r10*x460))+((r20*x458))+((r00*x461)));
13436 new_r21=(((r11*x460))+((r21*x458))+((r01*x461)));
13437 new_r22=(((r12*x460))+((r22*x458))+((r02*x461)));
13438 j12eval[0]=sj10;
13439 j12eval[1]=sj11;
13440 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  )
13441 {
13442 {
13443 IkReal j12eval[3];
13444 IkReal x462=((1.0)*sj9);
13445 IkReal x463=(cj9*sj6);
13446 IkReal x464=x160;
13447 IkReal x465=(cj4*sj8);
13448 IkReal x466=(sj6*x462);
13449 IkReal x467=(cj6*cj9);
13450 IkReal x468=((((-1.0)*x466))+((cj8*x467)));
13451 IkReal x469=(((cj9*x465))+((sj4*x468)));
13452 IkReal x470=((1.0)*sj4*sj8);
13453 IkReal x471=((((-1.0)*cj9*x470))+((cj4*x468)));
13454 IkReal x472=(sj6*sj8);
13455 IkReal x473=x169;
13456 IkReal x474=x170;
13457 IkReal x475=((((-1.0)*cj8*x466))+x467);
13458 IkReal x476=x172;
13459 IkReal x477=(((sj9*x465))+((sj4*x476)));
13460 IkReal x478=((((-1.0)*sj4*sj8*x462))+((cj4*x476)));
13461 new_r00=(((r10*x469))+((r00*x471))+((r20*x464)));
13462 new_r01=(((r11*x469))+((r01*x471))+((r21*x464)));
13463 new_r02=(((r22*x464))+((r02*x471))+((r12*x469)));
13464 new_r10=(((r00*x474))+((r10*x473))+((r20*x472)));
13465 new_r11=(((r01*x474))+((r11*x473))+((r21*x472)));
13466 new_r12=(((r02*x474))+((r12*x473))+((r22*x472)));
13467 new_r20=(((r20*x475))+((r10*x477))+((r00*x478)));
13468 new_r21=(((r01*x478))+((r21*x475))+((r11*x477)));
13469 new_r22=(((r22*x475))+((r02*x478))+((r12*x477)));
13470 j12eval[0]=cj10;
13471 j12eval[1]=cj11;
13472 j12eval[2]=sj11;
13473 if( IKabs(j12eval[0]) < 0.0000010000000000  || IKabs(j12eval[1]) < 0.0000010000000000  || IKabs(j12eval[2]) < 0.0000010000000000  )
13474 {
13475 {
13476 IkReal evalcond[12];
13477 bool bgotonextstatement = true;
13478 do
13479 {
13480 IkReal x479=((1.0)*cj11);
13481 IkReal x480=((((-1.0)*x479))+new_r22);
13482 IkReal x481=((1.0)*sj11);
13483 IkReal x482=((((-1.0)*x481))+new_r12);
13484 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j10)))), 6.28318530717959)));
13485 evalcond[1]=x480;
13486 evalcond[2]=x480;
13487 evalcond[3]=new_r02;
13488 evalcond[4]=x482;
13489 evalcond[5]=x482;
13490 evalcond[6]=((((-1.0)*new_r22*x481))+((cj11*new_r12)));
13491 evalcond[7]=((((-1.0)*new_r10*x481))+(((-1.0)*new_r20*x479)));
13492 evalcond[8]=((((-1.0)*new_r11*x481))+(((-1.0)*new_r21*x479)));
13493 evalcond[9]=((1.0)+(((-1.0)*new_r12*x481))+(((-1.0)*new_r22*x479)));
13494 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
13495 {
13496 bgotonextstatement=false;
13497 {
13498 IkReal j12array[1], cj12array[1], sj12array[1];
13499 bool j12valid[1]={false};
13500 _nj12 = 1;
13501 CheckValue<IkReal> x483=IKPowWithIntegerCheck(IKsign(new_r12),-1);
13502 if(!x483.valid){
13503 continue;
13504 }
13505 CheckValue<IkReal> x484 = IKatan2WithCheck(IkReal(new_r21),((-1.0)*(((1.0)*new_r20))),IKFAST_ATAN2_MAGTHRESH);
13506 if(!x484.valid){
13507 continue;
13508 }
13509 j12array[0]=((-1.5707963267949)+(((1.5707963267949)*(x483.value)))+(x484.value));
13510 sj12array[0]=IKsin(j12array[0]);
13511 cj12array[0]=IKcos(j12array[0]);
13512 if( j12array[0] > IKPI )
13513 {
13514     j12array[0]-=IK2PI;
13515 }
13516 else if( j12array[0] < -IKPI )
13517 {    j12array[0]+=IK2PI;
13518 }
13519 j12valid[0] = true;
13520 for(int ij12 = 0; ij12 < 1; ++ij12)
13521 {
13522 if( !j12valid[ij12] )
13523 {
13524     continue;
13525 }
13526 _ij12[0] = ij12; _ij12[1] = -1;
13527 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13528 {
13529 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13530 {
13531     j12valid[iij12]=false; _ij12[1] = iij12; break;
13532 }
13533 }
13534 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13535 {
13536 IkReal evalcond[8];
13537 IkReal x485=IKcos(j12);
13538 IkReal x486=IKsin(j12);
13539 IkReal x487=((1.0)*new_r12);
13540 IkReal x488=((1.0)*x485);
13541 IkReal x489=((-1.0)*x488);
13542 evalcond[0]=(((new_r12*x485))+new_r20);
13543 evalcond[1]=(((new_r22*x486))+new_r11);
13544 evalcond[2]=((((-1.0)*x486*x487))+new_r21);
13545 evalcond[3]=((((-1.0)*new_r22*x488))+new_r10);
13546 evalcond[4]=((((-1.0)*(1.0)*new_r00))+(((-1.0)*x486)));
13547 evalcond[5]=((((-1.0)*(1.0)*new_r01))+x489);
13548 evalcond[6]=(((new_r11*new_r22))+(((-1.0)*new_r21*x487))+x486);
13549 evalcond[7]=((((-1.0)*new_r20*x487))+((new_r10*new_r22))+x489);
13550 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
13551 {
13552 continue;
13553 }
13554 }
13555 
13556 {
13557 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13558 vinfos[0].jointtype = 1;
13559 vinfos[0].foffset = j4;
13560 vinfos[0].indices[0] = _ij4[0];
13561 vinfos[0].indices[1] = _ij4[1];
13562 vinfos[0].maxsolutions = _nj4;
13563 vinfos[1].jointtype = 1;
13564 vinfos[1].foffset = j6;
13565 vinfos[1].indices[0] = _ij6[0];
13566 vinfos[1].indices[1] = _ij6[1];
13567 vinfos[1].maxsolutions = _nj6;
13568 vinfos[2].jointtype = 1;
13569 vinfos[2].foffset = j8;
13570 vinfos[2].indices[0] = _ij8[0];
13571 vinfos[2].indices[1] = _ij8[1];
13572 vinfos[2].maxsolutions = _nj8;
13573 vinfos[3].jointtype = 1;
13574 vinfos[3].foffset = j9;
13575 vinfos[3].indices[0] = _ij9[0];
13576 vinfos[3].indices[1] = _ij9[1];
13577 vinfos[3].maxsolutions = _nj9;
13578 vinfos[4].jointtype = 1;
13579 vinfos[4].foffset = j10;
13580 vinfos[4].indices[0] = _ij10[0];
13581 vinfos[4].indices[1] = _ij10[1];
13582 vinfos[4].maxsolutions = _nj10;
13583 vinfos[5].jointtype = 1;
13584 vinfos[5].foffset = j11;
13585 vinfos[5].indices[0] = _ij11[0];
13586 vinfos[5].indices[1] = _ij11[1];
13587 vinfos[5].maxsolutions = _nj11;
13588 vinfos[6].jointtype = 1;
13589 vinfos[6].foffset = j12;
13590 vinfos[6].indices[0] = _ij12[0];
13591 vinfos[6].indices[1] = _ij12[1];
13592 vinfos[6].maxsolutions = _nj12;
13593 std::vector<int> vfree(0);
13594 solutions.AddSolution(vinfos,vfree);
13595 }
13596 }
13597 }
13598 
13599 }
13600 } while(0);
13601 if( bgotonextstatement )
13602 {
13603 bool bgotonextstatement = true;
13604 do
13605 {
13606 IkReal x490=((1.0)*cj11);
13607 IkReal x491=((((-1.0)*x490))+new_r22);
13608 IkReal x492=((1.0)*sj11);
13609 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j10)))), 6.28318530717959)));
13610 evalcond[1]=x491;
13611 evalcond[2]=x491;
13612 evalcond[3]=new_r02;
13613 evalcond[4]=(sj11+new_r12);
13614 evalcond[5]=((((-1.0)*(1.0)*new_r12))+(((-1.0)*x492)));
13615 evalcond[6]=((((-1.0)*new_r22*x492))+(((-1.0)*new_r12*x490)));
13616 evalcond[7]=(((new_r10*sj11))+(((-1.0)*new_r20*x490)));
13617 evalcond[8]=((((-1.0)*new_r21*x490))+((new_r11*sj11)));
13618 evalcond[9]=((1.0)+(((-1.0)*new_r22*x490))+((new_r12*sj11)));
13619 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
13620 {
13621 bgotonextstatement=false;
13622 {
13623 IkReal j12array[1], cj12array[1], sj12array[1];
13624 bool j12valid[1]={false};
13625 _nj12 = 1;
13626 if( IKabs(new_r00) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r01) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r00)+IKsqr(new_r01)-1) <= IKFAST_SINCOS_THRESH )
13627     continue;
13628 j12array[0]=IKatan2(new_r00, new_r01);
13629 sj12array[0]=IKsin(j12array[0]);
13630 cj12array[0]=IKcos(j12array[0]);
13631 if( j12array[0] > IKPI )
13632 {
13633     j12array[0]-=IK2PI;
13634 }
13635 else if( j12array[0] < -IKPI )
13636 {    j12array[0]+=IK2PI;
13637 }
13638 j12valid[0] = true;
13639 for(int ij12 = 0; ij12 < 1; ++ij12)
13640 {
13641 if( !j12valid[ij12] )
13642 {
13643     continue;
13644 }
13645 _ij12[0] = ij12; _ij12[1] = -1;
13646 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13647 {
13648 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13649 {
13650     j12valid[iij12]=false; _ij12[1] = iij12; break;
13651 }
13652 }
13653 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13654 {
13655 IkReal evalcond[8];
13656 IkReal x493=IKsin(j12);
13657 IkReal x494=((1.0)*(IKcos(j12)));
13658 IkReal x495=((-1.0)*x494);
13659 IkReal x496=((1.0)*new_r11);
13660 IkReal x497=((1.0)*new_r10);
13661 evalcond[0]=(((new_r12*x493))+new_r21);
13662 evalcond[1]=(new_r00+(((-1.0)*x493)));
13663 evalcond[2]=(new_r01+x495);
13664 evalcond[3]=((((-1.0)*new_r12*x494))+new_r20);
13665 evalcond[4]=(((new_r22*x493))+(((-1.0)*x496)));
13666 evalcond[5]=((((-1.0)*new_r22*x494))+(((-1.0)*x497)));
13667 evalcond[6]=(((new_r12*new_r21))+(((-1.0)*new_r22*x496))+x493);
13668 evalcond[7]=(((new_r12*new_r20))+(((-1.0)*new_r22*x497))+x495);
13669 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
13670 {
13671 continue;
13672 }
13673 }
13674 
13675 {
13676 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13677 vinfos[0].jointtype = 1;
13678 vinfos[0].foffset = j4;
13679 vinfos[0].indices[0] = _ij4[0];
13680 vinfos[0].indices[1] = _ij4[1];
13681 vinfos[0].maxsolutions = _nj4;
13682 vinfos[1].jointtype = 1;
13683 vinfos[1].foffset = j6;
13684 vinfos[1].indices[0] = _ij6[0];
13685 vinfos[1].indices[1] = _ij6[1];
13686 vinfos[1].maxsolutions = _nj6;
13687 vinfos[2].jointtype = 1;
13688 vinfos[2].foffset = j8;
13689 vinfos[2].indices[0] = _ij8[0];
13690 vinfos[2].indices[1] = _ij8[1];
13691 vinfos[2].maxsolutions = _nj8;
13692 vinfos[3].jointtype = 1;
13693 vinfos[3].foffset = j9;
13694 vinfos[3].indices[0] = _ij9[0];
13695 vinfos[3].indices[1] = _ij9[1];
13696 vinfos[3].maxsolutions = _nj9;
13697 vinfos[4].jointtype = 1;
13698 vinfos[4].foffset = j10;
13699 vinfos[4].indices[0] = _ij10[0];
13700 vinfos[4].indices[1] = _ij10[1];
13701 vinfos[4].maxsolutions = _nj10;
13702 vinfos[5].jointtype = 1;
13703 vinfos[5].foffset = j11;
13704 vinfos[5].indices[0] = _ij11[0];
13705 vinfos[5].indices[1] = _ij11[1];
13706 vinfos[5].maxsolutions = _nj11;
13707 vinfos[6].jointtype = 1;
13708 vinfos[6].foffset = j12;
13709 vinfos[6].indices[0] = _ij12[0];
13710 vinfos[6].indices[1] = _ij12[1];
13711 vinfos[6].maxsolutions = _nj12;
13712 std::vector<int> vfree(0);
13713 solutions.AddSolution(vinfos,vfree);
13714 }
13715 }
13716 }
13717 
13718 }
13719 } while(0);
13720 if( bgotonextstatement )
13721 {
13722 bool bgotonextstatement = true;
13723 do
13724 {
13725 IkReal x498=((1.0)*cj10);
13726 IkReal x499=((1.0)*sj10);
13727 IkReal x500=((((-1.0)*new_r02*x499))+((cj10*new_r12)));
13728 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-1.5707963267949)+j11)))), 6.28318530717959)));
13729 evalcond[1]=new_r22;
13730 evalcond[2]=((((-1.0)*x498))+new_r02);
13731 evalcond[3]=((((-1.0)*x499))+new_r12);
13732 evalcond[4]=x500;
13733 evalcond[5]=x500;
13734 evalcond[6]=((-1.0)+((cj10*new_r02))+((new_r12*sj10)));
13735 evalcond[7]=(((cj10*new_r01))+((new_r11*sj10)));
13736 evalcond[8]=(((cj10*new_r00))+((new_r10*sj10)));
13737 evalcond[9]=((((-1.0)*new_r10*x499))+(((-1.0)*new_r00*x498)));
13738 evalcond[10]=((((-1.0)*new_r11*x499))+(((-1.0)*new_r01*x498)));
13739 evalcond[11]=((1.0)+(((-1.0)*new_r02*x498))+(((-1.0)*new_r12*x499)));
13740 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  && IKabs(evalcond[10]) < 0.0000010000000000  && IKabs(evalcond[11]) < 0.0000010000000000  )
13741 {
13742 bgotonextstatement=false;
13743 {
13744 IkReal j12array[1], cj12array[1], sj12array[1];
13745 bool j12valid[1]={false};
13746 _nj12 = 1;
13747 if( IKabs(new_r21) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*(((1.0)*new_r20)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r21)+IKsqr(((-1.0)*(((1.0)*new_r20))))-1) <= IKFAST_SINCOS_THRESH )
13748     continue;
13749 j12array[0]=IKatan2(new_r21, ((-1.0)*(((1.0)*new_r20))));
13750 sj12array[0]=IKsin(j12array[0]);
13751 cj12array[0]=IKcos(j12array[0]);
13752 if( j12array[0] > IKPI )
13753 {
13754     j12array[0]-=IK2PI;
13755 }
13756 else if( j12array[0] < -IKPI )
13757 {    j12array[0]+=IK2PI;
13758 }
13759 j12valid[0] = true;
13760 for(int ij12 = 0; ij12 < 1; ++ij12)
13761 {
13762 if( !j12valid[ij12] )
13763 {
13764     continue;
13765 }
13766 _ij12[0] = ij12; _ij12[1] = -1;
13767 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13768 {
13769 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13770 {
13771     j12valid[iij12]=false; _ij12[1] = iij12; break;
13772 }
13773 }
13774 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13775 {
13776 IkReal evalcond[8];
13777 IkReal x501=IKcos(j12);
13778 IkReal x502=IKsin(j12);
13779 IkReal x503=((1.0)*x502);
13780 IkReal x504=((-1.0)*x503);
13781 IkReal x505=((1.0)*x501);
13782 IkReal x506=((1.0)*new_r12);
13783 evalcond[0]=(x501+new_r20);
13784 evalcond[1]=(x504+new_r21);
13785 evalcond[2]=(((new_r12*x501))+new_r01);
13786 evalcond[3]=(((new_r12*x502))+new_r00);
13787 evalcond[4]=((((-1.0)*new_r02*x505))+new_r11);
13788 evalcond[5]=((((-1.0)*new_r02*x503))+new_r10);
13789 evalcond[6]=((((-1.0)*new_r00*x506))+x504+((new_r02*new_r10)));
13790 evalcond[7]=((((-1.0)*new_r01*x506))+((new_r02*new_r11))+(((-1.0)*x505)));
13791 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
13792 {
13793 continue;
13794 }
13795 }
13796 
13797 {
13798 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13799 vinfos[0].jointtype = 1;
13800 vinfos[0].foffset = j4;
13801 vinfos[0].indices[0] = _ij4[0];
13802 vinfos[0].indices[1] = _ij4[1];
13803 vinfos[0].maxsolutions = _nj4;
13804 vinfos[1].jointtype = 1;
13805 vinfos[1].foffset = j6;
13806 vinfos[1].indices[0] = _ij6[0];
13807 vinfos[1].indices[1] = _ij6[1];
13808 vinfos[1].maxsolutions = _nj6;
13809 vinfos[2].jointtype = 1;
13810 vinfos[2].foffset = j8;
13811 vinfos[2].indices[0] = _ij8[0];
13812 vinfos[2].indices[1] = _ij8[1];
13813 vinfos[2].maxsolutions = _nj8;
13814 vinfos[3].jointtype = 1;
13815 vinfos[3].foffset = j9;
13816 vinfos[3].indices[0] = _ij9[0];
13817 vinfos[3].indices[1] = _ij9[1];
13818 vinfos[3].maxsolutions = _nj9;
13819 vinfos[4].jointtype = 1;
13820 vinfos[4].foffset = j10;
13821 vinfos[4].indices[0] = _ij10[0];
13822 vinfos[4].indices[1] = _ij10[1];
13823 vinfos[4].maxsolutions = _nj10;
13824 vinfos[5].jointtype = 1;
13825 vinfos[5].foffset = j11;
13826 vinfos[5].indices[0] = _ij11[0];
13827 vinfos[5].indices[1] = _ij11[1];
13828 vinfos[5].maxsolutions = _nj11;
13829 vinfos[6].jointtype = 1;
13830 vinfos[6].foffset = j12;
13831 vinfos[6].indices[0] = _ij12[0];
13832 vinfos[6].indices[1] = _ij12[1];
13833 vinfos[6].maxsolutions = _nj12;
13834 std::vector<int> vfree(0);
13835 solutions.AddSolution(vinfos,vfree);
13836 }
13837 }
13838 }
13839 
13840 }
13841 } while(0);
13842 if( bgotonextstatement )
13843 {
13844 bool bgotonextstatement = true;
13845 do
13846 {
13847 IkReal x507=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
13848 IkReal x508=((1.0)+((cj10*new_r02))+((new_r12*sj10)));
13849 IkReal x509=(((cj10*new_r01))+((new_r11*sj10)));
13850 IkReal x510=(((cj10*new_r00))+((new_r10*sj10)));
13851 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((1.5707963267949)+j11)))), 6.28318530717959)));
13852 evalcond[1]=new_r22;
13853 evalcond[2]=(cj10+new_r02);
13854 evalcond[3]=(sj10+new_r12);
13855 evalcond[4]=x507;
13856 evalcond[5]=x507;
13857 evalcond[6]=x508;
13858 evalcond[7]=x509;
13859 evalcond[8]=x510;
13860 evalcond[9]=x510;
13861 evalcond[10]=x509;
13862 evalcond[11]=x508;
13863 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  && IKabs(evalcond[10]) < 0.0000010000000000  && IKabs(evalcond[11]) < 0.0000010000000000  )
13864 {
13865 bgotonextstatement=false;
13866 {
13867 IkReal j12array[1], cj12array[1], sj12array[1];
13868 bool j12valid[1]={false};
13869 _nj12 = 1;
13870 if( IKabs(((-1.0)*(((1.0)*new_r21)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r20) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((-1.0)*(((1.0)*new_r21))))+IKsqr(new_r20)-1) <= IKFAST_SINCOS_THRESH )
13871     continue;
13872 j12array[0]=IKatan2(((-1.0)*(((1.0)*new_r21))), new_r20);
13873 sj12array[0]=IKsin(j12array[0]);
13874 cj12array[0]=IKcos(j12array[0]);
13875 if( j12array[0] > IKPI )
13876 {
13877     j12array[0]-=IK2PI;
13878 }
13879 else if( j12array[0] < -IKPI )
13880 {    j12array[0]+=IK2PI;
13881 }
13882 j12valid[0] = true;
13883 for(int ij12 = 0; ij12 < 1; ++ij12)
13884 {
13885 if( !j12valid[ij12] )
13886 {
13887     continue;
13888 }
13889 _ij12[0] = ij12; _ij12[1] = -1;
13890 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
13891 {
13892 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
13893 {
13894     j12valid[iij12]=false; _ij12[1] = iij12; break;
13895 }
13896 }
13897 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
13898 {
13899 IkReal evalcond[8];
13900 IkReal x511=IKsin(j12);
13901 IkReal x512=IKcos(j12);
13902 IkReal x513=((1.0)*x512);
13903 IkReal x514=((-1.0)*x513);
13904 IkReal x515=((1.0)*x511);
13905 IkReal x516=((1.0)*new_r02);
13906 evalcond[0]=(x511+new_r21);
13907 evalcond[1]=(x514+new_r20);
13908 evalcond[2]=(((new_r02*x512))+new_r11);
13909 evalcond[3]=(((new_r02*x511))+new_r10);
13910 evalcond[4]=((((-1.0)*new_r12*x513))+new_r01);
13911 evalcond[5]=((((-1.0)*new_r12*x515))+new_r00);
13912 evalcond[6]=((((-1.0)*new_r10*x516))+((new_r00*new_r12))+(((-1.0)*x515)));
13913 evalcond[7]=((((-1.0)*new_r11*x516))+((new_r01*new_r12))+x514);
13914 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
13915 {
13916 continue;
13917 }
13918 }
13919 
13920 {
13921 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
13922 vinfos[0].jointtype = 1;
13923 vinfos[0].foffset = j4;
13924 vinfos[0].indices[0] = _ij4[0];
13925 vinfos[0].indices[1] = _ij4[1];
13926 vinfos[0].maxsolutions = _nj4;
13927 vinfos[1].jointtype = 1;
13928 vinfos[1].foffset = j6;
13929 vinfos[1].indices[0] = _ij6[0];
13930 vinfos[1].indices[1] = _ij6[1];
13931 vinfos[1].maxsolutions = _nj6;
13932 vinfos[2].jointtype = 1;
13933 vinfos[2].foffset = j8;
13934 vinfos[2].indices[0] = _ij8[0];
13935 vinfos[2].indices[1] = _ij8[1];
13936 vinfos[2].maxsolutions = _nj8;
13937 vinfos[3].jointtype = 1;
13938 vinfos[3].foffset = j9;
13939 vinfos[3].indices[0] = _ij9[0];
13940 vinfos[3].indices[1] = _ij9[1];
13941 vinfos[3].maxsolutions = _nj9;
13942 vinfos[4].jointtype = 1;
13943 vinfos[4].foffset = j10;
13944 vinfos[4].indices[0] = _ij10[0];
13945 vinfos[4].indices[1] = _ij10[1];
13946 vinfos[4].maxsolutions = _nj10;
13947 vinfos[5].jointtype = 1;
13948 vinfos[5].foffset = j11;
13949 vinfos[5].indices[0] = _ij11[0];
13950 vinfos[5].indices[1] = _ij11[1];
13951 vinfos[5].maxsolutions = _nj11;
13952 vinfos[6].jointtype = 1;
13953 vinfos[6].foffset = j12;
13954 vinfos[6].indices[0] = _ij12[0];
13955 vinfos[6].indices[1] = _ij12[1];
13956 vinfos[6].maxsolutions = _nj12;
13957 std::vector<int> vfree(0);
13958 solutions.AddSolution(vinfos,vfree);
13959 }
13960 }
13961 }
13962 
13963 }
13964 } while(0);
13965 if( bgotonextstatement )
13966 {
13967 bool bgotonextstatement = true;
13968 do
13969 {
13970 IkReal x517=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
13971 IkReal x518=(((cj10*new_r02))+((new_r12*sj10)));
13972 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j11))), 6.28318530717959)));
13973 evalcond[1]=((-1.0)+new_r22);
13974 evalcond[2]=new_r20;
13975 evalcond[3]=new_r02;
13976 evalcond[4]=new_r12;
13977 evalcond[5]=new_r21;
13978 evalcond[6]=x517;
13979 evalcond[7]=x517;
13980 evalcond[8]=x518;
13981 evalcond[9]=x518;
13982 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
13983 {
13984 bgotonextstatement=false;
13985 {
13986 IkReal j12array[1], cj12array[1], sj12array[1];
13987 bool j12valid[1]={false};
13988 _nj12 = 1;
13989 IkReal x519=((1.0)*new_r01);
13990 if( IKabs(((((-1.0)*cj10*x519))+(((-1.0)*(1.0)*new_r00*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs((((cj10*new_r00))+(((-1.0)*sj10*x519)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((-1.0)*cj10*x519))+(((-1.0)*(1.0)*new_r00*sj10))))+IKsqr((((cj10*new_r00))+(((-1.0)*sj10*x519))))-1) <= IKFAST_SINCOS_THRESH )
13991     continue;
13992 j12array[0]=IKatan2(((((-1.0)*cj10*x519))+(((-1.0)*(1.0)*new_r00*sj10))), (((cj10*new_r00))+(((-1.0)*sj10*x519))));
13993 sj12array[0]=IKsin(j12array[0]);
13994 cj12array[0]=IKcos(j12array[0]);
13995 if( j12array[0] > IKPI )
13996 {
13997     j12array[0]-=IK2PI;
13998 }
13999 else if( j12array[0] < -IKPI )
14000 {    j12array[0]+=IK2PI;
14001 }
14002 j12valid[0] = true;
14003 for(int ij12 = 0; ij12 < 1; ++ij12)
14004 {
14005 if( !j12valid[ij12] )
14006 {
14007     continue;
14008 }
14009 _ij12[0] = ij12; _ij12[1] = -1;
14010 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14011 {
14012 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14013 {
14014     j12valid[iij12]=false; _ij12[1] = iij12; break;
14015 }
14016 }
14017 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14018 {
14019 IkReal evalcond[8];
14020 IkReal x520=IKsin(j12);
14021 IkReal x521=(cj10*x520);
14022 IkReal x522=IKcos(j12);
14023 IkReal x523=((1.0)*x522);
14024 IkReal x524=((-1.0)*x523);
14025 IkReal x525=((1.0)*sj10);
14026 IkReal x526=((((-1.0)*cj10*x523))+((sj10*x520)));
14027 evalcond[0]=(((cj10*new_r01))+((new_r11*sj10))+x520);
14028 evalcond[1]=(((sj10*x522))+new_r01+x521);
14029 evalcond[2]=(((cj10*new_r00))+((new_r10*sj10))+x524);
14030 evalcond[3]=(((cj10*new_r10))+(((-1.0)*new_r00*x525))+(((-1.0)*x520)));
14031 evalcond[4]=(((cj10*new_r11))+(((-1.0)*new_r01*x525))+x524);
14032 evalcond[5]=(new_r00+x526);
14033 evalcond[6]=(new_r11+x526);
14034 evalcond[7]=((((-1.0)*x521))+(((-1.0)*x522*x525))+new_r10);
14035 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
14036 {
14037 continue;
14038 }
14039 }
14040 
14041 {
14042 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14043 vinfos[0].jointtype = 1;
14044 vinfos[0].foffset = j4;
14045 vinfos[0].indices[0] = _ij4[0];
14046 vinfos[0].indices[1] = _ij4[1];
14047 vinfos[0].maxsolutions = _nj4;
14048 vinfos[1].jointtype = 1;
14049 vinfos[1].foffset = j6;
14050 vinfos[1].indices[0] = _ij6[0];
14051 vinfos[1].indices[1] = _ij6[1];
14052 vinfos[1].maxsolutions = _nj6;
14053 vinfos[2].jointtype = 1;
14054 vinfos[2].foffset = j8;
14055 vinfos[2].indices[0] = _ij8[0];
14056 vinfos[2].indices[1] = _ij8[1];
14057 vinfos[2].maxsolutions = _nj8;
14058 vinfos[3].jointtype = 1;
14059 vinfos[3].foffset = j9;
14060 vinfos[3].indices[0] = _ij9[0];
14061 vinfos[3].indices[1] = _ij9[1];
14062 vinfos[3].maxsolutions = _nj9;
14063 vinfos[4].jointtype = 1;
14064 vinfos[4].foffset = j10;
14065 vinfos[4].indices[0] = _ij10[0];
14066 vinfos[4].indices[1] = _ij10[1];
14067 vinfos[4].maxsolutions = _nj10;
14068 vinfos[5].jointtype = 1;
14069 vinfos[5].foffset = j11;
14070 vinfos[5].indices[0] = _ij11[0];
14071 vinfos[5].indices[1] = _ij11[1];
14072 vinfos[5].maxsolutions = _nj11;
14073 vinfos[6].jointtype = 1;
14074 vinfos[6].foffset = j12;
14075 vinfos[6].indices[0] = _ij12[0];
14076 vinfos[6].indices[1] = _ij12[1];
14077 vinfos[6].maxsolutions = _nj12;
14078 std::vector<int> vfree(0);
14079 solutions.AddSolution(vinfos,vfree);
14080 }
14081 }
14082 }
14083 
14084 }
14085 } while(0);
14086 if( bgotonextstatement )
14087 {
14088 bool bgotonextstatement = true;
14089 do
14090 {
14091 IkReal x527=((((-1.0)*(1.0)*new_r02*sj10))+((cj10*new_r12)));
14092 IkReal x528=(cj10*new_r02);
14093 IkReal x529=(new_r12*sj10);
14094 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j11)))), 6.28318530717959)));
14095 evalcond[1]=((1.0)+new_r22);
14096 evalcond[2]=new_r20;
14097 evalcond[3]=new_r02;
14098 evalcond[4]=new_r12;
14099 evalcond[5]=new_r21;
14100 evalcond[6]=x527;
14101 evalcond[7]=x527;
14102 evalcond[8]=(x529+x528);
14103 evalcond[9]=((((-1.0)*x528))+(((-1.0)*x529)));
14104 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
14105 {
14106 bgotonextstatement=false;
14107 {
14108 IkReal j12array[1], cj12array[1], sj12array[1];
14109 bool j12valid[1]={false};
14110 _nj12 = 1;
14111 IkReal x530=((1.0)*new_r00);
14112 if( IKabs(((((-1.0)*sj10*x530))+((cj10*new_r01)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((((-1.0)*cj10*x530))+(((-1.0)*(1.0)*new_r01*sj10)))) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(((((-1.0)*sj10*x530))+((cj10*new_r01))))+IKsqr(((((-1.0)*cj10*x530))+(((-1.0)*(1.0)*new_r01*sj10))))-1) <= IKFAST_SINCOS_THRESH )
14113     continue;
14114 j12array[0]=IKatan2(((((-1.0)*sj10*x530))+((cj10*new_r01))), ((((-1.0)*cj10*x530))+(((-1.0)*(1.0)*new_r01*sj10))));
14115 sj12array[0]=IKsin(j12array[0]);
14116 cj12array[0]=IKcos(j12array[0]);
14117 if( j12array[0] > IKPI )
14118 {
14119     j12array[0]-=IK2PI;
14120 }
14121 else if( j12array[0] < -IKPI )
14122 {    j12array[0]+=IK2PI;
14123 }
14124 j12valid[0] = true;
14125 for(int ij12 = 0; ij12 < 1; ++ij12)
14126 {
14127 if( !j12valid[ij12] )
14128 {
14129     continue;
14130 }
14131 _ij12[0] = ij12; _ij12[1] = -1;
14132 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14133 {
14134 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14135 {
14136     j12valid[iij12]=false; _ij12[1] = iij12; break;
14137 }
14138 }
14139 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14140 {
14141 IkReal evalcond[8];
14142 IkReal x531=IKcos(j12);
14143 IkReal x532=IKsin(j12);
14144 IkReal x533=((1.0)*x532);
14145 IkReal x534=((-1.0)*x533);
14146 IkReal x535=(cj10*x531);
14147 IkReal x536=((1.0)*sj10);
14148 IkReal x537=((((-1.0)*cj10*x533))+((sj10*x531)));
14149 evalcond[0]=(x531+((cj10*new_r00))+((new_r10*sj10)));
14150 evalcond[1]=(x534+((cj10*new_r01))+((new_r11*sj10)));
14151 evalcond[2]=(x535+((sj10*x532))+new_r00);
14152 evalcond[3]=(x534+((cj10*new_r10))+(((-1.0)*new_r00*x536)));
14153 evalcond[4]=(((cj10*new_r11))+(((-1.0)*x531))+(((-1.0)*new_r01*x536)));
14154 evalcond[5]=(x537+new_r01);
14155 evalcond[6]=(x537+new_r10);
14156 evalcond[7]=((((-1.0)*x532*x536))+new_r11+(((-1.0)*x535)));
14157 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
14158 {
14159 continue;
14160 }
14161 }
14162 
14163 {
14164 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14165 vinfos[0].jointtype = 1;
14166 vinfos[0].foffset = j4;
14167 vinfos[0].indices[0] = _ij4[0];
14168 vinfos[0].indices[1] = _ij4[1];
14169 vinfos[0].maxsolutions = _nj4;
14170 vinfos[1].jointtype = 1;
14171 vinfos[1].foffset = j6;
14172 vinfos[1].indices[0] = _ij6[0];
14173 vinfos[1].indices[1] = _ij6[1];
14174 vinfos[1].maxsolutions = _nj6;
14175 vinfos[2].jointtype = 1;
14176 vinfos[2].foffset = j8;
14177 vinfos[2].indices[0] = _ij8[0];
14178 vinfos[2].indices[1] = _ij8[1];
14179 vinfos[2].maxsolutions = _nj8;
14180 vinfos[3].jointtype = 1;
14181 vinfos[3].foffset = j9;
14182 vinfos[3].indices[0] = _ij9[0];
14183 vinfos[3].indices[1] = _ij9[1];
14184 vinfos[3].maxsolutions = _nj9;
14185 vinfos[4].jointtype = 1;
14186 vinfos[4].foffset = j10;
14187 vinfos[4].indices[0] = _ij10[0];
14188 vinfos[4].indices[1] = _ij10[1];
14189 vinfos[4].maxsolutions = _nj10;
14190 vinfos[5].jointtype = 1;
14191 vinfos[5].foffset = j11;
14192 vinfos[5].indices[0] = _ij11[0];
14193 vinfos[5].indices[1] = _ij11[1];
14194 vinfos[5].maxsolutions = _nj11;
14195 vinfos[6].jointtype = 1;
14196 vinfos[6].foffset = j12;
14197 vinfos[6].indices[0] = _ij12[0];
14198 vinfos[6].indices[1] = _ij12[1];
14199 vinfos[6].maxsolutions = _nj12;
14200 std::vector<int> vfree(0);
14201 solutions.AddSolution(vinfos,vfree);
14202 }
14203 }
14204 }
14205 
14206 }
14207 } while(0);
14208 if( bgotonextstatement )
14209 {
14210 bool bgotonextstatement = true;
14211 do
14212 {
14213 IkReal x538=((1.0)*cj11);
14214 IkReal x539=((((-1.0)*x538))+new_r22);
14215 IkReal x540=((1.0)*sj11);
14216 IkReal x541=((((-1.0)*x540))+new_r02);
14217 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(j10))), 6.28318530717959)));
14218 evalcond[1]=x539;
14219 evalcond[2]=x539;
14220 evalcond[3]=x541;
14221 evalcond[4]=new_r12;
14222 evalcond[5]=x541;
14223 evalcond[6]=((((-1.0)*new_r22*x540))+((cj11*new_r02)));
14224 evalcond[7]=((((-1.0)*new_r20*x538))+(((-1.0)*new_r00*x540)));
14225 evalcond[8]=((((-1.0)*new_r21*x538))+(((-1.0)*new_r01*x540)));
14226 evalcond[9]=((1.0)+(((-1.0)*new_r02*x540))+(((-1.0)*new_r22*x538)));
14227 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
14228 {
14229 bgotonextstatement=false;
14230 {
14231 IkReal j12array[1], cj12array[1], sj12array[1];
14232 bool j12valid[1]={false};
14233 _nj12 = 1;
14234 if( IKabs(new_r10) < IKFAST_ATAN2_MAGTHRESH && IKabs(new_r11) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr(new_r10)+IKsqr(new_r11)-1) <= IKFAST_SINCOS_THRESH )
14235     continue;
14236 j12array[0]=IKatan2(new_r10, new_r11);
14237 sj12array[0]=IKsin(j12array[0]);
14238 cj12array[0]=IKcos(j12array[0]);
14239 if( j12array[0] > IKPI )
14240 {
14241     j12array[0]-=IK2PI;
14242 }
14243 else if( j12array[0] < -IKPI )
14244 {    j12array[0]+=IK2PI;
14245 }
14246 j12valid[0] = true;
14247 for(int ij12 = 0; ij12 < 1; ++ij12)
14248 {
14249 if( !j12valid[ij12] )
14250 {
14251     continue;
14252 }
14253 _ij12[0] = ij12; _ij12[1] = -1;
14254 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14255 {
14256 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14257 {
14258     j12valid[iij12]=false; _ij12[1] = iij12; break;
14259 }
14260 }
14261 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14262 {
14263 IkReal evalcond[8];
14264 IkReal x542=IKcos(j12);
14265 IkReal x543=IKsin(j12);
14266 IkReal x544=((1.0)*x542);
14267 IkReal x545=((-1.0)*x544);
14268 IkReal x546=((1.0)*new_r02);
14269 evalcond[0]=(((new_r02*x542))+new_r20);
14270 evalcond[1]=((((-1.0)*x543))+new_r10);
14271 evalcond[2]=(new_r11+x545);
14272 evalcond[3]=(((new_r22*x543))+new_r01);
14273 evalcond[4]=((((-1.0)*x543*x546))+new_r21);
14274 evalcond[5]=((((-1.0)*new_r22*x544))+new_r00);
14275 evalcond[6]=(((new_r01*new_r22))+(((-1.0)*new_r21*x546))+x543);
14276 evalcond[7]=((((-1.0)*new_r20*x546))+((new_r00*new_r22))+x545);
14277 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
14278 {
14279 continue;
14280 }
14281 }
14282 
14283 {
14284 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14285 vinfos[0].jointtype = 1;
14286 vinfos[0].foffset = j4;
14287 vinfos[0].indices[0] = _ij4[0];
14288 vinfos[0].indices[1] = _ij4[1];
14289 vinfos[0].maxsolutions = _nj4;
14290 vinfos[1].jointtype = 1;
14291 vinfos[1].foffset = j6;
14292 vinfos[1].indices[0] = _ij6[0];
14293 vinfos[1].indices[1] = _ij6[1];
14294 vinfos[1].maxsolutions = _nj6;
14295 vinfos[2].jointtype = 1;
14296 vinfos[2].foffset = j8;
14297 vinfos[2].indices[0] = _ij8[0];
14298 vinfos[2].indices[1] = _ij8[1];
14299 vinfos[2].maxsolutions = _nj8;
14300 vinfos[3].jointtype = 1;
14301 vinfos[3].foffset = j9;
14302 vinfos[3].indices[0] = _ij9[0];
14303 vinfos[3].indices[1] = _ij9[1];
14304 vinfos[3].maxsolutions = _nj9;
14305 vinfos[4].jointtype = 1;
14306 vinfos[4].foffset = j10;
14307 vinfos[4].indices[0] = _ij10[0];
14308 vinfos[4].indices[1] = _ij10[1];
14309 vinfos[4].maxsolutions = _nj10;
14310 vinfos[5].jointtype = 1;
14311 vinfos[5].foffset = j11;
14312 vinfos[5].indices[0] = _ij11[0];
14313 vinfos[5].indices[1] = _ij11[1];
14314 vinfos[5].maxsolutions = _nj11;
14315 vinfos[6].jointtype = 1;
14316 vinfos[6].foffset = j12;
14317 vinfos[6].indices[0] = _ij12[0];
14318 vinfos[6].indices[1] = _ij12[1];
14319 vinfos[6].maxsolutions = _nj12;
14320 std::vector<int> vfree(0);
14321 solutions.AddSolution(vinfos,vfree);
14322 }
14323 }
14324 }
14325 
14326 }
14327 } while(0);
14328 if( bgotonextstatement )
14329 {
14330 bool bgotonextstatement = true;
14331 do
14332 {
14333 IkReal x547=((1.0)*cj11);
14334 IkReal x548=((((-1.0)*x547))+new_r22);
14335 IkReal x549=((1.0)*sj11);
14336 evalcond[0]=((-3.14159265358979)+(IKfmod(((3.14159265358979)+(IKabs(((-3.14159265358979)+j10)))), 6.28318530717959)));
14337 evalcond[1]=x548;
14338 evalcond[2]=x548;
14339 evalcond[3]=(sj11+new_r02);
14340 evalcond[4]=new_r12;
14341 evalcond[5]=((((-1.0)*x549))+(((-1.0)*(1.0)*new_r02)));
14342 evalcond[6]=((((-1.0)*new_r22*x549))+(((-1.0)*new_r02*x547)));
14343 evalcond[7]=((((-1.0)*new_r20*x547))+((new_r00*sj11)));
14344 evalcond[8]=((((-1.0)*new_r21*x547))+((new_r01*sj11)));
14345 evalcond[9]=((1.0)+((new_r02*sj11))+(((-1.0)*new_r22*x547)));
14346 if( IKabs(evalcond[0]) < 0.0000010000000000  && IKabs(evalcond[1]) < 0.0000010000000000  && IKabs(evalcond[2]) < 0.0000010000000000  && IKabs(evalcond[3]) < 0.0000010000000000  && IKabs(evalcond[4]) < 0.0000010000000000  && IKabs(evalcond[5]) < 0.0000010000000000  && IKabs(evalcond[6]) < 0.0000010000000000  && IKabs(evalcond[7]) < 0.0000010000000000  && IKabs(evalcond[8]) < 0.0000010000000000  && IKabs(evalcond[9]) < 0.0000010000000000  )
14347 {
14348 bgotonextstatement=false;
14349 {
14350 IkReal j12array[1], cj12array[1], sj12array[1];
14351 bool j12valid[1]={false};
14352 _nj12 = 1;
14353 CheckValue<IkReal> x550 = IKatan2WithCheck(IkReal(((-1.0)*(((1.0)*new_r21)))),new_r20,IKFAST_ATAN2_MAGTHRESH);
14354 if(!x550.valid){
14355 continue;
14356 }
14357 CheckValue<IkReal> x551=IKPowWithIntegerCheck(IKsign(new_r02),-1);
14358 if(!x551.valid){
14359 continue;
14360 }
14361 j12array[0]=((-1.5707963267949)+(x550.value)+(((1.5707963267949)*(x551.value))));
14362 sj12array[0]=IKsin(j12array[0]);
14363 cj12array[0]=IKcos(j12array[0]);
14364 if( j12array[0] > IKPI )
14365 {
14366     j12array[0]-=IK2PI;
14367 }
14368 else if( j12array[0] < -IKPI )
14369 {    j12array[0]+=IK2PI;
14370 }
14371 j12valid[0] = true;
14372 for(int ij12 = 0; ij12 < 1; ++ij12)
14373 {
14374 if( !j12valid[ij12] )
14375 {
14376     continue;
14377 }
14378 _ij12[0] = ij12; _ij12[1] = -1;
14379 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14380 {
14381 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14382 {
14383     j12valid[iij12]=false; _ij12[1] = iij12; break;
14384 }
14385 }
14386 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14387 {
14388 IkReal evalcond[8];
14389 IkReal x552=IKsin(j12);
14390 IkReal x553=((1.0)*(IKcos(j12)));
14391 IkReal x554=((-1.0)*x553);
14392 IkReal x555=((1.0)*new_r01);
14393 IkReal x556=((1.0)*new_r00);
14394 evalcond[0]=(((new_r02*x552))+new_r21);
14395 evalcond[1]=((((-1.0)*new_r02*x553))+new_r20);
14396 evalcond[2]=((((-1.0)*(1.0)*new_r10))+(((-1.0)*x552)));
14397 evalcond[3]=(x554+(((-1.0)*(1.0)*new_r11)));
14398 evalcond[4]=(((new_r22*x552))+(((-1.0)*x555)));
14399 evalcond[5]=((((-1.0)*x556))+(((-1.0)*new_r22*x553)));
14400 evalcond[6]=(((new_r02*new_r21))+(((-1.0)*new_r22*x555))+x552);
14401 evalcond[7]=(((new_r02*new_r20))+x554+(((-1.0)*new_r22*x556)));
14402 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  )
14403 {
14404 continue;
14405 }
14406 }
14407 
14408 {
14409 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14410 vinfos[0].jointtype = 1;
14411 vinfos[0].foffset = j4;
14412 vinfos[0].indices[0] = _ij4[0];
14413 vinfos[0].indices[1] = _ij4[1];
14414 vinfos[0].maxsolutions = _nj4;
14415 vinfos[1].jointtype = 1;
14416 vinfos[1].foffset = j6;
14417 vinfos[1].indices[0] = _ij6[0];
14418 vinfos[1].indices[1] = _ij6[1];
14419 vinfos[1].maxsolutions = _nj6;
14420 vinfos[2].jointtype = 1;
14421 vinfos[2].foffset = j8;
14422 vinfos[2].indices[0] = _ij8[0];
14423 vinfos[2].indices[1] = _ij8[1];
14424 vinfos[2].maxsolutions = _nj8;
14425 vinfos[3].jointtype = 1;
14426 vinfos[3].foffset = j9;
14427 vinfos[3].indices[0] = _ij9[0];
14428 vinfos[3].indices[1] = _ij9[1];
14429 vinfos[3].maxsolutions = _nj9;
14430 vinfos[4].jointtype = 1;
14431 vinfos[4].foffset = j10;
14432 vinfos[4].indices[0] = _ij10[0];
14433 vinfos[4].indices[1] = _ij10[1];
14434 vinfos[4].maxsolutions = _nj10;
14435 vinfos[5].jointtype = 1;
14436 vinfos[5].foffset = j11;
14437 vinfos[5].indices[0] = _ij11[0];
14438 vinfos[5].indices[1] = _ij11[1];
14439 vinfos[5].maxsolutions = _nj11;
14440 vinfos[6].jointtype = 1;
14441 vinfos[6].foffset = j12;
14442 vinfos[6].indices[0] = _ij12[0];
14443 vinfos[6].indices[1] = _ij12[1];
14444 vinfos[6].maxsolutions = _nj12;
14445 std::vector<int> vfree(0);
14446 solutions.AddSolution(vinfos,vfree);
14447 }
14448 }
14449 }
14450 
14451 }
14452 } while(0);
14453 if( bgotonextstatement )
14454 {
14455 bool bgotonextstatement = true;
14456 do
14457 {
14458 if( 1 )
14459 {
14460 bgotonextstatement=false;
14461 continue; // branch miss [j12]
14462 
14463 }
14464 } while(0);
14465 if( bgotonextstatement )
14466 {
14467 }
14468 }
14469 }
14470 }
14471 }
14472 }
14473 }
14474 }
14475 }
14476 }
14477 
14478 } else
14479 {
14480 {
14481 IkReal j12array[1], cj12array[1], sj12array[1];
14482 bool j12valid[1]={false};
14483 _nj12 = 1;
14484 CheckValue<IkReal> x558=IKPowWithIntegerCheck(sj11,-1);
14485 if(!x558.valid){
14486 continue;
14487 }
14488 IkReal x557=x558.value;
14489 CheckValue<IkReal> x559=IKPowWithIntegerCheck(cj10,-1);
14490 if(!x559.valid){
14491 continue;
14492 }
14493 CheckValue<IkReal> x560=IKPowWithIntegerCheck(cj11,-1);
14494 if(!x560.valid){
14495 continue;
14496 }
14497 if( IKabs((x557*(x559.value)*(x560.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*new_r20*x557)) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((x557*(x559.value)*(x560.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10))))))+IKsqr(((-1.0)*new_r20*x557))-1) <= IKFAST_SINCOS_THRESH )
14498     continue;
14499 j12array[0]=IKatan2((x557*(x559.value)*(x560.value)*(((((-1.0)*(1.0)*new_r01*sj11))+((new_r20*sj10))))), ((-1.0)*new_r20*x557));
14500 sj12array[0]=IKsin(j12array[0]);
14501 cj12array[0]=IKcos(j12array[0]);
14502 if( j12array[0] > IKPI )
14503 {
14504     j12array[0]-=IK2PI;
14505 }
14506 else if( j12array[0] < -IKPI )
14507 {    j12array[0]+=IK2PI;
14508 }
14509 j12valid[0] = true;
14510 for(int ij12 = 0; ij12 < 1; ++ij12)
14511 {
14512 if( !j12valid[ij12] )
14513 {
14514     continue;
14515 }
14516 _ij12[0] = ij12; _ij12[1] = -1;
14517 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14518 {
14519 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14520 {
14521     j12valid[iij12]=false; _ij12[1] = iij12; break;
14522 }
14523 }
14524 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14525 {
14526 IkReal evalcond[12];
14527 IkReal x561=IKcos(j12);
14528 IkReal x562=IKsin(j12);
14529 IkReal x563=((1.0)*sj11);
14530 IkReal x564=(cj10*new_r01);
14531 IkReal x565=(new_r11*sj10);
14532 IkReal x566=(cj11*x562);
14533 IkReal x567=((1.0)*sj10);
14534 IkReal x568=((1.0)*x562);
14535 IkReal x569=((1.0)*x561);
14536 IkReal x570=((-1.0)*x569);
14537 IkReal x571=(cj10*new_r00);
14538 IkReal x572=(new_r10*sj10);
14539 IkReal x573=(cj10*x569);
14540 evalcond[0]=(((sj11*x561))+new_r20);
14541 evalcond[1]=((((-1.0)*x562*x563))+new_r21);
14542 evalcond[2]=(x564+x565+x566);
14543 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x568))+(((-1.0)*new_r00*x567)));
14544 evalcond[4]=(((cj10*new_r11))+x570+(((-1.0)*new_r01*x567)));
14545 evalcond[5]=(((cj10*x566))+new_r01+((sj10*x561)));
14546 evalcond[6]=(x572+x571+(((-1.0)*cj11*x569)));
14547 evalcond[7]=(((sj10*x562))+(((-1.0)*cj11*x573))+new_r00);
14548 evalcond[8]=((((-1.0)*x573))+new_r11+((sj10*x566)));
14549 evalcond[9]=((((-1.0)*cj10*x568))+(((-1.0)*cj11*x561*x567))+new_r10);
14550 evalcond[10]=((((-1.0)*new_r21*x563))+((cj11*x565))+((cj11*x564))+x562);
14551 evalcond[11]=(x570+((cj11*x572))+((cj11*x571))+(((-1.0)*new_r20*x563)));
14552 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
14553 {
14554 continue;
14555 }
14556 }
14557 
14558 {
14559 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14560 vinfos[0].jointtype = 1;
14561 vinfos[0].foffset = j4;
14562 vinfos[0].indices[0] = _ij4[0];
14563 vinfos[0].indices[1] = _ij4[1];
14564 vinfos[0].maxsolutions = _nj4;
14565 vinfos[1].jointtype = 1;
14566 vinfos[1].foffset = j6;
14567 vinfos[1].indices[0] = _ij6[0];
14568 vinfos[1].indices[1] = _ij6[1];
14569 vinfos[1].maxsolutions = _nj6;
14570 vinfos[2].jointtype = 1;
14571 vinfos[2].foffset = j8;
14572 vinfos[2].indices[0] = _ij8[0];
14573 vinfos[2].indices[1] = _ij8[1];
14574 vinfos[2].maxsolutions = _nj8;
14575 vinfos[3].jointtype = 1;
14576 vinfos[3].foffset = j9;
14577 vinfos[3].indices[0] = _ij9[0];
14578 vinfos[3].indices[1] = _ij9[1];
14579 vinfos[3].maxsolutions = _nj9;
14580 vinfos[4].jointtype = 1;
14581 vinfos[4].foffset = j10;
14582 vinfos[4].indices[0] = _ij10[0];
14583 vinfos[4].indices[1] = _ij10[1];
14584 vinfos[4].maxsolutions = _nj10;
14585 vinfos[5].jointtype = 1;
14586 vinfos[5].foffset = j11;
14587 vinfos[5].indices[0] = _ij11[0];
14588 vinfos[5].indices[1] = _ij11[1];
14589 vinfos[5].maxsolutions = _nj11;
14590 vinfos[6].jointtype = 1;
14591 vinfos[6].foffset = j12;
14592 vinfos[6].indices[0] = _ij12[0];
14593 vinfos[6].indices[1] = _ij12[1];
14594 vinfos[6].maxsolutions = _nj12;
14595 std::vector<int> vfree(0);
14596 solutions.AddSolution(vinfos,vfree);
14597 }
14598 }
14599 }
14600 
14601 }
14602 
14603 }
14604 
14605 } else
14606 {
14607 {
14608 IkReal j12array[1], cj12array[1], sj12array[1];
14609 bool j12valid[1]={false};
14610 _nj12 = 1;
14611 CheckValue<IkReal> x576=IKPowWithIntegerCheck(sj11,-1);
14612 if(!x576.valid){
14613 continue;
14614 }
14615 IkReal x574=x576.value;
14616 IkReal x575=((1.0)*new_r20);
14617 CheckValue<IkReal> x577=IKPowWithIntegerCheck(sj10,-1);
14618 if(!x577.valid){
14619 continue;
14620 }
14621 if( IKabs((x574*(x577.value)*(((((-1.0)*cj10*cj11*x575))+(((-1.0)*(1.0)*new_r00*sj11)))))) < IKFAST_ATAN2_MAGTHRESH && IKabs(((-1.0)*x574*x575)) < IKFAST_ATAN2_MAGTHRESH && IKabs(IKsqr((x574*(x577.value)*(((((-1.0)*cj10*cj11*x575))+(((-1.0)*(1.0)*new_r00*sj11))))))+IKsqr(((-1.0)*x574*x575))-1) <= IKFAST_SINCOS_THRESH )
14622     continue;
14623 j12array[0]=IKatan2((x574*(x577.value)*(((((-1.0)*cj10*cj11*x575))+(((-1.0)*(1.0)*new_r00*sj11))))), ((-1.0)*x574*x575));
14624 sj12array[0]=IKsin(j12array[0]);
14625 cj12array[0]=IKcos(j12array[0]);
14626 if( j12array[0] > IKPI )
14627 {
14628     j12array[0]-=IK2PI;
14629 }
14630 else if( j12array[0] < -IKPI )
14631 {    j12array[0]+=IK2PI;
14632 }
14633 j12valid[0] = true;
14634 for(int ij12 = 0; ij12 < 1; ++ij12)
14635 {
14636 if( !j12valid[ij12] )
14637 {
14638     continue;
14639 }
14640 _ij12[0] = ij12; _ij12[1] = -1;
14641 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14642 {
14643 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14644 {
14645     j12valid[iij12]=false; _ij12[1] = iij12; break;
14646 }
14647 }
14648 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14649 {
14650 IkReal evalcond[12];
14651 IkReal x578=IKcos(j12);
14652 IkReal x579=IKsin(j12);
14653 IkReal x580=((1.0)*sj11);
14654 IkReal x581=(cj10*new_r01);
14655 IkReal x582=(new_r11*sj10);
14656 IkReal x583=(cj11*x579);
14657 IkReal x584=((1.0)*sj10);
14658 IkReal x585=((1.0)*x579);
14659 IkReal x586=((1.0)*x578);
14660 IkReal x587=((-1.0)*x586);
14661 IkReal x588=(cj10*new_r00);
14662 IkReal x589=(new_r10*sj10);
14663 IkReal x590=(cj10*x586);
14664 evalcond[0]=(((sj11*x578))+new_r20);
14665 evalcond[1]=((((-1.0)*x579*x580))+new_r21);
14666 evalcond[2]=(x581+x582+x583);
14667 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x585))+(((-1.0)*new_r00*x584)));
14668 evalcond[4]=(((cj10*new_r11))+(((-1.0)*new_r01*x584))+x587);
14669 evalcond[5]=(((sj10*x578))+((cj10*x583))+new_r01);
14670 evalcond[6]=((((-1.0)*cj11*x586))+x589+x588);
14671 evalcond[7]=(new_r00+((sj10*x579))+(((-1.0)*cj11*x590)));
14672 evalcond[8]=((((-1.0)*x590))+((sj10*x583))+new_r11);
14673 evalcond[9]=((((-1.0)*cj10*x585))+(((-1.0)*cj11*x578*x584))+new_r10);
14674 evalcond[10]=(x579+((cj11*x581))+((cj11*x582))+(((-1.0)*new_r21*x580)));
14675 evalcond[11]=(((cj11*x589))+(((-1.0)*new_r20*x580))+((cj11*x588))+x587);
14676 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
14677 {
14678 continue;
14679 }
14680 }
14681 
14682 {
14683 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14684 vinfos[0].jointtype = 1;
14685 vinfos[0].foffset = j4;
14686 vinfos[0].indices[0] = _ij4[0];
14687 vinfos[0].indices[1] = _ij4[1];
14688 vinfos[0].maxsolutions = _nj4;
14689 vinfos[1].jointtype = 1;
14690 vinfos[1].foffset = j6;
14691 vinfos[1].indices[0] = _ij6[0];
14692 vinfos[1].indices[1] = _ij6[1];
14693 vinfos[1].maxsolutions = _nj6;
14694 vinfos[2].jointtype = 1;
14695 vinfos[2].foffset = j8;
14696 vinfos[2].indices[0] = _ij8[0];
14697 vinfos[2].indices[1] = _ij8[1];
14698 vinfos[2].maxsolutions = _nj8;
14699 vinfos[3].jointtype = 1;
14700 vinfos[3].foffset = j9;
14701 vinfos[3].indices[0] = _ij9[0];
14702 vinfos[3].indices[1] = _ij9[1];
14703 vinfos[3].maxsolutions = _nj9;
14704 vinfos[4].jointtype = 1;
14705 vinfos[4].foffset = j10;
14706 vinfos[4].indices[0] = _ij10[0];
14707 vinfos[4].indices[1] = _ij10[1];
14708 vinfos[4].maxsolutions = _nj10;
14709 vinfos[5].jointtype = 1;
14710 vinfos[5].foffset = j11;
14711 vinfos[5].indices[0] = _ij11[0];
14712 vinfos[5].indices[1] = _ij11[1];
14713 vinfos[5].maxsolutions = _nj11;
14714 vinfos[6].jointtype = 1;
14715 vinfos[6].foffset = j12;
14716 vinfos[6].indices[0] = _ij12[0];
14717 vinfos[6].indices[1] = _ij12[1];
14718 vinfos[6].maxsolutions = _nj12;
14719 std::vector<int> vfree(0);
14720 solutions.AddSolution(vinfos,vfree);
14721 }
14722 }
14723 }
14724 
14725 }
14726 
14727 }
14728 
14729 } else
14730 {
14731 {
14732 IkReal j12array[1], cj12array[1], sj12array[1];
14733 bool j12valid[1]={false};
14734 _nj12 = 1;
14735 CheckValue<IkReal> x591=IKPowWithIntegerCheck(IKsign(sj11),-1);
14736 if(!x591.valid){
14737 continue;
14738 }
14739 CheckValue<IkReal> x592 = IKatan2WithCheck(IkReal(new_r21),((-1.0)*(((1.0)*new_r20))),IKFAST_ATAN2_MAGTHRESH);
14740 if(!x592.valid){
14741 continue;
14742 }
14743 j12array[0]=((-1.5707963267949)+(((1.5707963267949)*(x591.value)))+(x592.value));
14744 sj12array[0]=IKsin(j12array[0]);
14745 cj12array[0]=IKcos(j12array[0]);
14746 if( j12array[0] > IKPI )
14747 {
14748     j12array[0]-=IK2PI;
14749 }
14750 else if( j12array[0] < -IKPI )
14751 {    j12array[0]+=IK2PI;
14752 }
14753 j12valid[0] = true;
14754 for(int ij12 = 0; ij12 < 1; ++ij12)
14755 {
14756 if( !j12valid[ij12] )
14757 {
14758     continue;
14759 }
14760 _ij12[0] = ij12; _ij12[1] = -1;
14761 for(int iij12 = ij12+1; iij12 < 1; ++iij12)
14762 {
14763 if( j12valid[iij12] && IKabs(cj12array[ij12]-cj12array[iij12]) < IKFAST_SOLUTION_THRESH && IKabs(sj12array[ij12]-sj12array[iij12]) < IKFAST_SOLUTION_THRESH )
14764 {
14765     j12valid[iij12]=false; _ij12[1] = iij12; break;
14766 }
14767 }
14768 j12 = j12array[ij12]; cj12 = cj12array[ij12]; sj12 = sj12array[ij12];
14769 {
14770 IkReal evalcond[12];
14771 IkReal x593=IKcos(j12);
14772 IkReal x594=IKsin(j12);
14773 IkReal x595=((1.0)*sj11);
14774 IkReal x596=(cj10*new_r01);
14775 IkReal x597=(new_r11*sj10);
14776 IkReal x598=(cj11*x594);
14777 IkReal x599=((1.0)*sj10);
14778 IkReal x600=((1.0)*x594);
14779 IkReal x601=((1.0)*x593);
14780 IkReal x602=((-1.0)*x601);
14781 IkReal x603=(cj10*new_r00);
14782 IkReal x604=(new_r10*sj10);
14783 IkReal x605=(cj10*x601);
14784 evalcond[0]=(new_r20+((sj11*x593)));
14785 evalcond[1]=((((-1.0)*x594*x595))+new_r21);
14786 evalcond[2]=(x598+x596+x597);
14787 evalcond[3]=(((cj10*new_r10))+(((-1.0)*x600))+(((-1.0)*new_r00*x599)));
14788 evalcond[4]=(((cj10*new_r11))+(((-1.0)*new_r01*x599))+x602);
14789 evalcond[5]=(((cj10*x598))+((sj10*x593))+new_r01);
14790 evalcond[6]=((((-1.0)*cj11*x601))+x603+x604);
14791 evalcond[7]=((((-1.0)*cj11*x605))+((sj10*x594))+new_r00);
14792 evalcond[8]=(((sj10*x598))+new_r11+(((-1.0)*x605)));
14793 evalcond[9]=((((-1.0)*cj10*x600))+(((-1.0)*cj11*x593*x599))+new_r10);
14794 evalcond[10]=(((cj11*x597))+x594+(((-1.0)*new_r21*x595))+((cj11*x596)));
14795 evalcond[11]=(((cj11*x603))+x602+((cj11*x604))+(((-1.0)*new_r20*x595)));
14796 if( IKabs(evalcond[0]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[1]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[2]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[3]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[4]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[5]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[6]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[7]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[8]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[9]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[10]) > IKFAST_EVALCOND_THRESH  || IKabs(evalcond[11]) > IKFAST_EVALCOND_THRESH  )
14797 {
14798 continue;
14799 }
14800 }
14801 
14802 {
14803 std::vector<IkSingleDOFSolutionBase<IkReal> > vinfos(7);
14804 vinfos[0].jointtype = 1;
14805 vinfos[0].foffset = j4;
14806 vinfos[0].indices[0] = _ij4[0];
14807 vinfos[0].indices[1] = _ij4[1];
14808 vinfos[0].maxsolutions = _nj4;
14809 vinfos[1].jointtype = 1;
14810 vinfos[1].foffset = j6;
14811 vinfos[1].indices[0] = _ij6[0];
14812 vinfos[1].indices[1] = _ij6[1];
14813 vinfos[1].maxsolutions = _nj6;
14814 vinfos[2].jointtype = 1;
14815 vinfos[2].foffset = j8;
14816 vinfos[2].indices[0] = _ij8[0];
14817 vinfos[2].indices[1] = _ij8[1];
14818 vinfos[2].maxsolutions = _nj8;
14819 vinfos[3].jointtype = 1;
14820 vinfos[3].foffset = j9;
14821 vinfos[3].indices[0] = _ij9[0];
14822 vinfos[3].indices[1] = _ij9[1];
14823 vinfos[3].maxsolutions = _nj9;
14824 vinfos[4].jointtype = 1;
14825 vinfos[4].foffset = j10;
14826 vinfos[4].indices[0] = _ij10[0];
14827 vinfos[4].indices[1] = _ij10[1];
14828 vinfos[4].maxsolutions = _nj10;
14829 vinfos[5].jointtype = 1;
14830 vinfos[5].foffset = j11;
14831 vinfos[5].indices[0] = _ij11[0];
14832 vinfos[5].indices[1] = _ij11[1];
14833 vinfos[5].maxsolutions = _nj11;
14834 vinfos[6].jointtype = 1;
14835 vinfos[6].foffset = j12;
14836 vinfos[6].indices[0] = _ij12[0];
14837 vinfos[6].indices[1] = _ij12[1];
14838 vinfos[6].maxsolutions = _nj12;
14839 std::vector<int> vfree(0);
14840 solutions.AddSolution(vinfos,vfree);
14841 }
14842 }
14843 }
14844 
14845 }
14846 
14847 }
14848 }
14849 }
14850 
14851 }
14852 
14853 }
14854 }
14855 }
14856 }
14857 }};
14858 
14859 
14860 /// solves the inverse kinematics equations.
14861 /// \param pfree is an array specifying the free joints of the chain.
ComputeIk(const IkReal * eetrans,const IkReal * eerot,const IkReal * pfree,IkSolutionListBase<IkReal> & solutions)14862 IKFAST_API bool ComputeIk(const IkReal* eetrans, const IkReal* eerot, const IkReal* pfree, IkSolutionListBase<IkReal>& solutions) {
14863 IKSolver solver;
14864 return solver.ComputeIk(eetrans,eerot,pfree,solutions);
14865 }
14866 
ComputeIk2(const IkReal * eetrans,const IkReal * eerot,const IkReal * pfree,IkSolutionListBase<IkReal> & solutions,void * pOpenRAVEManip)14867 IKFAST_API bool ComputeIk2(const IkReal* eetrans, const IkReal* eerot, const IkReal* pfree, IkSolutionListBase<IkReal>& solutions, void* pOpenRAVEManip) {
14868 IKSolver solver;
14869 return solver.ComputeIk(eetrans,eerot,pfree,solutions);
14870 }
14871 
GetKinematicsHash()14872 IKFAST_API const char* GetKinematicsHash() { return "268c2c509bc1bb657da055f0ef2eb7e1"; }
14873 
GetIkFastVersion()14874 IKFAST_API const char* GetIkFastVersion() { return IKFAST_STRINGIZE(IKFAST_VERSION); }
14875 
14876 #ifdef IKFAST_NAMESPACE
14877 } // end namespace
14878 #endif
14879 
14880 #ifndef IKFAST_NO_MAIN
14881 #include <stdio.h>
14882 #include <stdlib.h>
14883 #ifdef IKFAST_NAMESPACE
14884 using namespace IKFAST_NAMESPACE;
14885 #endif
main(int argc,char ** argv)14886 int main(int argc, char** argv)
14887 {
14888     if( argc != 12+GetNumFreeParameters()+1 ) {
14889         printf("\nUsage: ./ik r00 r01 r02 t0 r10 r11 r12 t1 r20 r21 r22 t2 free0 ...\n\n"
14890                "Returns the ik solutions given the transformation of the end effector specified by\n"
14891                "a 3x3 rotation R (rXX), and a 3x1 translation (tX).\n"
14892                "There are %d free parameters that have to be specified.\n\n",GetNumFreeParameters());
14893         return 1;
14894     }
14895 
14896     IkSolutionList<IkReal> solutions;
14897     std::vector<IkReal> vfree(GetNumFreeParameters());
14898     IkReal eerot[9],eetrans[3];
14899     eerot[0] = atof(argv[1]); eerot[1] = atof(argv[2]); eerot[2] = atof(argv[3]); eetrans[0] = atof(argv[4]);
14900     eerot[3] = atof(argv[5]); eerot[4] = atof(argv[6]); eerot[5] = atof(argv[7]); eetrans[1] = atof(argv[8]);
14901     eerot[6] = atof(argv[9]); eerot[7] = atof(argv[10]); eerot[8] = atof(argv[11]); eetrans[2] = atof(argv[12]);
14902     for(std::size_t i = 0; i < vfree.size(); ++i)
14903         vfree[i] = atof(argv[13+i]);
14904     bool bSuccess = ComputeIk(eetrans, eerot, vfree.size() > 0 ? &vfree[0] : NULL, solutions);
14905 
14906     if( !bSuccess ) {
14907         fprintf(stderr,"Failed to get ik solution\n");
14908         return -1;
14909     }
14910 
14911     printf("Found %d ik solutions:\n", (int)solutions.GetNumSolutions());
14912     std::vector<IkReal> solvalues(GetNumJoints());
14913     for(std::size_t i = 0; i < solutions.GetNumSolutions(); ++i)
14914     {
14915         const IkSolutionBase<IkReal>& sol = solutions.GetSolution(i);
14916 
14917         printf("sol%d (free=%d): ", (int)i, (int)sol.GetFree().size());
14918 
14919         std::vector<IkReal> vsolfree(sol.GetFree().size());
14920 
14921         sol.GetSolution(&solvalues[0],vsolfree.size()>0?&vsolfree[0]:NULL);
14922 
14923         for( std::size_t j = 0; j < solvalues.size(); ++j)
14924             printf("%.15f, ", solvalues[j]);
14925         printf("\n");
14926     }
14927     return 0;
14928 }
14929 
14930 #endif
14931