CYCLUS
pyne.cc
Go to the documentation of this file.
1 // This file is composed of the following original files:
2 
3 // license.txt
4 // src/utils.cpp
5 // src/state_map.cpp
6 // src/nucname.cpp
7 // src/rxname.cpp
8 // src/_atomic_data.cpp
9 // src/data.cpp
10 // src/jsoncpp.cpp
11 // src/jsoncustomwriter.cpp
12 // src/material.cpp
13 // src/enrichment_cascade.cpp
14 // src/enrichment.cpp
15 // src/enrichment_symbolic20.cpp
16 // src/_decay.cpp
17 
18 // PyNE amalgated source http://pyne.io/
19 #include "pyne.h"
20 
21 //
22 // start of license.txt
23 //
24 // Copyright 2011-2015, the PyNE Development Team. All rights reserved.
25 //
26 // Redistribution and use in source and binary forms, with or without modification, are
27 // permitted provided that the following conditions are met:
28 //
29 // 1. Redistributions of source code must retain the above copyright notice, this list of
30 // conditions and the following disclaimer.
31 //
32 // 2. Redistributions in binary form must reproduce the above copyright notice, this list
33 // of conditions and the following disclaimer in the documentation and/or other materials
34 // provided with the distribution.
35 //
36 // THIS SOFTWARE IS PROVIDED BY THE PYNE DEVELOPMENT TEAM ``AS IS'' AND ANY EXPRESS OR IMPLIED
37 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
38 // FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> OR
39 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
40 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
41 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
42 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
43 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
44 // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45 //
46 // The views and conclusions contained in the software and documentation are those of the
47 // authors and should not be interpreted as representing official policies, either expressed
48 // or implied, of the stakeholders of the PyNE project or the employers of PyNE developers.
49 //
50 // -------------------------------------------------------------------------------
51 // The files cpp/measure.cpp and cpp/measure.hpp are covered by:
52 //
53 // Copyright 2004 Sandia Corporation. Under the terms of Contract
54 // DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government
55 // retains certain rights in this software.
56 //
57 // http://trac.mcs.anl.gov/projects/ITAPS/wiki/MOAB
58 // //
59 // end of license.txt
60 //
61 
62 
63 //
64 // start of src/utils.cpp
65 //
66 // General Library
67 #ifndef PYNE_IS_AMALGAMATED
68 extern "C" double endftod_(char *str, int len);
69 #endif
70 
71 #ifndef PYNE_IS_AMALGAMATED
72 #include "utils.h"
73 #endif
74 
75 
76 // PyNE Globals
77 
80 
82 #if defined __WIN_MSVC__
83  char * tmpPYNE_DATA;
84  size_t lenPYNE_DATA;
85  errno_t errPYNE_DATA = _dupenv_s(&tmpPYNE_DATA, &lenPYNE_DATA, "PYNE_DATA");
86  if (errPYNE_DATA)
87  tmpPYNE_DATA = (char *) "<NOT_FOUND>";
88  PYNE_DATA = (std::string) tmpPYNE_DATA;
89 
90  char * tmpNUC_DATA_PATH;
91  size_t lenNUC_DATA_PATH;
92  errno_t errNUC_DATA_PATH = _dupenv_s(&tmpNUC_DATA_PATH, &lenNUC_DATA_PATH, "NUC_DATA_PATH");
93  if (errPYNE_DATA)
94  tmpNUC_DATA_PATH = (char *) "<NOT_FOUND>";
95  NUC_DATA_PATH = (std::string) tmpNUC_DATA_PATH;
96 #else
97  char * tmppath;
98  tmppath = getenv("PYNE_DATA");
99  if (tmppath == NULL)
100  tmppath = (char *) "<NOT_FOUND>";
101  PYNE_DATA = std::string(tmppath);
102 
103  tmppath = getenv("NUC_DATA_PATH");
104  if (tmppath == NULL)
105  tmppath = (char *) "<NOT_FOUND>";
106  NUC_DATA_PATH = std::string(tmppath);
107 #endif
108  return;
109 }
110 
111 
112 
113 // String Transformations
115  std::stringstream ss;
116  ss << t;
117  return ss.str();
118 }
119 
120 std::string pyne::to_str(unsigned int t) {
121  std::stringstream ss;
122  ss << t;
123  return ss.str();
124 }
125 
127  std::stringstream ss;
128  ss << t;
129  return ss.str();
130 }
131 
133  std::stringstream ss;
134  ss << t;
135  return ss.str();
136 }
137 
138 
140  return atoi( s.c_str() );
141 }
142 
144  return strtod( s.c_str(), NULL );
145 }
146 
147 double pyne::endftod_cpp(char * s) {
148  // Converts string from ENDF only handles "E-less" format but is 5x faster
149  int pos, mant, exp;
150  double v, dbl_exp;
151 
152  mant = exp = 0;
153  if (s[2] == '.') {
154  // Convert an ENDF float
155  if (s[9] == '+' or s[9] == '-') {
156  // All these factors of ten are from place values.
157  mant = s[8] + 10 * s[7] + 100 * s[6] + 1000 * s[5] + 10000 * s[4] + \
158  100000 * s[3] + 1000000 * s[1] - 1111111 * '0';
159  exp = s[10] - '0';
160  // Make the right power of 10.
161  dbl_exp = exp & 01? 10.: 1;
162  dbl_exp *= (exp >>= 1) & 01? 100.: 1;
163  dbl_exp *= (exp >>= 1) & 01? 1.0e4: 1;
164  dbl_exp *= (exp >>= 1) & 01? 1.0e8: 1;
165  // Adjust for powers of ten from treating mantissa as an integer.
166  dbl_exp = (s[9] == '-'? 1/dbl_exp: dbl_exp) * 1.0e-6;
167  // Get mantissa sign, apply exponent.
168  v = mant * (s[0] == '-'? -1: 1) * dbl_exp;
169  }
170  else {
171  mant = s[7] + 10 * s[6] + 100 * s[5] + 1000 * s[4] + 10000 * s[3] + \
172  100000 * s[1] - 111111 * '0';
173  exp = s[10] + 10 * s[9] - 11 * '0';
174  dbl_exp = exp & 01? 10.: 1;
175  dbl_exp *= (exp >>= 1) & 01? 100.: 1;
176  dbl_exp *= (exp >>= 1) & 01? 1.0e4: 1;
177  dbl_exp *= (exp >>= 1) & 01? 1.0e8: 1;
178  dbl_exp *= (exp >>= 1) & 01? 1.0e16: 1;
179  dbl_exp *= (exp >>= 1) & 01? 1.0e32: 1;
180  dbl_exp *= (exp >>= 1) & 01? 1.0e64: 1;
181  dbl_exp = (s[8] == '-'? 1/dbl_exp: dbl_exp) * 1.0e-5;
182  v = mant * (s[0] == '-'? -1: 1) * dbl_exp;
183  }
184  }
185 
186  // Convert an ENDF int to float; we start from the last char in the field and
187  // move forward until we hit a non-digit.
188  else {
189  v = 0;
190  mant = 1; // Here we use mant for the place value about to be read in.
191  pos = 10;
192  while (s[pos] != '-' and s[pos] != '+' and s[pos] != ' ' and pos > 0) {
193  v += mant * (s[pos] - '0');
194  mant *= 10;
195  pos--;
196  }
197  v *= (s[pos] == '-'? -1: 1);
198  }
199  return v;
200 }
201 
202 double pyne::endftod_f(char * s) {
203 #ifdef PYNE_IS_AMALGAMATED
204  return endftod_cpp(s);
205 #else
206  return endftod_(s, 12);
207 #endif
208 }
209 
210 double (*pyne::endftod)(char * s) = &pyne::endftod_f;
211 
214 }
215 
217  // change each element of the string to upper case.
218  for(unsigned int i = 0; i < s.length(); i++)
219  s[i] = toupper(s[i]);
220  return s;
221 }
222 
224  // change each element of the string to lower case
225  for(unsigned int i = 0; i < s.length(); i++)
226  s[i] = tolower(s[i]);
227  return s;
228 }
229 
230 
232  unsigned int slen = s.length();
233  if (slen == 0)
234  return s;
235  // uppercase the first character
236  s[0] = toupper(s[0]);
237  // change each subsequent element of the string to lower case
238  for(unsigned int i = 1; i < slen; i++)
239  s[i] = tolower(s[i]);
240  return s;
241 }
242 
243 
244 std::string pyne::get_flag(char line[], int max_l) {
245  char tempflag [10];
246  for (int i = 0; i < max_l; i++)
247  {
248  if (line[i] == '\t' || line[i] == '\n' || line[i] == ' ' || line[i] == '\0')
249  {
250  tempflag[i] = '\0';
251  break;
252  }
253  else
254  tempflag[i] = line[i];
255  }
256  return std::string (tempflag);
257 }
258 
259 
260 
262  // Removes a substring from the string s
263  int n_found = s.find(substr);
264  while ( 0 <= n_found ) {
265  s.erase( n_found , substr.length() );
266  n_found = s.find(substr);
267  }
268  return s;
269 }
270 
271 
273  // Removes all characters in the string chars from the string s
274  for (int i = 0; i < chars.length(); i++ ) {
275  s = remove_substring(s, chars.substr(i, 1) );
276  }
277  return s;
278 }
279 
280 
282  // Replaces all instance of substr in s with the string repstr
283  int n_found = s.find(substr);
284  while ( 0 <= n_found ) {
285  s.replace( n_found , substr.length(), repstr );
286  n_found = s.find(substr);
287  }
288  return s;
289 }
290 
291 
292 
294  // Returns the last character in a string.
295  return s.substr(s.length()-1, 1);
296 }
297 
298 
300  // Returns the slice of a string using negative indices.
301  return s.substr(s.length()+n, l);
302 }
303 
304 
305 bool pyne::ternary_ge(int a, int b, int c) {
306  // Returns true id a <= b <= c and flase otherwise.
307  return (a <= b && b <= c);
308 }
309 
310 
312  // Returns a boolean based on if the sub is in s.
313  int n = s.find(substr);
314  return ( 0 <= n && n < s.length() );
315 }
316 
317 
319  // Calculates a version on the string name that is a valid
320  // variable name, ie it uses only word characters.
321  std::string nat_name (name);
322 
323  // Replace Whitespace characters with underscores
324  nat_name = pyne::replace_all_substrings(nat_name, " ", "_");
325  nat_name = pyne::replace_all_substrings(nat_name, "\t", "_");
326  nat_name = pyne::replace_all_substrings(nat_name, "\n", "_");
327 
328  // Remove non-word characters
329  int n = 0;
330  while ( n < nat_name.length() ) {
331  if ( pyne::words.find(nat_name[n]) == std::string::npos )
332  nat_name.erase(n, 1);
333  else
334  n++;
335  }
336 
337  // Make sure that the name in non-empty before continuing
338  if (nat_name.length() == 0)
339  return nat_name;
340 
341  // Make sure that the name doesn't begin with a number.
342  if ( pyne::digits.find(nat_name[0]) != std::string::npos)
343  nat_name.insert(0, "_");
344 
345  return nat_name;
346 }
347 
348 
349 //
350 // Math Helpers
351 //
352 
353 double pyne::slope(double x2, double y2, double x1, double y1) {
354  // Finds the slope of a line.
355  return (y2 - y1) / (x2 - x1);
356 }
357 
358 
359 double pyne::solve_line(double x, double x2, double y2, double x1, double y1) {
360  return (slope(x2,y2,x1,y1) * (x - x2)) + y2;
361 }
362 
363 
364 double pyne::tanh(double x) {
365  return std::tanh(x);
366 }
367 
368 double pyne::coth(double x) {
369  return 1.0 / std::tanh(x);
370 }
371 
372 
373 
374 // File Helpers
375 
376 bool pyne::file_exists(std::string strfilename) {
377  // Thank you intarwebz for this function!
378  // Sepcifically: http://www.techbytes.ca/techbyte103.html
379  struct stat stFileInfo;
380  bool blnReturn;
381  int intStat;
382 
383  // Attempt to get the file attributes
384  intStat = stat(strfilename.c_str(), &stFileInfo);
385 
386  if(intStat == 0) {
387  // We were able to get the file attributes
388  // so the file obviously exists.
389  blnReturn = true;
390  }
391  else {
392  // We were not able to get the file attributes.
393  // This may mean that we don't have permission to
394  // access the folder which contains this file. If you
395  // need to do that level of checking, lookup the
396  // return values of stat which will give you
397  // more details on why stat failed.
398  blnReturn = false;
399  }
400 
401  return(blnReturn);
402 }
403 
404 // Message Helpers
405 
406 bool pyne::USE_WARNINGS = true;
407 
410  return USE_WARNINGS;
411 }
412 
414  // Prints a warning message
415  if (USE_WARNINGS){
416  std::cout << "\033[1;33m WARNING: \033[0m" << s << "\n";
417  }
418 }
419 
420 
421 
422 
423 //
424 // end of src/utils.cpp
425 //
426 
427 
428 //
429 // start of src/state_map.cpp
430 //
431 //Mapping file for state ids to nuc ids
432 //This File was autogenerated!!
433 #ifndef PYNE_4HFU6PUEQJB3ZJ4UIFLVU4SPCM
434 #define PYNE_4HFU6PUEQJB3ZJ4UIFLVU4SPCM
435 namespace pyne {
436 namespace nucname {
437 #define TOTAL_STATE_MAPS 922
438 std::map<int, int> state_id_map;
439 int map_nuc_ids [TOTAL_STATE_MAPS] = {110240001,
440 130240001,
441 130260001,
442 130320002,
443 170340001,
444 170380001,
445 190380001,
446 190380015,
447 210420002,
448 210430001,
449 210440004,
450 230440001,
451 210450001,
452 210460002,
453 230460001,
454 210500001,
455 250500001,
456 250520001,
457 260520041,
458 260530022,
459 270540001,
460 210560001,
461 210560004,
462 250580001,
463 270580001,
464 270580002,
465 230600000,
466 230600001,
467 250600001,
468 270600001,
469 250620001,
470 270620001,
471 230640001,
472 250640002,
473 260650003,
474 260670002,
475 290670023,
476 280690001,
477 280690008,
478 300690001,
479 340690004,
480 290700001,
481 290700003,
482 350700006,
483 280710002,
484 300710001,
485 320710002,
486 300730001,
487 300730002,
488 320730002,
489 340730001,
490 360730004,
491 310740002,
492 350740002,
493 290750001,
494 290750002,
495 300750001,
496 320750002,
497 330750004,
498 280760004,
499 290760001,
500 350760002,
501 300770002,
502 320770001,
503 330770004,
504 340770001,
505 350770001,
506 300780004,
507 310780004,
508 350780004,
509 370780003,
510 390780001,
511 320790001,
512 330790007,
513 340790001,
514 350790001,
515 360790001,
516 310800001,
517 350800002,
518 390800001,
519 390800003,
520 320810001,
521 340810001,
522 360810002,
523 370810001,
524 330820001,
525 340820015,
526 350820001,
527 370820001,
528 410820003,
529 340830001,
530 360830002,
531 380830002,
532 390830001,
533 310840001,
534 350840001,
535 360840019,
536 360840061,
537 370840002,
538 390840002,
539 410840007,
540 360850001,
541 370850003,
542 380850002,
543 390850001,
544 400850002,
545 410850003,
546 410850005,
547 370860002,
548 390860002,
549 410860001,
550 410860002,
551 380870001,
552 390870001,
553 400870002,
554 350880003,
555 410880001,
556 430880000,
557 430880001,
558 390890001,
559 400890001,
560 410890001,
561 420890002,
562 430890001,
563 370900001,
564 390900002,
565 400900003,
566 410900002,
567 410900007,
568 430900001,
569 430900006,
570 390910001,
571 400910040,
572 410910001,
573 420910001,
574 430910001,
575 440910001,
576 450910001,
577 410920001,
578 450920001,
579 390930002,
580 410930001,
581 420930016,
582 430930001,
583 440930001,
584 470940001,
585 470940002,
586 390970001,
587 390970029,
588 410970001,
589 430970001,
590 450970001,
591 370980001,
592 390980005,
593 410980001,
594 450980001,
595 410990001,
596 430990002,
597 450990001,
598 470990002,
599 371000001,
600 391000004,
601 411000001,
602 411000009,
603 411000012,
604 431000002,
605 431000004,
606 451000004,
607 471000001,
608 471010002,
609 411020001,
610 431020001,
611 451020005,
612 471020001,
613 441030005,
614 451030001,
615 471030002,
616 491030001,
617 411040004,
618 451040003,
619 471040001,
620 491040003,
621 451050001,
622 471050001,
623 491050001,
624 451060001,
625 471060001,
626 491060001,
627 431070000,
628 461070002,
629 471070001,
630 491070001,
631 401080003,
632 461090002,
633 471090001,
634 491090001,
635 491090021,
636 451100000,
637 451100001,
638 471100002,
639 491100001,
640 461110002,
641 471110001,
642 491110001,
643 451120000,
644 451120001,
645 491120001,
646 491120004,
647 491120010,
648 471130001,
649 481130001,
650 491130001,
651 501130001,
652 451140005,
653 491140001,
654 491140005,
655 531140005,
656 461150001,
657 471150001,
658 481150001,
659 491150001,
660 521150001,
661 451160001,
662 471160001,
663 471160004,
664 511160003,
665 551160001,
666 471180004,
667 491180001,
668 491180003,
669 511180007,
670 531180002,
671 551180001,
672 471190000,
673 471190001,
674 481190002,
675 491190001,
676 501190002,
677 511190072,
678 521190002,
679 551190001,
680 451200002,
681 471200002,
682 491200001,
683 491200002,
684 511200001,
685 531200013,
686 551200001,
687 571200000,
688 461210001,
689 481210002,
690 491210001,
691 501210001,
692 521210002,
693 551210001,
694 451220002,
695 471220001,
696 471220002,
697 491220001,
698 491220005,
699 511220005,
700 511220006,
701 551220007,
702 551220008,
703 481230003,
704 491230001,
705 501230001,
706 521230002,
707 551230005,
708 461240004,
709 491240002,
710 501240016,
711 511240001,
712 511240002,
713 551240025,
714 481250001,
715 491250001,
716 501250001,
717 521250002,
718 541250002,
719 571250005,
720 461260003,
721 461260004,
722 491260001,
723 511260001,
724 511260002,
725 481270006,
726 491270001,
727 491270009,
728 501270001,
729 521270002,
730 541270002,
731 561270002,
732 571270001,
733 581270001,
734 461280004,
735 491280003,
736 501280003,
737 511280001,
738 571280001,
739 471290001,
740 481290001,
741 491290001,
742 491290010,
743 491290012,
744 491290013,
745 501290001,
746 501290017,
747 501290018,
748 501290025,
749 511290011,
750 511290012,
751 511290023,
752 521290001,
753 541290002,
754 551290010,
755 561290001,
756 571290002,
757 601290001,
758 601290003,
759 491300001,
760 491300002,
761 491300003,
762 501300002,
763 511300001,
764 531300001,
765 551300004,
766 561300030,
767 591300002,
768 491310001,
769 491310004,
770 501310001,
771 521310001,
772 521310033,
773 541310002,
774 561310002,
775 571310006,
776 581310001,
777 591310002,
778 501320006,
779 511320001,
780 521320006,
781 521320022,
782 531320003,
783 541320030,
784 571320004,
785 581320030,
786 491330001,
787 521330002,
788 531330016,
789 531330059,
790 531330065,
791 541330001,
792 561330002,
793 581330001,
794 591330003,
795 601330001,
796 611330005,
797 621330000,
798 511340002,
799 521340003,
800 531340005,
801 541340007,
802 601340017,
803 611340000,
804 611340001,
805 521350010,
806 541350002,
807 551350010,
808 561350002,
809 581350004,
810 591350004,
811 601350001,
812 611350000,
813 611350003,
814 501360003,
815 531360006,
816 551360001,
817 561360005,
818 611360000,
819 611360001,
820 631360001,
821 561370002,
822 581370002,
823 601370004,
824 501380003,
825 551380003,
826 581380005,
827 591380005,
828 581390002,
829 601390002,
830 611390001,
831 621390004,
832 641390001,
833 591400003,
834 591400015,
835 601400009,
836 611400008,
837 631400004,
838 601410002,
839 621410002,
840 631410001,
841 641410004,
842 651410001,
843 591420001,
844 591420024,
845 601420004,
846 611420012,
847 631420031,
848 641420019,
849 641420020,
850 651420003,
851 621430002,
852 621430043,
853 641430002,
854 651430001,
855 661430003,
856 551440004,
857 591440001,
858 651440004,
859 651440006,
860 651440007,
861 671440003,
862 641450002,
863 651450004,
864 661450002,
865 681450002,
866 571460001,
867 631460013,
868 651460022,
869 651460026,
870 661460008,
871 651470001,
872 661470002,
873 681470002,
874 691470001,
875 591480000,
876 591480001,
877 611480003,
878 651480001,
879 671480001,
880 671480012,
881 681480008,
882 651490001,
883 661490027,
884 671490001,
885 681490002,
886 631500001,
887 651500002,
888 671500001,
889 691500005,
890 581510001,
891 621510012,
892 631510002,
893 651510003,
894 671510001,
895 681510021,
896 691510001,
897 691510012,
898 701510001,
899 701510005,
900 701510010,
901 611520004,
902 611520014,
903 631520001,
904 631520016,
905 651520006,
906 671520001,
907 691520006,
908 691520018,
909 691520019,
910 701520006,
911 621530006,
912 641530003,
913 641530008,
914 651530003,
915 671530001,
916 691530001,
917 601540003,
918 611540000,
919 611540001,
920 631540013,
921 651540001,
922 651540002,
923 711540015,
924 721540006,
925 641550006,
926 661550009,
927 671550002,
928 691550001,
929 711550001,
930 711550004,
931 611560002,
932 651560002,
933 651560004,
934 671560001,
935 671560012,
936 711560001,
937 721560004,
938 641570012,
939 661570005,
940 651580003,
941 651580019,
942 671580001,
943 671580007,
944 711580000,
945 621590006,
946 641590002,
947 661590009,
948 671590003,
949 671600001,
950 671600006,
951 691600002,
952 711600001,
953 671610002,
954 681610014,
955 691610001,
956 711610004,
957 671620003,
958 691620020,
959 711620008,
960 711620009,
961 751620001,
962 671630003,
963 751630001,
964 671640003,
965 691640001,
966 771640001,
967 661650002,
968 751650001,
969 771650001,
970 671660001,
971 691660006,
972 711660001,
973 711660002,
974 681670003,
975 711670001,
976 751670001,
977 671680001,
978 711680013,
979 771680001,
980 701690001,
981 711690001,
982 751690001,
983 771690001,
984 671700001,
985 711700008,
986 771700001,
987 711710001,
988 721710001,
989 771710001,
990 781710002,
991 711720001,
992 711720005,
993 751720001,
994 771720002,
995 791720001,
996 771730000,
997 771730029,
998 791730001,
999 711740003,
1000 771740001,
1001 701750007,
1002 711750053,
1003 791750001,
1004 701760005,
1005 711760001,
1006 731760012,
1007 731760090,
1008 791760001,
1009 791760002,
1010 691770000,
1011 701770006,
1012 711770029,
1013 711770203,
1014 721770048,
1015 721770107,
1016 791770002,
1017 711780003,
1018 721780005,
1019 721780109,
1020 731780000,
1021 731780059,
1022 731780094,
1023 731780139,
1024 711790006,
1025 721790005,
1026 721790046,
1027 731790117,
1028 741790002,
1029 751790137,
1030 791790007,
1031 811790001,
1032 711800010,
1033 721800007,
1034 731800002,
1035 721810025,
1036 721810078,
1037 761810001,
1038 811810002,
1039 721820009,
1040 721820026,
1041 731820001,
1042 731820029,
1043 751820001,
1044 761820029,
1045 741830007,
1046 751830058,
1047 761830002,
1048 781830001,
1049 811830002,
1050 721840005,
1051 751840005,
1052 771840007,
1053 781840034,
1054 791840003,
1055 741850006,
1056 781850002,
1057 791850001,
1058 801850004,
1059 811850003,
1060 751860004,
1061 771860001,
1062 811860000,
1063 811860005,
1064 831860001,
1065 791870002,
1066 801870001,
1067 811870002,
1068 821870001,
1069 831870002,
1070 751880007,
1071 811880001,
1072 761890001,
1073 771890006,
1074 771890084,
1075 791890003,
1076 801890002,
1077 811890001,
1078 821890001,
1079 831890002,
1080 831890003,
1081 731900002,
1082 741900006,
1083 751900003,
1084 761900032,
1085 771900002,
1086 771900037,
1087 791900014,
1088 811900000,
1089 811900001,
1090 811900006,
1091 831900000,
1092 831900001,
1093 761910001,
1094 771910003,
1095 771910071,
1096 791910004,
1097 801910035,
1098 811910002,
1099 821910002,
1100 831910002,
1101 751920002,
1102 751920003,
1103 761920047,
1104 761920112,
1105 771920003,
1106 771920015,
1107 791920004,
1108 791920015,
1109 811920002,
1110 811920008,
1111 821920011,
1112 821920014,
1113 821920017,
1114 821920020,
1115 821920021,
1116 831920001,
1117 841920006,
1118 851920000,
1119 851920001,
1120 771930002,
1121 781930005,
1122 791930004,
1123 801930003,
1124 811930002,
1125 821930001,
1126 831930001,
1127 851930001,
1128 851930002,
1129 751940001,
1130 751940002,
1131 751940003,
1132 771940007,
1133 771940012,
1134 791940003,
1135 791940008,
1136 811940001,
1137 831940001,
1138 831940002,
1139 851940000,
1140 851940001,
1141 761950002,
1142 761950004,
1143 771950002,
1144 781950007,
1145 791950004,
1146 791950055,
1147 801950003,
1148 811950002,
1149 821950002,
1150 831950001,
1151 841950002,
1152 851950001,
1153 861950001,
1154 751960001,
1155 771960004,
1156 791960003,
1157 791960054,
1158 811960006,
1159 831960002,
1160 831960003,
1161 841960015,
1162 761970001,
1163 771970002,
1164 781970009,
1165 791970004,
1166 801970004,
1167 811970002,
1168 821970002,
1169 831970001,
1170 841970002,
1171 851970001,
1172 861970001,
1173 761980006,
1174 761980010,
1175 771980001,
1176 791980050,
1177 811980007,
1178 811980012,
1179 831980001,
1180 831980003,
1181 851980001,
1182 871980001,
1183 781990008,
1184 791990006,
1185 801990007,
1186 811990003,
1187 821990003,
1188 831990001,
1189 841990002,
1190 861990001,
1191 812000010,
1192 832000001,
1193 832000003,
1194 852000001,
1195 852000003,
1196 802010013,
1197 812010003,
1198 822010004,
1199 832010001,
1200 842010003,
1201 862010001,
1202 872010001,
1203 882010000,
1204 782020003,
1205 822020014,
1206 852020001,
1207 852020002,
1208 872020001,
1209 822030006,
1210 822030053,
1211 832030006,
1212 842030005,
1213 862030001,
1214 882030001,
1215 812040029,
1216 822040021,
1217 832040008,
1218 832040038,
1219 852040001,
1220 872040001,
1221 872040002,
1222 802050008,
1223 822050009,
1224 842050010,
1225 842050017,
1226 882050001,
1227 812060045,
1228 832060016,
1229 872060001,
1230 872060002,
1231 892060001,
1232 812070002,
1233 822070003,
1234 832070036,
1235 842070014,
1236 862070007,
1237 882070001,
1238 802080004,
1239 832080018,
1240 802100002,
1241 802100005,
1242 832100002,
1243 822110014,
1244 832110021,
1245 842110015,
1246 852110076,
1247 872110013,
1248 872110019,
1249 832120005,
1250 832120012,
1251 842120030,
1252 852120004,
1253 882130005,
1254 852140006,
1255 862140004,
1256 862140005,
1257 872140001,
1258 902140004,
1259 832150009,
1260 862150013,
1261 902150003,
1262 872160001,
1263 832170005,
1264 892170010,
1265 902170001,
1266 912170001,
1267 872180002,
1268 922180001,
1269 892220001,
1270 912340002,
1271 922350001,
1272 932360001,
1273 952360001,
1274 942370003,
1275 922380101,
1276 932380128,
1277 942380041,
1278 942380044,
1279 952380001,
1280 942390090,
1281 942390094,
1282 952390011,
1283 932400001,
1284 942400102,
1285 952400057,
1286 962400002,
1287 962400003,
1288 942410106,
1289 942410107,
1290 952410075,
1291 962410007,
1292 932420007,
1293 942420044,
1294 942420045,
1295 952420002,
1296 952420141,
1297 962420004,
1298 962420005,
1299 972420002,
1300 972420003,
1301 942440032,
1302 952440001,
1303 952440112,
1304 952440113,
1305 962440009,
1306 962440013,
1307 962440014,
1308 972440004,
1309 982440002,
1310 942450024,
1311 952450021,
1312 962450061,
1313 972450003,
1314 1012450001,
1315 952460001,
1316 952460008,
1317 972460000,
1318 982460002,
1319 992460000,
1320 1012460000,
1321 1012460001,
1322 1002470001,
1323 1002470002,
1324 972480001,
1325 992500001,
1326 1002500001,
1327 1002500002,
1328 1022500001,
1329 1022510002,
1330 1002530008,
1331 1022530003,
1332 1022530030,
1333 1022530031,
1334 1022530032,
1335 1032530000,
1336 1032530001,
1337 992540002,
1338 1012540000,
1339 1012540001,
1340 1022540011,
1341 1032550001,
1342 1032550027,
1343 992560001,
1344 1002560022,
1345 1042560007,
1346 1042560009,
1347 1042560012,
1348 1042570002,
1349 1052570002,
1350 1012580001,
1351 1052580001,
1352 1042610001,
1353 1072620001,
1354 1062630003,
1355 1062650001,
1356 1082650001,
1357 1082670002,
1358 1102700001,
1359 1102710001,
1360 1082770001,
1362 1,
1363 1,
1364 1,
1365 1,
1366 1,
1367 1,
1368 2,
1369 1,
1370 1,
1371 1,
1372 1,
1373 1,
1374 1,
1375 1,
1376 1,
1377 1,
1378 1,
1379 1,
1380 1,
1381 1,
1382 1,
1383 2,
1384 1,
1385 1,
1386 2,
1387 1,
1388 2,
1389 1,
1390 1,
1391 1,
1392 1,
1393 1,
1394 1,
1395 1,
1396 1,
1397 1,
1398 1,
1399 2,
1400 1,
1401 1,
1402 1,
1403 2,
1404 1,
1405 1,
1406 1,
1407 1,
1408 1,
1409 2,
1410 1,
1411 1,
1412 1,
1413 1,
1414 1,
1415 1,
1416 2,
1417 1,
1418 1,
1419 1,
1420 1,
1421 1,
1422 1,
1423 1,
1424 1,
1425 1,
1426 1,
1427 1,
1428 1,
1429 1,
1430 1,
1431 1,
1432 1,
1433 1,
1434 1,
1435 1,
1436 1,
1437 1,
1438 1,
1439 1,
1440 1,
1441 2,
1442 1,
1443 1,
1444 1,
1445 1,
1446 1,
1447 1,
1448 1,
1449 1,
1450 1,
1451 1,
1452 1,
1453 1,
1454 1,
1455 1,
1456 1,
1457 1,
1458 2,
1459 1,
1460 1,
1461 1,
1462 1,
1463 1,
1464 1,
1465 1,
1466 1,
1467 1,
1468 2,
1469 1,
1470 1,
1471 1,
1472 1,
1473 1,
1474 1,
1475 1,
1476 1,
1477 1,
1478 1,
1479 2,
1480 1,
1481 1,
1482 1,
1483 1,
1484 1,
1485 1,
1486 1,
1487 1,
1488 2,
1489 3,
1490 1,
1491 2,
1492 1,
1493 1,
1494 1,
1495 1,
1496 1,
1497 1,
1498 1,
1499 1,
1500 1,
1501 1,
1502 1,
1503 1,
1504 1,
1505 1,
1506 1,
1507 2,
1508 1,
1509 2,
1510 1,
1511 1,
1512 1,
1513 1,
1514 1,
1515 1,
1516 1,
1517 1,
1518 1,
1519 1,
1520 1,
1521 1,
1522 1,
1523 1,
1524 2,
1525 3,
1526 1,
1527 2,
1528 1,
1529 1,
1530 1,
1531 1,
1532 1,
1533 1,
1534 1,
1535 1,
1536 1,
1537 1,
1538 1,
1539 1,
1540 1,
1541 1,
1542 1,
1543 1,
1544 1,
1545 1,
1546 1,
1547 1,
1548 1,
1549 1,
1550 1,
1551 1,
1552 1,
1553 1,
1554 1,
1555 1,
1556 1,
1557 2,
1558 1,
1559 2,
1560 1,
1561 1,
1562 1,
1563 1,
1564 1,
1565 1,
1566 2,
1567 1,
1568 2,
1569 3,
1570 1,
1571 1,
1572 1,
1573 1,
1574 1,
1575 1,
1576 2,
1577 1,
1578 1,
1579 1,
1580 1,
1581 1,
1582 1,
1583 1,
1584 1,
1585 2,
1586 1,
1587 1,
1588 1,
1589 1,
1590 2,
1591 1,
1592 1,
1593 1,
1594 1,
1595 2,
1596 1,
1597 1,
1598 1,
1599 1,
1600 1,
1601 1,
1602 1,
1603 1,
1604 1,
1605 2,
1606 1,
1607 1,
1608 1,
1609 1,
1610 1,
1611 1,
1612 1,
1613 1,
1614 1,
1615 1,
1616 1,
1617 1,
1618 2,
1619 1,
1620 2,
1621 1,
1622 2,
1623 1,
1624 2,
1625 1,
1626 1,
1627 1,
1628 1,
1629 1,
1630 1,
1631 1,
1632 1,
1633 1,
1634 2,
1635 1,
1636 1,
1637 1,
1638 1,
1639 1,
1640 1,
1641 1,
1642 1,
1643 2,
1644 1,
1645 1,
1646 2,
1647 1,
1648 1,
1649 1,
1650 1,
1651 1,
1652 1,
1653 1,
1654 1,
1655 1,
1656 1,
1657 1,
1658 1,
1659 1,
1660 1,
1661 1,
1662 1,
1663 1,
1664 2,
1665 3,
1666 4,
1667 1,
1668 2,
1669 3,
1670 4,
1671 1,
1672 2,
1673 3,
1674 1,
1675 1,
1676 1,
1677 1,
1678 1,
1679 1,
1680 2,
1681 1,
1682 2,
1683 3,
1684 1,
1685 1,
1686 1,
1687 1,
1688 1,
1689 1,
1690 1,
1691 2,
1692 1,
1693 1,
1694 2,
1695 1,
1696 1,
1697 1,
1698 1,
1699 1,
1700 1,
1701 1,
1702 1,
1703 2,
1704 1,
1705 1,
1706 1,
1707 1,
1708 1,
1709 1,
1710 1,
1711 2,
1712 3,
1713 1,
1714 1,
1715 1,
1716 1,
1717 1,
1718 1,
1719 1,
1720 1,
1721 1,
1722 1,
1723 1,
1724 1,
1725 2,
1726 1,
1727 1,
1728 1,
1729 1,
1730 1,
1731 1,
1732 1,
1733 1,
1734 1,
1735 2,
1736 1,
1737 1,
1738 1,
1739 1,
1740 1,
1741 2,
1742 1,
1743 1,
1744 1,
1745 1,
1746 1,
1747 1,
1748 1,
1749 1,
1750 1,
1751 1,
1752 1,
1753 1,
1754 1,
1755 1,
1756 2,
1757 1,
1758 1,
1759 1,
1760 1,
1761 1,
1762 1,
1763 1,
1764 1,
1765 1,
1766 2,
1767 1,
1768 1,
1769 1,
1770 1,
1771 2,
1772 1,
1773 1,
1774 2,
1775 1,
1776 1,
1777 1,
1778 1,
1779 1,
1780 1,
1781 1,
1782 1,
1783 1,
1784 1,
1785 1,
1786 1,
1787 1,
1788 1,
1789 1,
1790 1,
1791 1,
1792 1,
1793 1,
1794 1,
1795 1,
1796 1,
1797 1,
1798 2,
1799 2,
1800 1,
1801 1,
1802 2,
1803 1,
1804 1,
1805 1,
1806 1,
1807 1,
1808 1,
1809 1,
1810 1,
1811 1,
1812 1,
1813 1,
1814 1,
1815 1,
1816 1,
1817 1,
1818 1,
1819 2,
1820 1,
1821 2,
1822 3,
1823 1,
1824 2,
1825 1,
1826 2,
1827 1,
1828 1,
1829 1,
1830 2,
1831 3,
1832 1,
1833 1,
1834 1,
1835 2,
1836 1,
1837 1,
1838 1,
1839 1,
1840 1,
1841 1,
1842 1,
1843 1,
1844 2,
1845 1,
1846 1,
1847 1,
1848 1,
1849 1,
1850 1,
1851 1,
1852 2,
1853 1,
1854 1,
1855 2,
1856 1,
1857 2,
1858 1,
1859 1,
1860 2,
1861 1,
1862 1,
1863 2,
1864 1,
1865 2,
1866 1,
1867 1,
1868 1,
1869 1,
1870 1,
1871 1,
1872 2,
1873 1,
1874 1,
1875 1,
1876 1,
1877 1,
1878 1,
1879 1,
1880 1,
1881 1,
1882 1,
1883 1,
1884 1,
1885 1,
1886 1,
1887 1,
1888 1,
1889 1,
1890 1,
1891 1,
1892 1,
1893 1,
1894 1,
1895 2,
1896 1,
1897 1,
1898 1,
1899 1,
1900 1,
1901 1,
1902 1,
1903 1,
1904 1,
1905 1,
1906 1,
1907 1,
1908 1,
1909 1,
1910 1,
1911 1,
1912 1,
1913 1,
1914 2,
1915 1,
1916 1,
1917 1,
1918 1,
1919 2,
1920 1,
1921 1,
1922 1,
1923 1,
1924 1,
1925 1,
1926 1,
1927 1,
1928 1,
1929 1,
1930 1,
1931 2,
1932 1,
1933 1,
1934 1,
1935 1,
1936 1,
1937 2,
1938 1,
1939 1,
1940 1,
1941 2,
1942 1,
1943 2,
1944 3,
1945 4,
1946 1,
1947 1,
1948 2,
1949 1,
1950 1,
1951 1,
1952 1,
1953 1,
1954 1,
1955 1,
1956 1,
1957 2,
1958 3,
1959 1,
1960 1,
1961 1,
1962 2,
1963 1,
1964 2,
1965 1,
1966 1,
1967 1,
1968 1,
1969 1,
1970 1,
1971 1,
1972 1,
1973 1,
1974 1,
1975 1,
1976 1,
1977 1,
1978 1,
1979 1,
1980 1,
1981 1,
1982 1,
1983 1,
1984 1,
1985 2,
1986 1,
1987 1,
1988 1,
1989 1,
1990 1,
1991 1,
1992 1,
1993 1,
1994 1,
1995 1,
1996 2,
1997 1,
1998 1,
1999 1,
2000 1,
2001 1,
2002 2,
2003 1,
2004 1,
2005 1,
2006 1,
2007 1,
2008 2,
2009 1,
2010 1,
2011 2,
2012 3,
2013 1,
2014 2,
2015 1,
2016 1,
2017 2,
2018 1,
2019 1,
2020 1,
2021 1,
2022 1,
2023 1,
2024 2,
2025 1,
2026 2,
2027 1,
2028 2,
2029 1,
2030 2,
2031 1,
2032 2,
2033 1,
2034 2,
2035 3,
2036 4,
2037 5,
2038 1,
2039 1,
2040 1,
2041 2,
2042 1,
2043 1,
2044 1,
2045 1,
2046 1,
2047 1,
2048 1,
2049 1,
2050 2,
2051 1,
2052 2,
2053 3,
2054 1,
2055 2,
2056 1,
2057 2,
2058 1,
2059 1,
2060 2,
2061 1,
2062 2,
2063 1,
2064 2,
2065 1,
2066 1,
2067 1,
2068 2,
2069 1,
2070 1,
2071 1,
2072 1,
2073 1,
2074 1,
2075 1,
2076 1,
2077 1,
2078 1,
2079 2,
2080 1,
2081 1,
2082 2,
2083 1,
2084 1,
2085 1,
2086 1,
2087 1,
2088 1,
2089 1,
2090 1,
2091 1,
2092 1,
2093 1,
2094 1,
2095 1,
2096 2,
2097 1,
2098 1,
2099 1,
2100 2,
2101 1,
2102 2,
2103 1,
2104 1,
2105 1,
2106 1,
2107 1,
2108 1,
2109 1,
2110 1,
2111 1,
2112 1,
2113 1,
2114 1,
2115 2,
2116 1,
2117 2,
2118 1,
2119 1,
2120 1,
2121 1,
2122 1,
2123 1,
2124 1,
2125 1,
2126 1,
2127 1,
2128 1,
2129 2,
2130 1,
2131 1,
2132 2,
2133 1,
2134 1,
2135 1,
2136 1,
2137 1,
2138 1,
2139 1,
2140 2,
2141 1,
2142 1,
2143 2,
2144 1,
2145 1,
2146 1,
2147 2,
2148 1,
2149 1,
2150 1,
2151 1,
2152 2,
2153 1,
2154 1,
2155 1,
2156 1,
2157 1,
2158 1,
2159 1,
2160 1,
2161 1,
2162 1,
2163 2,
2164 1,
2165 1,
2166 1,
2167 1,
2168 1,
2169 1,
2170 2,
2171 1,
2172 2,
2173 2,
2174 1,
2175 1,
2176 1,
2177 1,
2178 2,
2179 1,
2180 1,
2181 1,
2182 1,
2183 1,
2184 1,
2185 1,
2186 1,
2187 1,
2188 1,
2189 1,
2190 1,
2191 1,
2192 1,
2193 1,
2194 1,
2195 1,
2196 1,
2197 1,
2198 1,
2199 1,
2200 2,
2201 1,
2202 1,
2203 1,
2204 1,
2205 1,
2206 1,
2207 1,
2208 1,
2209 2,
2210 1,
2211 2,
2212 1,
2213 1,
2214 2,
2215 1,
2216 2,
2217 1,
2218 2,
2219 1,
2220 2,
2221 1,
2222 2,
2223 1,
2224 1,
2225 2,
2226 3,
2227 1,
2228 2,
2229 3,
2230 1,
2231 1,
2232 1,
2233 1,
2234 1,
2235 1,
2236 1,
2237 1,
2238 2,
2239 1,
2240 1,
2241 1,
2242 1,
2243 2,
2244 2,
2245 1,
2246 1,
2247 1,
2248 1,
2249 2,
2250 1,
2251 1,
2252 1,
2253 1,
2254 2,
2255 3,
2256 4,
2257 1,
2258 1,
2259 1,
2260 1,
2261 2,
2262 1,
2263 1,
2264 2,
2265 1,
2266 1,
2267 1,
2268 2,
2269 3,
2270 1,
2271 1,
2272 1,
2273 1,
2274 1,
2275 1,
2276 1,
2277 1,
2278 1,
2279 1,
2280 1,
2281 1,
2282 1,
2283 };
2284 }
2285 }
2286 #endif//
2287 // end of src/state_map.cpp
2288 //
2289 
2290 
2291 //
2292 // start of src/nucname.cpp
2293 //
2294 // Converts between naming conventions for nuclides.
2295 // zzaaam is for numerals only (923350).
2296 // name is for letters as well (U-235).
2297 // MCNP is for numerals without the meta-stable flag (92235), as used in MCNP.
2298 
2299 #ifndef PYNE_IS_AMALGAMATED
2300 #include "nucname.h"
2301 #include "state_map.cpp"
2302 #endif
2303 
2304 
2305 /*** Constructs the LL to zz Dictionary ***/
2308 
2309  lzd["Be"] = 04;
2310  lzd["Ba"] = 56;
2311  lzd["Bh"] = 107;
2312  lzd["Bi"] = 83;
2313  lzd["Bk"] = 97;
2314  lzd["Br"] = 35;
2315  lzd["Ru"] = 44;
2316  lzd["Re"] = 75;
2317  lzd["Rf"] = 104;
2318  lzd["Rg"] = 111;
2319  lzd["Ra"] = 88;
2320  lzd["Rb"] = 37;
2321  lzd["Rn"] = 86;
2322  lzd["Rh"] = 45;
2323  lzd["Tm"] = 69;
2324  lzd["H"] = 01;
2325  lzd["P"] = 15;
2326  lzd["Ge"] = 32;
2327  lzd["Gd"] = 64;
2328  lzd["Ga"] = 31;
2329  lzd["Os"] = 76;
2330  lzd["Hs"] = 108;
2331  lzd["Zn"] = 30;
2332  lzd["Ho"] = 67;
2333  lzd["Hf"] = 72;
2334  lzd["Hg"] = 80;
2335  lzd["He"] = 02;
2336  lzd["Pr"] = 59;
2337  lzd["Pt"] = 78;
2338  lzd["Pu"] = 94;
2339  lzd["Pb"] = 82;
2340  lzd["Pa"] = 91;
2341  lzd["Pd"] = 46;
2342  lzd["Po"] = 84;
2343  lzd["Pm"] = 61;
2344  lzd["C"] = 6;
2345  lzd["K"] = 19;
2346  lzd["O"] = 8;
2347  lzd["S"] = 16;
2348  lzd["W"] = 74;
2349  lzd["Eu"] = 63;
2350  lzd["Es"] = 99;
2351  lzd["Er"] = 68;
2352  lzd["Md"] = 101;
2353  lzd["Mg"] = 12;
2354  lzd["Mo"] = 42;
2355  lzd["Mn"] = 25;
2356  lzd["Mt"] = 109;
2357  lzd["U"] = 92;
2358  lzd["Fr"] = 87;
2359  lzd["Fe"] = 26;
2360  lzd["Fm"] = 100;
2361  lzd["Ni"] = 28;
2362  lzd["No"] = 102;
2363  lzd["Na"] = 11;
2364  lzd["Nb"] = 41;
2365  lzd["Nd"] = 60;
2366  lzd["Ne"] = 10;
2367  lzd["Zr"] = 40;
2368  lzd["Np"] = 93;
2369  lzd["B"] = 05;
2370  lzd["Co"] = 27;
2371  lzd["Cm"] = 96;
2372  lzd["F"] = 9;
2373  lzd["Ca"] = 20;
2374  lzd["Cf"] = 98;
2375  lzd["Ce"] = 58;
2376  lzd["Cd"] = 48;
2377  lzd["V"] = 23;
2378  lzd["Cs"] = 55;
2379  lzd["Cr"] = 24;
2380  lzd["Cu"] = 29;
2381  lzd["Sr"] = 38;
2382  lzd["Kr"] = 36;
2383  lzd["Si"] = 14;
2384  lzd["Sn"] = 50;
2385  lzd["Sm"] = 62;
2386  lzd["Sc"] = 21;
2387  lzd["Sb"] = 51;
2388  lzd["Sg"] = 106;
2389  lzd["Se"] = 34;
2390  lzd["Yb"] = 70;
2391  lzd["Db"] = 105;
2392  lzd["Dy"] = 66;
2393  lzd["Ds"] = 110;
2394  lzd["La"] = 57;
2395  lzd["Cl"] = 17;
2396  lzd["Li"] = 03;
2397  lzd["Tl"] = 81;
2398  lzd["Lu"] = 71;
2399  lzd["Lr"] = 103;
2400  lzd["Th"] = 90;
2401  lzd["Ti"] = 22;
2402  lzd["Te"] = 52;
2403  lzd["Tb"] = 65;
2404  lzd["Tc"] = 43;
2405  lzd["Ta"] = 73;
2406  lzd["Ac"] = 89;
2407  lzd["Ag"] = 47;
2408  lzd["I"] = 53;
2409  lzd["Ir"] = 77;
2410  lzd["Am"] = 95;
2411  lzd["Al"] = 13;
2412  lzd["As"] = 33;
2413  lzd["Ar"] = 18;
2414  lzd["Au"] = 79;
2415  lzd["At"] = 85;
2416  lzd["In"] = 49;
2417  lzd["Y"] = 39;
2418  lzd["N"] = 07;
2419  lzd["Xe"] = 54;
2420  lzd["Cn"] = 112;
2421  lzd["Fl"] = 114;
2422  lzd["Lv"] = 116;
2423 
2424  return lzd;
2425 }
2427 
2428 
2429 /*** Constructs zz to LL dictionary **/
2431 {
2432  zzname_t zld;
2433  for (name_zz_iter i = name_zz.begin(); i != name_zz.end(); i++)
2434  {
2435  zld[i->second] = i->first;
2436  }
2437  return zld;
2438 }
2440 
2441 
2442 
2443 /*** Constructs the fluka to zz Dictionary ***/
2446 
2447  fzd["BERYLLIU"] = 40000000;
2448  fzd["BARIUM"] = 560000000;
2449  fzd["BOHRIUM"] = 1070000000; // No fluka
2450  fzd["BISMUTH"] = 830000000;
2451  fzd["BERKELIU"] = 970000000; // No fluka
2452  fzd["BROMINE"] = 350000000;
2453  fzd["RUTHENIU"] = 440000000; // No fluka
2454  fzd["RHENIUM"] = 750000000;
2455  fzd["RUTHERFO"] = 1040000000;
2456  fzd["ROENTGEN"] = 1110000000;
2457  fzd["RADIUM"] = 880000000; // No fluka
2458  fzd["RUBIDIUM"] = 370000000; // No fluka
2459  fzd["RADON"] = 860000000; // no fluka
2460  fzd["RHODIUM"] = 450000000; // no fluka
2461  fzd["THULIUM"] = 690000000; // no fluka
2462  fzd["HYDROGEN"] = 10000000;
2463  fzd["PHOSPHO"] = 150000000;
2464  fzd["GERMANIU"] = 320000000;
2465  fzd["GADOLINI"] = 640000000;
2466  fzd["GALLIUM"] = 310000000;
2467  fzd["OSMIUM"] = 760000000; // no fluka
2468  fzd["HASSIUM"] = 1080000000;
2469  fzd["ZINC"] = 300000000;
2470  fzd["HOLMIUM"] = 670000000; // no fluka
2471  fzd["HAFNIUM"] = 720000000;
2472  fzd["MERCURY"] = 800000000;
2473  fzd["HELIUM"] = 20000000;
2474  fzd["PRASEODY"] = 590000000; // no fluka
2475  fzd["PLATINUM"] = 780000000;
2476  fzd["239-PU"] = 940000000; // "239-PU"
2477  fzd["LEAD"] = 820000000;
2478  fzd["PROTACTI"] = 910000000; // no fluka
2479  fzd["PALLADIU"] = 460000000; // no fluka
2480  fzd["POLONIUM"] = 840000000; // no fluka
2481  fzd["PROMETHI"] = 610000000; // no fluka
2482  fzd["CARBON"] = 60000000;
2483  fzd["POTASSIU"] = 190000000;
2484  fzd["OXYGEN"] = 80000000;
2485  fzd["SULFUR"] = 160000000;
2486  fzd["TUNGSTEN"] = 740000000;
2487  fzd["EUROPIUM"] = 630000000;
2488  fzd["EINSTEIN"] = 990000000; // no fluka
2489  fzd["ERBIUM"] = 680000000; // no fluka
2490  fzd["MENDELEV"] = 1010000000; // no fluka
2491  fzd["MAGNESIU"] = 120000000;
2492  fzd["MOLYBDEN"] = 420000000;
2493  fzd["MANGANES"] = 250000000;
2494  fzd["MEITNERI"] = 1090000000; // no fluka
2495  fzd["URANIUM"] = 920000000;
2496  fzd["FRANCIUM"] = 870000000; // no fluka
2497  fzd["IRON"] = 260000000;
2498  fzd["FERMIUM"] = 1000000000; // no fluka
2499  fzd["NICKEL"] = 280000000;
2500  fzd["NITROGEN"] = 70000000;
2501  fzd["NOBELIUM"] = 1020000000; // no fluka
2502  fzd["SODIUM"] = 110000000;
2503  fzd["NIOBIUM"] = 410000000;
2504  fzd["NEODYMIU"] = 600000000;
2505  fzd["NEON"] = 100000000;
2506  fzd["ZIRCONIU"] = 400000000;
2507  fzd["NEPTUNIU"] = 930000000; // no fluka
2508  fzd["BORON"] = 50000000;
2509  fzd["COBALT"] = 270000000;
2510  fzd["CURIUM"] = 960000000; // no fluka
2511  fzd["FLUORINE"] = 90000000;
2512  fzd["CALCIUM"] = 200000000;
2513  fzd["CALIFORN"] = 980000000; // no fluka
2514  fzd["CERIUM"] = 580000000;
2515  fzd["CADMIUM"] = 480000000;
2516  fzd["VANADIUM"] = 230000000;
2517  fzd["CESIUM"] = 550000000;
2518  fzd["CHROMIUM"] = 240000000;
2519  fzd["COPPER"] = 290000000;
2520  fzd["STRONTIU"] = 380000000;
2521  fzd["KRYPTON"] = 360000000;
2522  fzd["SILICON"] = 140000000;
2523  fzd["TIN"] = 500000000;
2524  fzd["SAMARIUM"] = 620000000;
2525  fzd["SCANDIUM"] = 210000000;
2526  fzd["ANTIMONY"] = 510000000;
2527  fzd["SEABORGI"] = 1060000000; // no fluka
2528  fzd["SELENIUM"] = 340000000; // no fluka
2529  fzd["YTTERBIU"] = 700000000; // no fluka
2530  fzd["DUBNIUM"] = 1050000000; // no fluka
2531  fzd["DYSPROSI"] = 660000000; // no fluka
2532  fzd["DARMSTAD"] = 1100000000; // no fluka
2533  fzd["LANTHANU"] = 570000000;
2534  fzd["CHLORINE"] = 170000000;
2535  fzd["LITHIUM"] = 030000000;
2536  fzd["THALLIUM"] = 810000000; // no fluka
2537  fzd["LUTETIUM"] = 710000000; // no fluka
2538  fzd["LAWRENCI"] = 1030000000; // no fluka
2539  fzd["THORIUM"] = 900000000; // no fluka
2540  fzd["TITANIUM"] = 220000000;
2541  fzd["TELLURIU"] = 520000000; // no fluka
2542  fzd["TERBIUM"] = 650000000;
2543  fzd["99-TC"] = 430000000; // "99-TC"
2544  fzd["TANTALUM"] = 730000000;
2545  fzd["ACTINIUM"] = 890000000; // no fluka
2546  fzd["SILVER"] = 470000000;
2547  fzd["IODINE"] = 530000000;
2548  fzd["IRIDIUM"] = 770000000;
2549  fzd["241-AM"] = 950000000; // "241-AM"
2550  fzd["ALUMINUM"] = 130000000;
2551  fzd["ARSENIC"] = 330000000;
2552  fzd["ARGON"] = 180000000;
2553  fzd["GOLD"] = 790000000;
2554  fzd["ASTATINE"] = 850000000; // no fluka
2555  fzd["INDIUM"] = 490000000;
2556  fzd["YTTRIUM"] = 390000000;
2557  fzd["XENON"] = 540000000;
2558  fzd["COPERNIC"] = 1120000000; // no fluka
2559  fzd["UNUNQUAD"] = 1140000000; // no fluka: UNUNQUADIUM, "Flerovium"
2560  fzd["UNUNHEXI"] = 1160000000; // no fluka: UNUNHEXIUM , "Livermorium"
2561  fzd["HYDROG-1"] = 10010000;
2562  fzd["DEUTERIU"] = 10020000;
2563  fzd["TRITIUM"] = 10040000;
2564  fzd["HELIUM-3"] = 20030000;
2565  fzd["HELIUM-4"] = 20040000;
2566  fzd["LITHIU-6"] = 30060000;
2567  fzd["LITHIU-7"] = 30070000;
2568  fzd["BORON-10"] = 50100000;
2569  fzd["BORON-11"] = 50110000;
2570  fzd["90-SR"] = 380900000; // fluka "90-SR"
2571  fzd["129-I"] = 531290000; // fluka "129-I"
2572  fzd["124-XE"] = 541240000; // fluka "124-XE"
2573  fzd["126-XE"] = 541260000; // fluka "126-XE"
2574  fzd["128-XE"] = 541280000; // fluka "128-XE"
2575  fzd["130-XE"] = 541300000; // fluka "130-XE"
2576  fzd["131-XE"] = 541310000; // fluka "131-XE"
2577  fzd["132-XE"] = 541320000; // fluka "132-XE"
2578  fzd["134-XE"] = 541340000; // fluka "134-XE"
2579  fzd["135-XE"] = 541350000; // fluka "135-XE"
2580  fzd["136-XE"] = 541360000; // fluka "136-XE"
2581  fzd["135-CS"] = 551350000; // fluka "135-CS"
2582  fzd["137-CS"] = 551370000; // fluka "137-CS"
2583  fzd["230-TH"] = 902300000; // fluka "230-TH"
2584  fzd["232-TH"] = 902320000; // fluka "232-TH"
2585  fzd["233-U"] = 922330000; // fluka "233-U"
2586  fzd["234-U"] = 922340000; // fluka "234-U"
2587  fzd["235-U"] = 922350000; // fluka "235-U"
2588  fzd["238-U"] = 922380000; // fluka "238-U"
2589 
2590  return fzd;
2591 }
2593 
2594 
2595 /*** Constructs zz to fluka dictionary **/
2597 {
2598  zzname_t zfd;
2599  for (name_zz_iter i = fluka_zz.begin(); i != fluka_zz.end(); i++)
2600  {
2601  zfd[i->second] = i->first;
2602  }
2603  return zfd;
2604 }
2606 
2607 
2608 
2609 /******************************************/
2610 /*** Define useful elemental group sets ***/
2611 /******************************************/
2612 
2614 {
2615  zz_group zg;
2616  for (name_group_iter i = eg.begin(); i != eg.end(); i++)
2617  zg.insert(name_zz[*i]);
2618  return zg;
2619 }
2620 
2621 // Lanthanides
2622 pyne::nucname::name_t pyne::nucname::LAN_array[15] = {"La", "Ce", "Pr", "Nd",
2623  "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu"};
2628 
2629 // Actinides
2630 pyne::nucname::name_t pyne::nucname::ACT_array[15] = {"Ac", "Th", "Pa", "U",
2631  "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr"};
2634 
2635 // Transuarnics
2636 pyne::nucname::name_t pyne::nucname::TRU_array[22] = {"Np", "Pu", "Am", "Cm",
2637  "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt",
2638  "Ds", "Rg", "Cn", "Fl", "Lv"};
2643 
2644 //Minor Actinides
2645 pyne::nucname::name_t pyne::nucname::MA_array[10] = {"Np", "Am", "Cm", "Bk",
2646  "Cf", "Es", "Fm", "Md", "No", "Lr"};
2651 
2652 //Fission Products
2653 pyne::nucname::name_t pyne::nucname::FP_array[88] = {"Ag", "Al", "Ar", "As",
2654  "At", "Au", "B", "Ba", "Be", "Bi", "Br", "C", "Ca", "Cd", "Ce", "Cl", "Co",
2655  "Cr", "Cs", "Cu", "Dy", "Er", "Eu", "F", "Fe", "Fr", "Ga", "Gd", "Ge", "H",
2656  "He", "Hf", "Hg", "Ho", "I", "In", "Ir", "K", "Kr", "La", "Li", "Lu", "Mg",
2657  "Mn", "Mo", "N", "Na", "Nb", "Nd", "Ne", "Ni", "O", "Os", "P", "Pb", "Pd",
2658  "Pm", "Po", "Pr", "Pt", "Ra", "Rb", "Re", "Rh", "Rn", "Ru", "S", "Sb", "Sc",
2659  "Se", "Si", "Sm", "Sn", "Sr", "Ta", "Tb", "Tc", "Te", "Ti", "Tl", "Tm", "V",
2660  "W", "Xe", "Y", "Yb", "Zn", "Zr"};
2665 
2666 
2667 /***************************/
2668 /*** isnuclide functions ***/
2669 /***************************/
2670 
2672  int n;
2673  try {
2674  n = id(nuc);
2675  }
2676  catch(NotANuclide) {
2677  return false;
2678  }
2679  catch(IndeterminateNuclideForm) {
2680  return false;
2681  }
2682  return isnuclide(n);
2683 }
2684 
2685 bool pyne::nucname::isnuclide(const char * nuc) {
2686  return isnuclide(std::string(nuc));
2687 }
2688 
2690  int n;
2691  try {
2692  n = id(nuc);
2693  }
2694  catch(NotANuclide) {
2695  return false;
2696  }
2697  catch(IndeterminateNuclideForm) {
2698  return false;
2699  }
2700  if (n <= 10000000)
2701  return false;
2702  int zzz = n / 10000000;
2703  int aaa = (n % 10000000) / 10000;
2704  if (aaa == 0)
2705  return false; // is element
2706  else if (aaa < zzz)
2707  return false;
2708  return true;
2709 }
2710 
2711 
2712 
2713 /********************/
2714 /*** id functions ***/
2715 /********************/
2716 int pyne::nucname::id(int nuc) {
2717  if (nuc < 0)
2718  throw NotANuclide(nuc, "");
2719 
2720  int newnuc;
2721  int zzz = nuc / 10000000; // ZZZ ?
2722  int aaassss = nuc % 10000000; // AAA-SSSS ?
2723  int aaa = aaassss / 10000; // AAA ?
2724  int ssss = aaassss % 10000; // SSSS ?
2725  // Nuclide must already be in id form
2726  if (0 < zzz && zzz <= aaa && aaa <= zzz * 7) {
2727  // Normal nuclide
2728  if (5 < ssss){
2729  // Unphysical metastable state warning
2730  warning("You have indicated a metastable state of " + pyne::to_str(ssss) + ". Metastable state above 5, possibly unphysical. ");
2731  }
2732  return nuc;
2733  } else if (aaassss == 0 && 0 < zz_name.count(zzz)) {
2734  // Natural elemental nuclide: ie for Uranium = 920000000
2735  return nuc;
2736  } else if (nuc < 1000 && 0 < zz_name.count(nuc))
2737  // Gave Z-number
2738  return nuc * 10000000;
2739 
2740  // Not in id form, try ZZZAAAM form.
2741  zzz = nuc / 10000; // ZZZ ?
2742  aaassss = nuc % 10000; // AAA-SSSS ?
2743  aaa = aaassss / 10; // AAA ?
2744  ssss = nuc % 10; // SSSS ?
2745  if (zzz <= aaa && aaa <= zzz * 7) {
2746  // ZZZAAAM nuclide
2747  if (5 < ssss){
2748  // Unphysical metastable state warning
2749  warning("You have indicated a metastable state of " + pyne::to_str(ssss) + ". Metastable state above 5, possibly unphysical. ");
2750  }
2751  return (zzz*10000000) + (aaa*10000) + (nuc%10);
2752  } else if (aaa <= zzz && zzz <= aaa * 7 && 0 < zz_name.count(aaa)) {
2753  // Cinder-form (aaazzzm), ie 2350920
2754  if (5 < ssss){
2755  // Unphysical metastable state warning
2756  warning("You have indicated a metastable state of " + pyne::to_str(ssss) + ". Metastable state above 5, possibly unphysical. ");
2757  }
2758  return (aaa*10000000) + (zzz*10000) + (nuc%10);
2759  }
2760  //else if (aaassss == 0 && 0 == zz_name.count(nuc/1000) && 0 < zz_name.count(zzz))
2761  else if (aaassss == 0 && 0 < zz_name.count(zzz)) {
2762  // zzaaam form natural nuclide
2763  return zzz * 10000000;
2764  }
2765 
2766  if (nuc >= 1000000){
2767  // From now we assume no metastable info has been given.
2768  throw IndeterminateNuclideForm(nuc, "");
2769  }
2770 
2771  // Nuclide is not in zzaaam form,
2772  // Try MCNP form, ie zzaaa
2773  // This is the same form as SZA for the 0th state.
2774  zzz = nuc / 1000;
2775  aaa = nuc % 1000;
2776  if (zzz <= aaa) {
2777  if (aaa - 400 < 0) {
2778  if (nuc == 95242)
2779  return nuc * 10000 + 1; // special case MCNP Am-242m
2780  else
2781  return nuc * 10000; // Nuclide in normal MCNP form
2782  } else {
2783  // Nuclide in MCNP metastable form
2784  if (nuc == 95642)
2785  return (95642 - 400)*10000; // special case MCNP Am-242
2786  nuc = ((nuc - 400) * 10000) + 1;
2787  while (3.0 < (float ((nuc/10000)%1000) / float (nuc/10000000)))
2788  nuc -= 999999;
2789  return nuc;
2790  }
2791  } else if (aaa == 0 && 0 < zz_name.count(zzz)) {
2792  // MCNP form natural nuclide
2793  return zzz * 10000000;
2794  }
2795 
2796  // Not a normal nuclide, might be a
2797  // Natural elemental nuclide.
2798  // ie 92 for Uranium = 920000
2799  if (0 < zz_name.count(nuc))
2800  return nuc * 10000000;
2801  throw IndeterminateNuclideForm(nuc, "");
2802 }
2803 
2804 int pyne::nucname::id(const char * nuc) {
2805  std::string newnuc (nuc);
2806  return id(newnuc);
2807 }
2808 
2810  size_t npos = std::string::npos;
2811  if (nuc.empty())
2812  throw NotANuclide(nuc, "<empty>");
2813  int newnuc;
2814  std::string elem_name;
2815  int dash1 = nuc.find("-");
2816  int dash2;
2817  if (dash1 == npos)
2818  dash2 = npos;
2819  else
2820  dash2 = nuc.find("-", dash1+1);
2821 
2822  // nuc must be at least 4 characters or greater if it is in ZZLLAAAM form.
2823  if (nuc.length() >= 5 && dash1 != npos && dash2 != npos) {
2824  // Nuclide most likely in ZZLLAAAM Form, only form that contains two "-"'s.
2825  std::string zz = nuc.substr(0, dash1);
2826  std::string ll = nuc.substr(dash1+1, dash2);
2827  int zz_int = to_int(zz);
2828  // Verifying that the LL and ZZ point to the same element as secondary
2829  if(znum(ll) != zz_int)
2830  throw NotANuclide(nuc, "mismatched znum and chemical symbol");
2831  return zzllaaam_to_id(nuc);
2832  }
2833 
2834  // Get the string into a regular form
2835  std::string nucstr = pyne::to_upper(nuc);
2836  nucstr = pyne::remove_substring(nucstr, "-");
2837  int nuclen = nucstr.length();
2838 
2839  if (pyne::contains_substring(pyne::digits, nucstr.substr(0, 1))) {
2840  if (pyne::contains_substring(pyne::digits, nucstr.substr(nuclen-1, nuclen))) {
2841  // Nuclide must actually be an integer that
2842  // just happens to be living in string form.
2843  newnuc = pyne::to_int(nucstr);
2844  newnuc = id(newnuc);
2845  } else {
2846  // probably in NIST-like form (242Am)
2847  // Here we know we have both digits and letters
2849  newnuc = pyne::to_int(anum_str) * 10000;
2850 
2851  // Add the Z-number
2852  elem_name = pyne::remove_characters(nucstr, pyne::digits);
2853  elem_name = pyne::capitalize(elem_name);
2854  if (0 < name_zz.count(elem_name))
2855  newnuc = (10000000 * name_zz[elem_name]) + newnuc;
2856  else
2857  throw NotANuclide(nucstr, newnuc);
2858  }
2859  } else if (pyne::contains_substring(pyne::alphabet, nucstr.substr(0, 1))) {
2860  // Nuclide is probably in name form, or some variation therein
2862 
2863  // natural element form, a la 'U' -> 920000000
2864  if (anum_str.empty()) {
2865  elem_name = pyne::capitalize(nucstr);
2866  if (0 < name_zz.count(elem_name))
2867  return 10000000 * name_zz[elem_name];
2868  }
2869 
2870  int anum = pyne::to_int(anum_str);
2871 
2872  // bad form
2873  if (anum < 0)
2874  throw NotANuclide(nucstr, anum);
2875 
2876  // Figure out if we are meta-stable or not
2877  std::string end_char = pyne::last_char(nucstr);
2878  if (end_char == "M")
2879  newnuc = (10000 * anum) + 1;
2880  else if (pyne::contains_substring(pyne::digits, end_char))
2881  newnuc = (10000 * anum);
2882  else
2883  throw NotANuclide(nucstr, newnuc);
2884 
2885  // Add the Z-number
2886  elem_name = pyne::remove_characters(nucstr.substr(0, nuclen-1), pyne::digits);
2887  elem_name = pyne::capitalize(elem_name);
2888  if (0 < name_zz.count(elem_name))
2889  newnuc = (10000000 * name_zz[elem_name]) + newnuc;
2890  else
2891  throw NotANuclide(nucstr, newnuc);
2892  } else {
2893  // Clearly not a nuclide
2894  throw NotANuclide(nuc, nucstr);
2895  }
2896  return newnuc;
2897 }
2898 
2899 
2900 /***************************/
2901 /*** iselement functions ***/
2902 /***************************/
2903 
2905  int n;
2906  try {
2907  n = id(nuc);
2908  }
2909  catch(NotANuclide) {
2910  return false;
2911  }
2912  return iselement(n);
2913 }
2914 
2915 bool pyne::nucname::iselement(const char * nuc) {
2916  return iselement(std::string(nuc));
2917 }
2918 
2920  int n;
2921  try {
2922  n = id(nuc);
2923  }
2924  catch(NotANuclide) {
2925  return false;
2926  }
2927 
2928  if (n < 10000000)
2929  return false;
2930  int zzz = znum(n);
2931  int aaa = anum(n);
2932  if (zzz > 0 && aaa == 0)
2933  return true; // is element
2934  return false;
2935 }
2936 
2937 /**********************/
2938 /*** name functions ***/
2939 /**********************/
2941  int nucid = id(nuc);
2942  std::string newnuc = "";
2943 
2944  int zzz = nucid / 10000000;
2945  int ssss = nucid % 10000;
2946  int aaassss = nucid % 10000000;
2947  int aaa = aaassss / 10000;
2948 
2949  // Make sure the LL value is correct
2950  if (0 == zz_name.count(zzz))
2951  throw NotANuclide(nuc, nucid);
2952 
2953  // Add LL
2954  newnuc += zz_name[zzz];
2955 
2956  // Add A-number
2957  if (0 < aaa)
2958  newnuc += pyne::to_str(aaa);
2959 
2960  // Add meta-stable flag
2961  if (0 < ssss)
2962  newnuc += "M";
2963 
2964  return newnuc;
2965 }
2966 
2967 
2968 
2970  std::string newnuc (nuc);
2971  return name(newnuc);
2972 }
2973 
2974 
2976  return name(id(nuc));
2977 }
2978 
2979 
2980 /**********************/
2981 /*** znum functions ***/
2982 /**********************/
2983 int pyne::nucname::znum(int nuc) {
2984  return id(nuc) / 10000000;
2985 }
2986 
2987 int pyne::nucname::znum(const char * nuc) {
2988  return id(nuc) / 10000000;
2989 }
2990 
2992  return id(nuc) / 10000000;
2993 }
2994 
2995 /**********************/
2996 /*** anum functions ***/
2997 /**********************/
2998 int pyne::nucname::anum(int nuc) {
2999  return (id(nuc) / 10000) % 1000;
3000 }
3001 
3002 int pyne::nucname::anum(const char * nuc) {
3003  return (id(nuc) / 10000) % 1000;
3004 }
3005 
3007  return (id(nuc) / 10000) % 1000;
3008 }
3009 
3010 /**********************/
3011 /*** snum functions ***/
3012 /**********************/
3013 int pyne::nucname::snum(int nuc) {
3014  return id(nuc) % 10000;
3015 }
3016 
3017 int pyne::nucname::snum(const char * nuc) {
3018  return id(nuc) % 10000;
3019 }
3020 
3022  return id(nuc) % 10000;
3023 }
3024 
3025 /************************/
3026 /*** zzaaam functions ***/
3027 /************************/
3029  int nucid = id(nuc);
3030  int zzzaaa = nucid / 10000;
3031  int ssss = nucid % 10000;
3032  if (10 <= ssss)
3033  ssss = 9;
3034  return zzzaaa*10 + ssss;
3035 }
3036 
3037 
3038 int pyne::nucname::zzaaam(const char * nuc) {
3039  std::string newnuc (nuc);
3040  return zzaaam(newnuc);
3041 }
3042 
3043 
3045  return zzaaam(id(nuc));
3046 }
3047 
3048 
3050  return (nuc/10)*10000 + (nuc%10);
3051 }
3052 
3053 
3054 int pyne::nucname::zzaaam_to_id(const char * nuc) {
3055  return zzaaam_to_id(std::string(nuc));
3056 }
3057 
3058 
3060  return zzaaam_to_id(pyne::to_int(nuc));
3061 }
3062 
3063 /************************/
3064 /*** zzzaaa functions ***/
3065 /************************/
3067  int nucid = id(nuc);
3068  int zzzaaa = nucid/10000;
3069 
3070  return zzzaaa;
3071 }
3072 
3073 
3074 int pyne::nucname::zzzaaa(const char * nuc) {
3075  std::string newnuc (nuc);
3076  return zzzaaa(newnuc);
3077 }
3078 
3079 
3081  return zzzaaa(id(nuc));
3082 }
3083 
3084 
3086  return (nuc)*10000;
3087 }
3088 
3089 
3090 int pyne::nucname::zzzaaa_to_id(const char * nuc) {
3091  return zzzaaa_to_id(std::string(nuc));
3092 }
3093 
3094 
3096  return zzzaaa_to_id(pyne::to_int(nuc));
3097 }
3098 
3099 /*************************/
3100 /*** zzllaaam functions ***/
3101 /*************************/
3103  int nucid = id(nuc);
3104  std::string newnuc = "";
3105 
3106  int ssss = nucid % 10000;
3107  int aaassss = nucid % 10000000;
3108  int zzz = nucid / 10000000;
3109  int aaa = aaassss / 10000;
3110 
3111  // Make sure the LL value is correct
3112  if (0 == zz_name.count(zzz))
3113  throw NotANuclide(nuc, nucid);
3114  //Adding ZZ
3115  newnuc += pyne::to_str(zzz);
3116  newnuc += "-";
3117  // Add LL
3118  newnuc += zz_name[zzz];
3119  // Add required dash
3120  newnuc += "-";
3121  // Add AAA
3122  if (0 < aaassss)
3123  newnuc += pyne::to_str(aaa);
3124  // Add meta-stable flag
3125  if (0 < ssss)
3126  newnuc += "m";
3127  return newnuc;
3128 }
3129 
3130 
3132  std::string newnuc (nuc);
3133  return zzllaaam(newnuc);
3134 }
3135 
3136 
3138  return zzllaaam(id(nuc));
3139 }
3140 
3141 
3142 int pyne::nucname::zzllaaam_to_id(const char * nuc) {
3143  return zzllaaam_to_id(std::string(nuc));
3144 }
3145 
3146 
3148  if (nuc.empty())
3149  throw NotANuclide(nuc, "<empty>");
3150  int nucid;
3151  std::string elem_name;
3152 
3153  // Get the string into a regular form
3154  std::string nucstr = pyne::to_upper(nuc);
3155  // Removing first two characters (redundant), for 1 digit nuclides, such
3156  // as 2-He-4, the first slash will be removed, and the second attempt to
3157  // remove the second slash will do nothing.
3158  nucstr.erase(0,2);
3159  nucstr = pyne::remove_substring(nucstr, "-");
3160  // Does nothing if nuclide is short, otherwise removes the second "-" instance
3161  nucstr = pyne::remove_substring(nucstr, "-");
3162  int nuclen = nucstr.length();
3163 
3164  // Nuclide is probably in name form, or some variation therein
3166 
3167  // natural element form, a la 'U' -> 920000000
3168  if (anum_str.empty() || pyne::contains_substring(nucstr, "NAT")) {
3169  elem_name = pyne::capitalize(pyne::remove_substring(nucstr, "NAT"));
3170  if (0 < name_zz.count(elem_name))
3171  return 10000000 * name_zz[elem_name];
3172  }
3173  int anum = pyne::to_int(anum_str);
3174 
3175  // Figure out if we are meta-stable or not
3176  std::string end_char = pyne::last_char(nucstr);
3177  if (end_char == "M")
3178  nucid = (10000 * anum) + 1;
3179  else if (pyne::contains_substring(pyne::digits, end_char))
3180  nucid = (10000 * anum);
3181  else
3182  throw NotANuclide(nucstr, nucid);
3183 
3184  // Add the Z-number
3185  elem_name = pyne::remove_characters(nucstr.substr(0, nuclen-1), pyne::digits);
3186  elem_name = pyne::capitalize(elem_name);
3187  if (0 < name_zz.count(elem_name))
3188  nucid = (10000000 * name_zz[elem_name]) + nucid;
3189  else
3190  throw NotANuclide(nucstr, nucid);
3191  return nucid;
3192 }
3193 
3194 /**********************/
3195 /*** mcnp functions ***/
3196 /**********************/
3197 int pyne::nucname::mcnp(int nuc) {
3198  nuc = id(nuc);
3199  int ssss = nuc % 10000;
3200  int newnuc = nuc / 10000;
3201 
3202  // special case Am242(m)
3203  if (newnuc == 95242 && ssss < 2)
3204  ssss = (ssss + 1) % 2;
3205 
3206  // Handle the crazy MCNP meta-stable format
3207  if (0 != ssss && ssss < 10)
3208  newnuc += 300 + (ssss * 100);
3209 
3210  return newnuc;
3211 }
3212 
3213 
3214 
3215 int pyne::nucname::mcnp(const char * nuc) {
3216  std::string newnuc (nuc);
3217  return mcnp(newnuc);
3218 }
3219 
3220 
3221 
3223  return mcnp(id(nuc));
3224 }
3225 
3226 //
3227 // MCNP -> id
3228 //
3230  int zzz = nuc / 1000;
3231  int aaa = nuc % 1000;
3232  if (zzz == 0)
3233  throw NotANuclide(nuc, "not in the MCNP format");
3234  else if (zzz <= aaa) {
3235  if (aaa - 400 < 0) {
3236  if (nuc == 95242)
3237  return nuc * 10000 + 1; // special case MCNP Am-242m
3238  else
3239  return nuc * 10000; // Nuclide in normal MCNP form
3240  } else {
3241  // Nuclide in MCNP metastable form
3242  if (nuc == 95642)
3243  return (95642 - 400)*10000; // special case MCNP Am-242
3244  nuc = ((nuc - 400) * 10000) + 1;
3245  while (3.0 < (float ((nuc/10000)%1000) / float (nuc/10000000)))
3246  nuc -= 999999;
3247  return nuc;
3248  }
3249  } else if (aaa == 0)
3250  // MCNP form natural nuclide
3251  return zzz * 10000000;
3252  throw IndeterminateNuclideForm(nuc, "");
3253 }
3254 
3255 
3256 int pyne::nucname::mcnp_to_id(const char * nuc) {
3257  return mcnp_to_id(std::string(nuc));
3258 }
3259 
3260 
3262  return mcnp_to_id(pyne::to_int(nuc));
3263 }
3264 
3265 
3266 /**********************/
3267 /*** fluka functions ***/
3268 /**********************/
3270  int x = id(nuc);
3271  if (zz_fluka.count(x) == 0) {
3272  throw NotANuclide(nuc, "fluka name could not be found");
3273  }
3274  return zz_fluka[x];
3275 }
3276 
3277 
3278 //
3279 // FLUKA name -> id
3280 //
3282  if (fluka_zz.count(name) == 0) {
3283  throw NotANuclide(-1, "No nuclide: fluka name could not be found");
3284  }
3285  return fluka_zz[name];
3286 }
3287 
3289  return fluka_to_id(std::string(name));
3290 }
3291 
3292 
3293 /*************************/
3294 /*** serpent functions ***/
3295 /*************************/
3297  int nucid = id(nuc);
3298  std::string newnuc = "";
3299 
3300  int ssss = nucid % 10000;
3301  int aaassss = nucid % 10000000;
3302  int zzz = nucid / 10000000;
3303  int aaa = aaassss / 10000;
3304 
3305  // Make sure the LL value is correct
3306  if (0 == zz_name.count(zzz))
3307  throw NotANuclide(nuc, nucid);
3308 
3309  // Add LL
3310  std::string llupper = pyne::to_upper(zz_name[zzz]);
3311  std::string lllower = pyne::to_lower(zz_name[zzz]);
3312  newnuc += llupper[0];
3313  for (int l = 1; l < lllower.size(); l++)
3314  newnuc += lllower[l];
3315 
3316  // Add required dash
3317  newnuc += "-";
3318 
3319  // Add A-number
3320  if (0 < aaassss)
3321  newnuc += pyne::to_str(aaa);
3322  else if (0 == aaassss)
3323  newnuc += "nat";
3324 
3325  // Add meta-stable flag
3326  if (0 < ssss)
3327  newnuc += "m";
3328 
3329  return newnuc;
3330 }
3331 
3332 
3334  std::string newnuc (nuc);
3335  return serpent(newnuc);
3336 }
3337 
3338 
3340  return serpent(id(nuc));
3341 }
3342 
3343 //
3344 // Serpent -> id
3345 //
3346 //int pyne::nucname::serpent_to_id(int nuc)
3347 //{
3348 // Should be ZAID
3349 //}
3350 
3351 
3352 int pyne::nucname::serpent_to_id(const char * nuc) {
3353  return serpent_to_id(std::string(nuc));
3354 }
3355 
3356 
3358  if (nuc.empty())
3359  throw NotANuclide(nuc, "<empty>");
3360  int nucid;
3361  std::string elem_name;
3362 
3363  // Get the string into a regular form
3364  std::string nucstr = pyne::to_upper(nuc);
3365  nucstr = pyne::remove_substring(nucstr, "-");
3366  int nuclen = nucstr.length();
3367 
3368  // Nuclide is probably in name form, or some variation therein
3370 
3371  // natural element form, a la 'U' -> 920000000
3372  if (anum_str.empty() || pyne::contains_substring(nucstr, "NAT")) {
3373  elem_name = pyne::capitalize(pyne::remove_substring(nucstr, "NAT"));
3374  if (0 < name_zz.count(elem_name))
3375  return 10000000 * name_zz[elem_name];
3376  }
3377  int anum = pyne::to_int(anum_str);
3378 
3379  // Figure out if we are meta-stable or not
3380  std::string end_char = pyne::last_char(nucstr);
3381  if (end_char == "M")
3382  nucid = (10000 * anum) + 1;
3383  else if (pyne::contains_substring(pyne::digits, end_char))
3384  nucid = (10000 * anum);
3385  else
3386  throw NotANuclide(nucstr, nucid);
3387 
3388  // Add the Z-number
3389  elem_name = pyne::remove_characters(nucstr.substr(0, nuclen-1), pyne::digits);
3390  elem_name = pyne::capitalize(elem_name);
3391  if (0 < name_zz.count(elem_name))
3392  nucid = (10000000 * name_zz[elem_name]) + nucid;
3393  else
3394  throw NotANuclide(nucstr, nucid);
3395  return nucid;
3396 }
3397 
3398 
3399 /**********************/
3400 /*** nist functions ***/
3401 /**********************/
3403  int nucid = id(nuc);
3404  std::string newnuc = "";
3405 
3406  int zzz = nucid / 10000000;
3407  int ssss = nucid % 10000;
3408  int aaassss = nucid % 10000000;
3409  int aaa = aaassss / 10000;
3410 
3411  // Make sure the LL value is correct
3412  if (0 == zz_name.count(zzz))
3413  throw NotANuclide(nuc, nucid);
3414 
3415  // Add A-number
3416  if (0 < aaassss)
3417  newnuc += pyne::to_str(aaa);
3418 
3419  // Add name
3420  std::string name_upper = pyne::to_upper(zz_name[zzz]);
3421  std::string name_lower = pyne::to_lower(zz_name[zzz]);
3422  newnuc += name_upper[0];
3423  for (int l = 1; l < name_lower.size(); l++)
3424  newnuc += name_lower[l];
3425 
3426  // Add meta-stable flag
3427  // No metastable flag for NIST,
3428  // but could add star, by uncommenting below
3429  //if (0 < mod_10)
3430  // newnuc += "*";
3431 
3432  return newnuc;
3433 }
3434 
3435 
3437  std::string newnuc (nuc);
3438  return nist(newnuc);
3439 }
3440 
3441 
3443  return nist(id(nuc));
3444 }
3445 
3446 
3447 //
3448 // NIST -> id
3449 //
3450 //int pyne::nucname::nist_to_id(int nuc)
3451 //{
3452 // NON-EXISTANT
3453 //};
3454 
3455 int pyne::nucname::nist_to_id(const char * nuc) {
3456  return nist_to_id(std::string(nuc));
3457 }
3458 
3460  if (nuc.empty())
3461  throw NotANuclide(nuc, "<empty>");
3462  int nucid;
3463  nuc = pyne::to_upper(nuc);
3464  std::string elem_name;
3465  int nuclen = nuc.length();
3466 
3467  // Nuclide is probably in name form, or some variation therein
3469 
3470  // natural element form, a la 'U' -> 920000000
3471  if (anum_str.empty()) {
3472  elem_name = pyne::capitalize(nuc);
3473  if (0 < name_zz.count(elem_name))
3474  return 10000000 * name_zz[elem_name];
3475  }
3476  nucid = pyne::to_int(anum_str) * 10000;
3477 
3478  // Add the Z-number
3479  elem_name = pyne::remove_characters(nuc, pyne::digits);
3480  elem_name = pyne::capitalize(elem_name);
3481  if (0 < name_zz.count(elem_name))
3482  nucid = (10000000 * name_zz[elem_name]) + nucid;
3483  else
3484  throw NotANuclide(nuc, nucid);
3485  return nucid;
3486 }
3487 
3488 
3489 /************************/
3490 /*** cinder functions ***/
3491 /************************/
3493  // cinder nuclides of form aaazzzm
3494  int nucid = id(nuc);
3495  int zzz = nucid / 10000000;
3496  int ssss = nucid % 10000;
3497  int aaassss = nucid % 10000000;
3498  int aaa = aaassss / 10000;
3499  if (10 <= ssss)
3500  ssss = 9;
3501  return (aaa*10000) + (zzz*10) + ssss;
3502 }
3503 
3504 
3505 
3506 int pyne::nucname::cinder(const char * nuc) {
3507  std::string newnuc (nuc);
3508  return cinder(newnuc);
3509 }
3510 
3511 
3512 
3514  return cinder(id(nuc));
3515 }
3516 
3517 //
3518 // Cinder -> Id
3519 //
3521  int ssss = nuc % 10;
3522  int aaazzz = nuc / 10;
3523  int zzz = aaazzz % 1000;
3524  int aaa = aaazzz / 1000;
3525  return (zzz * 10000000) + (aaa * 10000) + ssss;
3526 }
3527 
3528 
3529 int pyne::nucname::cinder_to_id(const char * nuc) {
3530  return cinder_to_id(std::string(nuc));
3531 }
3532 
3533 
3535  return cinder_to_id(pyne::to_int(nuc));
3536 }
3537 
3538 
3539 
3540 
3541 /**********************/
3542 /*** ALARA functions ***/
3543 /**********************/
3545  int nucid = id(nuc);
3546  std::string newnuc = "";
3547  std::string ll = "";
3548 
3549  int zzz = nucid / 10000000;
3550  int ssss = nucid % 10000;
3551  int aaassss = nucid % 10000000;
3552  int aaa = aaassss / 10000;
3553 
3554  // Make sure the LL value is correct
3555  if (0 == zz_name.count(zzz))
3556  throw NotANuclide(nuc, nucid);
3557 
3558  // Add LL, in lower case
3559  ll += zz_name[zzz];
3560 
3561  for(int i = 0; ll[i] != '\0'; i++)
3562  ll[i] = tolower(ll[i]);
3563  newnuc += ll;
3564 
3565  // Add A-number
3566  if (0 < aaassss){
3567  newnuc += ":";
3568  newnuc += pyne::to_str(aaa);
3569  }
3570 
3571  // Note, ALARA input format does not use metastable flag
3572  return newnuc;
3573 }
3574 
3575 
3577  std::string newnuc (nuc);
3578  return alara(newnuc);
3579 }
3580 
3581 
3583  return alara(id(nuc));
3584 }
3585 
3586 
3587 //
3588 // Cinder -> Id
3589 //
3590 //int pyne::nucname::alara_to_id(int nuc)
3591 //{
3592 // Not Possible
3593 //}
3594 
3595 
3596 int pyne::nucname::alara_to_id(const char * nuc) {
3597  return alara_to_id(std::string(nuc));
3598 }
3599 
3600 
3602  if (nuc.empty())
3603  throw NotANuclide(nuc, "<empty>");
3604  int nucid;
3605  nuc = pyne::to_upper(pyne::remove_characters(nuc, ":"));
3606  std::string elem_name;
3607  int nuclen = nuc.length();
3608 
3609  // Nuclide is probably in name form, or some variation therein
3611 
3612  // natural element form, a la 'U' -> 920000000
3613  if (anum_str.empty()) {
3614  elem_name = pyne::capitalize(nuc);
3615  if (0 < name_zz.count(elem_name))
3616  return 10000000 * name_zz[elem_name];
3617  }
3618  nucid = pyne::to_int(anum_str) * 10000;
3619 
3620  // Add the Z-number
3621  elem_name = pyne::remove_characters(nuc, pyne::digits);
3622  elem_name = pyne::capitalize(elem_name);
3623  if (0 < name_zz.count(elem_name))
3624  nucid = (10000000 * name_zz[elem_name]) + nucid;
3625  else
3626  throw NotANuclide(nuc, nucid);
3627  return nucid;
3628 }
3629 
3630 
3631 
3632 
3633 /***********************/
3634 /*** SZA functions ***/
3635 /***********************/
3636 int pyne::nucname::sza(int nuc) {
3637  int nucid = id(nuc);
3638  int zzzaaa = nucid / 10000;
3639  int sss = nucid % 10000;
3640  return sss * 1000000 + zzzaaa;
3641 }
3642 
3643 
3644 int pyne::nucname::sza(const char * nuc) {
3645  std::string newnuc (nuc);
3646  return sza(newnuc);
3647 }
3648 
3649 
3651  return sza(id(nuc));
3652 }
3653 
3654 
3656  int sss = nuc / 1000000;
3657  int zzzaaa = nuc % 1000000;
3658  if (5 < sss){
3659  // Unphysical metastable state warning
3660  warning("You have indicated a metastable state of " + pyne::to_str(sss) + ". Metastable state above 5, possibly unphysical. ");
3661  }
3662  return zzzaaa * 10000 + sss;
3663 }
3664 
3665 
3666 int pyne::nucname::sza_to_id(const char * nuc) {
3667  std::string newnuc (nuc);
3668  return sza_to_id(newnuc);
3669 }
3670 
3671 
3673  return sza_to_id(pyne::to_int(nuc));
3674 }
3675 
3676 
3678  for (int i = 0; i < TOTAL_STATE_MAPS; ++i) {
3680  }
3681 }
3682 
3684  int zzzaaa = (state / 10000) * 10000;
3685  int state_number = state % 10000;
3686  if (state_number == 0) return state;
3687  std::map<int, int>::iterator nuc_iter, nuc_end;
3688 
3689  nuc_iter = state_id_map.find(state);
3690  nuc_end = state_id_map.end();
3691  if (nuc_iter != nuc_end){
3692  int m = (*nuc_iter).second;
3693  return zzzaaa + m;
3694  }
3695 
3696  if (state_id_map.empty()) {
3697  _load_state_map();
3698  return state_id_to_id(state);
3699  }
3700  throw IndeterminateNuclideForm(state, "no matching metastable state");
3701 }
3702 
3703 
3705  int zzzaaa = (nuc_id / 10000) * 10000;
3706  int state = nuc_id % 10000;
3707  if (state == 0) return nuc_id;
3708  std::map<int, int>::iterator nuc_iter, nuc_end, it;
3709 
3710  nuc_iter = state_id_map.lower_bound(nuc_id);
3711  nuc_end = state_id_map.upper_bound(nuc_id + 10000);
3712  for (it = nuc_iter; it!= nuc_end; ++it){
3713  if (state == it->second) {
3714  return it->first;
3715  }
3716  }
3717  int m = (*nuc_iter).second;
3718 
3719  if (state_id_map.empty()) {
3720  _load_state_map();
3721  return id_to_state_id(nuc_id);
3722  }
3723  throw IndeterminateNuclideForm(state, "no matching state id");
3724 }
3725 
3726 
3727 /************************/
3728 /*** ENSDF functions ***/
3729 /************************/
3730 //
3731 // ENSDF -> Id
3732 //
3733 
3734 int pyne::nucname::ensdf_to_id(const char * nuc) {
3735  return ensdf_to_id(std::string(nuc));
3736 }
3737 
3739  if (nuc.size() < 4) {
3740  return nucname::id(nuc);
3741  } else if (std::isdigit(nuc[3])) {
3742  int aaa = to_int(nuc.substr(0, 3));
3743  int zzz;
3744  std::string xx_str = nuc.substr(3,2);
3745  zzz = to_int(xx_str) + 100;
3746  int nid = 10000 * aaa + 10000000 * zzz;
3747  return nid;
3748  } else {
3749  return nucname::id(nuc);
3750  }
3751 
3752 }
3753 
3754 //
3755 // end of src/nucname.cpp
3756 //
3757 
3758 
3759 //
3760 // start of src/rxname.cpp
3761 //
3762 #ifndef PYNE_IS_AMALGAMATED
3763 #include "rxname.h"
3764 #endif
3765 
3767  "total",
3768  "scattering",
3769  "elastic",
3770  "nonelastic",
3771  "n",
3772  "misc",
3773  "continuum",
3774  "z_2nd",
3775  "z_2n",
3776  "z_2n_0",
3777  "z_2n_1",
3778  "z_2n_2",
3779  "z_3n",
3780  "z_3n_0",
3781  "z_3n_1",
3782  "z_3n_2",
3783  "fission",
3784  "fission_first",
3785  "fission_second",
3786  "fission_third",
3787  "na",
3788  "na_0",
3789  "na_1",
3790  "na_2",
3791  "n3a",
3792  "z_2na",
3793  "z_3na",
3794  "absorption",
3795  "np",
3796  "np_0",
3797  "np_1",
3798  "np_2",
3799  "npd",
3800  "n2a",
3801  "z_2n2a",
3802  "nd",
3803  "nd_0",
3804  "nd_1",
3805  "nd_2",
3806  "nt",
3807  "nt_0",
3808  "nt_1",
3809  "nt_2",
3810  "nHe3",
3811  "nHe3_0",
3812  "nHe3_1",
3813  "nHe3_2",
3814  "nd3a",
3815  "nt2a",
3816  "z_4n",
3817  "z_4n_0",
3818  "z_4n_1",
3819  "fission_fourth",
3820  "z_2np",
3821  "z_3np",
3822  "n2p",
3823  "npa",
3824  "n_0",
3825  "n_1",
3826  "n_2",
3827  "n_3",
3828  "n_4",
3829  "n_5",
3830  "n_6",
3831  "n_7",
3832  "n_8",
3833  "n_9",
3834  "n_10",
3835  "n_11",
3836  "n_12",
3837  "n_13",
3838  "n_14",
3839  "n_15",
3840  "n_16",
3841  "n_17",
3842  "n_18",
3843  "n_19",
3844  "n_20",
3845  "n_21",
3846  "n_22",
3847  "n_23",
3848  "n_24",
3849  "n_25",
3850  "n_26",
3851  "n_27",
3852  "n_28",
3853  "n_29",
3854  "n_30",
3855  "n_31",
3856  "n_32",
3857  "n_33",
3858  "n_34",
3859  "n_35",
3860  "n_36",
3861  "n_37",
3862  "n_38",
3863  "n_39",
3864  "n_40",
3865  "n_continuum",
3866  "disappearance",
3867  "gamma",
3868  "gamma_0",
3869  "gamma_1",
3870  "gamma_2",
3871  "p",
3872  "d",
3873  "t",
3874  "He3",
3875  "a",
3876  "z_2a",
3877  "z_3a",
3878  "z_2p",
3879  "z_2p_0",
3880  "z_2p_1",
3881  "z_2p_2",
3882  "pa",
3883  "t2a",
3884  "d2a",
3885  "pd",
3886  "pt",
3887  "da",
3888  "resonance_parameters",
3889  "n_total",
3890  "gamma_total",
3891  "p_total",
3892  "d_total",
3893  "t_total",
3894  "He3_total",
3895  "a_total",
3896  "pionp",
3897  "pion0",
3898  "pionm",
3899  "muonp",
3900  "muonm",
3901  "kaonp",
3902  "kaon0_long",
3903  "kaon0_short",
3904  "kaonm",
3905  "antip",
3906  "antin",
3907  "mubar",
3908  "epsilon",
3909  "y",
3910  "erel_total",
3911  "erel_elastic",
3912  "erel_nonelastic",
3913  "erel_n",
3914  "erel_misc",
3915  "erel_continuum",
3916  "erel_2nd",
3917  "erel_2n",
3918  "erel_3n",
3919  "erel_fission",
3920  "erel_fission_first",
3921  "erel_fission_second",
3922  "erel_fission_third",
3923  "erel_na",
3924  "erel_n3a",
3925  "erel_2na",
3926  "erel_3na",
3927  "erel_absorption",
3928  "erel_np",
3929  "erel_n2a",
3930  "erel_2n2a",
3931  "erel_nd",
3932  "erel_nt",
3933  "erel_nHe3",
3934  "erel_nd3a",
3935  "erel_nt2a",
3936  "erel_4n",
3937  "erel_fission_fourth",
3938  "erel_2np",
3939  "erel_3np",
3940  "erel_n2p",
3941  "erel_npa",
3942  "erel_n_0",
3943  "erel_n_1",
3944  "erel_n_2",
3945  "erel_n_3",
3946  "erel_n_4",
3947  "erel_n_5",
3948  "erel_n_6",
3949  "erel_n_7",
3950  "erel_n_8",
3951  "erel_n_9",
3952  "erel_n_10",
3953  "erel_n_11",
3954  "erel_n_12",
3955  "erel_n_13",
3956  "erel_n_14",
3957  "erel_n_15",
3958  "erel_n_16",
3959  "erel_n_17",
3960  "erel_n_18",
3961  "erel_n_19",
3962  "erel_n_20",
3963  "erel_n_21",
3964  "erel_n_22",
3965  "erel_n_23",
3966  "erel_n_24",
3967  "erel_n_25",
3968  "erel_n_26",
3969  "erel_n_27",
3970  "erel_n_28",
3971  "erel_n_29",
3972  "erel_n_30",
3973  "erel_n_31",
3974  "erel_n_32",
3975  "erel_n_33",
3976  "erel_n_34",
3977  "erel_n_35",
3978  "erel_n_36",
3979  "erel_n_37",
3980  "erel_n_38",
3981  "erel_n_39",
3982  "erel_n_40",
3983  "erel_n_continuum",
3984  "erel_disappearance",
3985  "erel_gamma",
3986  "erel_p",
3987  "erel_d",
3988  "erel_t",
3989  "erel_He3",
3990  "erel_a",
3991  "erel_2a",
3992  "erel_3a",
3993  "erel_2p",
3994  "erel_pa",
3995  "erel_t2a",
3996  "erel_d2a",
3997  "erel_pd",
3998  "erel_pt",
3999  "erel_da",
4000  "damage",
4001  "heading",
4002  "nubar",
4003  "fission_product_yield_independent",
4004  "nubar_delayed",
4005  "nubar_prompt",
4006  "decay",
4007  "energy_per_fission",
4008  "fission_product_yield_cumulative",
4009  "gamma_delayed",
4010  "stopping_power",
4011  "photon_total",
4012  "photon_coherent",
4013  "photon_incoherent",
4014  "scattering_factor_imag",
4015  "scattering_factor_real",
4016  "pair_prod_elec",
4017  "pair_prod",
4018  "pair_prod_nuc",
4019  "absorption_photoelectric",
4020  "photoexcitation",
4021  "scattering_electroatomic",
4022  "bremsstrahlung",
4023  "excitation_electroatomic",
4024  "atomic_relaxation",
4025  "k_photoelectric",
4026  "l1_photoelectric",
4027  "l2_photoelectric",
4028  "l3_photoelectric",
4029  "m1_photoelectric",
4030  "m2_photoelectric",
4031  "m3_photoelectric",
4032  "m4_photoelectric",
4033  "m5_photoelectric",
4034  "n1_photoelectric",
4035  "n2_photoelectric",
4036  "n3_photoelectric",
4037  "n4_photoelectric",
4038  "n5_photoelectric",
4039  "n6_photoelectric",
4040  "n7_photoelectric",
4041  "o1_photoelectric",
4042  "o2_photoelectric",
4043  "o3_photoelectric",
4044  "o4_photoelectric",
4045  "o5_photoelectric",
4046  "o6_photoelectric",
4047  "o7_photoelectric",
4048  "o8_photoelectric",
4049  "o9_photoelectric",
4050  "p1_photoelectric",
4051  "p2_photoelectric",
4052  "p3_photoelectric",
4053  "p4_photoelectric",
4054  "p5_photoelectric",
4055  "p6_photoelectric",
4056  "p7_photoelectric",
4057  "p8_photoelectric",
4058  "p9_photoelectric",
4059  "p10_photoelectric",
4060  "p11_photoelectric",
4061  "q1_photoelectric",
4062  "q2_photoelectric",
4063  "q3_photoelectric",
4064  "p_0",
4065  "p_1",
4066  "p_2",
4067  "p_3",
4068  "p_4",
4069  "p_5",
4070  "p_6",
4071  "p_7",
4072  "p_8",
4073  "p_9",
4074  "p_10",
4075  "p_11",
4076  "p_12",
4077  "p_13",
4078  "p_14",
4079  "p_15",
4080  "p_16",
4081  "p_17",
4082  "p_18",
4083  "p_19",
4084  "p_20",
4085  "p_21",
4086  "p_22",
4087  "p_23",
4088  "p_24",
4089  "p_25",
4090  "p_26",
4091  "p_27",
4092  "p_28",
4093  "p_29",
4094  "p_30",
4095  "p_31",
4096  "p_32",
4097  "p_33",
4098  "p_34",
4099  "p_35",
4100  "p_36",
4101  "p_37",
4102  "p_38",
4103  "p_39",
4104  "p_40",
4105  "p_41",
4106  "p_42",
4107  "p_43",
4108  "p_44",
4109  "p_45",
4110  "p_46",
4111  "p_47",
4112  "p_48",
4113  "p_continuum",
4114  "d_0",
4115  "d_1",
4116  "d_2",
4117  "d_3",
4118  "d_4",
4119  "d_5",
4120  "d_6",
4121  "d_7",
4122  "d_8",
4123  "d_9",
4124  "d_10",
4125  "d_11",
4126  "d_12",
4127  "d_13",
4128  "d_14",
4129  "d_15",
4130  "d_16",
4131  "d_17",
4132  "d_18",
4133  "d_19",
4134  "d_20",
4135  "d_21",
4136  "d_22",
4137  "d_23",
4138  "d_24",
4139  "d_25",
4140  "d_26",
4141  "d_27",
4142  "d_28",
4143  "d_29",
4144  "d_30",
4145  "d_31",
4146  "d_32",
4147  "d_33",
4148  "d_34",
4149  "d_35",
4150  "d_36",
4151  "d_37",
4152  "d_38",
4153  "d_39",
4154  "d_40",
4155  "d_41",
4156  "d_42",
4157  "d_43",
4158  "d_44",
4159  "d_45",
4160  "d_46",
4161  "d_47",
4162  "d_48",
4163  "d_continuum",
4164  "t_0",
4165  "t_1",
4166  "t_2",
4167  "t_3",
4168  "t_4",
4169  "t_5",
4170  "t_6",
4171  "t_7",
4172  "t_8",
4173  "t_9",
4174  "t_10",
4175  "t_11",
4176  "t_12",
4177  "t_13",
4178  "t_14",
4179  "t_15",
4180  "t_16",
4181  "t_17",
4182  "t_18",
4183  "t_19",
4184  "t_20",
4185  "t_21",
4186  "t_22",
4187  "t_23",
4188  "t_24",
4189  "t_25",
4190  "t_26",
4191  "t_27",
4192  "t_28",
4193  "t_29",
4194  "t_30",
4195  "t_31",
4196  "t_32",
4197  "t_33",
4198  "t_34",
4199  "t_35",
4200  "t_36",
4201  "t_37",
4202  "t_38",
4203  "t_39",
4204  "t_40",
4205  "t_41",
4206  "t_42",
4207  "t_43",
4208  "t_44",
4209  "t_45",
4210  "t_46",
4211  "t_47",
4212  "t_48",
4213  "t_continuum",
4214  "He3_0",
4215  "He3_1",
4216  "He3_2",
4217  "He3_3",
4218  "He3_4",
4219  "He3_5",
4220  "He3_6",
4221  "He3_7",
4222  "He3_8",
4223  "He3_9",
4224  "He3_10",
4225  "He3_11",
4226  "He3_12",
4227  "He3_13",
4228  "He3_14",
4229  "He3_15",
4230  "He3_16",
4231  "He3_17",
4232  "He3_18",
4233  "He3_19",
4234  "He3_20",
4235  "He3_21",
4236  "He3_22",
4237  "He3_23",
4238  "He3_24",
4239  "He3_25",
4240  "He3_26",
4241  "He3_27",
4242  "He3_28",
4243  "He3_29",
4244  "He3_30",
4245  "He3_31",
4246  "He3_32",
4247  "He3_33",
4248  "He3_34",
4249  "He3_35",
4250  "He3_36",
4251  "He3_37",
4252  "He3_38",
4253  "He3_39",
4254  "He3_40",
4255  "He3_41",
4256  "He3_42",
4257  "He3_43",
4258  "He3_44",
4259  "He3_45",
4260  "He3_46",
4261  "He3_47",
4262  "He3_48",
4263  "He3_continuum",
4264  "a_0",
4265  "a_1",
4266  "a_2",
4267  "a_3",
4268  "a_4",
4269  "a_5",
4270  "a_6",
4271  "a_7",
4272  "a_8",
4273  "a_9",
4274  "a_10",
4275  "a_11",
4276  "a_12",
4277  "a_13",
4278  "a_14",
4279  "a_15",
4280  "a_16",
4281  "a_17",
4282  "a_18",
4283  "a_19",
4284  "a_20",
4285  "a_21",
4286  "a_22",
4287  "a_23",
4288  "a_24",
4289  "a_25",
4290  "a_26",
4291  "a_27",
4292  "a_28",
4293  "a_29",
4294  "a_30",
4295  "a_31",
4296  "a_32",
4297  "a_33",
4298  "a_34",
4299  "a_35",
4300  "a_36",
4301  "a_37",
4302  "a_38",
4303  "a_39",
4304  "a_40",
4305  "a_41",
4306  "a_42",
4307  "a_43",
4308  "a_44",
4309  "a_45",
4310  "a_46",
4311  "a_47",
4312  "a_48",
4313  "a_continuum",
4314  "lumped_covar",
4315  "excited",
4316  "bminus",
4317  "bplus",
4318  "ec",
4319  "bminus_n",
4320  "bminus_a",
4321  "it",
4322  "bplus_a",
4323  "ec_bplus",
4324  "bplus_p",
4325  "bminus_2n",
4326  "bminus_3n",
4327  "bminus_4n",
4328  "ecp",
4329  "eca",
4330  "bplus_2p",
4331  "ec_2p",
4332  "decay_2bminus",
4333  "bminus_p",
4334  "decay_14c",
4335  "bplus_3p",
4336  "sf",
4337  "decay_2bplus",
4338  "decay_2ec"
4339  };
4340 std::set<std::string> pyne::rxname::names(pyne::rxname::_names,
4342 
4343 
4344 std::map<std::string, unsigned int> pyne::rxname::altnames;
4345 std::map<unsigned int, std::string> pyne::rxname::id_name;
4346 std::map<std::string, unsigned int> pyne::rxname::name_id;
4347 std::map<unsigned int, unsigned int> pyne::rxname::id_mt;
4348 std::map<unsigned int, unsigned int> pyne::rxname::mt_id;
4349 std::map<unsigned int, std::string> pyne::rxname::labels;
4350 std::map<unsigned int, std::string> pyne::rxname::docs;
4351 std::map<std::pair<std::string, int>, unsigned int> pyne::rxname::offset_id;
4352 std::map<std::pair<std::string, unsigned int>, int> pyne::rxname::id_offset;
4353 
4355  using std::make_pair;
4356  std::string rx;
4357  unsigned int rxid;
4358  unsigned int _mts [NUM_RX_NAMES] = {
4359  1,
4360  0,
4361  2,
4362  3,
4363  4,
4364  5,
4365  10,
4366  11,
4367  16,
4368  0,
4369  0,
4370  0,
4371  17,
4372  0,
4373  0,
4374  0,
4375  18,
4376  19,
4377  20,
4378  21,
4379  22,
4380  0,
4381  0,
4382  0,
4383  23,
4384  24,
4385  25,
4386  27,
4387  28,
4388  0,
4389  0,
4390  0,
4391  0,
4392  29,
4393  30,
4394  32,
4395  0,
4396  0,
4397  0,
4398  33,
4399  0,
4400  0,
4401  0,
4402  34,
4403  0,
4404  0,
4405  0,
4406  35,
4407  36,
4408  37,
4409  0,
4410  0,
4411  38,
4412  41,
4413  42,
4414  44,
4415  45,
4416  50,
4417  51,
4418  52,
4419  53,
4420  54,
4421  55,
4422  56,
4423  57,
4424  58,
4425  59,
4426  60,
4427  61,
4428  62,
4429  63,
4430  64,
4431  65,
4432  66,
4433  67,
4434  68,
4435  69,
4436  70,
4437  71,
4438  72,
4439  73,
4440  74,
4441  75,
4442  76,
4443  77,
4444  78,
4445  79,
4446  80,
4447  81,
4448  82,
4449  83,
4450  84,
4451  85,
4452  86,
4453  87,
4454  88,
4455  89,
4456  90,
4457  91,
4458  101,
4459  102,
4460  0,
4461  0,
4462  0,
4463  103,
4464  104,
4465  105,
4466  106,
4467  107,
4468  108,
4469  109,
4470  111,
4471  0,
4472  0,
4473  0,
4474  112,
4475  113,
4476  114,
4477  115,
4478  116,
4479  117,
4480  151,
4481  201,
4482  202,
4483  203,
4484  204,
4485  205,
4486  206,
4487  207,
4488  208,
4489  209,
4490  210,
4491  211,
4492  212,
4493  213,
4494  214,
4495  215,
4496  216,
4497  217,
4498  218,
4499  251,
4500  252,
4501  253,
4502  301,
4503  302,
4504  303,
4505  304,
4506  305,
4507  310,
4508  311,
4509  316,
4510  317,
4511  318,
4512  319,
4513  320,
4514  321,
4515  322,
4516  323,
4517  324,
4518  325,
4519  327,
4520  328,
4521  329,
4522  330,
4523  332,
4524  333,
4525  334,
4526  335,
4527  336,
4528  337,
4529  338,
4530  341,
4531  342,
4532  344,
4533  345,
4534  350,
4535  351,
4536  352,
4537  353,
4538  354,
4539  355,
4540  356,
4541  357,
4542  358,
4543  359,
4544  360,
4545  361,
4546  362,
4547  363,
4548  364,
4549  365,
4550  366,
4551  367,
4552  368,
4553  369,
4554  370,
4555  371,
4556  372,
4557  373,
4558  374,
4559  375,
4560  376,
4561  377,
4562  378,
4563  379,
4564  380,
4565  381,
4566  382,
4567  383,
4568  384,
4569  385,
4570  386,
4571  387,
4572  388,
4573  389,
4574  390,
4575  391,
4576  401,
4577  402,
4578  403,
4579  404,
4580  405,
4581  406,
4582  407,
4583  408,
4584  409,
4585  411,
4586  412,
4587  413,
4588  414,
4589  415,
4590  416,
4591  417,
4592  444,
4593  451,
4594  452,
4595  454,
4596  455,
4597  456,
4598  457,
4599  458,
4600  459,
4601  460,
4602  500,
4603  501,
4604  502,
4605  504,
4606  505,
4607  506,
4608  515,
4609  516,
4610  517,
4611  522,
4612  523,
4613  526,
4614  527,
4615  528,
4616  533,
4617  534,
4618  535,
4619  536,
4620  537,
4621  538,
4622  539,
4623  540,
4624  541,
4625  542,
4626  543,
4627  544,
4628  545,
4629  546,
4630  547,
4631  548,
4632  549,
4633  550,
4634  551,
4635  552,
4636  553,
4637  554,
4638  555,
4639  556,
4640  557,
4641  558,
4642  559,
4643  560,
4644  561,
4645  562,
4646  563,
4647  564,
4648  565,
4649  566,
4650  567,
4651  568,
4652  569,
4653  570,
4654  571,
4655  572,
4656  600,
4657  601,
4658  602,
4659  603,
4660  604,
4661  605,
4662  606,
4663  607,
4664  608,
4665  609,
4666  610,
4667  611,
4668  612,
4669  613,
4670  614,
4671  615,
4672  616,
4673  617,
4674  618,
4675  619,
4676  620,
4677  621,
4678  622,
4679  623,
4680  624,
4681  625,
4682  626,
4683  627,
4684  628,
4685  629,
4686  630,
4687  631,
4688  632,
4689  633,
4690  634,
4691  635,
4692  636,
4693  637,
4694  638,
4695  639,
4696  640,
4697  641,
4698  642,
4699  643,
4700  644,
4701  645,
4702  646,
4703  647,
4704  648,
4705  649,
4706  650,
4707  651,
4708  652,
4709  653,
4710  654,
4711  655,
4712  656,
4713  657,
4714  658,
4715  659,
4716  660,
4717  661,
4718  662,
4719  663,
4720  664,
4721  665,
4722  666,
4723  667,
4724  668,
4725  669,
4726  670,
4727  671,
4728  672,
4729  673,
4730  674,
4731  675,
4732  676,
4733  677,
4734  678,
4735  679,
4736  680,
4737  681,
4738  682,
4739  683,
4740  684,
4741  685,
4742  686,
4743  687,
4744  688,
4745  689,
4746  690,
4747  691,
4748  692,
4749  693,
4750  694,
4751  695,
4752  696,
4753  697,
4754  698,
4755  699,
4756  700,
4757  701,
4758  702,
4759  703,
4760  704,
4761  705,
4762  706,
4763  707,
4764  708,
4765  709,
4766  710,
4767  711,
4768  712,
4769  713,
4770  714,
4771  715,
4772  716,
4773  717,
4774  718,
4775  719,
4776  720,
4777  721,
4778  722,
4779  723,
4780  724,
4781  725,
4782  726,
4783  727,
4784  728,
4785  729,
4786  730,
4787  731,
4788  732,
4789  733,
4790  734,
4791  735,
4792  736,
4793  737,
4794  738,
4795  739,
4796  740,
4797  741,
4798  742,
4799  743,
4800  744,
4801  745,
4802  746,
4803  747,
4804  748,
4805  749,
4806  750,
4807  751,
4808  752,
4809  753,
4810  754,
4811  755,
4812  756,
4813  757,
4814  758,
4815  759,
4816  760,
4817  761,
4818  762,
4819  763,
4820  764,
4821  765,
4822  766,
4823  767,
4824  768,
4825  769,
4826  770,
4827  771,
4828  772,
4829  773,
4830  774,
4831  775,
4832  776,
4833  777,
4834  778,
4835  779,
4836  780,
4837  781,
4838  782,
4839  783,
4840  784,
4841  785,
4842  786,
4843  787,
4844  788,
4845  789,
4846  790,
4847  791,
4848  792,
4849  793,
4850  794,
4851  795,
4852  796,
4853  797,
4854  798,
4855  799,
4856  800,
4857  801,
4858  802,
4859  803,
4860  804,
4861  805,
4862  806,
4863  807,
4864  808,
4865  809,
4866  810,
4867  811,
4868  812,
4869  813,
4870  814,
4871  815,
4872  816,
4873  817,
4874  818,
4875  819,
4876  820,
4877  821,
4878  822,
4879  823,
4880  824,
4881  825,
4882  826,
4883  827,
4884  828,
4885  829,
4886  830,
4887  831,
4888  832,
4889  833,
4890  834,
4891  835,
4892  836,
4893  837,
4894  838,
4895  839,
4896  840,
4897  841,
4898  842,
4899  843,
4900  844,
4901  845,
4902  846,
4903  847,
4904  848,
4905  849,
4906  851,
4907  0,
4908  0,
4909  0,
4910  0,
4911  0,
4912  0,
4913  0,
4914  0,
4915  0,
4916  0,
4917  0,
4918  0,
4919  0,
4920  0,
4921  0,
4922  0,
4923  0,
4924  0,
4925  0,
4926  0,
4927  0,
4928  0,
4929  0,
4930  0
4931  };
4932  std::string _labels[NUM_RX_NAMES] = {
4933  "(z,total)",
4934  "(z,scattering)",
4935  "(z,elastic)",
4936  "(z,nonelastic)",
4937  "(z,n)",
4938  "(misc)",
4939  "(z,continuum)",
4940  "(z,2nd)",
4941  "(z,2n)",
4942  "(z,2n0)",
4943  "(z,2n1)",
4944  "(z,2n2)",
4945  "(z,3n)",
4946  "(z,3n0)",
4947  "(z,3n1)",
4948  "(z,3n2)",
4949  "(z,fission)",
4950  "(z,f)",
4951  "(z,nf)",
4952  "(z,2nf)",
4953  "(z,n+a)",
4954  "(z,n+a0)",
4955  "(z,n+a1)",
4956  "(z,n+a2)",
4957  "(z,n+3a)",
4958  "(z,2n+a)",
4959  "(z,3n+a)",
4960  "(z,abs) Absorption",
4961  "(z,n+p)",
4962  "(z,n+p0)",
4963  "(z,n+p1)",
4964  "(z,n+p2)",
4965  "(z,n+p+d)",
4966  "(z,n+2a)",
4967  "(z,2n+2a)",
4968  "(z,nd)",
4969  "(z,nd0)",
4970  "(z,nd1)",
4971  "(z,nd2)",
4972  "(z,nt)",
4973  "(z,nt0)",
4974  "(z,nt1)",
4975  "(z,nt2)",
4976  "(z,n+He3)",
4977  "(z,n+He3-0)",
4978  "(z,n+He3-1)",
4979  "(z,n+He3-2)",
4980  "(z,n+d+3a)",
4981  "(z,n+t+2a)",
4982  "(z,4n)",
4983  "(z,4n0)",
4984  "(z,4n1)",
4985  "(z,3nf)",
4986  "(z,2n+p)",
4987  "(z,3n+p)",
4988  "(z,n+2p)",
4989  "(z,npa)",
4990  "(z,n0)",
4991  "(z,n1)",
4992  "(z,n2)",
4993  "(z,n3)",
4994  "(z,n4)",
4995  "(z,n5)",
4996  "(z,n6)",
4997  "(z,n7)",
4998  "(z,n8)",
4999  "(z,n9)",
5000  "(z,n10)",
5001  "(z,n11)",
5002  "(z,n12)",
5003  "(z,n13)",
5004  "(z,n14)",
5005  "(z,n15)",
5006  "(z,n16)",
5007  "(z,n17)",
5008  "(z,n18)",
5009  "(z,n19)",
5010  "(z,n20)",
5011  "(z,n21)",
5012  "(z,n22)",
5013  "(z,n23)",
5014  "(z,n24)",
5015  "(z,n25)",
5016  "(z,n26)",
5017  "(z,n27)",
5018  "(z,n28)",
5019  "(z,n29)",
5020  "(z,n30)",
5021  "(z,n31)",
5022  "(z,n32)",
5023  "(z,n33)",
5024  "(z,n34)",
5025  "(z,n35)",
5026  "(z,n36)",
5027  "(z,n37)",
5028  "(z,n38)",
5029  "(z,n39)",
5030  "(z,n40)",
5031  "(z,nc)",
5032  "(z,disap) Neutron disappearance",
5033  "(z,gamma)",
5034  "(z,gamma0)",
5035  "(z,gamma1)",
5036  "(z,gamma2)",
5037  "(z,p)",
5038  "(z,d)",
5039  "(z,t)",
5040  "(z,3He)",
5041  "(z,a)",
5042  "(z,2a)",
5043  "(z,3a)",
5044  "(z,2p)",
5045  "(z,2p0)",
5046  "(z,2p1)",
5047  "(z,2p2)",
5048  "(z,pa)",
5049  "(z,t2a)",
5050  "(z,d2a)",
5051  "(z,pd)",
5052  "(z,pt)",
5053  "(z,da)",
5054  "Resonance Parameters",
5055  "(z,Xn)",
5056  "(z,Xgamma)",
5057  "(z,Xp)",
5058  "(z,Xd)",
5059  "(z,Xt)",
5060  "(z,X3He)",
5061  "(z,Xa)",
5062  "(z,Xpi+) Total pi+ meson production",
5063  "(z,Xpi0) Total pi0 meson production",
5064  "(z,Xpi-) Total pi- meson production",
5065  "(z,Xmu+) Total anti-muon production",
5066  "(z,Xmu-) Total muon production",
5067  "(z,Xk+) Total positive kaon production",
5068  "(z,Xk0long) Total long-lived neutral kaon production",
5069  "(z,Xk0short) Total short-lived neutral kaon production",
5070  "(z,Xk-) Total negative kaon production",
5071  "(z,Xp-) Total anti-proton production",
5072  "(z,Xn-) Total anti-neutron production",
5073  "Average cosine of scattering angle",
5074  "Average logarithmic energy decrement",
5075  "Average xi^2/(2*xi)",
5076  "Energy Release from (z,total)",
5077  "Energy Release from (z,elastic)",
5078  "Energy Release from (z,nonelastic)",
5079  "Energy Release from (z,inelastic)",
5080  "Energy Release from (misc)",
5081  "Energy Release from (z,continuum)",
5082  "Energy Release from (z,2nd)",
5083  "Energy Release from (z,2n)",
5084  "Energy Release from (z,3n)",
5085  "Energy Release from (z,fission)",
5086  "Energy Release from (z,f)",
5087  "Energy Release from (z,nf)",
5088  "Energy Release from (z,2nf)",
5089  "Energy Release from (z,n+a)",
5090  "Energy Release from (z,n+3a)",
5091  "Energy Release from (z,2n+a)",
5092  "Energy Release from (z,3n+a)",
5093  "Energy Release from (z,abs) Absorption",
5094  "Energy Release from (z,n+p)",
5095  "Energy Release from (z,n+2a)",
5096  "Energy Release from (z,2n+2a)",
5097  "Energy Release from (z,nd)",
5098  "Energy Release from (z,nt)",
5099  "Energy Release from (z,n+He3)",
5100  "Energy Release from (z,n+d+3a)",
5101  "Energy Release from (z,n+t+2a)",
5102  "Energy Release from (z,4n)",
5103  "Energy Release from (z,3nf)",
5104  "Energy Release from (z,2n+p)",
5105  "Energy Release from (z,3n+p)",
5106  "Energy Release from (z,n+2p)",
5107  "Energy Release from (z,npa)",
5108  "Energy Release from (z,n0)",
5109  "Energy Release from (z,n1)",
5110  "Energy Release from (z,n2)",
5111  "Energy Release from (z,n3)",
5112  "Energy Release from (z,n4)",
5113  "Energy Release from (z,n5)",
5114  "Energy Release from (z,n6)",
5115  "Energy Release from (z,n7)",
5116  "Energy Release from (z,n8)",
5117  "Energy Release from (z,n9)",
5118  "Energy Release from (z,n10)",
5119  "Energy Release from (z,n11)",
5120  "Energy Release from (z,n12)",
5121  "Energy Release from (z,n13)",
5122  "Energy Release from (z,n14)",
5123  "Energy Release from (z,n15)",
5124  "Energy Release from (z,n16)",
5125  "Energy Release from (z,n17)",
5126  "Energy Release from (z,n18)",
5127  "Energy Release from (z,n19)",
5128  "Energy Release from (z,n20)",
5129  "Energy Release from (z,n21)",
5130  "Energy Release from (z,n22)",
5131  "Energy Release from (z,n23)",
5132  "Energy Release from (z,n24)",
5133  "Energy Release from (z,n25)",
5134  "Energy Release from (z,n26)",
5135  "Energy Release from (z,n27)",
5136  "Energy Release from (z,n28)",
5137  "Energy Release from (z,n29)",
5138  "Energy Release from (z,n30)",
5139  "Energy Release from (z,n31)",
5140  "Energy Release from (z,n32)",
5141  "Energy Release from (z,n33)",
5142  "Energy Release from (z,n34)",
5143  "Energy Release from (z,n35)",
5144  "Energy Release from (z,n36)",
5145  "Energy Release from (z,n37)",
5146  "Energy Release from (z,n38)",
5147  "Energy Release from (z,n39)",
5148  "Energy Release from (z,n40)",
5149  "Energy Release from (z,nc)",
5150  "Energy Release from (z,disap) Neutron disappearance",
5151  "Energy Release from (z,gamma)",
5152  "Energy Release from (z,p)",
5153  "Energy Release from (z,d)",
5154  "Energy Release from (z,t)",
5155  "Energy Release from (z,3He)",
5156  "Energy Release from (z,a)",
5157  "Energy Release from (z,2a)",
5158  "Energy Release from (z,3a)",
5159  "Energy Release from (z,2p)",
5160  "Energy Release from (z,pa)",
5161  "Energy Release from (z,t2a)",
5162  "Energy Release from (z,d2a)",
5163  "Energy Release from (z,pd)",
5164  "Energy Release from (z,pt)",
5165  "Energy Release from (z,da)",
5166  "(damage)",
5167  "Descriptive Data",
5168  "Total Neutrons per Fission",
5169  "Independent fission product yield",
5170  "Delayed Neutron Data",
5171  "Prompt Neutrons per Fission",
5172  "Radioactive Decay Data",
5173  "Energy Release Due to Fission",
5174  "Cumulative Fission Product Yield",
5175  "Delayed Photon Data",
5176  "Total charged-particle stopping power",
5177  "Total photon interaction",
5178  "Photon coherent scattering",
5179  "Photon incoherent scattering",
5180  "Imaginary scattering factor",
5181  "Real scattering factor",
5182  "Pair production, electron field",
5183  "Total pair production",
5184  "Pair production, nuclear field",
5185  "Photoelectric absorption",
5186  "Photo-excitation cross section",
5187  "Electro-atomic scattering",
5188  "Electro-atomic bremsstrahlung",
5189  "Electro-atomic excitation cross section",
5190  "Atomic relaxation data",
5191  "K (1s1/2) subshell",
5192  "L1 (2s1/2) subshell",
5193  "L2 (2p1/2) subshell",
5194  "L3 (2p3/2) subshell",
5195  "M1 (3s1/2) subshell",
5196  "M2 (3p1/2) subshell",
5197  "M3 (3p3/2) subshell",
5198  "M4 (3d1/2) subshell",
5199  "M5 (3d1/2) subshell",
5200  "N1 (4s1/2) subshell",
5201  "N2 (4p1/2) subshell",
5202  "N3 (4p3/2) subshell",
5203  "N4 (4d3/2) subshell",
5204  "N5 (4d5/2) subshell",
5205  "N6 (4f5/2) subshell",
5206  "N7 (4f7/2) subshell",
5207  "O1 (5s1/2) subshell",
5208  "O2 (5p1/2) subshell",
5209  "O3 (5p3/2) subshell",
5210  "O4 (5d3/2) subshell",
5211  "O5 (5d5/2) subshell",
5212  "O6 (5f5/2) subshell",
5213  "O7 (5f7/2) subshell",
5214  "O8 (5g7/2) subshell",
5215  "O9 (5g9/2) subshell",
5216  "P1 (6s1/2) subshell",
5217  "P2 (6p1/2) subshell",
5218  "P3 (6p3/2) subshell",
5219  "P4 (6d3/2) subshell",
5220  "P5 (6d5/2) subshell",
5221  "P6 (6f5/2) subshell",
5222  "P7 (6f7/2) subshell",
5223  "P8 (6g7/2) subshell",
5224  "P9 (6g9/2) subshell",
5225  "P10 (6h9/2) subshell",
5226  "P11 (6h11/2) subshell",
5227  "Q1 (7s1/2) subshell",
5228  "Q2 (7p1/2) subshell",
5229  "Q3 (7p3/2) subshell",
5230  "(z,p0)",
5231  "(z,p1)",
5232  "(z,p2)",
5233  "(z,p3)",
5234  "(z,p4)",
5235  "(z,p5)",
5236  "(z,p6)",
5237  "(z,p7)",
5238  "(z,p8)",
5239  "(z,p9)",
5240  "(z,p10)",
5241  "(z,p11)",
5242  "(z,p12)",
5243  "(z,p13)",
5244  "(z,p14)",
5245  "(z,p15)",
5246  "(z,p16)",
5247  "(z,p17)",
5248  "(z,p18)",
5249  "(z,p19)",
5250  "(z,p20)",
5251  "(z,p21)",
5252  "(z,p22)",
5253  "(z,p23)",
5254  "(z,p24)",
5255  "(z,p25)",
5256  "(z,p26)",
5257  "(z,p27)",
5258  "(z,p28)",
5259  "(z,p29)",
5260  "(z,p30)",
5261  "(z,p31)",
5262  "(z,p32)",
5263  "(z,p33)",
5264  "(z,p34)",
5265  "(z,p35)",
5266  "(z,p36)",
5267  "(z,p37)",
5268  "(z,p38)",
5269  "(z,p39)",
5270  "(z,p40)",
5271  "(z,p41)",
5272  "(z,p42)",
5273  "(z,p43)",
5274  "(z,p44)",
5275  "(z,p45)",
5276  "(z,p46)",
5277  "(z,p47)",
5278  "(z,p48)",
5279  "(z,pc)",
5280  "(z,d0)",
5281  "(z,d1)",
5282  "(z,d2)",
5283  "(z,d3)",
5284  "(z,d4)",
5285  "(z,d5)",
5286  "(z,d6)",
5287  "(z,d7)",
5288  "(z,d8)",
5289  "(z,d9)",
5290  "(z,d10)",
5291  "(z,d11)",
5292  "(z,d12)",
5293  "(z,d13)",
5294  "(z,d14)",
5295  "(z,d15)",
5296  "(z,d16)",
5297  "(z,d17)",
5298  "(z,d18)",
5299  "(z,d19)",
5300  "(z,d20)",
5301  "(z,d21)",
5302  "(z,d22)",
5303  "(z,d23)",
5304  "(z,d24)",
5305  "(z,d25)",
5306  "(z,d26)",
5307  "(z,d27)",
5308  "(z,d28)",
5309  "(z,d29)",
5310  "(z,d30)",
5311  "(z,d31)",
5312  "(z,d32)",
5313  "(z,d33)",
5314  "(z,d34)",
5315  "(z,d35)",
5316  "(z,d36)",
5317  "(z,d37)",
5318  "(z,d38)",
5319  "(z,d39)",
5320  "(z,d40)",
5321  "(z,d41)",
5322  "(z,d42)",
5323  "(z,d43)",
5324  "(z,d44)",
5325  "(z,d45)",
5326  "(z,d46)",
5327  "(z,d47)",
5328  "(z,d48)",
5329  "(z,dc)",
5330  "(z,t0)",
5331  "(z,t1)",
5332  "(z,t2)",
5333  "(z,t3)",
5334  "(z,t4)",
5335  "(z,t5)",
5336  "(z,t6)",
5337  "(z,t7)",
5338  "(z,t8)",
5339  "(z,t9)",
5340  "(z,t10)",
5341  "(z,t11)",
5342  "(z,t12)",
5343  "(z,t13)",
5344  "(z,t14)",
5345  "(z,t15)",
5346  "(z,t16)",
5347  "(z,t17)",
5348  "(z,t18)",
5349  "(z,t19)",
5350  "(z,t20)",
5351  "(z,t21)",
5352  "(z,t22)",
5353  "(z,t23)",
5354  "(z,t24)",
5355  "(z,t25)",
5356  "(z,t26)",
5357  "(z,t27)",
5358  "(z,t28)",
5359  "(z,t29)",
5360  "(z,t30)",
5361  "(z,t31)",
5362  "(z,t32)",
5363  "(z,t33)",
5364  "(z,t34)",
5365  "(z,t35)",
5366  "(z,t36)",
5367  "(z,t37)",
5368  "(z,t38)",
5369  "(z,t39)",
5370  "(z,t40)",
5371  "(z,t41)",
5372  "(z,t42)",
5373  "(z,t43)",
5374  "(z,t44)",
5375  "(z,t45)",
5376  "(z,t46)",
5377  "(z,t47)",
5378  "(z,t48)",
5379  "(z,tc)",
5380  "(z,3He0)",
5381  "(z,3He1)",
5382  "(z,3He2)",
5383  "(z,3He3)",
5384  "(z,3He4)",
5385  "(z,3He5)",
5386  "(z,3He6)",
5387  "(z,3He7)",
5388  "(z,3He8)",
5389  "(z,3He9)",
5390  "(z,3He10)",
5391  "(z,3He11)",
5392  "(z,3He12)",
5393  "(z,3He13)",
5394  "(z,3He14)",
5395  "(z,3He15)",
5396  "(z,3He16)",
5397  "(z,3He17)",
5398  "(z,3He18)",
5399  "(z,3He19)",
5400  "(z,3He20)",
5401  "(z,3He21)",
5402  "(z,3He22)",
5403  "(z,3He23)",
5404  "(z,3He24)",
5405  "(z,3He25)",
5406  "(z,3He26)",
5407  "(z,3He27)",
5408  "(z,3He28)",
5409  "(z,3He29)",
5410  "(z,3He30)",
5411  "(z,3He31)",
5412  "(z,3He32)",
5413  "(z,3He33)",
5414  "(z,3He34)",
5415  "(z,3He35)",
5416  "(z,3He36)",
5417  "(z,3He37)",
5418  "(z,3He38)",
5419  "(z,3He39)",
5420  "(z,3He40)",
5421  "(z,3He41)",
5422  "(z,3He42)",
5423  "(z,3He43)",
5424  "(z,3He44)",
5425  "(z,3He45)",
5426  "(z,3He46)",
5427  "(z,3He47)",
5428  "(z,3He48)",
5429  "(z,3Hec)",
5430  "(z,a0)",
5431  "(z,a1)",
5432  "(z,a2)",
5433  "(z,a3)",
5434  "(z,a4)",
5435  "(z,a5)",
5436  "(z,a6)",
5437  "(z,a7)",
5438  "(z,a8)",
5439  "(z,a9)",
5440  "(z,a10)",
5441  "(z,a11)",
5442  "(z,a12)",
5443  "(z,a13)",
5444  "(z,a14)",
5445  "(z,a15)",
5446  "(z,a16)",
5447  "(z,a17)",
5448  "(z,a18)",
5449  "(z,a19)",
5450  "(z,a20)",
5451  "(z,a21)",
5452  "(z,a22)",
5453  "(z,a23)",
5454  "(z,a24)",
5455  "(z,a25)",
5456  "(z,a26)",
5457  "(z,a27)",
5458  "(z,a28)",
5459  "(z,a29)",
5460  "(z,a30)",
5461  "(z,a31)",
5462  "(z,a32)",
5463  "(z,a33)",
5464  "(z,a34)",
5465  "(z,a35)",
5466  "(z,a36)",
5467  "(z,a37)",
5468  "(z,a38)",
5469  "(z,a39)",
5470  "(z,a40)",
5471  "(z,a41)",
5472  "(z,a42)",
5473  "(z,a43)",
5474  "(z,a44)",
5475  "(z,a45)",
5476  "(z,a46)",
5477  "(z,a47)",
5478  "(z,a48)",
5479  "(z,ac)",
5480  "Lumped Covariances",
5481  "Any Excited State",
5482  "(z,b-)",
5483  "(z,b+)",
5484  "(z,ec)",
5485  "(z,b-n)",
5486  "(z,b-a)",
5487  "(z,it)",
5488  "(z,b+a)",
5489  "(z,ec+b+)",
5490  "(z,b+p)",
5491  "(z,b-2n)",
5492  "(z,b-3n)",
5493  "(z,b-4n)",
5494  "(z,ecp)",
5495  "(z,eca)",
5496  "(z,b+2p)",
5497  "(z,ec2p)",
5498  "(z,2b-)",
5499  "(z,b-p)",
5500  "(z,14c)",
5501  "(z,b+3p)",
5502  "(z,sf)",
5503  "(z,2b+)",
5504  "(z,2ec)"
5505  };
5506  std::string _docs[NUM_RX_NAMES] = {
5507  "(n,total) Neutron total",
5508  "Total scattering",
5509  "(z,z0) Elastic scattering",
5510  "(z,nonelas) Nonelastic neutron",
5511  "(z,n) One neutron in exit channel",
5512  "(z,anything) Miscellaneous",
5513  "(z,contin) Total continuum reaction",
5514  "(z,2nd) Production of 2n and d",
5515  "(z,2n) Production of 2n",
5516  "(z,2n0) Production of 2n, ground state",
5517  "(z,2n1) Production of 2n, 1st excited state",
5518  "(z,2n2) Production of 2n, 2nd excited state",
5519  "(z,3n) Production of 3n",
5520  "(z,3n0) Production of 3n, ground state",
5521  "(z,3n1) Production of 3n, 1st excited state",
5522  "(z,3n2) Production of 3n, 2nd excited state",
5523  "(z,fiss) Particle-induced fission",
5524  "(z,f) First-chance fission",
5525  "(z,nf) Second chance fission",
5526  "(z,2nf) Third-chance fission",
5527  "(z,na) Production of n and alpha",
5528  "(z,na0) Production of n and alpha, ground state",
5529  "(z,na1) Production of n and alpha, 1st excited state",
5530  "(z,na2) Production of n and alpha, 2nd excited state",
5531  "(z,n3a) Production of n and 3 alphas",
5532  "(z,2na) Production of 2n and alpha",
5533  "(z,3na) Production of 3n and alpha",
5534  "(n,abs) Absorption",
5535  "(z,np) Production of n and p",
5536  "(z,np0) Production of n and p, ground state",
5537  "(z,np1) Production of n and p, 1st excited state",
5538  "(z,np2) Production of n and p, 2nd excited state",
5539  "(z,npd) Production of n, p, and d",
5540  "(z,n2a) Production of n and 2 alphas",
5541  "(z,2n2a) Production of 2n and 2 alphas",
5542  "(z,nd) Production of n and d",
5543  "(z,nd0) Production of n and d, ground state",
5544  "(z,nd1) Production of n and d, 1st excited state",
5545  "(z,nd2) Production of n and d, 2nd excited state",
5546  "(z,nt) Production of n and t",
5547  "(z,nt0) Production of n and t, ground state",
5548  "(z,nt1) Production of n and t, 1st excited state",
5549  "(z,nt2) Production of n and t, 2nd excited state",
5550  "(z,n3He) Production of n and He-3",
5551  "(z,n3He-0) Production of n and He-3, ground state",
5552  "(z,n3He-1) Production of n and He-3, 1st excited state",
5553  "(z,n3He-2) Production of n and He-3, 2nd excited state",
5554  "(z,nd2a) Production of n, d, and alpha",
5555  "(z,nt2a) Production of n, t, and 2 alphas",
5556  "(z,4n) Production of 4n",
5557  "(z,4n0) Production of 4n, ground state",
5558  "(z,4n1) Production of 4n, 1st excited state",
5559  "(z,3nf) Fourth-chance fission",
5560  "(z,2np) Production of 2n and p",
5561  "(z,3np) Production of 3n and p",
5562  "(z,n2p) Production of n and 2p",
5563  "(z,npa) Production of n, p, and alpha",
5564  "(z,n0) Production of n, ground state",
5565  "(z,n1) Production of n, 1st excited state",
5566  "(z,n2) Production of n, 2nd excited state",
5567  "(z,n3) Production of n, 3rd excited state",
5568  "(z,n4) Production of n, 4th excited state",
5569  "(z,n5) Production of n, 5th excited state",
5570  "(z,n6) Production of n, 6th excited state",
5571  "(z,n7) Production of n, 7th excited state",
5572  "(z,n8) Production of n, 8th excited state",
5573  "(z,n9) Production of n, 9th excited state",
5574  "(z,n10) Production of n, 10th excited state",
5575  "(z,n11) Production of n, 11th excited state",
5576  "(z,n12) Production of n, 12th excited state",
5577  "(z,n13) Production of n, 13th excited state",
5578  "(z,n14) Production of n, 14th excited state",
5579  "(z,n15) Production of n, 15th excited state",
5580  "(z,n16) Production of n, 16th excited state",
5581  "(z,n17) Production of n, 17th excited state",
5582  "(z,n18) Production of n, 18th excited state",
5583  "(z,n19) Production of n, 19th excited state",
5584  "(z,n20) Production of n, 20th excited state",
5585  "(z,n21) Production of n, 21st excited state",
5586  "(z,n22) Production of n, 22nd excited state",
5587  "(z,n23) Production of n, 23rd excited state",
5588  "(z,n24) Production of n, 24th excited state",
5589  "(z,n25) Production of n, 25th excited state",
5590  "(z,n26) Production of n, 26th excited state",
5591  "(z,n27) Production of n, 27th excited state",
5592  "(z,n28) Production of n, 28th excited state",
5593  "(z,n29) Production of n, 29th excited state",
5594  "(z,n30) Production of n, 30th excited state",
5595  "(z,n31) Production of n, 31st excited state",
5596  "(z,n32) Production of n, 32nd excited state",
5597  "(z,n33) Production of n, 33rd excited state",
5598  "(z,n34) Production of n, 34th excited state",
5599  "(z,n35) Production of n, 35th excited state",
5600  "(z,n36) Production of n, 36th excited state",
5601  "(z,n37) Production of n, 37th excited state",
5602  "(z,n38) Production of n, 38th excited state",
5603  "(z,n39) Production of n, 39th excited state",
5604  "(z,n40) Production of n, 40th excited state",
5605  "(z,nc) Production of n in continuum",
5606  "(n,disap) Neutron disappearance",
5607  "(z,gamma) Radiative capture",
5608  "(z,gamma0) Radiative capture, ground state",
5609  "(z,gamma1) Radiative capture, 1st excited state",
5610  "(z,gamma2) Radiative capture, 2st excited state",
5611  "(z,p) Production of p",
5612  "(z,d) Production of d",
5613  "(z,t) Production of t",
5614  "(z,3He) Production of He-3",
5615  "(z,a) Production of alpha",
5616  "(z,2a) Production of 2 alphas",
5617  "(z,3a) Production of 3 alphas",
5618  "(z,2p) Production of 2p",
5619  "(z,2p0) Production of 2p, ground state",
5620  "(z,2p1) Production of 2p, 1st excited state",
5621  "(z,2p2) Production of 2p, 2nd excited state",
5622  "(z,pa) Production of p and alpha",
5623  "(z,t2a) Production of t and 2 alphas",
5624  "(z,d2a) Production of d and 2 alphas",
5625  "(z,pd) Production of p and d",
5626  "(z,pt) Production of p and t",
5627  "(z,da) Production of d and a",
5628  "Resonance Parameters",
5629  "(z,Xn) Total neutron production",
5630  "(z,Xgamma) Total gamma production",
5631  "(z,Xp) Total proton production",
5632  "(z,Xd) Total deuteron production",
5633  "(z,Xt) Total triton production",
5634  "(z,X3He) Total He-3 production",
5635  "(z,Xa) Total alpha production",
5636  "(z,Xpi+) Total pi+ meson production",
5637  "(z,Xpi0) Total pi0 meson production",
5638  "(z,Xpi-) Total pi- meson production",
5639  "(z,Xmu+) Total anti-muon production",
5640  "(z,Xmu-) Total muon production",
5641  "(z,Xk+) Total positive kaon production",
5642  "(z,Xk0long) Total long-lived neutral kaon production",
5643  "(z,Xk0short) Total short-lived neutral kaon production",
5644  "(z,Xk-) Total negative kaon production",
5645  "(z,Xp-) Total anti-proton production",
5646  "(z,Xn-) Total anti-neutron production",
5647  "Average cosine of scattering angle",
5648  "Average logarithmic energy decrement",
5649  "Average xi^2/(2*xi)",
5650  "Energy Release from (n,total) Neutron total",
5651  "Energy Release from (z,z0) Elastic scattering",
5652  "Energy Release from (z,nonelas) Nonelastic neutron",
5653  "Energy Release from (z,n) One neutron in exit channel",
5654  "Energy Release from (z,anything) Miscellaneous",
5655  "Energy Release from (z,contin) Total continuum reaction",
5656  "Energy Release from (z,2nd) Production of 2n and d",
5657  "Energy Release from (z,2n) Production of 2n",
5658  "Energy Release from (z,3n) Production of 3n",
5659  "Energy Release from (z,fiss) Particle-induced fission",
5660  "Energy Release from (z,f) First-chance fission",
5661  "Energy Release from (z,nf) Second chance fission",
5662  "Energy Release from (z,2nf) Third-chance fission",
5663  "Energy Release from (z,na) Production of n and alpha",
5664  "Energy Release from (z,n3a) Production of n and 3 alphas",
5665  "Energy Release from (z,2na) Production of 2n and alpha",
5666  "Energy Release from (z,3na) Production of 3n and alpha",
5667  "Energy Release from (n,abs) Absorption",
5668  "Energy Release from (z,np) Production of n and p",
5669  "Energy Release from (z,n2a) Production of n and 2 alphas",
5670  "Energy Release from (z,2n2a) Production of 2n and 2 alphas",
5671  "Energy Release from (z,nd) Production of n and d",
5672  "Energy Release from (z,nt) Production of n and t",
5673  "Energy Release from (z,n3He) Production of n and He-3",
5674  "Energy Release from (z,nd2a) Production of n, d, and alpha",
5675  "Energy Release from (z,nt2a) Production of n, t, and 2 alphas",
5676  "Energy Release from (z,4n) Production of 4n",
5677  "Energy Release from (z,3nf) Fourth-chance fission",
5678  "Energy Release from (z,2np) Production of 2n and p",
5679  "Energy Release from (z,3np) Production of 3n and p",
5680  "Energy Release from (z,n2p) Production of n and 2p",
5681  "Energy Release from (z,npa) Production of n, p, and alpha",
5682  "Energy Release from (z,n0) Production of n, ground state",
5683  "Energy Release from (z,n1) Production of n, 1st excited state",
5684  "Energy Release from (z,n2) Production of n, 2nd excited state",
5685  "Energy Release from (z,n3) Production of n, 3rd excited state",
5686  "Energy Release from (z,n4) Production of n, 4th excited state",
5687  "Energy Release from (z,n5) Production of n, 5th excited state",
5688  "Energy Release from (z,n6) Production of n, 6th excited state",
5689  "Energy Release from (z,n7) Production of n, 7th excited state",
5690  "Energy Release from (z,n8) Production of n, 8th excited state",
5691  "Energy Release from (z,n9) Production of n, 9th excited state",
5692  "Energy Release from (z,n10) Production of n, 10th excited state",
5693  "Energy Release from (z,n11) Production of n, 11th excited state",
5694  "Energy Release from (z,n12) Production of n, 12th excited state",
5695  "Energy Release from (z,n13) Production of n, 13th excited state",
5696  "Energy Release from (z,n14) Production of n, 14th excited state",
5697  "Energy Release from (z,n15) Production of n, 15th excited state",
5698  "Energy Release from (z,n16) Production of n, 16th excited state",
5699  "Energy Release from (z,n17) Production of n, 17th excited state",
5700  "Energy Release from (z,n18) Production of n, 18th excited state",
5701  "Energy Release from (z,n19) Production of n, 19th excited state",
5702  "Energy Release from (z,n20) Production of n, 20th excited state",
5703  "Energy Release from (z,n21) Production of n, 21st excited state",
5704  "Energy Release from (z,n22) Production of n, 22nd excited state",
5705  "Energy Release from (z,n23) Production of n, 23rd excited state",
5706  "Energy Release from (z,n24) Production of n, 24th excited state",
5707  "Energy Release from (z,n25) Production of n, 25th excited state",
5708  "Energy Release from (z,n26) Production of n, 26th excited state",
5709  "Energy Release from (z,n27) Production of n, 27th excited state",
5710  "Energy Release from (z,n28) Production of n, 28th excited state",
5711  "Energy Release from (z,n29) Production of n, 29th excited state",
5712  "Energy Release from (z,n30) Production of n, 30th excited state",
5713  "Energy Release from (z,n31) Production of n, 31st excited state",
5714  "Energy Release from (z,n32) Production of n, 32nd excited state",
5715  "Energy Release from (z,n33) Production of n, 33rd excited state",
5716  "Energy Release from (z,n34) Production of n, 34th excited state",
5717  "Energy Release from (z,n35) Production of n, 35th excited state",
5718  "Energy Release from (z,n36) Production of n, 36th excited state",
5719  "Energy Release from (z,n37) Production of n, 37th excited state",
5720  "Energy Release from (z,n38) Production of n, 38th excited state",
5721  "Energy Release from (z,n39) Production of n, 39th excited state",
5722  "Energy Release from (z,n40) Production of n, 40th excited state",
5723  "Energy Release from (z,nc) Production of n in continuum",
5724  "Energy Release from (n,disap) Neutron disappearance",
5725  "Energy Release from (z,gamma) Radiative capture",
5726  "Energy Release from (z,p) Production of p",
5727  "Energy Release from (z,d) Production of d",
5728  "Energy Release from (z,t) Production of t",
5729  "Energy Release from (z,3He) Production of He-3",
5730  "Energy Release from (z,a) Production of alpha",
5731  "Energy Release from (z,2a) Production of 2 alphas",
5732  "Energy Release from (z,3a) Production of 3 alphas",
5733  "Energy Release from (z,2p) Production of 2p",
5734  "Energy Release from (z,pa) Production of p and alpha",
5735  "Energy Release from (z,t2a) Production of t and 2 alphas",
5736  "Energy Release from (z,d2a) Production of d and 2 alphas",
5737  "Energy Release from (z,pd) Production of p and d",
5738  "Energy Release from (z,pt) Production of p and t",
5739  "Energy Release from (z,da) Production of d and a",
5740  "(damage)",
5741  "Descriptive Data",
5742  "Total Neutrons per Fission",
5743  "Independent fission product yield",
5744  "Delayed Neutron Data",
5745  "Prompt Neutrons per Fission",
5746  "Radioactive Decay Data",
5747  "Energy Release Due to Fission",
5748  "Cumulative Fission Product Yield",
5749  "Delayed Photon Data",
5750  "Total charged-particle stopping power",
5751  "Total photon interaction",
5752  "Photon coherent scattering",
5753  "Photon incoherent scattering",
5754  "Imaginary scattering factor",
5755  "Real scattering factor",
5756  "Pair production, electron field",
5757  "Total pair production",
5758  "Pair production, nuclear field",
5759  "Photoelectric absorption",
5760  "Photo-excitation cross section",
5761  "Electro-atomic scattering",
5762  "Electro-atomic bremsstrahlung",
5763  "Electro-atomic excitation cross section",
5764  "Atomic relaxation data",
5765  "K (1s1/2) subshell",
5766  "L1 (2s1/2) subshell",
5767  "L2 (2p1/2) subshell",
5768  "L3 (2p3/2) subshell",
5769  "M1 (3s1/2) subshell",
5770  "M2 (3p1/2) subshell",
5771  "M3 (3p3/2) subshell",
5772  "M4 (3d1/2) subshell",
5773  "M5 (3d1/2) subshell",
5774  "N1 (4s1/2) subshell",
5775  "N2 (4p1/2) subshell",
5776  "N3 (4p3/2) subshell",
5777  "N4 (4d3/2) subshell",
5778  "N5 (4d5/2) subshell",
5779  "N6 (4f5/2) subshell",
5780  "N7 (4f7/2) subshell",
5781  "O1 (5s1/2) subshell",
5782  "O2 (5p1/2) subshell",
5783  "O3 (5p3/2) subshell",
5784  "O4 (5d3/2) subshell",
5785  "O5 (5d5/2) subshell",
5786  "O6 (5f5/2) subshell",
5787  "O7 (5f7/2) subshell",
5788  "O8 (5g7/2) subshell",
5789  "O9 (5g9/2) subshell",
5790  "P1 (6s1/2) subshell",
5791  "P2 (6p1/2) subshell",
5792  "P3 (6p3/2) subshell",
5793  "P4 (6d3/2) subshell",
5794  "P5 (6d5/2) subshell",
5795  "P6 (6f5/2) subshell",
5796  "P7 (6f7/2) subshell",
5797  "P8 (6g7/2) subshell",
5798  "P9 (6g9/2) subshell",
5799  "P10 (6h9/2) subshell",
5800  "P11 (6h11/2) subshell",
5801  "Q1 (7s1/2) subshell",
5802  "Q2 (7p1/2) subshell",
5803  "Q3 (7p3/2) subshell",
5804  "(n,p0)",
5805  "(n,p1)",
5806  "(n,p2)",
5807  "(n,p3)",
5808  "(n,p4)",
5809  "(n,p5)",
5810  "(n,p6)",
5811  "(n,p7)",
5812  "(n,p8)",
5813  "(n,p9)",
5814  "(n,p10)",
5815  "(n,p11)",
5816  "(n,p12)",
5817  "(n,p13)",
5818  "(n,p14)",
5819  "(n,p15)",
5820  "(n,p16)",
5821  "(n,p17)",
5822  "(n,p18)",
5823  "(n,p19)",
5824  "(n,p20)",
5825  "(n,p21)",
5826  "(n,p22)",
5827  "(n,p23)",
5828  "(n,p24)",
5829  "(n,p25)",
5830  "(n,p26)",
5831  "(n,p27)",
5832  "(n,p28)",
5833  "(n,p29)",
5834  "(n,p30)",
5835  "(n,p31)",
5836  "(n,p32)",
5837  "(n,p33)",
5838  "(n,p34)",
5839  "(n,p35)",
5840  "(n,p36)",
5841  "(n,p37)",
5842  "(n,p38)",
5843  "(n,p39)",
5844  "(n,p40)",
5845  "(n,p41)",
5846  "(n,p42)",
5847  "(n,p43)",
5848  "(n,p44)",
5849  "(n,p45)",
5850  "(n,p46)",
5851  "(n,p47)",
5852  "(n,p48)",
5853  "(n,pc)",
5854  "(n,d0)",
5855  "(n,d1)",
5856  "(n,d2)",
5857  "(n,d3)",
5858  "(n,d4)",
5859  "(n,d5)",
5860  "(n,d6)",
5861  "(n,d7)",
5862  "(n,d8)",
5863  "(n,d9)",
5864  "(n,d10)",
5865  "(n,d11)",
5866  "(n,d12)",
5867  "(n,d13)",
5868  "(n,d14)",
5869  "(n,d15)",
5870  "(n,d16)",
5871  "(n,d17)",
5872  "(n,d18)",
5873  "(n,d19)",
5874  "(n,d20)",
5875  "(n,d21)",
5876  "(n,d22)",
5877  "(n,d23)",
5878  "(n,d24)",
5879  "(n,d25)",
5880  "(n,d26)",
5881  "(n,d27)",
5882  "(n,d28)",
5883  "(n,d29)",
5884  "(n,d30)",
5885  "(n,d31)",
5886  "(n,d32)",
5887  "(n,d33)",
5888  "(n,d34)",
5889  "(n,d35)",
5890  "(n,d36)",
5891  "(n,d37)",
5892  "(n,d38)",
5893  "(n,d39)",
5894  "(n,d40)",
5895  "(n,d41)",
5896  "(n,d42)",
5897  "(n,d43)",
5898  "(n,d44)",
5899  "(n,d45)",
5900  "(n,d46)",
5901  "(n,d47)",
5902  "(n,d48)",
5903  "(n,dc)",
5904  "(z,t0)",
5905  "(z,t1)",
5906  "(z,t2)",
5907  "(z,t3)",
5908  "(z,t4)",
5909  "(z,t5)",
5910  "(z,t6)",
5911  "(z,t7)",
5912  "(z,t8)",
5913  "(z,t9)",
5914  "(z,t10)",
5915  "(z,t11)",
5916  "(z,t12)",
5917  "(z,t13)",
5918  "(z,t14)",
5919  "(z,t15)",
5920  "(z,t16)",
5921  "(z,t17)",
5922  "(z,t18)",
5923  "(z,t19)",
5924  "(z,t20)",
5925  "(z,t21)",
5926  "(z,t22)",
5927  "(z,t23)",
5928  "(z,t24)",
5929  "(z,t25)",
5930  "(z,t26)",
5931  "(z,t27)",
5932  "(z,t28)",
5933  "(z,t29)",
5934  "(z,t30)",
5935  "(z,t31)",
5936  "(z,t32)",
5937  "(z,t33)",
5938  "(z,t34)",
5939  "(z,t35)",
5940  "(z,t36)",
5941  "(z,t37)",
5942  "(z,t38)",
5943  "(z,t39)",
5944  "(z,t40)",
5945  "(z,t41)",
5946  "(z,t42)",
5947  "(z,t43)",
5948  "(z,t44)",
5949  "(z,t45)",
5950  "(z,t46)",
5951  "(z,t47)",
5952  "(z,t48)",
5953  "(n,tc)",
5954  "(n,3He0)",
5955  "(n,3He1)",
5956  "(n,3He2)",
5957  "(n,3He3)",
5958  "(n,3He4)",
5959  "(n,3He5)",
5960  "(n,3He6)",
5961  "(n,3He7)",
5962  "(n,3He8)",
5963  "(n,3He9)",
5964  "(n,3He10)",
5965  "(n,3He11)",
5966  "(n,3He12)",
5967  "(n,3He13)",
5968  "(n,3He14)",
5969  "(n,3He15)",
5970  "(n,3He16)",
5971  "(n,3He17)",
5972  "(n,3He18)",
5973  "(n,3He19)",
5974  "(n,3He20)",
5975  "(n,3He21)",
5976  "(n,3He22)",
5977  "(n,3He23)",
5978  "(n,3He24)",
5979  "(n,3He25)",
5980  "(n,3He26)",
5981  "(n,3He27)",
5982  "(n,3He28)",
5983  "(n,3He29)",
5984  "(n,3He30)",
5985  "(n,3He31)",
5986  "(n,3He32)",
5987  "(n,3He33)",
5988  "(n,3He34)",
5989  "(n,3He35)",
5990  "(n,3He36)",
5991  "(n,3He37)",
5992  "(n,3He38)",
5993  "(n,3He39)",
5994  "(n,3He40)",
5995  "(n,3He41)",
5996  "(n,3He42)",
5997  "(n,3He43)",
5998  "(n,3He44)",
5999  "(n,3He45)",
6000  "(n,3He46)",
6001  "(n,3He47)",
6002  "(n,3He48)",
6003  "(n,3Hec)",
6004  "(z,a0)",
6005  "(z,a1)",
6006  "(z,a2)",
6007  "(z,a3)",
6008  "(z,a4)",
6009  "(z,a5)",
6010  "(z,a6)",
6011  "(z,a7)",
6012  "(z,a8)",
6013  "(z,a9)",
6014  "(z,a10)",
6015  "(z,a11)",
6016  "(z,a12)",
6017  "(z,a13)",
6018  "(z,a14)",
6019  "(z,a15)",
6020  "(z,a16)",
6021  "(z,a17)",
6022  "(z,a18)",
6023  "(z,a19)",
6024  "(z,a20)",
6025  "(z,a21)",
6026  "(z,a22)",
6027  "(z,a23)",
6028  "(z,a24)",
6029  "(z,a25)",
6030  "(z,a26)",
6031  "(z,a27)",
6032  "(z,a28)",
6033  "(z,a29)",
6034  "(z,a30)",
6035  "(z,a31)",
6036  "(z,a32)",
6037  "(z,a33)",
6038  "(z,a34)",
6039  "(z,a35)",
6040  "(z,a36)",
6041  "(z,a37)",
6042  "(z,a38)",
6043  "(z,a39)",
6044  "(z,a40)",
6045  "(z,a41)",
6046  "(z,a42)",
6047  "(z,a43)",
6048  "(z,a44)",
6049  "(z,a45)",
6050  "(z,a46)",
6051  "(z,a47)",
6052  "(z,a48)",
6053  "(n,ac)",
6054  "Lumped-Reaction Covariances",
6055  "production of any excited state nucleus",
6056  "(z,b-)",
6057  "(z,b+)",
6058  "(z,ec)",
6059  "(z,b-n)",
6060  "(z,b-a)",
6061  "(z,it)",
6062  "(z,b+a)",
6063  "(z,ec+b+)",
6064  "(z,b+p)",
6065  "(z,b-2n)",
6066  "(z,b-3n)",
6067  "(z,b-4n)",
6068  "(z,ecp)",
6069  "(z,eca)",
6070  "(z,b+2p)",
6071  "(z,ec2p)",
6072  "(z,2b-)",
6073  "(z,b-p)",
6074  "(z,14c)",
6075  "(z,b+3p)",
6076  "(z,sf)",
6077  "(z,2b+)",
6078  "(z,2ec)"
6079  };
6080 
6081  // fill the maps
6082  for (int i = 0; i < NUM_RX_NAMES; i++) {
6083  rx = _names[i];
6084  rxid = pyne::rxname::hash(rx);
6085  id_name[rxid] = rx;
6086  name_id[rx] = rxid;
6087  if (0 < _mts[i]) {
6088  id_mt[rxid] = _mts[i];
6089  mt_id[_mts[i]] = rxid;
6090  }
6091  labels[rxid] = _labels[i];
6092  docs[rxid] = _docs[i];
6093  }
6094 
6095  // set alternative names
6096  altnames["tot"] = name_id["total"];
6097  altnames["s"] = name_id["scattering"];
6098  altnames["scat"] = name_id["scattering"];
6099  altnames["e"] = name_id["elastic"];
6100  altnames["elas"] = name_id["elastic"];
6101  altnames["i"] = name_id["n"];
6102  altnames["inel"] = name_id["n"];
6103  altnames["inelastic"] = name_id["n"];
6104  altnames["abs"] = name_id["absorption"];
6105  altnames["fis"] = name_id["fission"];
6106  altnames["fiss"] = name_id["fission"];
6107  altnames["alpha"] = name_id["a"];
6108  altnames["deut"] = name_id["d"];
6109  altnames["deuteron"] = name_id["d"];
6110  altnames["deuterium"] = name_id["d"];
6111  altnames["trit"] = name_id["t"];
6112  altnames["triton"] = name_id["t"];
6113  altnames["tritium"] = name_id["t"];
6114  altnames["proton"] = name_id["p"];
6115  altnames["h"] = name_id["He3"]; // 'h' stands for helion
6116  altnames["he3"] = name_id["He3"];
6117  altnames["HE3"] = name_id["He3"];
6118  altnames["3HE"] = name_id["He3"];
6119  altnames["3He"] = name_id["He3"];
6120  altnames["3he"] = name_id["He3"];
6121  altnames["he-3"] = name_id["He3"];
6122  altnames["HE-3"] = name_id["He3"];
6123  altnames["*"] = name_id["excited"];
6124  altnames["2n"] = name_id["z_2n"];
6125  altnames["2p"] = name_id["z_2p"];
6126  altnames["3h"] = name_id["t"];
6127  altnames["g"] = name_id["it"];
6128  altnames["b-"] = name_id["bminus"];
6129  altnames["b+"] = name_id["bplus"];
6130  altnames["b-n"] = name_id["bminus_n"];
6131  altnames["b-a"] = name_id["bminus_a"];
6132  altnames["b+a"] = name_id["bplus_a"];
6133  altnames["ec+b+"] = name_id["ec_bplus"];
6134  altnames["b+p"] = name_id["bplus_p"];
6135  altnames["b-2n"] = name_id["bminus_2n"];
6136  altnames["b-3n"] = name_id["bminus_3n"];
6137  altnames["b-4n"] = name_id["bminus_4n"];
6138  altnames["b+2p"] = name_id["bplus_2p"];
6139  altnames["ec2p"] = name_id["ec_2p"];
6140  altnames["2b-"] = name_id["decay_2bminus"];
6141  altnames["b-p"] = name_id["bminus_p"];
6142  altnames["14c"] = name_id["decay_14c"];
6143  altnames["b+3p"] = name_id["bplus_3p"];
6144  altnames["2b+"] = name_id["decay_2bplus"];
6145  altnames["2ec"] = name_id["decay_2ec"];
6146 
6147 
6148  // set the nuclide difference mappings, offset_id
6149  // offset_id[incident particle type "n", "p", ...][delta Z num][delta A num][rxid]
6150  // offset_id mapping may be ambiquious so they must come before the id_offsets!
6151  // the following should be sorted by (dz, da, ds)
6152  // neutrons:
6153  offset_id[make_pair("n", offset(-4, -8))] = name_id["n2a"];
6154  offset_id[make_pair("n", offset(-4, -7))] = name_id["z_2a"];
6155  offset_id[make_pair("n", offset(-2, -5))] = name_id["z_2na"];
6156  offset_id[make_pair("n", offset(-2, -4))] = name_id["na"];
6157  offset_id[make_pair("n", offset(-2, -4, 1))] = name_id["na_1"];
6158  offset_id[make_pair("n", offset(-2, -4, 2))] = name_id["na_2"];
6159  offset_id[make_pair("n", offset(-2, -3))] = name_id["a"];
6160  offset_id[make_pair("n", offset(-2, -3, 1))] = name_id["a_1"];
6161  offset_id[make_pair("n", offset(-2, -3, 2))] = name_id["a_2"];
6162  offset_id[make_pair("n", offset(-2, -2))] = name_id["He3"];
6163  offset_id[make_pair("n", offset(-2, -2, 1))] = name_id["He3_1"];
6164  offset_id[make_pair("n", offset(-2, -2, 2))] = name_id["He3_2"];
6165  offset_id[make_pair("n", offset(-2, -1))] = name_id["z_2p"];
6166  offset_id[make_pair("n", offset(-2, -1, 1))] = name_id["z_2p_1"];
6167  offset_id[make_pair("n", offset(-2, -1, 2))] = name_id["z_2p_2"];
6168  offset_id[make_pair("n", offset(-1, -3))] = name_id["nt"];
6169  offset_id[make_pair("n", offset(-1, -3, 1))] = name_id["nt_1"];
6170  offset_id[make_pair("n", offset(-1, -3, 2))] = name_id["nt_2"];
6171  offset_id[make_pair("n", offset(-1, -2))] = name_id["t"];
6172  offset_id[make_pair("n", offset(-1, -2, 1))] = name_id["t_1"];
6173  offset_id[make_pair("n", offset(-1, -2, 2))] = name_id["t_2"];
6174  offset_id[make_pair("n", offset(-1, -1))] = name_id["d"];
6175  offset_id[make_pair("n", offset(-1, -1, 1))] = name_id["d_1"];
6176  offset_id[make_pair("n", offset(-1, -1, 2))] = name_id["d_2"];
6177  offset_id[make_pair("n", offset(-1, 0))] = name_id["p"];
6178  offset_id[make_pair("n", offset(-1, 0, 1))] = name_id["p_1"];
6179  offset_id[make_pair("n", offset(-1, 0, 2))] = name_id["p_2"];
6180  offset_id[make_pair("n", offset(0, -3))] = name_id["z_4n"];
6181  offset_id[make_pair("n", offset(0, -3, 1))] = name_id["z_4n_1"];
6182  offset_id[make_pair("n", offset(0, -2))] = name_id["z_3n"];
6183  offset_id[make_pair("n", offset(0, -2, 1))] = name_id["z_3n_1"];
6184  offset_id[make_pair("n", offset(0, -2, 2))] = name_id["z_3n_2"];
6185  offset_id[make_pair("n", offset(0, -1))] = name_id["z_2n"];
6186  offset_id[make_pair("n", offset(0, -1, 1))] = name_id["z_2n_1"];
6187  offset_id[make_pair("n", offset(0, -1, 2))] = name_id["z_2n_2"];
6188  offset_id[make_pair("n", offset(0, 0))] = name_id["scattering"];
6189  offset_id[make_pair("n", offset(0, 0, 1))] = name_id["n_1"];
6190  offset_id[make_pair("n", offset(0, 0, 2))] = name_id["n_2"];
6191  offset_id[make_pair("n", offset(0, 1))] = name_id["absorption"];
6192  offset_id[make_pair("n", offset(0, 1, 1))] = name_id["gamma_1"];
6193  offset_id[make_pair("n", offset(0, 1, 2))] = name_id["gamma_2"];
6194  // proton:
6195  offset_id[make_pair("p", offset(0, 0))] = name_id["scattering"];
6196  offset_id[make_pair("p", offset(1, 1))] = name_id["absorption"];
6197  offset_id[make_pair("p", offset(1, 0))] = name_id["n"];
6198  offset_id[make_pair("p", offset(1, -1))] = name_id["z_2n"];
6199  offset_id[make_pair("p", offset(1, -2))] = name_id["z_3n"];
6200  offset_id[make_pair("p", offset(1, -3))] = name_id["z_4n"];
6201  offset_id[make_pair("p", offset(-1, -1))] = name_id["z_2p"];
6202  offset_id[make_pair("p", offset(0, -1))] = name_id["d"];
6203  offset_id[make_pair("p", offset(0, -2))] = name_id["t"];
6204  offset_id[make_pair("p", offset(-1, -2))] = name_id["He3"];
6205  offset_id[make_pair("p", offset(-1, -3))] = name_id["a"];
6206  // deuterium:
6207  offset_id[make_pair("d", offset(0, 0))] = name_id["scattering"];
6208  offset_id[make_pair("d", offset(1, 2))] = name_id["absorption"];
6209  offset_id[make_pair("d", offset(1, 1))] = name_id["n"];
6210  offset_id[make_pair("d", offset(1, 0))] = name_id["z_2n"];
6211  offset_id[make_pair("d", offset(1, -1))] = name_id["z_3n"];
6212  offset_id[make_pair("d", offset(1, -2))] = name_id["z_4n"];
6213  offset_id[make_pair("d", offset(0, 1))] = name_id["p"];
6214  offset_id[make_pair("d", offset(-1, 0))] = name_id["z_2p"];
6215  offset_id[make_pair("d", offset(0, -1))] = name_id["t"];
6216  offset_id[make_pair("d", offset(-1, -1))] = name_id["He3"];
6217  offset_id[make_pair("d", offset(-1, -2))] = name_id["a"];
6218  // tritium:
6219  offset_id[make_pair("t", offset(0, 0))] = name_id["scattering"];
6220  offset_id[make_pair("t", offset(1, 3))] = name_id["absorption"];
6221  offset_id[make_pair("t", offset(1, 2))] = name_id["n"];
6222  offset_id[make_pair("t", offset(1, 1))] = name_id["z_2n"];
6223  offset_id[make_pair("t", offset(1, 0))] = name_id["z_3n"];
6224  offset_id[make_pair("t", offset(1, -1))] = name_id["z_4n"];
6225  offset_id[make_pair("t", offset(0, 2))] = name_id["p"];
6226  offset_id[make_pair("t", offset(-1, 1))] = name_id["z_2p"];
6227  offset_id[make_pair("t", offset(0, 1))] = name_id["d"];
6228  offset_id[make_pair("t", offset(-1, 0))] = name_id["He3"];
6229  offset_id[make_pair("t", offset(-1, -1))] = name_id["a"];
6230  // He3:
6231  offset_id[make_pair("He3", offset(0, 0))] = name_id["scattering"];
6232  offset_id[make_pair("He3", offset(2, 3))] = name_id["absorption"];
6233  offset_id[make_pair("He3", offset(2, 2))] = name_id["n"];
6234  offset_id[make_pair("He3", offset(2, 1))] = name_id["z_2n"];
6235  offset_id[make_pair("He3", offset(2, 0))] = name_id["z_3n"];
6236  offset_id[make_pair("He3", offset(2, -1))] = name_id["z_4n"];
6237  offset_id[make_pair("He3", offset(1, 2))] = name_id["p"];
6238  offset_id[make_pair("He3", offset(0, 1))] = name_id["z_2p"];
6239  offset_id[make_pair("He3", offset(1, 1))] = name_id["d"];
6240  offset_id[make_pair("He3", offset(1, 0))] = name_id["t"];
6241  offset_id[make_pair("He3", offset(0, -1))] = name_id["a"];
6242  // alpha:
6243  offset_id[make_pair("a", offset(0, 0))] = name_id["scattering"];
6244  offset_id[make_pair("a", offset(2, 4))] = name_id["absorption"];
6245  offset_id[make_pair("a", offset(2, 3))] = name_id["n"];
6246  offset_id[make_pair("a", offset(2, 2))] = name_id["z_2n"];
6247  offset_id[make_pair("a", offset(2, 1))] = name_id["z_3n"];
6248  offset_id[make_pair("a", offset(2, 0))] = name_id["z_4n"];
6249  offset_id[make_pair("a", offset(1, 3))] = name_id["p"];
6250  offset_id[make_pair("a", offset(0, 2))] = name_id["z_2p"];
6251  offset_id[make_pair("a", offset(1, 2))] = name_id["d"];
6252  offset_id[make_pair("a", offset(1, 1))] = name_id["t"];
6253  offset_id[make_pair("a", offset(0, 1))] = name_id["He3"];
6254  // gamma:
6255  offset_id[make_pair("gamma", offset(0, -1))] = name_id["n"];
6256  offset_id[make_pair("gamma", offset(0, -2))] = name_id["z_2n"];
6257  offset_id[make_pair("gamma", offset(0, -3))] = name_id["z_3n"];
6258  offset_id[make_pair("gamma", offset(0, -4))] = name_id["z_4n"];
6259  offset_id[make_pair("gamma", offset(-1, -1))] = name_id["p"];
6260  offset_id[make_pair("gamma", offset(-2, -2))] = name_id["z_2p"];
6261  offset_id[make_pair("gamma", offset(-1, -2))] = name_id["d"];
6262  offset_id[make_pair("gamma", offset(-1, -3))] = name_id["t"];
6263  offset_id[make_pair("gamma", offset(-2, -3))] = name_id["He3"];
6264  offset_id[make_pair("gamma", offset(-2, -4))] = name_id["a"];
6265  // decay:
6266  offset_id[make_pair("decay", offset(0, -1))] = name_id["n"];
6267  offset_id[make_pair("decay", offset(0, -2))] = name_id["z_2n"];
6268  offset_id[make_pair("decay", offset(0, -3))] = name_id["z_3n"];
6269  offset_id[make_pair("decay", offset(0, -4))] = name_id["z_4n"];
6270  offset_id[make_pair("decay", offset(-1, -1))] = name_id["p"];
6271  offset_id[make_pair("decay", offset(-2, -2))] = name_id["z_2p"];
6272  offset_id[make_pair("decay", offset(-1, -2))] = name_id["d"];
6273  offset_id[make_pair("decay", offset(-1, -3))] = name_id["t"];
6274  offset_id[make_pair("decay", offset(-2, -3))] = name_id["He3"];
6275  offset_id[make_pair("decay", offset(-2, -4))] = name_id["a"];
6276  offset_id[make_pair("decay", offset(1, 0))] = name_id["bminus"];
6277  offset_id[make_pair("decay", offset(-1, 0))] = name_id["bplus"];
6278  offset_id[make_pair("decay", offset(1, -1))] = name_id["bminus_n"];
6279  offset_id[make_pair("decay", offset(-1, -4))] = name_id["bminus_a"];
6280  offset_id[make_pair("decay", offset(0, 0))] = name_id["it"];
6281  offset_id[make_pair("decay", offset(-3, -4))] = name_id["bplus_a"];
6282  offset_id[make_pair("decay", offset(-2, -1))] = name_id["bplus_p"];
6283  offset_id[make_pair("decay", offset(1, -2))] = name_id["bminus_2n"];
6284  offset_id[make_pair("decay", offset(1, -3))] = name_id["bminus_3n"];
6285  offset_id[make_pair("decay", offset(1, -4))] = name_id["bminus_4n"];
6286  offset_id[make_pair("decay", offset(-3, -2))] = name_id["bplus_2p"];
6287  offset_id[make_pair("decay", offset(-4, -3))] = name_id["bplus_3p"];
6288  offset_id[make_pair("decay", offset(2, 0))] = name_id["decay_2bminus"];
6289  offset_id[make_pair("decay", offset(-2, 0))] = name_id["decay_2bplus"];
6290  offset_id[make_pair("decay", offset(-6, -14))] = name_id["decay_14c"];
6291 
6292  // pre-loaded child offsets
6293  std::map<std::pair<std::string, int>, unsigned int>::iterator ioffid;
6294  for (ioffid = offset_id.begin(); ioffid != offset_id.end(); ioffid++) {
6295  id_offset[make_pair(ioffid->first.first, ioffid->second)] = ioffid->first.second;
6296  }
6297  // neutrons:
6298  id_offset[make_pair("n", name_id["nHe3"])] = offset(-2, -3);
6299  id_offset[make_pair("n", name_id["nHe3_1"])] = offset(-2, -3, 2);
6300  id_offset[make_pair("n", name_id["nHe3_2"])] = offset(-2, -3, 2);
6301  id_offset[make_pair("n", name_id["z_3np"])] = offset(-1, -3);
6302  id_offset[make_pair("n", name_id["nd"])] = offset(-1, -2);
6303  id_offset[make_pair("n", name_id["nd_1"])] = offset(-1, -2, 1);
6304  id_offset[make_pair("n", name_id["nd_2"])] = offset(-1, -2, 2);
6305  id_offset[make_pair("n", name_id["np"])] = offset(-1, -1);
6306  id_offset[make_pair("n", name_id["np_1"])] = offset(-1, -1, 1);
6307  id_offset[make_pair("n", name_id["np_2"])] = offset(-1, -1, 2);
6308  id_offset[make_pair("n", name_id["n"])] = offset(0, 0);
6309  id_offset[make_pair("n", name_id["gamma"])] = offset(0, 1);
6310  // decay:
6311  id_offset[make_pair("decay", name_id["bminus_p"])] = offset(0, -1);
6312  id_offset[make_pair("decay", name_id["ec_2p"])] = offset(-3, -2);
6313  id_offset[make_pair("decay", name_id["ec"])] = offset(-1, 0);
6314  id_offset[make_pair("decay", name_id["ec_bplus"])] = offset(-1, 0);
6315  id_offset[make_pair("decay", name_id["ecp"])] = offset(-2, -1);
6316  id_offset[make_pair("decay", name_id["eca"])] = offset(-3, -4);
6317  id_offset[make_pair("decay", name_id["decay_2ec"])] = offset(-2, 0);
6318  return NULL;
6319 }
6321 
6322 
6324  return pyne::rxname::hash(s.c_str());
6325 }
6326 
6327 unsigned int pyne::rxname::hash(const char * s) {
6328  // Modified from http://cboard.cprogramming.com/tech-board/114650-string-hashing-algorithm.html#post853145
6329  // starting from h = 32*2^5 > 1000, rather than 0, to reserve space for MT numbers
6330  int c;
6331  unsigned int h = 32;
6332  while((c = *s++)) {
6333  h = ((h << 5) + h) ^ c;
6334  }
6335  return h;
6336 }
6337 
6338 
6339 // ************************
6340 // *** name functions *****
6341 // ************************
6342 
6344  return pyne::rxname::name(std::string(s));
6345 }
6346 
6348  if (0 < names.count(s))
6349  return s;
6350  if (0 < altnames.count(s))
6351  return id_name[altnames[s]];
6352  // see if id in string form
6353  int i = 0;
6354  int I = s.length();
6355  int found = 0;
6356  while(0 <= found && i < I) {
6357  found = pyne::digits.find(s[i]);
6358  i++;
6359  }
6360  if (0<=found)
6361  return pyne::rxname::name(atoi(s.c_str()));
6362  // dead...
6363  throw NotAReaction(s, "???");
6364 }
6365 
6366 
6368  return pyne::rxname::name((unsigned int) n);
6369 }
6370 
6372  if (0 < id_name.count(n))
6373  return id_name[n];
6374  if (0 < mt_id.count(n))
6375  return id_name[mt_id[n]];
6376  throw NotAReaction(n, "???");
6377 }
6378 
6379 
6380 std::string pyne::rxname::name(int from_nuc, int to_nuc, std::string z) {
6381  // This assumes nuclides are in id form
6382  std::pair<std::string, int> key = std::make_pair(z, to_nuc - from_nuc);
6383  if (0 == offset_id.count(key))
6384  throw IndeterminateReactionForm("z=" + z + ", " + pyne::to_str(from_nuc) + \
6385  ", " + pyne::to_str(to_nuc), "???");
6386  return id_name[offset_id[key]];
6387 }
6388 
6390  return pyne::rxname::name(pyne::nucname::id(from_nuc),
6391  pyne::nucname::id(to_nuc), z);
6392 }
6393 
6395  return pyne::rxname::name(pyne::nucname::id(from_nuc),
6396  pyne::nucname::id(to_nuc), z);
6397 }
6398 
6400  return pyne::rxname::name(pyne::nucname::id(from_nuc),
6401  pyne::nucname::id(to_nuc), z);
6402 }
6403 
6404 
6405 
6406 // **********************
6407 // *** id functions *****
6408 // **********************
6409 unsigned int pyne::rxname::id(int x) {
6410  return name_id[pyne::rxname::name(x)];
6411 }
6412 
6413 unsigned int pyne::rxname::id(unsigned int x) {
6414  if (0 < id_name.count(x))
6415  return x;
6416  if (0 < mt_id.count(x))
6417  return mt_id[x];
6418  return name_id[pyne::rxname::name(x)];
6419 }
6420 
6421 unsigned int pyne::rxname::id(const char * x) {
6422  return name_id[pyne::rxname::name(x)];
6423 }
6424 
6426  if (0 < names.count(x))
6427  return name_id[x];
6428  if (0 < altnames.count(x))
6429  return altnames[x];
6430  return name_id[pyne::rxname::name(x)];
6431 }
6432 
6433 unsigned int pyne::rxname::id(int from_nuc, int to_nuc, std::string z) {
6434  // This assumes nuclides are in id form
6435  std::pair<std::string, int> key = std::make_pair(z, to_nuc - from_nuc);
6436  if (0 == offset_id.count(key))
6437  throw IndeterminateReactionForm("z=" + z + ", " + pyne::to_str(from_nuc) + \
6438  ", " + pyne::to_str(to_nuc), "???");
6439  return offset_id[key];
6440 }
6441 
6442 unsigned int pyne::rxname::id(int from_nuc, std::string to_nuc, std::string z) {
6443  return pyne::rxname::id(pyne::nucname::id(from_nuc),
6444  pyne::nucname::id(to_nuc), z);
6445 }
6446 
6447 unsigned int pyne::rxname::id(std::string from_nuc, int to_nuc, std::string z) {
6448  return pyne::rxname::id(pyne::nucname::id(from_nuc),
6449  pyne::nucname::id(to_nuc), z);
6450 }
6451 
6452 unsigned int pyne::rxname::id(std::string from_nuc, std::string to_nuc, std::string z) {
6453  return pyne::rxname::id(pyne::nucname::id(from_nuc),
6454  pyne::nucname::id(to_nuc), z);
6455 }
6456 
6457 
6458 // **********************
6459 // *** MT functions *****
6460 // **********************
6461 unsigned int pyne::rxname::mt(int x) {
6462  unsigned int rxid = pyne::rxname::id(x);
6463  if (0 == id_mt.count(rxid))
6464  throw NotAReaction();
6465  return id_mt[rxid];
6466 }
6467 
6468 unsigned int pyne::rxname::mt(unsigned int x) {
6469  unsigned int rxid = pyne::rxname::id(x);
6470  if (0 == id_mt.count(rxid))
6471  throw NotAReaction();
6472  return id_mt[rxid];
6473 }
6474 
6475 unsigned int pyne::rxname::mt(char * x) {
6476  unsigned int rxid = pyne::rxname::id(x);
6477  if (0 == id_mt.count(rxid))
6478  throw NotAReaction();
6479  return id_mt[rxid];
6480 }
6481 
6483  unsigned int rxid = pyne::rxname::id(x);
6484  if (0 == id_mt.count(rxid))
6485  throw NotAReaction();
6486  return id_mt[rxid];
6487 }
6488 
6489 unsigned int pyne::rxname::mt(int from_nuc, int to_nuc, std::string z) {
6490  unsigned int rxid = pyne::rxname::id(from_nuc, to_nuc, z);
6491  if (0 == id_mt.count(rxid))
6492  throw NotAReaction();
6493  return id_mt[rxid];
6494 }
6495 
6496 unsigned int pyne::rxname::mt(int from_nuc, std::string to_nuc, std::string z) {
6497  unsigned int rxid = pyne::rxname::id(from_nuc, to_nuc, z);
6498  if (0 == id_mt.count(rxid))
6499  throw NotAReaction();
6500  return id_mt[rxid];
6501 }
6502 
6503 unsigned int pyne::rxname::mt(std::string from_nuc, int to_nuc, std::string z) {
6504  unsigned int rxid = pyne::rxname::id(from_nuc, to_nuc, z);
6505  if (0 == id_mt.count(rxid))
6506  throw NotAReaction();
6507  return id_mt[rxid];
6508 }
6509 
6510 unsigned int pyne::rxname::mt(std::string from_nuc, std::string to_nuc, std::string z) {
6511  unsigned int rxid = pyne::rxname::id(from_nuc, to_nuc, z);
6512  if (0 == id_mt.count(rxid))
6513  throw NotAReaction();
6514  return id_mt[rxid];
6515 }
6516 
6517 
6518 // ***********************
6519 // *** label functions ***
6520 // ***********************
6522  return labels[pyne::rxname::id(x)];
6523 }
6524 
6526  return labels[pyne::rxname::id(x)];
6527 }
6528 
6530  return labels[pyne::rxname::id(x)];
6531 }
6532 
6534  return labels[pyne::rxname::id(x)];
6535 }
6536 
6537 std::string pyne::rxname::label(int from_nuc, int to_nuc, std::string z) {
6538  return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6539 }
6540 
6542  return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6543 }
6544 
6546  return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6547 }
6548 
6550  return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6551 }
6552 
6553 
6554 // *********************
6555 // *** doc functions ***
6556 // *********************
6558  return docs[pyne::rxname::id(x)];
6559 }
6560 
6562  return docs[pyne::rxname::id(x)];
6563 }
6564 
6566  return docs[pyne::rxname::id(x)];
6567 }
6568 
6570  return docs[pyne::rxname::id(x)];
6571 }
6572 
6573 std::string pyne::rxname::doc(int from_nuc, int to_nuc, std::string z) {
6574  return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6575 }
6576 
6578  return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6579 }
6580 
6582  return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6583 }
6584 
6586  return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6587 }
6588 
6589 
6590 // ***********************
6591 // *** child functions ***
6592 // ***********************
6593 
6594 int pyne::rxname::child(int nuc, unsigned int rx, std::string z) {
6595  // This assumes nuclides are in id form
6596  std::pair<std::string, unsigned int> key = std::make_pair(z, rx);
6597  if (0 == id_offset.count(key))
6598  throw IndeterminateReactionForm("z=" + z + ", rx=" + pyne::to_str(rx), "???");
6599  int to_nuc = nuc + id_offset[key];
6600  if (!pyne::nucname::isnuclide(to_nuc))
6601  throw pyne::nucname::NotANuclide(nuc, to_nuc);
6602  return to_nuc;
6603 }
6604 
6606  return child(nuc, id(rx), z);
6607 }
6608 
6609 int pyne::rxname::child(std::string nuc, unsigned int rx, std::string z) {
6610  return child(pyne::nucname::id(nuc), rx, z);
6611 }
6612 
6614  return child(pyne::nucname::id(nuc), id(rx), z);
6615 }
6616 
6617 // ************************
6618 // *** parent functions ***
6619 // ************************
6620 
6621 int pyne::rxname::parent(int nuc, unsigned int rx, std::string z) {
6622  // This assumes nuclides are in id form
6623  std::pair<std::string, unsigned int> key = std::make_pair(z, rx);
6624  if (0 == id_offset.count(key))
6625  throw IndeterminateReactionForm("z=" + z + ", rx=" + pyne::to_str(rx), "???");
6626  int from_nuc = nuc - id_offset[key];
6627  if (!pyne::nucname::isnuclide(from_nuc))
6628  throw pyne::nucname::NotANuclide(from_nuc, nuc);
6629  return from_nuc;
6630 }
6631 
6633  return parent(nuc, id(rx), z);
6634 }
6635 
6636 int pyne::rxname::parent(std::string nuc, unsigned int rx, std::string z) {
6637  return parent(pyne::nucname::id(nuc), rx, z);
6638 }
6639 
6641  return parent(pyne::nucname::id(nuc), id(rx), z);
6642 }
6643 
6644 //
6645 // end of src/rxname.cpp
6646 //
6647 
6648 
6649 //
6650 // start of src/_atomic_data.cpp
6651 //
6652 // Implements basic nuclear data functions.
6653 #ifndef PYNE_IS_AMALGAMATED
6654  #include "atomic_data.h"
6655  #include "nucname.h"
6656 #endif
6657 
6659  // header version of atomic weight table data
6660  //see if the data table is already loaded
6661  if(!atomic_mass_map.empty()) {
6662  return;
6663  } else {
6665  }
6666  //see if the data table is already loaded
6667  if(!natural_abund_map.empty()) {
6668  return;
6669  } else {
6671  }
6672 
6673  // calculate the atomic_masses of the elements
6674  std::map<int,double> :: iterator it;
6675 
6676  for (int z=1; z<= 92; z++) {
6677  // loop through the natural abundance map
6678  double element_atomic_weight = 0.0;
6679  for (it = natural_abund_map.begin(); it != natural_abund_map.end(); ++it){
6680  // if the atomic number of the abudance matches the
6681  // that of index
6682  if(pyne::nucname::znum(it->first) == z) {
6683  // take atomic abundance and multiply by mass
6684  // to get the mass of that nuclide / 100 since abundance is in %
6685  element_atomic_weight += (it->second*atomic_mass_map[it->first]/100.0);
6686  }
6687  }
6688  // insert the abundance of the element into the list
6689  atomic_mass_map[z*10000000] = element_atomic_weight;
6690  }
6691 }
6692 
6694  atomic_mass_map[10010000] = 1.00782503223;
6695  atomic_mass_map[10020000] = 2.01410177812;
6696  atomic_mass_map[10030000] = 3.01604927791;
6697  atomic_mass_map[20030000] = 3.01602932008;
6698  atomic_mass_map[30030000] = 3.030775;
6699  atomic_mass_map[10040000] = 4.026431864;
6700  atomic_mass_map[20040000] = 4.00260325413;
6701  atomic_mass_map[30040000] = 4.027185559;
6702  atomic_mass_map[10050000] = 5.035311489;
6703  atomic_mass_map[20050000] = 5.012057224;
6704  atomic_mass_map[30050000] = 5.0125378;
6705  atomic_mass_map[40050000] = 5.03987;
6706  atomic_mass_map[10060000] = 6.044955433;
6707  atomic_mass_map[20060000] = 6.018885891;
6708  atomic_mass_map[30060000] = 6.01512288742;
6709  atomic_mass_map[40060000] = 6.019726411;
6710  atomic_mass_map[50060000] = 6.0508;
6711  atomic_mass_map[10070000] = 7.052749;
6712  atomic_mass_map[20070000] = 7.027990654;
6713  atomic_mass_map[30070000] = 7.01600343659;
6714  atomic_mass_map[40070000] = 7.016928717;
6715  atomic_mass_map[50070000] = 7.029712;
6716  atomic_mass_map[20080000] = 8.03393439;
6717  atomic_mass_map[30080000] = 8.022486246;
6718  atomic_mass_map[40080000] = 8.005305102;
6719  atomic_mass_map[50080000] = 8.024607326;
6720  atomic_mass_map[60080000] = 8.037643042;
6721  atomic_mass_map[20090000] = 9.043946494;
6722  atomic_mass_map[30090000] = 9.026790191;
6723  atomic_mass_map[40090000] = 9.012183065;
6724  atomic_mass_map[50090000] = 9.013329649;
6725  atomic_mass_map[60090000] = 9.031037204;
6726  atomic_mass_map[20100000] = 10.052788655;
6727  atomic_mass_map[30100000] = 10.035483453;
6728  atomic_mass_map[40100000] = 10.013534695;
6729  atomic_mass_map[50100000] = 10.012936949;
6730  atomic_mass_map[60100000] = 10.016853307;
6731  atomic_mass_map[70100000] = 10.04165363;
6732  atomic_mass_map[30110000] = 11.043723581;
6733  atomic_mass_map[40110000] = 11.021661081;
6734  atomic_mass_map[50110000] = 11.009305355;
6735  atomic_mass_map[60110000] = 11.011433563;
6736  atomic_mass_map[70110000] = 11.026091034;
6737  atomic_mass_map[30120000] = 12.052517322;
6738  atomic_mass_map[40120000] = 12.026922082;
6739  atomic_mass_map[50120000] = 12.014352658;
6740  atomic_mass_map[60120000] = 12.0;
6741  atomic_mass_map[70120000] = 12.018613187;
6742  atomic_mass_map[80120000] = 12.034261836;
6743  atomic_mass_map[30130000] = 13.062631523;
6744  atomic_mass_map[40130000] = 13.036134506;
6745  atomic_mass_map[50130000] = 13.017780166;
6746  atomic_mass_map[60130000] = 13.0033548351;
6747  atomic_mass_map[70130000] = 13.005738609;
6748  atomic_mass_map[80130000] = 13.024815446;
6749  atomic_mass_map[40140000] = 14.04289292;
6750  atomic_mass_map[50140000] = 14.025404012;
6751  atomic_mass_map[60140000] = 14.0032419884;
6752  atomic_mass_map[70140000] = 14.0030740044;
6753  atomic_mass_map[80140000] = 14.008596359;
6754  atomic_mass_map[90140000] = 14.034315207;
6755  atomic_mass_map[40150000] = 15.05342;
6756  atomic_mass_map[50150000] = 15.03108768;
6757  atomic_mass_map[60150000] = 15.010599256;
6758  atomic_mass_map[70150000] = 15.0001088989;
6759  atomic_mass_map[80150000] = 15.003065618;
6760  atomic_mass_map[90150000] = 15.018042853;
6761  atomic_mass_map[40160000] = 16.061672036;
6762  atomic_mass_map[50160000] = 16.039841663;
6763  atomic_mass_map[60160000] = 16.014701252;
6764  atomic_mass_map[70160000] = 16.006101925;
6765  atomic_mass_map[80160000] = 15.9949146196;
6766  atomic_mass_map[90160000] = 16.011465725;
6767  atomic_mass_map[100160000] = 16.025750197;
6768  atomic_mass_map[50170000] = 17.046989906;
6769  atomic_mass_map[60170000] = 17.02257747;
6770  atomic_mass_map[70170000] = 17.008448873;
6771  atomic_mass_map[80170000] = 16.9991317565;
6772  atomic_mass_map[90170000] = 17.002095237;
6773  atomic_mass_map[100170000] = 17.017713963;
6774  atomic_mass_map[50180000] = 18.055660189;
6775  atomic_mass_map[60180000] = 18.026750708;
6776  atomic_mass_map[70180000] = 18.014077565;
6777  atomic_mass_map[80180000] = 17.9991596129;
6778  atomic_mass_map[90180000] = 18.000937325;
6779  atomic_mass_map[100180000] = 18.005708703;
6780  atomic_mass_map[110180000] = 18.026878252;
6781  atomic_mass_map[50190000] = 19.0631;
6782  atomic_mass_map[60190000] = 19.034796372;
6783  atomic_mass_map[70190000] = 19.017021603;
6784  atomic_mass_map[80190000] = 19.00357797;
6785  atomic_mass_map[90190000] = 18.9984031627;
6786  atomic_mass_map[100190000] = 19.001880907;
6787  atomic_mass_map[110190000] = 19.013880272;
6788  atomic_mass_map[120190000] = 19.034169186;
6789  atomic_mass_map[50200000] = 20.07207;
6790  atomic_mass_map[60200000] = 20.040319754;
6791  atomic_mass_map[70200000] = 20.023365807;
6792  atomic_mass_map[80200000] = 20.004075354;
6793  atomic_mass_map[90200000] = 19.999981252;
6794  atomic_mass_map[100200000] = 19.9924401762;
6795  atomic_mass_map[110200000] = 20.007354426;
6796  atomic_mass_map[120200000] = 20.018850004;
6797  atomic_mass_map[50210000] = 21.08129;
6798  atomic_mass_map[60210000] = 21.049;
6799  atomic_mass_map[70210000] = 21.02710824;
6800  atomic_mass_map[80210000] = 21.008654813;
6801  atomic_mass_map[90210000] = 20.999948889;
6802  atomic_mass_map[100210000] = 20.993846685;
6803  atomic_mass_map[110210000] = 20.997654695;
6804  atomic_mass_map[120210000] = 21.01171614;
6805  atomic_mass_map[130210000] = 21.028975;
6806  atomic_mass_map[60220000] = 22.057531496;
6807  atomic_mass_map[70220000] = 22.034394934;
6808  atomic_mass_map[80220000] = 22.009966057;
6809  atomic_mass_map[90220000] = 22.002998813;
6810  atomic_mass_map[100220000] = 21.991385114;
6811  atomic_mass_map[110220000] = 21.994437411;
6812  atomic_mass_map[120220000] = 21.999570648;
6813  atomic_mass_map[130220000] = 22.01954;
6814  atomic_mass_map[140220000] = 22.03579;
6815  atomic_mass_map[60230000] = 23.06889;
6816  atomic_mass_map[70230000] = 23.04114;
6817  atomic_mass_map[80230000] = 23.015695922;
6818  atomic_mass_map[90230000] = 23.003556696;
6819  atomic_mass_map[100230000] = 22.994466905;
6820  atomic_mass_map[110230000] = 22.989769282;
6821  atomic_mass_map[120230000] = 22.994124208;
6822  atomic_mass_map[130230000] = 23.007244351;
6823  atomic_mass_map[140230000] = 23.02544;
6824  atomic_mass_map[70240000] = 24.05039;
6825  atomic_mass_map[80240000] = 24.019861;
6826  atomic_mass_map[90240000] = 24.008115485;
6827  atomic_mass_map[100240000] = 23.99361065;
6828  atomic_mass_map[110240000] = 23.99096295;
6829  atomic_mass_map[120240000] = 23.985041697;
6830  atomic_mass_map[130240000] = 23.999948883;
6831  atomic_mass_map[140240000] = 24.011534538;
6832  atomic_mass_map[150240000] = 24.03577;
6833  atomic_mass_map[70250000] = 25.0601;
6834  atomic_mass_map[80250000] = 25.029358986;
6835  atomic_mass_map[90250000] = 25.012199229;
6836  atomic_mass_map[100250000] = 24.997788707;
6837  atomic_mass_map[110250000] = 24.989953969;
6838  atomic_mass_map[120250000] = 24.985836976;
6839  atomic_mass_map[130250000] = 24.990428102;
6840  atomic_mass_map[140250000] = 25.004108808;
6841  atomic_mass_map[150250000] = 25.02119;
6842  atomic_mass_map[80260000] = 26.03728745;
6843  atomic_mass_map[90260000] = 26.020037768;
6844  atomic_mass_map[100260000] = 26.000514705;
6845  atomic_mass_map[110260000] = 25.992634649;
6846  atomic_mass_map[120260000] = 25.982592968;
6847  atomic_mass_map[130260000] = 25.986891904;
6848  atomic_mass_map[140260000] = 25.992333845;
6849  atomic_mass_map[150260000] = 26.01178;
6850  atomic_mass_map[160260000] = 26.02907;
6851  atomic_mass_map[80270000] = 27.04772;
6852  atomic_mass_map[90270000] = 27.026441;
6853  atomic_mass_map[100270000] = 27.007553268;
6854  atomic_mass_map[110270000] = 26.994076531;
6855  atomic_mass_map[120270000] = 26.984340624;
6856  atomic_mass_map[130270000] = 26.981538531;
6857  atomic_mass_map[140270000] = 26.986704811;
6858  atomic_mass_map[150270000] = 26.999224406;
6859  atomic_mass_map[160270000] = 27.01828;
6860  atomic_mass_map[80280000] = 28.05591;
6861  atomic_mass_map[90280000] = 28.035342095;
6862  atomic_mass_map[100280000] = 28.012121998;
6863  atomic_mass_map[110280000] = 27.998939;
6864  atomic_mass_map[120280000] = 27.983876728;
6865  atomic_mass_map[130280000] = 27.98191021;
6866  atomic_mass_map[140280000] = 27.9769265347;
6867  atomic_mass_map[150280000] = 27.992326585;
6868  atomic_mass_map[160280000] = 28.004372766;
6869  atomic_mass_map[170280000] = 28.02954;
6870  atomic_mass_map[90290000] = 29.04254;
6871  atomic_mass_map[100290000] = 29.019753;
6872  atomic_mass_map[110290000] = 29.002877073;
6873  atomic_mass_map[120290000] = 28.988617393;
6874  atomic_mass_map[130290000] = 28.98045649;
6875  atomic_mass_map[140290000] = 28.9764946649;
6876  atomic_mass_map[150290000] = 28.981800794;
6877  atomic_mass_map[160290000] = 28.996611456;
6878  atomic_mass_map[170290000] = 29.01478;
6879  atomic_mass_map[90300000] = 30.05165;
6880  atomic_mass_map[100300000] = 30.024734;
6881  atomic_mass_map[110300000] = 30.009097932;
6882  atomic_mass_map[120300000] = 29.990462926;
6883  atomic_mass_map[130300000] = 29.98296022;
6884  atomic_mass_map[140300000] = 29.973770136;
6885  atomic_mass_map[150300000] = 29.978313753;
6886  atomic_mass_map[160300000] = 29.984907033;
6887  atomic_mass_map[170300000] = 30.00477;
6888  atomic_mass_map[180300000] = 30.02307;
6889  atomic_mass_map[90310000] = 31.059709;
6890  atomic_mass_map[100310000] = 31.033087;
6891  atomic_mass_map[110310000] = 31.013162656;
6892  atomic_mass_map[120310000] = 30.996648032;
6893  atomic_mass_map[130310000] = 30.983945171;
6894  atomic_mass_map[140310000] = 30.975363194;
6895  atomic_mass_map[150310000] = 30.9737619984;
6896  atomic_mass_map[160310000] = 30.979557007;
6897  atomic_mass_map[170310000] = 30.992414203;
6898  atomic_mass_map[180310000] = 31.012124;
6899  atomic_mass_map[100320000] = 32.03972;
6900  atomic_mass_map[110320000] = 32.020193;
6901  atomic_mass_map[120320000] = 31.999110239;
6902  atomic_mass_map[130320000] = 31.988085239;
6903  atomic_mass_map[140320000] = 31.974151539;
6904  atomic_mass_map[150320000] = 31.973907643;
6905  atomic_mass_map[160320000] = 31.9720711744;
6906  atomic_mass_map[170320000] = 31.985684637;
6907  atomic_mass_map[180320000] = 31.997637826;
6908  atomic_mass_map[190320000] = 32.02265;
6909  atomic_mass_map[100330000] = 33.04938;
6910  atomic_mass_map[110330000] = 33.02573;
6911  atomic_mass_map[120330000] = 33.005327145;
6912  atomic_mass_map[130330000] = 32.990908977;
6913  atomic_mass_map[140330000] = 32.977976964;
6914  atomic_mass_map[150330000] = 32.971725694;
6915  atomic_mass_map[160330000] = 32.9714589098;
6916  atomic_mass_map[170330000] = 32.977451989;
6917  atomic_mass_map[180330000] = 32.989925546;
6918  atomic_mass_map[190330000] = 33.00756;
6919  atomic_mass_map[100340000] = 34.056728;
6920  atomic_mass_map[110340000] = 34.03359;
6921  atomic_mass_map[120340000] = 34.008935481;
6922  atomic_mass_map[130340000] = 33.996705398;
6923  atomic_mass_map[140340000] = 33.978575569;
6924  atomic_mass_map[150340000] = 33.973645886;
6925  atomic_mass_map[160340000] = 33.967867004;
6926  atomic_mass_map[170340000] = 33.973762485;
6927  atomic_mass_map[180340000] = 33.98027009;
6928  atomic_mass_map[190340000] = 33.99869;
6929  atomic_mass_map[200340000] = 34.01487;
6930  atomic_mass_map[110350000] = 35.040623;
6931  atomic_mass_map[120350000] = 35.01679;
6932  atomic_mass_map[130350000] = 34.999764;
6933  atomic_mass_map[140350000] = 34.984583476;
6934  atomic_mass_map[150350000] = 34.973314062;
6935  atomic_mass_map[160350000] = 34.96903231;
6936  atomic_mass_map[170350000] = 34.968852682;
6937  atomic_mass_map[180350000] = 34.975257586;
6938  atomic_mass_map[190350000] = 34.988005407;
6939  atomic_mass_map[200350000] = 35.00514;
6940  atomic_mass_map[110360000] = 36.049288;
6941  atomic_mass_map[120360000] = 36.021879;
6942  atomic_mass_map[130360000] = 36.006388;
6943  atomic_mass_map[140360000] = 35.986695219;
6944  atomic_mass_map[150360000] = 35.978259625;
6945  atomic_mass_map[160360000] = 35.967080706;
6946  atomic_mass_map[170360000] = 35.968306809;
6947  atomic_mass_map[180360000] = 35.967545105;
6948  atomic_mass_map[190360000] = 35.98130201;
6949  atomic_mass_map[200360000] = 35.993074404;
6950  atomic_mass_map[210360000] = 36.01648;
6951  atomic_mass_map[110370000] = 37.057051;
6952  atomic_mass_map[120370000] = 37.03037;
6953  atomic_mass_map[130370000] = 37.010531;
6954  atomic_mass_map[140370000] = 36.99292074;
6955  atomic_mass_map[150370000] = 36.979606841;
6956  atomic_mass_map[160370000] = 36.971125514;
6957  atomic_mass_map[170370000] = 36.965902602;
6958  atomic_mass_map[180370000] = 36.966776331;
6959  atomic_mass_map[190370000] = 36.973375889;
6960  atomic_mass_map[200370000] = 36.985897852;
6961  atomic_mass_map[210370000] = 37.00374;
6962  atomic_mass_map[120380000] = 38.03658;
6963  atomic_mass_map[130380000] = 38.017402;
6964  atomic_mass_map[140380000] = 37.995523;
6965  atomic_mass_map[150380000] = 37.984251583;
6966  atomic_mass_map[160380000] = 37.971163328;
6967  atomic_mass_map[170380000] = 37.968010436;
6968  atomic_mass_map[180380000] = 37.962732106;
6969  atomic_mass_map[190380000] = 37.969081117;
6970  atomic_mass_map[200380000] = 37.976319224;
6971  atomic_mass_map[210380000] = 37.99512;
6972  atomic_mass_map[220380000] = 38.01145;
6973  atomic_mass_map[120390000] = 39.045384;
6974  atomic_mass_map[130390000] = 39.02254;
6975  atomic_mass_map[140390000] = 39.002491;
6976  atomic_mass_map[150390000] = 38.986227208;
6977  atomic_mass_map[160390000] = 38.975134197;
6978  atomic_mass_map[170390000] = 38.968008176;
6979  atomic_mass_map[180390000] = 38.964313038;
6980  atomic_mass_map[190390000] = 38.9637064864;
6981  atomic_mass_map[200390000] = 38.970710813;
6982  atomic_mass_map[210390000] = 38.984784968;
6983  atomic_mass_map[220390000] = 39.00236;
6984  atomic_mass_map[120400000] = 40.05218;
6985  atomic_mass_map[130400000] = 40.03003;
6986  atomic_mass_map[140400000] = 40.005829;
6987  atomic_mass_map[150400000] = 39.991331748;
6988  atomic_mass_map[160400000] = 39.975482562;
6989  atomic_mass_map[170400000] = 39.970415469;
6990  atomic_mass_map[180400000] = 39.9623831237;
6991  atomic_mass_map[190400000] = 39.963998166;
6992  atomic_mass_map[200400000] = 39.962590863;
6993  atomic_mass_map[210400000] = 39.977967291;
6994  atomic_mass_map[220400000] = 39.990498719;
6995  atomic_mass_map[230400000] = 40.01276;
6996  atomic_mass_map[130410000] = 41.03638;
6997  atomic_mass_map[140410000] = 41.013011;
6998  atomic_mass_map[150410000] = 40.994654;
6999  atomic_mass_map[160410000] = 40.979593451;
7000  atomic_mass_map[170410000] = 40.970684525;
7001  atomic_mass_map[180410000] = 40.96450057;
7002  atomic_mass_map[190410000] = 40.9618252579;
7003  atomic_mass_map[200410000] = 40.962277924;
7004  atomic_mass_map[210410000] = 40.969251105;
7005  atomic_mass_map[220410000] = 40.983148;
7006  atomic_mass_map[230410000] = 41.00021;
7007  atomic_mass_map[130420000] = 42.04384;
7008  atomic_mass_map[140420000] = 42.01778;
7009  atomic_mass_map[150420000] = 42.001084;
7010  atomic_mass_map[160420000] = 41.9810651;
7011  atomic_mass_map[170420000] = 41.973254804;
7012  atomic_mass_map[180420000] = 41.963045736;
7013  atomic_mass_map[190420000] = 41.962402306;
7014  atomic_mass_map[200420000] = 41.95861783;
7015  atomic_mass_map[210420000] = 41.965516532;
7016  atomic_mass_map[220420000] = 41.973049034;
7017  atomic_mass_map[230420000] = 41.99182;
7018  atomic_mass_map[240420000] = 42.0067;
7019  atomic_mass_map[130430000] = 43.05147;
7020  atomic_mass_map[140430000] = 43.0248;
7021  atomic_mass_map[150430000] = 43.005024;
7022  atomic_mass_map[160430000] = 42.986907635;
7023  atomic_mass_map[170430000] = 42.973888584;
7024  atomic_mass_map[180430000] = 42.965636055;
7025  atomic_mass_map[190430000] = 42.960734702;
7026  atomic_mass_map[200430000] = 42.958766438;
7027  atomic_mass_map[210430000] = 42.961150474;
7028  atomic_mass_map[220430000] = 42.96852252;
7029  atomic_mass_map[230430000] = 42.980766;
7030  atomic_mass_map[240430000] = 42.99753;
7031  atomic_mass_map[140440000] = 44.03061;
7032  atomic_mass_map[150440000] = 44.01121;
7033  atomic_mass_map[160440000] = 43.990118848;
7034  atomic_mass_map[170440000] = 43.977874543;
7035  atomic_mass_map[180440000] = 43.964923815;
7036  atomic_mass_map[190440000] = 43.961586985;
7037  atomic_mass_map[200440000] = 43.955481561;
7038  atomic_mass_map[210440000] = 43.959402875;
7039  atomic_mass_map[220440000] = 43.959689949;
7040  atomic_mass_map[230440000] = 43.97411;
7041  atomic_mass_map[240440000] = 43.98536;
7042  atomic_mass_map[250440000] = 44.00715;
7043  atomic_mass_map[140450000] = 45.03995;
7044  atomic_mass_map[150450000] = 45.01645;
7045  atomic_mass_map[160450000] = 44.995717;
7046  atomic_mass_map[170450000] = 44.98029;
7047  atomic_mass_map[180450000] = 44.968039733;
7048  atomic_mass_map[190450000] = 44.960691493;
7049  atomic_mass_map[200450000] = 44.95618635;
7050  atomic_mass_map[210450000] = 44.955908275;
7051  atomic_mass_map[220450000] = 44.958121983;
7052  atomic_mass_map[230450000] = 44.96577482;
7053  atomic_mass_map[240450000] = 44.97905;
7054  atomic_mass_map[250450000] = 44.99449;
7055  atomic_mass_map[260450000] = 45.014419;
7056  atomic_mass_map[150460000] = 46.02446;
7057  atomic_mass_map[160460000] = 46.00004;
7058  atomic_mass_map[170460000] = 45.985174;
7059  atomic_mass_map[180460000] = 45.968082712;
7060  atomic_mass_map[190460000] = 45.961981586;
7061  atomic_mass_map[200460000] = 45.953689023;
7062  atomic_mass_map[210460000] = 45.955168257;
7063  atomic_mass_map[220460000] = 45.952627718;
7064  atomic_mass_map[230460000] = 45.960198775;
7065  atomic_mass_map[240460000] = 45.968358861;
7066  atomic_mass_map[250460000] = 45.98609;
7067  atomic_mass_map[260460000] = 46.00063;
7068  atomic_mass_map[150470000] = 47.03139;
7069  atomic_mass_map[160470000] = 47.00795;
7070  atomic_mass_map[170470000] = 46.98916;
7071  atomic_mass_map[180470000] = 46.972934865;
7072  atomic_mass_map[190470000] = 46.961661614;
7073  atomic_mass_map[200470000] = 46.95454243;
7074  atomic_mass_map[210470000] = 46.95240374;
7075  atomic_mass_map[220470000] = 46.951758787;
7076  atomic_mass_map[230470000] = 46.954904914;
7077  atomic_mass_map[240470000] = 46.962897359;
7078  atomic_mass_map[250470000] = 46.975775;
7079  atomic_mass_map[260470000] = 46.99185;
7080  atomic_mass_map[270470000] = 47.01057;
7081  atomic_mass_map[160480000] = 48.0137;
7082  atomic_mass_map[170480000] = 47.99564;
7083  atomic_mass_map[180480000] = 47.97591;
7084  atomic_mass_map[190480000] = 47.965341186;
7085  atomic_mass_map[200480000] = 47.952522765;
7086  atomic_mass_map[210480000] = 47.952223611;
7087  atomic_mass_map[220480000] = 47.947941979;
7088  atomic_mass_map[230480000] = 47.952252223;
7089  atomic_mass_map[240480000] = 47.954029061;
7090  atomic_mass_map[250480000] = 47.96852;
7091  atomic_mass_map[260480000] = 47.98023;
7092  atomic_mass_map[270480000] = 48.00093;
7093  atomic_mass_map[280480000] = 48.017688;
7094  atomic_mass_map[160490000] = 49.022762;
7095  atomic_mass_map[170490000] = 49.00123;
7096  atomic_mass_map[180490000] = 48.9819;
7097  atomic_mass_map[190490000] = 48.968210755;
7098  atomic_mass_map[200490000] = 48.955662736;
7099  atomic_mass_map[210490000] = 48.950014629;
7100  atomic_mass_map[220490000] = 48.947865676;
7101  atomic_mass_map[230490000] = 48.948511795;
7102  atomic_mass_map[240490000] = 48.951333349;
7103  atomic_mass_map[250490000] = 48.959595297;
7104  atomic_mass_map[260490000] = 48.973429;
7105  atomic_mass_map[270490000] = 48.98891;
7106  atomic_mass_map[280490000] = 49.0077;
7107  atomic_mass_map[170500000] = 50.00905;
7108  atomic_mass_map[180500000] = 49.98613;
7109  atomic_mass_map[190500000] = 49.972380017;
7110  atomic_mass_map[200500000] = 49.957499217;
7111  atomic_mass_map[210500000] = 49.952176274;
7112  atomic_mass_map[220500000] = 49.944786889;
7113  atomic_mass_map[230500000] = 49.947156014;
7114  atomic_mass_map[240500000] = 49.946041833;
7115  atomic_mass_map[250500000] = 49.954237781;
7116  atomic_mass_map[260500000] = 49.962974929;
7117  atomic_mass_map[270500000] = 49.98091;
7118  atomic_mass_map[280500000] = 49.99474;
7119  atomic_mass_map[170510000] = 51.01554;
7120  atomic_mass_map[180510000] = 50.9937;
7121  atomic_mass_map[190510000] = 50.975828036;
7122  atomic_mass_map[200510000] = 50.960988981;
7123  atomic_mass_map[210510000] = 50.953591956;
7124  atomic_mass_map[220510000] = 50.946610651;
7125  atomic_mass_map[230510000] = 50.943957036;
7126  atomic_mass_map[240510000] = 50.944765018;
7127  atomic_mass_map[250510000] = 50.948208475;
7128  atomic_mass_map[260510000] = 50.956841021;
7129  atomic_mass_map[270510000] = 50.970647;
7130  atomic_mass_map[280510000] = 50.98611;
7131  atomic_mass_map[180520000] = 51.99896;
7132  atomic_mass_map[190520000] = 51.98224;
7133  atomic_mass_map[200520000] = 51.963217145;
7134  atomic_mass_map[210520000] = 51.956879479;
7135  atomic_mass_map[220520000] = 51.946893006;
7136  atomic_mass_map[230520000] = 51.944773007;
7137  atomic_mass_map[240520000] = 51.940506231;
7138  atomic_mass_map[250520000] = 51.945563949;
7139  atomic_mass_map[260520000] = 51.948113146;
7140  atomic_mass_map[270520000] = 51.96351;
7141  atomic_mass_map[280520000] = 51.9748;
7142  atomic_mass_map[290520000] = 51.99671;
7143  atomic_mass_map[180530000] = 53.00729;
7144  atomic_mass_map[190530000] = 52.98746;
7145  atomic_mass_map[200530000] = 52.96945;
7146  atomic_mass_map[210530000] = 52.95909;
7147  atomic_mass_map[220530000] = 52.949725933;
7148  atomic_mass_map[230530000] = 52.944336741;
7149  atomic_mass_map[240530000] = 52.940648147;
7150  atomic_mass_map[250530000] = 52.941288891;
7151  atomic_mass_map[260530000] = 52.945306428;
7152  atomic_mass_map[270530000] = 52.954204077;
7153  atomic_mass_map[280530000] = 52.96819;
7154  atomic_mass_map[290530000] = 52.98459;
7155  atomic_mass_map[190540000] = 53.99463;
7156  atomic_mass_map[200540000] = 53.9734;
7157  atomic_mass_map[210540000] = 53.96393;
7158  atomic_mass_map[220540000] = 53.951049547;
7159  atomic_mass_map[230540000] = 53.946438617;
7160  atomic_mass_map[240540000] = 53.938879158;
7161  atomic_mass_map[250540000] = 53.940357615;
7162  atomic_mass_map[260540000] = 53.939608986;
7163  atomic_mass_map[270540000] = 53.948459872;
7164  atomic_mass_map[280540000] = 53.957892463;
7165  atomic_mass_map[290540000] = 53.97666;
7166  atomic_mass_map[300540000] = 53.992039;
7167  atomic_mass_map[190550000] = 55.00076;
7168  atomic_mass_map[200550000] = 54.9803;
7169  atomic_mass_map[210550000] = 54.967818892;
7170  atomic_mass_map[220550000] = 54.955268064;
7171  atomic_mass_map[230550000] = 54.94724215;
7172  atomic_mass_map[240550000] = 54.940838434;
7173  atomic_mass_map[250550000] = 54.93804391;
7174  atomic_mass_map[260550000] = 54.938291994;
7175  atomic_mass_map[270550000] = 54.941997202;
7176  atomic_mass_map[280550000] = 54.951330632;
7177  atomic_mass_map[290550000] = 54.966038;
7178  atomic_mass_map[300550000] = 54.98398;
7179  atomic_mass_map[190560000] = 56.00851;
7180  atomic_mass_map[200560000] = 55.98508;
7181  atomic_mass_map[210560000] = 55.97345;
7182  atomic_mass_map[220560000] = 55.957911353;
7183  atomic_mass_map[230560000] = 55.95048481;
7184  atomic_mass_map[240560000] = 55.940653139;
7185  atomic_mass_map[250560000] = 55.938903691;
7186  atomic_mass_map[260560000] = 55.934936326;
7187  atomic_mass_map[270560000] = 55.939838798;
7188  atomic_mass_map[280560000] = 55.942128549;
7189  atomic_mass_map[290560000] = 55.95895;
7190  atomic_mass_map[300560000] = 55.97254;
7191  atomic_mass_map[310560000] = 55.99536;
7192  atomic_mass_map[200570000] = 56.99262;
7193  atomic_mass_map[210570000] = 56.97777;
7194  atomic_mass_map[220570000] = 56.963641626;
7195  atomic_mass_map[230570000] = 56.952518869;
7196  atomic_mass_map[240570000] = 56.943613013;
7197  atomic_mass_map[250570000] = 56.938286096;
7198  atomic_mass_map[260570000] = 56.935392841;
7199  atomic_mass_map[270570000] = 56.936290574;
7200  atomic_mass_map[280570000] = 56.939792184;
7201  atomic_mass_map[290570000] = 56.949212498;
7202  atomic_mass_map[300570000] = 56.96506;
7203  atomic_mass_map[310570000] = 56.9832;
7204  atomic_mass_map[200580000] = 57.99794;
7205  atomic_mass_map[210580000] = 57.98403;
7206  atomic_mass_map[220580000] = 57.9666;
7207  atomic_mass_map[230580000] = 57.956715235;
7208  atomic_mass_map[240580000] = 57.944353129;
7209  atomic_mass_map[250580000] = 57.940066645;
7210  atomic_mass_map[260580000] = 57.933274431;
7211  atomic_mass_map[270580000] = 57.935752073;
7212  atomic_mass_map[280580000] = 57.935342414;
7213  atomic_mass_map[290580000] = 57.944533046;
7214  atomic_mass_map[300580000] = 57.954591062;
7215  atomic_mass_map[310580000] = 57.97478;
7216  atomic_mass_map[320580000] = 57.99172;
7217  atomic_mass_map[210590000] = 58.98894;
7218  atomic_mass_map[220590000] = 58.97247;
7219  atomic_mass_map[230590000] = 58.959385659;
7220  atomic_mass_map[240590000] = 58.948586367;
7221  atomic_mass_map[250590000] = 58.940391113;
7222  atomic_mass_map[260590000] = 58.934874338;
7223  atomic_mass_map[270590000] = 58.933194288;
7224  atomic_mass_map[280590000] = 58.934346202;
7225  atomic_mass_map[290590000] = 58.939497482;
7226  atomic_mass_map[300590000] = 58.949312657;
7227  atomic_mass_map[310590000] = 58.96353;
7228  atomic_mass_map[320590000] = 58.98249;
7229  atomic_mass_map[210600000] = 59.99565;
7230  atomic_mass_map[220600000] = 59.97603;
7231  atomic_mass_map[230600000] = 59.96431329;
7232  atomic_mass_map[240600000] = 59.950076033;
7233  atomic_mass_map[250600000] = 59.943136576;
7234  atomic_mass_map[260600000] = 59.9340711;
7235  atomic_mass_map[270600000] = 59.933816299;
7236  atomic_mass_map[280600000] = 59.930785885;
7237  atomic_mass_map[290600000] = 59.937364544;
7238  atomic_mass_map[300600000] = 59.941842103;
7239  atomic_mass_map[310600000] = 59.95729;
7240  atomic_mass_map[320600000] = 59.97036;
7241  atomic_mass_map[330600000] = 59.99388;
7242  atomic_mass_map[210610000] = 61.001;
7243  atomic_mass_map[220610000] = 60.98245;
7244  atomic_mass_map[230610000] = 60.96725;
7245  atomic_mass_map[240610000] = 60.954422585;
7246  atomic_mass_map[250610000] = 60.944452544;
7247  atomic_mass_map[260610000] = 60.936746244;
7248  atomic_mass_map[270610000] = 60.93247662;
7249  atomic_mass_map[280610000] = 60.93105557;
7250  atomic_mass_map[290610000] = 60.933457612;
7251  atomic_mass_map[300610000] = 60.939507188;
7252  atomic_mass_map[310610000] = 60.949398984;
7253  atomic_mass_map[320610000] = 60.96379;
7254  atomic_mass_map[330610000] = 60.98112;
7255  atomic_mass_map[220620000] = 61.98651;
7256  atomic_mass_map[230620000] = 61.97265;
7257  atomic_mass_map[240620000] = 61.956097451;
7258  atomic_mass_map[250620000] = 61.947954;
7259  atomic_mass_map[260620000] = 61.936791812;
7260  atomic_mass_map[270620000] = 61.934058809;
7261  atomic_mass_map[280620000] = 61.928345365;
7262  atomic_mass_map[290620000] = 61.932595415;
7263  atomic_mass_map[300620000] = 61.934333971;
7264  atomic_mass_map[310620000] = 61.944190251;
7265  atomic_mass_map[320620000] = 61.95502;
7266  atomic_mass_map[330620000] = 61.97361;
7267  atomic_mass_map[220630000] = 62.99375;
7268  atomic_mass_map[230630000] = 62.97639;
7269  atomic_mass_map[240630000] = 62.961650731;
7270  atomic_mass_map[250630000] = 62.949664675;
7271  atomic_mass_map[260630000] = 62.9402727;
7272  atomic_mass_map[270630000] = 62.933600217;
7273  atomic_mass_map[280630000] = 62.929669626;
7274  atomic_mass_map[290630000] = 62.929597723;
7275  atomic_mass_map[300630000] = 62.933211474;
7276  atomic_mass_map[310630000] = 62.939294196;
7277  atomic_mass_map[320630000] = 62.949628;
7278  atomic_mass_map[330630000] = 62.9639;
7279  atomic_mass_map[230640000] = 63.98264;
7280  atomic_mass_map[240640000] = 63.96408;
7281  atomic_mass_map[250640000] = 63.95384937;
7282  atomic_mass_map[260640000] = 63.940987763;
7283  atomic_mass_map[270640000] = 63.935810764;
7284  atomic_mass_map[280640000] = 63.927966816;
7285  atomic_mass_map[290640000] = 63.929764342;
7286  atomic_mass_map[300640000] = 63.929142013;
7287  atomic_mass_map[310640000] = 63.93684044;
7288  atomic_mass_map[320640000] = 63.941689913;
7289  atomic_mass_map[330640000] = 63.957432;
7290  atomic_mass_map[340640000] = 63.97109;
7291  atomic_mass_map[230650000] = 64.9875;
7292  atomic_mass_map[240650000] = 64.96996;
7293  atomic_mass_map[250650000] = 64.95601975;
7294  atomic_mass_map[260650000] = 64.945011462;
7295  atomic_mass_map[270650000] = 64.936462072;
7296  atomic_mass_map[280650000] = 64.930085173;
7297  atomic_mass_map[290650000] = 64.927789704;
7298  atomic_mass_map[300650000] = 64.92924077;
7299  atomic_mass_map[310650000] = 64.932734588;
7300  atomic_mass_map[320650000] = 64.939368137;
7301  atomic_mass_map[330650000] = 64.949611;
7302  atomic_mass_map[340650000] = 64.9644;
7303  atomic_mass_map[230660000] = 65.99398;
7304  atomic_mass_map[240660000] = 65.97366;
7305  atomic_mass_map[250660000] = 65.960546834;
7306  atomic_mass_map[260660000] = 65.94624996;
7307  atomic_mass_map[270660000] = 65.939442945;
7308  atomic_mass_map[280660000] = 65.929139334;
7309  atomic_mass_map[290660000] = 65.928869032;
7310  atomic_mass_map[300660000] = 65.926033809;
7311  atomic_mass_map[310660000] = 65.931589401;
7312  atomic_mass_map[320660000] = 65.933862126;
7313  atomic_mass_map[330660000] = 65.944148779;
7314  atomic_mass_map[340660000] = 65.95559;
7315  atomic_mass_map[240670000] = 66.98016;
7316  atomic_mass_map[250670000] = 66.96424;
7317  atomic_mass_map[260670000] = 66.950543395;
7318  atomic_mass_map[270670000] = 66.940609627;
7319  atomic_mass_map[280670000] = 66.931569414;
7320  atomic_mass_map[290670000] = 66.927730314;
7321  atomic_mass_map[300670000] = 66.927127746;
7322  atomic_mass_map[310670000] = 66.928202547;
7323  atomic_mass_map[320670000] = 66.932733861;
7324  atomic_mass_map[330670000] = 66.939251112;
7325  atomic_mass_map[340670000] = 66.949994;
7326  atomic_mass_map[350670000] = 66.96465;
7327  atomic_mass_map[240680000] = 67.98403;
7328  atomic_mass_map[250680000] = 67.96962;
7329  atomic_mass_map[260680000] = 67.95295155;
7330  atomic_mass_map[270680000] = 67.944257589;
7331  atomic_mass_map[280680000] = 67.931868789;
7332  atomic_mass_map[290680000] = 67.929610889;
7333  atomic_mass_map[300680000] = 67.924844554;
7334  atomic_mass_map[310680000] = 67.927980485;
7335  atomic_mass_map[320680000] = 67.928095307;
7336  atomic_mass_map[330680000] = 67.93677413;
7337  atomic_mass_map[340680000] = 67.941825238;
7338  atomic_mass_map[350680000] = 67.958732;
7339  atomic_mass_map[250690000] = 68.97366;
7340  atomic_mass_map[260690000] = 68.95807;
7341  atomic_mass_map[270690000] = 68.946141268;
7342  atomic_mass_map[280690000] = 68.935610269;
7343  atomic_mass_map[290690000] = 68.929429269;
7344  atomic_mass_map[300690000] = 68.926550682;
7345  atomic_mass_map[310690000] = 68.925573541;
7346  atomic_mass_map[320690000] = 68.927964481;
7347  atomic_mass_map[330690000] = 68.932246302;
7348  atomic_mass_map[340690000] = 68.939414847;
7349  atomic_mass_map[350690000] = 68.950497297;
7350  atomic_mass_map[360690000] = 68.96518;
7351  atomic_mass_map[250700000] = 69.97937;
7352  atomic_mass_map[260700000] = 69.96102;
7353  atomic_mass_map[270700000] = 69.94963;
7354  atomic_mass_map[280700000] = 69.936431302;
7355  atomic_mass_map[290700000] = 69.932392079;
7356  atomic_mass_map[300700000] = 69.925319208;
7357  atomic_mass_map[310700000] = 69.926021927;
7358  atomic_mass_map[320700000] = 69.92424875;
7359  atomic_mass_map[330700000] = 69.930926195;
7360  atomic_mass_map[340700000] = 69.933515523;
7361  atomic_mass_map[350700000] = 69.944792323;
7362  atomic_mass_map[360700000] = 69.95604;
7363  atomic_mass_map[250710000] = 70.98368;
7364  atomic_mass_map[260710000] = 70.96672;
7365  atomic_mass_map[270710000] = 70.952366923;
7366  atomic_mass_map[280710000] = 70.940518964;
7367  atomic_mass_map[290710000] = 70.932676833;
7368  atomic_mass_map[300710000] = 70.927719582;
7369  atomic_mass_map[310710000] = 70.924702577;
7370  atomic_mass_map[320710000] = 70.924952327;
7371  atomic_mass_map[330710000] = 70.927113801;
7372  atomic_mass_map[340710000] = 70.932209433;
7373  atomic_mass_map[350710000] = 70.939342155;
7374  atomic_mass_map[360710000] = 70.950265696;
7375  atomic_mass_map[370710000] = 70.96532;
7376  atomic_mass_map[260720000] = 71.96983;
7377  atomic_mass_map[270720000] = 71.95729;
7378  atomic_mass_map[280720000] = 71.941785926;
7379  atomic_mass_map[290720000] = 71.935820307;
7380  atomic_mass_map[300720000] = 71.926842807;
7381  atomic_mass_map[310720000] = 71.926367474;
7382  atomic_mass_map[320720000] = 71.922075826;
7383  atomic_mass_map[330720000] = 71.926752294;
7384  atomic_mass_map[340720000] = 71.927140507;
7385  atomic_mass_map[350720000] = 71.936588619;
7386  atomic_mass_map[360720000] = 71.942092407;
7387  atomic_mass_map[370720000] = 71.95908;
7388  atomic_mass_map[260730000] = 72.97572;
7389  atomic_mass_map[270730000] = 72.96039;
7390  atomic_mass_map[280730000] = 72.946206683;
7391  atomic_mass_map[290730000] = 72.936674378;
7392  atomic_mass_map[300730000] = 72.929582582;
7393  atomic_mass_map[310730000] = 72.925174682;
7394  atomic_mass_map[320730000] = 72.923458956;
7395  atomic_mass_map[330730000] = 72.923829086;
7396  atomic_mass_map[340730000] = 72.926754882;
7397  atomic_mass_map[350730000] = 72.931671503;
7398  atomic_mass_map[360730000] = 72.939289195;
7399  atomic_mass_map[370730000] = 72.950529;
7400  atomic_mass_map[380730000] = 72.9657;
7401  atomic_mass_map[260740000] = 73.97935;
7402  atomic_mass_map[270740000] = 73.96515;
7403  atomic_mass_map[280740000] = 73.94798;
7404  atomic_mass_map[290740000] = 73.939874862;
7405  atomic_mass_map[300740000] = 73.929407262;
7406  atomic_mass_map[310740000] = 73.926945727;
7407  atomic_mass_map[320740000] = 73.921177761;
7408  atomic_mass_map[330740000] = 73.923928598;
7409  atomic_mass_map[340740000] = 73.922475934;
7410  atomic_mass_map[350740000] = 73.929910177;
7411  atomic_mass_map[360740000] = 73.93308402;
7412  atomic_mass_map[370740000] = 73.944265894;
7413  atomic_mass_map[380740000] = 73.95617;
7414  atomic_mass_map[270750000] = 74.96876;
7415  atomic_mass_map[280750000] = 74.9525;
7416  atomic_mass_map[290750000] = 74.941522606;
7417  atomic_mass_map[300750000] = 74.932840246;
7418  atomic_mass_map[310750000] = 74.926500246;
7419  atomic_mass_map[320750000] = 74.92285837;
7420  atomic_mass_map[330750000] = 74.921594567;
7421  atomic_mass_map[340750000] = 74.92252287;
7422  atomic_mass_map[350750000] = 74.925810452;
7423  atomic_mass_map[360750000] = 74.930945746;
7424  atomic_mass_map[370750000] = 74.938573201;
7425  atomic_mass_map[380750000] = 74.94995277;
7426  atomic_mass_map[270760000] = 75.97413;
7427  atomic_mass_map[280760000] = 75.95533;
7428  atomic_mass_map[290760000] = 75.945275026;
7429  atomic_mass_map[300760000] = 75.933114957;
7430  atomic_mass_map[310760000] = 75.928827626;
7431  atomic_mass_map[320760000] = 75.921402726;
7432  atomic_mass_map[330760000] = 75.922392015;
7433  atomic_mass_map[340760000] = 75.919213704;
7434  atomic_mass_map[350760000] = 75.924541576;
7435  atomic_mass_map[360760000] = 75.925910271;
7436  atomic_mass_map[370760000] = 75.935073032;
7437  atomic_mass_map[380760000] = 75.941762761;
7438  atomic_mass_map[390760000] = 75.95856;
7439  atomic_mass_map[280770000] = 76.96055;
7440  atomic_mass_map[290770000] = 76.94792;
7441  atomic_mass_map[300770000] = 76.936887199;
7442  atomic_mass_map[310770000] = 76.9291543;
7443  atomic_mass_map[320770000] = 76.923549843;
7444  atomic_mass_map[330770000] = 76.920647563;
7445  atomic_mass_map[340770000] = 76.919914154;
7446  atomic_mass_map[350770000] = 76.921379198;
7447  atomic_mass_map[360770000] = 76.92467;
7448  atomic_mass_map[370770000] = 76.9304016;
7449  atomic_mass_map[380770000] = 76.937945455;
7450  atomic_mass_map[390770000] = 76.949781;
7451  atomic_mass_map[280780000] = 77.96336;
7452  atomic_mass_map[290780000] = 77.95223;
7453  atomic_mass_map[300780000] = 77.938289206;
7454  atomic_mass_map[310780000] = 77.931608845;
7455  atomic_mass_map[320780000] = 77.922852908;
7456  atomic_mass_map[330780000] = 77.921827773;
7457  atomic_mass_map[340780000] = 77.91730928;
7458  atomic_mass_map[350780000] = 77.921145895;
7459  atomic_mass_map[360780000] = 77.920364944;
7460  atomic_mass_map[370780000] = 77.928141868;
7461  atomic_mass_map[380780000] = 77.93217998;
7462  atomic_mass_map[390780000] = 77.94361;
7463  atomic_mass_map[400780000] = 77.95566;
7464  atomic_mass_map[280790000] = 78.970252;
7465  atomic_mass_map[290790000] = 78.95502;
7466  atomic_mass_map[300790000] = 78.942638069;
7467  atomic_mass_map[310790000] = 78.932852301;
7468  atomic_mass_map[320790000] = 78.925360127;
7469  atomic_mass_map[330790000] = 78.920948423;
7470  atomic_mass_map[340790000] = 78.918499287;
7471  atomic_mass_map[350790000] = 78.918337579;
7472  atomic_mass_map[360790000] = 78.920082923;
7473  atomic_mass_map[370790000] = 78.923989864;
7474  atomic_mass_map[380790000] = 78.929707664;
7475  atomic_mass_map[390790000] = 78.937351299;
7476  atomic_mass_map[400790000] = 78.94948;
7477  atomic_mass_map[290800000] = 79.96089;
7478  atomic_mass_map[300800000] = 79.944552931;
7479  atomic_mass_map[310800000] = 79.936420775;
7480  atomic_mass_map[320800000] = 79.925350775;
7481  atomic_mass_map[330800000] = 79.922474584;
7482  atomic_mass_map[340800000] = 79.916521762;
7483  atomic_mass_map[350800000] = 79.918529788;
7484  atomic_mass_map[360800000] = 79.916378084;
7485  atomic_mass_map[370800000] = 79.922516444;
7486  atomic_mass_map[380800000] = 79.924517516;
7487  atomic_mass_map[390800000] = 79.934356096;
7488  atomic_mass_map[400800000] = 79.9404;
7489  atomic_mass_map[290810000] = 80.965872;
7490  atomic_mass_map[300810000] = 80.950402619;
7491  atomic_mass_map[310810000] = 80.938133843;
7492  atomic_mass_map[320810000] = 80.928832943;
7493  atomic_mass_map[330810000] = 80.92213228;
7494  atomic_mass_map[340810000] = 80.917993023;
7495  atomic_mass_map[350810000] = 80.91628969;
7496  atomic_mass_map[360810000] = 80.916591181;
7497  atomic_mass_map[370810000] = 80.918993936;
7498  atomic_mass_map[380810000] = 80.923211395;
7499  atomic_mass_map[390810000] = 80.929455556;
7500  atomic_mass_map[400810000] = 80.937308892;
7501  atomic_mass_map[410810000] = 80.9496;
7502  atomic_mass_map[290820000] = 81.972442;
7503  atomic_mass_map[300820000] = 81.95426;
7504  atomic_mass_map[310820000] = 81.943176533;
7505  atomic_mass_map[320820000] = 81.929774033;
7506  atomic_mass_map[330820000] = 81.924741233;
7507  atomic_mass_map[340820000] = 81.916699497;
7508  atomic_mass_map[350820000] = 81.916803246;
7509  atomic_mass_map[360820000] = 81.91348273;
7510  atomic_mass_map[370820000] = 81.918209024;
7511  atomic_mass_map[380820000] = 81.918399855;
7512  atomic_mass_map[390820000] = 81.926931401;
7513  atomic_mass_map[400820000] = 81.931354;
7514  atomic_mass_map[410820000] = 81.94396;
7515  atomic_mass_map[300830000] = 82.96056;
7516  atomic_mass_map[310830000] = 82.947120301;
7517  atomic_mass_map[320830000] = 82.934539101;
7518  atomic_mass_map[330830000] = 82.925206901;
7519  atomic_mass_map[340830000] = 82.919118569;
7520  atomic_mass_map[350830000] = 82.91517562;
7521  atomic_mass_map[360830000] = 82.914127164;
7522  atomic_mass_map[370830000] = 82.915114183;
7523  atomic_mass_map[380830000] = 82.917554374;
7524  atomic_mass_map[390830000] = 82.92248525;
7525  atomic_mass_map[400830000] = 82.92924215;
7526  atomic_mass_map[410830000] = 82.937293731;
7527  atomic_mass_map[420830000] = 82.94988;
7528  atomic_mass_map[300840000] = 83.965206;
7529  atomic_mass_map[310840000] = 83.95246;
7530  atomic_mass_map[320840000] = 83.937575092;
7531  atomic_mass_map[330840000] = 83.929303292;
7532  atomic_mass_map[340840000] = 83.918466763;
7533  atomic_mass_map[350840000] = 83.916496419;
7534  atomic_mass_map[360840000] = 83.9114977282;
7535  atomic_mass_map[370840000] = 83.914375229;
7536  atomic_mass_map[380840000] = 83.913419136;
7537  atomic_mass_map[390840000] = 83.920672086;
7538  atomic_mass_map[400840000] = 83.923326899;
7539  atomic_mass_map[410840000] = 83.934492;
7540  atomic_mass_map[420840000] = 83.94149;
7541  atomic_mass_map[300850000] = 84.97226;
7542  atomic_mass_map[310850000] = 84.95699;
7543  atomic_mass_map[320850000] = 84.94296966;
7544  atomic_mass_map[330850000] = 84.93216366;
7545  atomic_mass_map[340850000] = 84.92226076;
7546  atomic_mass_map[350850000] = 84.91564576;
7547  atomic_mass_map[360850000] = 84.912527262;
7548  atomic_mass_map[370850000] = 84.9117897379;
7549  atomic_mass_map[380850000] = 84.912932046;
7550  atomic_mass_map[390850000] = 84.916433039;
7551  atomic_mass_map[400850000] = 84.921444448;
7552  atomic_mass_map[410850000] = 84.928845837;
7553  atomic_mass_map[420850000] = 84.938260737;
7554  atomic_mass_map[430850000] = 84.95058;
7555  atomic_mass_map[310860000] = 85.96301;
7556  atomic_mass_map[320860000] = 85.94658;
7557  atomic_mass_map[330860000] = 85.936701533;
7558  atomic_mass_map[340860000] = 85.924311733;
7559  atomic_mass_map[350860000] = 85.918805433;
7560  atomic_mass_map[360860000] = 85.9106106269;
7561  atomic_mass_map[370860000] = 85.911167425;
7562  atomic_mass_map[380860000] = 85.909260608;
7563  atomic_mass_map[390860000] = 85.91488598;
7564  atomic_mass_map[400860000] = 85.916297204;
7565  atomic_mass_map[410860000] = 85.925782798;
7566  atomic_mass_map[420860000] = 85.931174817;
7567  atomic_mass_map[430860000] = 85.94493;
7568  atomic_mass_map[310870000] = 86.968245;
7569  atomic_mass_map[320870000] = 86.95268;
7570  atomic_mass_map[330870000] = 86.940291718;
7571  atomic_mass_map[340870000] = 86.928688618;
7572  atomic_mass_map[350870000] = 86.920674018;
7573  atomic_mass_map[360870000] = 86.91335476;
7574  atomic_mass_map[370870000] = 86.909180531;
7575  atomic_mass_map[380870000] = 86.908877531;
7576  atomic_mass_map[390870000] = 86.910876138;
7577  atomic_mass_map[400870000] = 86.914817988;
7578  atomic_mass_map[410870000] = 86.920693747;
7579  atomic_mass_map[420870000] = 86.928196201;
7580  atomic_mass_map[430870000] = 86.938067187;
7581  atomic_mass_map[440870000] = 86.95069;
7582  atomic_mass_map[320880000] = 87.95691;
7583  atomic_mass_map[330880000] = 87.94555;
7584  atomic_mass_map[340880000] = 87.931417492;
7585  atomic_mass_map[350880000] = 87.924083292;
7586  atomic_mass_map[360880000] = 87.914447881;
7587  atomic_mass_map[370880000] = 87.911315592;
7588  atomic_mass_map[380880000] = 87.905612542;
7589  atomic_mass_map[390880000] = 87.909501563;
7590  atomic_mass_map[400880000] = 87.91022129;
7591  atomic_mass_map[410880000] = 87.91822171;
7592  atomic_mass_map[420880000] = 87.921967781;
7593  atomic_mass_map[430880000] = 87.933782381;
7594  atomic_mass_map[440880000] = 87.9416;
7595  atomic_mass_map[320890000] = 88.96379;
7596  atomic_mass_map[330890000] = 88.94976;
7597  atomic_mass_map[340890000] = 88.93666906;
7598  atomic_mass_map[350890000] = 88.92670456;
7599  atomic_mass_map[360890000] = 88.917835451;
7600  atomic_mass_map[370890000] = 88.912278298;
7601  atomic_mass_map[380890000] = 88.907451095;
7602  atomic_mass_map[390890000] = 88.905840348;
7603  atomic_mass_map[400890000] = 88.908881441;
7604  atomic_mass_map[410890000] = 88.913445073;
7605  atomic_mass_map[420890000] = 88.919468151;
7606  atomic_mass_map[430890000] = 88.927648651;
7607  atomic_mass_map[440890000] = 88.93762;
7608  atomic_mass_map[450890000] = 88.950584;
7609  atomic_mass_map[320900000] = 89.96863;
7610  atomic_mass_map[330900000] = 89.95563;
7611  atomic_mass_map[340900000] = 89.940096;
7612  atomic_mass_map[350900000] = 89.93129285;
7613  atomic_mass_map[360900000] = 89.919527931;
7614  atomic_mass_map[370900000] = 89.914798453;
7615  atomic_mass_map[380900000] = 89.907730037;
7616  atomic_mass_map[390900000] = 89.907143942;
7617  atomic_mass_map[400900000] = 89.904697659;
7618  atomic_mass_map[410900000] = 89.911258449;
7619  atomic_mass_map[420900000] = 89.913930861;
7620  atomic_mass_map[430900000] = 89.924073921;
7621  atomic_mass_map[440900000] = 89.93034438;
7622  atomic_mass_map[450900000] = 89.94422;
7623  atomic_mass_map[330910000] = 90.96039;
7624  atomic_mass_map[340910000] = 90.94596;
7625  atomic_mass_map[350910000] = 90.934398619;
7626  atomic_mass_map[360910000] = 90.923806311;
7627  atomic_mass_map[370910000] = 90.916537169;
7628  atomic_mass_map[380910000] = 90.910195442;
7629  atomic_mass_map[390910000] = 90.907297442;
7630  atomic_mass_map[400910000] = 90.905639587;
7631  atomic_mass_map[410910000] = 90.906989658;
7632  atomic_mass_map[420910000] = 90.911745312;
7633  atomic_mass_map[430910000] = 90.918425397;
7634  atomic_mass_map[440910000] = 90.926741859;
7635  atomic_mass_map[450910000] = 90.93688;
7636  atomic_mass_map[460910000] = 90.95032;
7637  atomic_mass_map[330920000] = 91.96674;
7638  atomic_mass_map[340920000] = 91.94984;
7639  atomic_mass_map[350920000] = 91.939631597;
7640  atomic_mass_map[360920000] = 91.926173094;
7641  atomic_mass_map[370920000] = 91.919728389;
7642  atomic_mass_map[380920000] = 91.91103819;
7643  atomic_mass_map[390920000] = 91.908945142;
7644  atomic_mass_map[400920000] = 91.905034675;
7645  atomic_mass_map[410920000] = 91.907188081;
7646  atomic_mass_map[420920000] = 91.906807959;
7647  atomic_mass_map[430920000] = 91.915269779;
7648  atomic_mass_map[440920000] = 91.920234375;
7649  atomic_mass_map[450920000] = 91.932367694;
7650  atomic_mass_map[460920000] = 91.94088;
7651  atomic_mass_map[340930000] = 92.95629;
7652  atomic_mass_map[350930000] = 92.943134;
7653  atomic_mass_map[360930000] = 92.931147174;
7654  atomic_mass_map[370930000] = 92.922039269;
7655  atomic_mass_map[380930000] = 92.914024228;
7656  atomic_mass_map[390930000] = 92.909577886;
7657  atomic_mass_map[400930000] = 92.906469947;
7658  atomic_mass_map[410930000] = 92.906373004;
7659  atomic_mass_map[420930000] = 92.906809577;
7660  atomic_mass_map[430930000] = 92.910245952;
7661  atomic_mass_map[440930000] = 92.917104444;
7662  atomic_mass_map[450930000] = 92.925912781;
7663  atomic_mass_map[460930000] = 92.936511;
7664  atomic_mass_map[470930000] = 92.95033;
7665  atomic_mass_map[340940000] = 93.96049;
7666  atomic_mass_map[350940000] = 93.9489;
7667  atomic_mass_map[360940000] = 93.934140454;
7668  atomic_mass_map[370940000] = 93.926394814;
7669  atomic_mass_map[380940000] = 93.915355602;
7670  atomic_mass_map[390940000] = 93.911590582;
7671  atomic_mass_map[400940000] = 93.906310828;
7672  atomic_mass_map[410940000] = 93.907278836;
7673  atomic_mass_map[420940000] = 93.905084903;
7674  atomic_mass_map[430940000] = 93.909653637;
7675  atomic_mass_map[440940000] = 93.911342863;
7676  atomic_mass_map[450940000] = 93.921730453;
7677  atomic_mass_map[460940000] = 93.929037603;
7678  atomic_mass_map[470940000] = 93.943734;
7679  atomic_mass_map[340950000] = 94.9673;
7680  atomic_mass_map[350950000] = 94.95301;
7681  atomic_mass_map[360950000] = 94.939710924;
7682  atomic_mass_map[370950000] = 94.929260004;
7683  atomic_mass_map[380950000] = 94.919352941;
7684  atomic_mass_map[390950000] = 94.912816058;
7685  atomic_mass_map[400950000] = 94.90803853;
7686  atomic_mass_map[410950000] = 94.906832404;
7687  atomic_mass_map[420950000] = 94.905838766;
7688  atomic_mass_map[430950000] = 94.907653612;
7689  atomic_mass_map[440950000] = 94.910405759;
7690  atomic_mass_map[450950000] = 94.915897895;
7691  atomic_mass_map[460950000] = 94.924889838;
7692  atomic_mass_map[470950000] = 94.93602;
7693  atomic_mass_map[480950000] = 94.94994;
7694  atomic_mass_map[350960000] = 95.95903;
7695  atomic_mass_map[360960000] = 95.943016618;
7696  atomic_mass_map[370960000] = 95.93413338;
7697  atomic_mass_map[380960000] = 95.921706575;
7698  atomic_mass_map[390960000] = 95.915896835;
7699  atomic_mass_map[400960000] = 95.908271433;
7700  atomic_mass_map[410960000] = 95.908097286;
7701  atomic_mass_map[420960000] = 95.904676115;
7702  atomic_mass_map[430960000] = 95.907868022;
7703  atomic_mass_map[440960000] = 95.907590255;
7704  atomic_mass_map[450960000] = 95.914453051;
7705  atomic_mass_map[460960000] = 95.918215084;
7706  atomic_mass_map[470960000] = 95.930743906;
7707  atomic_mass_map[480960000] = 95.94034;
7708  atomic_mass_map[350970000] = 96.96344;
7709  atomic_mass_map[360970000] = 96.949088785;
7710  atomic_mass_map[370970000] = 96.937177136;
7711  atomic_mass_map[380970000] = 96.92637396;
7712  atomic_mass_map[390970000] = 96.918274106;
7713  atomic_mass_map[400970000] = 96.910951206;
7714  atomic_mass_map[410970000] = 96.908095932;
7715  atomic_mass_map[420970000] = 96.906018118;
7716  atomic_mass_map[430970000] = 96.906366706;
7717  atomic_mass_map[440970000] = 96.90754712;
7718  atomic_mass_map[450970000] = 96.911329216;
7719  atomic_mass_map[460970000] = 96.916471988;
7720  atomic_mass_map[470970000] = 96.923965326;
7721  atomic_mass_map[480970000] = 96.9351;
7722  atomic_mass_map[490970000] = 96.94934;
7723  atomic_mass_map[350980000] = 97.96946;
7724  atomic_mass_map[360980000] = 97.95243;
7725  atomic_mass_map[370980000] = 97.941686868;
7726  atomic_mass_map[380980000] = 97.928688778;
7727  atomic_mass_map[390980000] = 97.922382119;
7728  atomic_mass_map[400980000] = 97.912728892;
7729  atomic_mass_map[410980000] = 97.910326459;
7730  atomic_mass_map[420980000] = 97.90540482;
7731  atomic_mass_map[430980000] = 97.907212365;
7732  atomic_mass_map[440980000] = 97.905286813;
7733  atomic_mass_map[450980000] = 97.910707839;
7734  atomic_mass_map[460980000] = 97.912698337;
7735  atomic_mass_map[470980000] = 97.921559973;
7736  atomic_mass_map[480980000] = 97.927389318;
7737  atomic_mass_map[490980000] = 97.94214;
7738  atomic_mass_map[360990000] = 98.95839;
7739  atomic_mass_map[370990000] = 98.945028735;
7740  atomic_mass_map[380990000] = 98.932890666;
7741  atomic_mass_map[390990000] = 98.924147979;
7742  atomic_mass_map[400990000] = 98.916666746;
7743  atomic_mass_map[410990000] = 98.911613177;
7744  atomic_mass_map[420990000] = 98.907708509;
7745  atomic_mass_map[430990000] = 98.906250844;
7746  atomic_mass_map[440990000] = 98.905934082;
7747  atomic_mass_map[450990000] = 98.908128239;
7748  atomic_mass_map[460990000] = 98.911774806;
7749  atomic_mass_map[470990000] = 98.917645768;
7750  atomic_mass_map[480990000] = 98.924925848;
7751  atomic_mass_map[490990000] = 98.93411;
7752  atomic_mass_map[500990000] = 98.94853;
7753  atomic_mass_map[361000000] = 99.96237;
7754  atomic_mass_map[371000000] = 99.95003;
7755  atomic_mass_map[381000000] = 99.935769692;
7756  atomic_mass_map[391000000] = 99.927714692;
7757  atomic_mass_map[401000000] = 99.918000576;
7758  atomic_mass_map[411000000] = 99.914327592;
7759  atomic_mass_map[421000000] = 99.907471782;
7760  atomic_mass_map[431000000] = 99.907653877;
7761  atomic_mass_map[441000000] = 99.904214256;
7762  atomic_mass_map[451000000] = 99.908117264;
7763  atomic_mass_map[461000000] = 99.908504805;
7764  atomic_mass_map[471000000] = 99.916115445;
7765  atomic_mass_map[481000000] = 99.92034882;
7766  atomic_mass_map[491000000] = 99.93095718;
7767  atomic_mass_map[501000000] = 99.938504196;
7768  atomic_mass_map[361010000] = 100.96873;
7769  atomic_mass_map[371010000] = 100.954039;
7770  atomic_mass_map[381010000] = 100.940351743;
7771  atomic_mass_map[391010000] = 100.930147705;
7772  atomic_mass_map[401010000] = 100.921447964;
7773  atomic_mass_map[411010000] = 100.915310254;
7774  atomic_mass_map[421010000] = 100.910341447;
7775  atomic_mass_map[431010000] = 100.907309057;
7776  atomic_mass_map[441010000] = 100.905576872;
7777  atomic_mass_map[451010000] = 100.906160613;
7778  atomic_mass_map[461010000] = 100.908286412;
7779  atomic_mass_map[471010000] = 100.912683953;
7780  atomic_mass_map[481010000] = 100.918586211;
7781  atomic_mass_map[491010000] = 100.92634;
7782  atomic_mass_map[501010000] = 100.935259244;
7783  atomic_mass_map[371020000] = 101.95952;
7784  atomic_mass_map[381020000] = 101.943790979;
7785  atomic_mass_map[391020000] = 101.934327687;
7786  atomic_mass_map[401020000] = 101.92314093;
7787  atomic_mass_map[411020000] = 101.918077197;
7788  atomic_mass_map[421020000] = 101.910283414;
7789  atomic_mass_map[431020000] = 101.909209733;
7790  atomic_mass_map[441020000] = 101.904344096;
7791  atomic_mass_map[451020000] = 101.906837373;
7792  atomic_mass_map[461020000] = 101.905602187;
7793  atomic_mass_map[471020000] = 101.911704708;
7794  atomic_mass_map[481020000] = 101.914481967;
7795  atomic_mass_map[491020000] = 101.924107138;
7796  atomic_mass_map[501020000] = 101.930290753;
7797  atomic_mass_map[371030000] = 102.96392;
7798  atomic_mass_map[381030000] = 102.94909;
7799  atomic_mass_map[391030000] = 102.937243004;
7800  atomic_mass_map[401030000] = 102.927190678;
7801  atomic_mass_map[411030000] = 102.919457238;
7802  atomic_mass_map[421030000] = 102.913078578;
7803  atomic_mass_map[431030000] = 102.909176131;
7804  atomic_mass_map[441030000] = 102.906318627;
7805  atomic_mass_map[451030000] = 102.905497993;
7806  atomic_mass_map[461030000] = 102.906080949;
7807  atomic_mass_map[471030000] = 102.908963138;
7808  atomic_mass_map[481030000] = 102.913416517;
7809  atomic_mass_map[491030000] = 102.919881915;
7810  atomic_mass_map[501030000] = 102.928105264;
7811  atomic_mass_map[511030000] = 102.93969;
7812  atomic_mass_map[381040000] = 103.95265;
7813  atomic_mass_map[391040000] = 103.94196;
7814  atomic_mass_map[401040000] = 103.929435691;
7815  atomic_mass_map[411040000] = 103.922892491;
7816  atomic_mass_map[421040000] = 103.913734373;
7817  atomic_mass_map[431040000] = 103.911424888;
7818  atomic_mass_map[441040000] = 103.905427481;
7819  atomic_mass_map[451040000] = 103.90664922;
7820  atomic_mass_map[461040000] = 103.90403054;
7821  atomic_mass_map[471040000] = 103.908623864;
7822  atomic_mass_map[481040000] = 103.909856386;
7823  atomic_mass_map[491040000] = 103.918214541;
7824  atomic_mass_map[501040000] = 103.923105204;
7825  atomic_mass_map[511040000] = 103.936477804;
7826  atomic_mass_map[381050000] = 104.95855;
7827  atomic_mass_map[391050000] = 104.94544;
7828  atomic_mass_map[401050000] = 104.934008204;
7829  atomic_mass_map[411050000] = 104.924946471;
7830  atomic_mass_map[421050000] = 104.916968617;
7831  atomic_mass_map[431050000] = 104.911654883;
7832  atomic_mass_map[441050000] = 104.907747645;
7833  atomic_mass_map[451050000] = 104.905688549;
7834  atomic_mass_map[461050000] = 104.905079626;
7835  atomic_mass_map[471050000] = 104.906525615;
7836  atomic_mass_map[481050000] = 104.909463896;
7837  atomic_mass_map[491050000] = 104.914502325;
7838  atomic_mass_map[501050000] = 104.921268429;
7839  atomic_mass_map[511050000] = 104.931275897;
7840  atomic_mass_map[521050000] = 104.943304508;
7841  atomic_mass_map[381060000] = 105.962651;
7842  atomic_mass_map[391060000] = 105.95056;
7843  atomic_mass_map[401060000] = 105.93676;
7844  atomic_mass_map[411060000] = 105.928931712;
7845  atomic_mass_map[421060000] = 105.918259464;
7846  atomic_mass_map[431060000] = 105.914357598;
7847  atomic_mass_map[441060000] = 105.907329104;
7848  atomic_mass_map[451060000] = 105.907286801;
7849  atomic_mass_map[461060000] = 105.903480426;
7850  atomic_mass_map[471060000] = 105.906663637;
7851  atomic_mass_map[481060000] = 105.906459928;
7852  atomic_mass_map[491060000] = 105.913463735;
7853  atomic_mass_map[501060000] = 105.916957404;
7854  atomic_mass_map[511060000] = 105.928637982;
7855  atomic_mass_map[521060000] = 105.937499664;
7856  atomic_mass_map[381070000] = 106.968975;
7857  atomic_mass_map[391070000] = 106.95452;
7858  atomic_mass_map[401070000] = 106.94174;
7859  atomic_mass_map[411070000] = 106.931593654;
7860  atomic_mass_map[421070000] = 106.922105877;
7861  atomic_mass_map[431070000] = 106.915460645;
7862  atomic_mass_map[441070000] = 106.909972045;
7863  atomic_mass_map[451070000] = 106.906747811;
7864  atomic_mass_map[461070000] = 106.905128195;
7865  atomic_mass_map[471070000] = 106.905091611;
7866  atomic_mass_map[481070000] = 106.906612122;
7867  atomic_mass_map[491070000] = 106.910290084;
7868  atomic_mass_map[501070000] = 106.915713652;
7869  atomic_mass_map[511070000] = 106.924150641;
7870  atomic_mass_map[521070000] = 106.935011573;
7871  atomic_mass_map[531070000] = 106.94678;
7872  atomic_mass_map[391080000] = 107.95996;
7873  atomic_mass_map[401080000] = 107.94487;
7874  atomic_mass_map[411080000] = 107.936074773;
7875  atomic_mass_map[421080000] = 107.92403349;
7876  atomic_mass_map[431080000] = 107.918495722;
7877  atomic_mass_map[441080000] = 107.910188022;
7878  atomic_mass_map[451080000] = 107.908714473;
7879  atomic_mass_map[461080000] = 107.90389164;
7880  atomic_mass_map[471080000] = 107.905950346;
7881  atomic_mass_map[481080000] = 107.90418344;
7882  atomic_mass_map[491080000] = 107.909693524;
7883  atomic_mass_map[501080000] = 107.911894287;
7884  atomic_mass_map[511080000] = 107.922226735;
7885  atomic_mass_map[521080000] = 107.929380467;
7886  atomic_mass_map[531080000] = 107.943481623;
7887  atomic_mass_map[391090000] = 108.964358;
7888  atomic_mass_map[401090000] = 108.95041;
7889  atomic_mass_map[411090000] = 108.939216;
7890  atomic_mass_map[421090000] = 108.92842416;
7891  atomic_mass_map[431090000] = 108.920256356;
7892  atomic_mass_map[441090000] = 108.913325956;
7893  atomic_mass_map[451090000] = 108.908748821;
7894  atomic_mass_map[461090000] = 108.905950406;
7895  atomic_mass_map[471090000] = 108.904755282;
7896  atomic_mass_map[481090000] = 108.904986653;
7897  atomic_mass_map[491090000] = 108.907151381;
7898  atomic_mass_map[501090000] = 108.91129206;
7899  atomic_mass_map[511090000] = 108.918141122;
7900  atomic_mass_map[521090000] = 108.927304534;
7901  atomic_mass_map[531090000] = 108.938085287;
7902  atomic_mass_map[541090000] = 108.950434864;
7903  atomic_mass_map[401100000] = 109.95396;
7904  atomic_mass_map[411100000] = 109.94403;
7905  atomic_mass_map[421100000] = 109.930703673;
7906  atomic_mass_map[431100000] = 109.923743534;
7907  atomic_mass_map[441100000] = 109.914040696;
7908  atomic_mass_map[451100000] = 109.911079429;
7909  atomic_mass_map[461100000] = 109.905172199;
7910  atomic_mass_map[471100000] = 109.906110226;
7911  atomic_mass_map[481100000] = 109.903006606;
7912  atomic_mass_map[491100000] = 109.90716981;
7913  atomic_mass_map[501100000] = 109.907844835;
7914  atomic_mass_map[511100000] = 109.916854287;
7915  atomic_mass_map[521100000] = 109.922458091;
7916  atomic_mass_map[531100000] = 109.935089034;
7917  atomic_mass_map[541100000] = 109.944263102;
7918  atomic_mass_map[401110000] = 110.959678;
7919  atomic_mass_map[411110000] = 110.94753;
7920  atomic_mass_map[421110000] = 110.935654257;
7921  atomic_mass_map[431110000] = 110.925901257;
7922  atomic_mass_map[441110000] = 110.917569857;
7923  atomic_mass_map[451110000] = 110.91164231;
7924  atomic_mass_map[461110000] = 110.907689679;
7925  atomic_mass_map[471110000] = 110.905295923;
7926  atomic_mass_map[481110000] = 110.904182872;
7927  atomic_mass_map[491110000] = 110.905108458;
7928  atomic_mass_map[501110000] = 110.907740127;
7929  atomic_mass_map[511110000] = 110.913218189;
7930  atomic_mass_map[521110000] = 110.921000589;
7931  atomic_mass_map[531110000] = 110.930269214;
7932  atomic_mass_map[541110000] = 110.941607206;
7933  atomic_mass_map[401120000] = 111.963703;
7934  atomic_mass_map[411120000] = 111.95247;
7935  atomic_mass_map[421120000] = 111.93831;
7936  atomic_mass_map[431120000] = 111.929945813;
7937  atomic_mass_map[441120000] = 111.918809234;
7938  atomic_mass_map[451120000] = 111.914403222;
7939  atomic_mass_map[461120000] = 111.907329698;
7940  atomic_mass_map[471120000] = 111.90704855;
7941  atomic_mass_map[481120000] = 111.902762868;
7942  atomic_mass_map[491120000] = 111.905537694;
7943  atomic_mass_map[501120000] = 111.904823874;
7944  atomic_mass_map[511120000] = 111.912399903;
7945  atomic_mass_map[521120000] = 111.91672785;
7946  atomic_mass_map[531120000] = 111.92800455;
7947  atomic_mass_map[541120000] = 111.935558982;
7948  atomic_mass_map[551120000] = 111.950308558;
7949  atomic_mass_map[411130000] = 112.95651;
7950  atomic_mass_map[421130000] = 112.94335;
7951  atomic_mass_map[431130000] = 112.932569035;
7952  atomic_mass_map[441130000] = 112.922843999;
7953  atomic_mass_map[451130000] = 112.915439342;
7954  atomic_mass_map[461130000] = 112.910261042;
7955  atomic_mass_map[471130000] = 112.906572893;
7956  atomic_mass_map[481130000] = 112.904408133;
7957  atomic_mass_map[491130000] = 112.904061839;
7958  atomic_mass_map[501130000] = 112.905175728;
7959  atomic_mass_map[511130000] = 112.909374536;
7960  atomic_mass_map[521130000] = 112.915891;
7961  atomic_mass_map[531130000] = 112.923650064;
7962  atomic_mass_map[541130000] = 112.93322165;
7963  atomic_mass_map[551130000] = 112.944429144;
7964  atomic_mass_map[411140000] = 113.96201;
7965  atomic_mass_map[421140000] = 113.94653;
7966  atomic_mass_map[431140000] = 113.93691;
7967  atomic_mass_map[441140000] = 113.924613554;
7968  atomic_mass_map[451140000] = 113.918718294;
7969  atomic_mass_map[461140000] = 113.910368554;
7970  atomic_mass_map[471140000] = 113.908823031;
7971  atomic_mass_map[481140000] = 113.903365086;
7972  atomic_mass_map[491140000] = 113.904917909;
7973  atomic_mass_map[501140000] = 113.902782695;
7974  atomic_mass_map[511140000] = 113.909290189;
7975  atomic_mass_map[521140000] = 113.912089;
7976  atomic_mass_map[531140000] = 113.92185;
7977  atomic_mass_map[541140000] = 113.927980331;
7978  atomic_mass_map[551140000] = 113.941296176;
7979  atomic_mass_map[561140000] = 113.950660438;
7980  atomic_mass_map[411150000] = 114.96634;
7981  atomic_mass_map[421150000] = 114.95196;
7982  atomic_mass_map[431150000] = 114.93998;
7983  atomic_mass_map[441150000] = 114.928819898;
7984  atomic_mass_map[451150000] = 114.920311589;
7985  atomic_mass_map[461150000] = 114.913658506;
7986  atomic_mass_map[471150000] = 114.908767355;
7987  atomic_mass_map[481150000] = 114.905437513;
7988  atomic_mass_map[491150000] = 114.903878776;
7989  atomic_mass_map[501150000] = 114.903344699;
7990  atomic_mass_map[511150000] = 114.906598;
7991  atomic_mass_map[521150000] = 114.911902;
7992  atomic_mass_map[531150000] = 114.918048;
7993  atomic_mass_map[541150000] = 114.926293945;
7994  atomic_mass_map[551150000] = 114.93591;
7995  atomic_mass_map[561150000] = 114.94737;
7996  atomic_mass_map[421160000] = 115.955448;
7997  atomic_mass_map[431160000] = 115.94476;
7998  atomic_mass_map[441160000] = 115.931219195;
7999  atomic_mass_map[451160000] = 115.924058528;
8000  atomic_mass_map[461160000] = 115.914296979;
8001  atomic_mass_map[471160000] = 115.911386812;
8002  atomic_mass_map[481160000] = 115.904763148;
8003  atomic_mass_map[491160000] = 115.905259995;
8004  atomic_mass_map[501160000] = 115.901742797;
8005  atomic_mass_map[511160000] = 115.906793115;
8006  atomic_mass_map[521160000] = 115.90846;
8007  atomic_mass_map[531160000] = 115.916808658;
8008  atomic_mass_map[541160000] = 115.921581112;
8009  atomic_mass_map[551160000] = 115.933373;
8010  atomic_mass_map[561160000] = 115.94128;
8011  atomic_mass_map[571160000] = 115.956304;
8012  atomic_mass_map[421170000] = 116.96117;
8013  atomic_mass_map[431170000] = 116.94806;
8014  atomic_mass_map[441170000] = 116.936103;
8015  atomic_mass_map[451170000] = 116.926035391;
8016  atomic_mass_map[461170000] = 116.917954721;
8017  atomic_mass_map[471170000] = 116.911773934;
8018  atomic_mass_map[481170000] = 116.907225956;
8019  atomic_mass_map[491170000] = 116.904515678;
8020  atomic_mass_map[501170000] = 116.902953983;
8021  atomic_mass_map[511170000] = 116.904841508;
8022  atomic_mass_map[521170000] = 116.908646298;
8023  atomic_mass_map[531170000] = 116.913648312;
8024  atomic_mass_map[541170000] = 116.920358761;
8025  atomic_mass_map[551170000] = 116.928616726;
8026  atomic_mass_map[561170000] = 116.93814057;
8027  atomic_mass_map[571170000] = 116.949985;
8028  atomic_mass_map[431180000] = 117.95299;
8029  atomic_mass_map[441180000] = 117.93853;
8030  atomic_mass_map[451180000] = 117.930340208;
8031  atomic_mass_map[461180000] = 117.9190667;
8032  atomic_mass_map[471180000] = 117.914595487;
8033  atomic_mass_map[481180000] = 117.906921869;
8034  atomic_mass_map[491180000] = 117.906356616;
8035  atomic_mass_map[501180000] = 117.901606574;
8036  atomic_mass_map[511180000] = 117.905532139;
8037  atomic_mass_map[521180000] = 117.905853629;
8038  atomic_mass_map[531180000] = 117.913074;
8039  atomic_mass_map[541180000] = 117.91617868;
8040  atomic_mass_map[551180000] = 117.926559519;
8041  atomic_mass_map[561180000] = 117.93306;
8042  atomic_mass_map[571180000] = 117.94673;
8043  atomic_mass_map[431190000] = 118.95666;
8044  atomic_mass_map[441190000] = 118.94357;
8045  atomic_mass_map[451190000] = 118.932556954;
8046  atomic_mass_map[461190000] = 118.923340223;
8047  atomic_mass_map[471190000] = 118.915570287;
8048  atomic_mass_map[481190000] = 118.909846851;
8049  atomic_mass_map[491190000] = 118.905850708;
8050  atomic_mass_map[501190000] = 118.903311172;
8051  atomic_mass_map[511190000] = 118.903945471;
8052  atomic_mass_map[521190000] = 118.906407108;
8053  atomic_mass_map[531190000] = 118.910074;
8054  atomic_mass_map[541190000] = 118.915410714;
8055  atomic_mass_map[551190000] = 118.92237733;
8056  atomic_mass_map[561190000] = 118.930659686;
8057  atomic_mass_map[571190000] = 118.94099;
8058  atomic_mass_map[581190000] = 118.95271;
8059  atomic_mass_map[431200000] = 119.96187;
8060  atomic_mass_map[441200000] = 119.94631;
8061  atomic_mass_map[451200000] = 119.93686;
8062  atomic_mass_map[461200000] = 119.924551089;
8063  atomic_mass_map[471200000] = 119.918784768;
8064  atomic_mass_map[481200000] = 119.909868068;
8065  atomic_mass_map[491200000] = 119.907966567;
8066  atomic_mass_map[501200000] = 119.902201634;
8067  atomic_mass_map[511200000] = 119.905079385;
8068  atomic_mass_map[521200000] = 119.9040593;
8069  atomic_mass_map[531200000] = 119.910087251;
8070  atomic_mass_map[541200000] = 119.91178427;
8071  atomic_mass_map[551200000] = 119.920677279;
8072  atomic_mass_map[561200000] = 119.926045;
8073  atomic_mass_map[571200000] = 119.93807;
8074  atomic_mass_map[581200000] = 119.94654;
8075  atomic_mass_map[441210000] = 120.95164;
8076  atomic_mass_map[451210000] = 120.93942;
8077  atomic_mass_map[461210000] = 120.928950345;
8078  atomic_mass_map[471210000] = 120.920125282;
8079  atomic_mass_map[481210000] = 120.912963663;
8080  atomic_mass_map[491210000] = 120.907851062;
8081  atomic_mass_map[501210000] = 120.904242554;
8082  atomic_mass_map[511210000] = 120.903811967;
8083  atomic_mass_map[521210000] = 120.904943812;
8084  atomic_mass_map[531210000] = 120.90740505;
8085  atomic_mass_map[541210000] = 120.911453015;
8086  atomic_mass_map[551210000] = 120.917227238;
8087  atomic_mass_map[561210000] = 120.92405229;
8088  atomic_mass_map[571210000] = 120.93315;
8089  atomic_mass_map[581210000] = 120.94335;
8090  atomic_mass_map[591210000] = 120.95532;
8091  atomic_mass_map[441220000] = 121.95447;
8092  atomic_mass_map[451220000] = 121.94399;
8093  atomic_mass_map[461220000] = 121.930631696;
8094  atomic_mass_map[471220000] = 121.923664449;
8095  atomic_mass_map[481220000] = 121.913459053;
8096  atomic_mass_map[491220000] = 121.910280738;
8097  atomic_mass_map[501220000] = 121.903443774;
8098  atomic_mass_map[511220000] = 121.905169948;
8099  atomic_mass_map[521220000] = 121.903043455;
8100  atomic_mass_map[531220000] = 121.907588841;
8101  atomic_mass_map[541220000] = 121.908367658;
8102  atomic_mass_map[551220000] = 121.916108146;
8103  atomic_mass_map[561220000] = 121.919904;
8104  atomic_mass_map[571220000] = 121.93071;
8105  atomic_mass_map[581220000] = 121.93787;
8106  atomic_mass_map[591220000] = 121.95175;
8107  atomic_mass_map[441230000] = 122.95989;
8108  atomic_mass_map[451230000] = 122.94685;
8109  atomic_mass_map[461230000] = 122.93514;
8110  atomic_mass_map[471230000] = 122.925337063;
8111  atomic_mass_map[481230000] = 122.916892453;
8112  atomic_mass_map[491230000] = 122.910433718;
8113  atomic_mass_map[501230000] = 122.905725221;
8114  atomic_mass_map[511230000] = 122.904213204;
8115  atomic_mass_map[521230000] = 122.904269769;
8116  atomic_mass_map[531230000] = 122.905588537;
8117  atomic_mass_map[541230000] = 122.908481757;
8118  atomic_mass_map[551230000] = 122.912996063;
8119  atomic_mass_map[561230000] = 122.918781063;
8120  atomic_mass_map[571230000] = 122.9263;
8121  atomic_mass_map[581230000] = 122.93528;
8122  atomic_mass_map[591230000] = 122.94596;
8123  atomic_mass_map[441240000] = 123.96305;
8124  atomic_mass_map[451240000] = 123.95151;
8125  atomic_mass_map[461240000] = 123.93714;
8126  atomic_mass_map[471240000] = 123.928931229;
8127  atomic_mass_map[481240000] = 123.917657364;
8128  atomic_mass_map[491240000] = 123.913182245;
8129  atomic_mass_map[501240000] = 123.905276645;
8130  atomic_mass_map[511240000] = 123.905934978;
8131  atomic_mass_map[521240000] = 123.902817085;
8132  atomic_mass_map[531240000] = 123.906209041;
8133  atomic_mass_map[541240000] = 123.905891984;
8134  atomic_mass_map[551240000] = 123.912257798;
8135  atomic_mass_map[561240000] = 123.915093629;
8136  atomic_mass_map[571240000] = 123.924574275;
8137  atomic_mass_map[581240000] = 123.93031;
8138  atomic_mass_map[591240000] = 123.94294;
8139  atomic_mass_map[601240000] = 123.9522;
8140  atomic_mass_map[451250000] = 124.95469;
8141  atomic_mass_map[461250000] = 124.94179;
8142  atomic_mass_map[471250000] = 124.931046;
8143  atomic_mass_map[481250000] = 124.921257577;
8144  atomic_mass_map[491250000] = 124.913604553;
8145  atomic_mass_map[501250000] = 124.907786395;
8146  atomic_mass_map[511250000] = 124.905253007;
8147  atomic_mass_map[521250000] = 124.90442992;
8148  atomic_mass_map[531250000] = 124.904629353;
8149  atomic_mass_map[541250000] = 124.906394445;
8150  atomic_mass_map[551250000] = 124.909727985;
8151  atomic_mass_map[561250000] = 124.914471843;
8152  atomic_mass_map[571250000] = 124.920815932;
8153  atomic_mass_map[581250000] = 124.92844;
8154  atomic_mass_map[591250000] = 124.9377;
8155  atomic_mass_map[601250000] = 124.9489;
8156  atomic_mass_map[451260000] = 125.95946;
8157  atomic_mass_map[461260000] = 125.94416;
8158  atomic_mass_map[471260000] = 125.93475;
8159  atomic_mass_map[481260000] = 125.922429128;
8160  atomic_mass_map[491260000] = 125.916507322;
8161  atomic_mass_map[501260000] = 125.907658786;
8162  atomic_mass_map[511260000] = 125.907252987;
8163  atomic_mass_map[521260000] = 125.903310886;
8164  atomic_mass_map[531260000] = 125.905623329;
8165  atomic_mass_map[541260000] = 125.904298292;
8166  atomic_mass_map[551260000] = 125.909446057;
8167  atomic_mass_map[561260000] = 125.911250204;
8168  atomic_mass_map[571260000] = 125.919512667;
8169  atomic_mass_map[581260000] = 125.923971;
8170  atomic_mass_map[591260000] = 125.93524;
8171  atomic_mass_map[601260000] = 125.94311;
8172  atomic_mass_map[611260000] = 125.95792;
8173  atomic_mass_map[461270000] = 126.94907;
8174  atomic_mass_map[471270000] = 126.93711;
8175  atomic_mass_map[481270000] = 126.926472404;
8176  atomic_mass_map[491270000] = 126.917446276;
8177  atomic_mass_map[501270000] = 126.910389943;
8178  atomic_mass_map[511270000] = 126.906924278;
8179  atomic_mass_map[521270000] = 126.905225735;
8180  atomic_mass_map[531270000] = 126.904471853;
8181  atomic_mass_map[541270000] = 126.905182914;
8182  atomic_mass_map[551270000] = 126.907417384;
8183  atomic_mass_map[561270000] = 126.911091275;
8184  atomic_mass_map[571270000] = 126.916375084;
8185  atomic_mass_map[581270000] = 126.922727;
8186  atomic_mass_map[591270000] = 126.93071;
8187  atomic_mass_map[601270000] = 126.94038;
8188  atomic_mass_map[611270000] = 126.95192;
8189  atomic_mass_map[461280000] = 127.95183;
8190  atomic_mass_map[471280000] = 127.94106;
8191  atomic_mass_map[481280000] = 127.927812858;
8192  atomic_mass_map[491280000] = 127.920401044;
8193  atomic_mass_map[501280000] = 127.910507184;
8194  atomic_mass_map[511280000] = 127.909145628;
8195  atomic_mass_map[521280000] = 127.904461279;
8196  atomic_mass_map[531280000] = 127.905808615;
8197  atomic_mass_map[541280000] = 127.903531018;
8198  atomic_mass_map[551280000] = 127.907748666;
8199  atomic_mass_map[561280000] = 127.908341967;
8200  atomic_mass_map[571280000] = 127.915592123;
8201  atomic_mass_map[581280000] = 127.918911;
8202  atomic_mass_map[591280000] = 127.928791;
8203  atomic_mass_map[601280000] = 127.93525;
8204  atomic_mass_map[611280000] = 127.9487;
8205  atomic_mass_map[621280000] = 127.95842;
8206  atomic_mass_map[471290000] = 128.94395;
8207  atomic_mass_map[481290000] = 128.93182;
8208  atomic_mass_map[491290000] = 128.921805301;
8209  atomic_mass_map[501290000] = 128.913464711;
8210  atomic_mass_map[511290000] = 128.909146665;
8211  atomic_mass_map[521290000] = 128.90659646;
8212  atomic_mass_map[531290000] = 128.904983669;
8213  atomic_mass_map[541290000] = 128.904780861;
8214  atomic_mass_map[551290000] = 128.906065683;
8215  atomic_mass_map[561290000] = 128.908680798;
8216  atomic_mass_map[571290000] = 128.912694431;
8217  atomic_mass_map[581290000] = 128.918102;
8218  atomic_mass_map[591290000] = 128.925095;
8219  atomic_mass_map[601290000] = 128.933102;
8220  atomic_mass_map[611290000] = 128.94323;
8221  atomic_mass_map[621290000] = 128.95476;
8222  atomic_mass_map[471300000] = 129.950703;
8223  atomic_mass_map[481300000] = 129.933940679;
8224  atomic_mass_map[491300000] = 129.924976585;
8225  atomic_mass_map[501300000] = 129.91397383;
8226  atomic_mass_map[511300000] = 129.911662054;
8227  atomic_mass_map[521300000] = 129.906222748;
8228  atomic_mass_map[531300000] = 129.906670193;
8229  atomic_mass_map[541300000] = 129.903509349;
8230  atomic_mass_map[551300000] = 129.906709283;
8231  atomic_mass_map[561300000] = 129.906320669;
8232  atomic_mass_map[571300000] = 129.912369413;
8233  atomic_mass_map[581300000] = 129.914736;
8234  atomic_mass_map[591300000] = 129.92359;
8235  atomic_mass_map[601300000] = 129.928506;
8236  atomic_mass_map[611300000] = 129.94053;
8237  atomic_mass_map[621300000] = 129.949;
8238  atomic_mass_map[631300000] = 129.963689;
8239  atomic_mass_map[481310000] = 130.9406;
8240  atomic_mass_map[491310000] = 130.926971529;
8241  atomic_mass_map[501310000] = 130.917044954;
8242  atomic_mass_map[511310000] = 130.911988799;
8243  atomic_mass_map[521310000] = 130.908522213;
8244  atomic_mass_map[531310000] = 130.906126305;
8245  atomic_mass_map[541310000] = 130.905084057;
8246  atomic_mass_map[551310000] = 130.905464899;
8247  atomic_mass_map[561310000] = 130.906940977;
8248  atomic_mass_map[571310000] = 130.91007;
8249  atomic_mass_map[581310000] = 130.914429465;
8250  atomic_mass_map[591310000] = 130.92023496;
8251  atomic_mass_map[601310000] = 130.92724802;
8252  atomic_mass_map[611310000] = 130.93567;
8253  atomic_mass_map[621310000] = 130.94618;
8254  atomic_mass_map[631310000] = 130.957842;
8255  atomic_mass_map[481320000] = 131.94604;
8256  atomic_mass_map[491320000] = 131.933001273;
8257  atomic_mass_map[501320000] = 131.917826725;
8258  atomic_mass_map[511320000] = 131.914507691;
8259  atomic_mass_map[521320000] = 131.908546716;
8260  atomic_mass_map[531320000] = 131.907993514;
8261  atomic_mass_map[541320000] = 131.904155086;
8262  atomic_mass_map[551320000] = 131.906433914;
8263  atomic_mass_map[561320000] = 131.905061128;
8264  atomic_mass_map[571320000] = 131.910118979;
8265  atomic_mass_map[581320000] = 131.911463775;
8266  atomic_mass_map[591320000] = 131.919255;
8267  atomic_mass_map[601320000] = 131.923321237;
8268  atomic_mass_map[611320000] = 131.93384;
8269  atomic_mass_map[621320000] = 131.94087;
8270  atomic_mass_map[631320000] = 131.95467;
8271  atomic_mass_map[481330000] = 132.95285;
8272  atomic_mass_map[491330000] = 132.93831;
8273  atomic_mass_map[501330000] = 132.923913404;
8274  atomic_mass_map[511330000] = 132.915273198;
8275  atomic_mass_map[521330000] = 132.910968766;
8276  atomic_mass_map[531330000] = 132.907796968;
8277  atomic_mass_map[541330000] = 132.905910751;
8278  atomic_mass_map[551330000] = 132.905451961;
8279  atomic_mass_map[561330000] = 132.906007351;
8280  atomic_mass_map[571330000] = 132.908218;
8281  atomic_mass_map[581330000] = 132.911520402;
8282  atomic_mass_map[591330000] = 132.916330561;
8283  atomic_mass_map[601330000] = 132.922348;
8284  atomic_mass_map[611330000] = 132.929782;
8285  atomic_mass_map[621330000] = 132.93856;
8286  atomic_mass_map[631330000] = 132.94929;
8287  atomic_mass_map[641330000] = 132.96133;
8288  atomic_mass_map[491340000] = 133.94454;
8289  atomic_mass_map[501340000] = 133.928682064;
8290  atomic_mass_map[511340000] = 133.920535676;
8291  atomic_mass_map[521340000] = 133.911393959;
8292  atomic_mass_map[531340000] = 133.909758836;
8293  atomic_mass_map[541340000] = 133.905394664;
8294  atomic_mass_map[551340000] = 133.906718503;
8295  atomic_mass_map[561340000] = 133.904508182;
8296  atomic_mass_map[571340000] = 133.908514011;
8297  atomic_mass_map[581340000] = 133.908928142;
8298  atomic_mass_map[591340000] = 133.915696729;
8299  atomic_mass_map[601340000] = 133.91879021;
8300  atomic_mass_map[611340000] = 133.928353;
8301  atomic_mass_map[621340000] = 133.93411;
8302  atomic_mass_map[631340000] = 133.9464;
8303  atomic_mass_map[641340000] = 133.95566;
8304  atomic_mass_map[491350000] = 134.95005;
8305  atomic_mass_map[501350000] = 134.934908606;
8306  atomic_mass_map[511350000] = 134.925185106;
8307  atomic_mass_map[521350000] = 134.916555706;
8308  atomic_mass_map[531350000] = 134.910048847;
8309  atomic_mass_map[541350000] = 134.90722778;
8310  atomic_mass_map[551350000] = 134.905977049;
8311  atomic_mass_map[561350000] = 134.905688375;
8312  atomic_mass_map[571350000] = 134.906984363;
8313  atomic_mass_map[581350000] = 134.909160599;
8314  atomic_mass_map[591350000] = 134.913111775;
8315  atomic_mass_map[601350000] = 134.918181321;
8316  atomic_mass_map[611350000] = 134.924823;
8317  atomic_mass_map[621350000] = 134.93252;
8318  atomic_mass_map[631350000] = 134.94187;
8319  atomic_mass_map[641350000] = 134.95245;
8320  atomic_mass_map[651350000] = 134.96476;
8321  atomic_mass_map[501360000] = 135.93999;
8322  atomic_mass_map[511360000] = 135.930745879;
8323  atomic_mass_map[521360000] = 135.920100608;
8324  atomic_mass_map[531360000] = 135.914604412;
8325  atomic_mass_map[541360000] = 135.907214484;
8326  atomic_mass_map[551360000] = 135.907311358;
8327  atomic_mass_map[561360000] = 135.904575727;
8328  atomic_mass_map[571360000] = 135.907634962;
8329  atomic_mass_map[581360000] = 135.907129205;
8330  atomic_mass_map[591360000] = 135.912677456;
8331  atomic_mass_map[601360000] = 135.914976064;
8332  atomic_mass_map[611360000] = 135.923584586;
8333  atomic_mass_map[621360000] = 135.928275556;
8334  atomic_mass_map[631360000] = 135.93962;
8335  atomic_mass_map[641360000] = 135.9473;
8336  atomic_mass_map[651360000] = 135.96129;
8337  atomic_mass_map[501370000] = 136.94655;
8338  atomic_mass_map[511370000] = 136.935555;
8339  atomic_mass_map[521370000] = 136.925598852;
8340  atomic_mass_map[531370000] = 136.918028188;
8341  atomic_mass_map[541370000] = 136.911557781;
8342  atomic_mass_map[551370000] = 136.907089231;
8343  atomic_mass_map[561370000] = 136.905827141;
8344  atomic_mass_map[571370000] = 136.906450385;
8345  atomic_mass_map[581370000] = 136.907762364;
8346  atomic_mass_map[591370000] = 136.91067915;
8347  atomic_mass_map[601370000] = 136.914562448;
8348  atomic_mass_map[611370000] = 136.920479523;
8349  atomic_mass_map[621370000] = 136.926970517;
8350  atomic_mass_map[631370000] = 136.93546;
8351  atomic_mass_map[641370000] = 136.94502;
8352  atomic_mass_map[651370000] = 136.95602;
8353  atomic_mass_map[501380000] = 137.95184;
8354  atomic_mass_map[511380000] = 137.94145;
8355  atomic_mass_map[521380000] = 137.929472226;
8356  atomic_mass_map[531380000] = 137.922726402;
8357  atomic_mass_map[541380000] = 137.914146273;
8358  atomic_mass_map[551380000] = 137.911017089;
8359  atomic_mass_map[561380000] = 137.905246995;
8360  atomic_mass_map[571380000] = 137.907114919;
8361  atomic_mass_map[581380000] = 137.905991089;
8362  atomic_mass_map[591380000] = 137.910754405;
8363  atomic_mass_map[601380000] = 137.911949718;
8364  atomic_mass_map[611380000] = 137.919548077;
8365  atomic_mass_map[621380000] = 137.923243991;
8366  atomic_mass_map[631380000] = 137.933709;
8367  atomic_mass_map[641380000] = 137.94025;
8368  atomic_mass_map[651380000] = 137.95312;
8369  atomic_mass_map[661380000] = 137.9625;
8370  atomic_mass_map[511390000] = 138.94655;
8371  atomic_mass_map[521390000] = 138.935367194;
8372  atomic_mass_map[531390000] = 138.926506206;
8373  atomic_mass_map[541390000] = 138.918792203;
8374  atomic_mass_map[551390000] = 138.913363758;
8375  atomic_mass_map[561390000] = 138.908841099;
8376  atomic_mass_map[571390000] = 138.906356256;
8377  atomic_mass_map[581390000] = 138.906655111;
8378  atomic_mass_map[591390000] = 138.908940762;
8379  atomic_mass_map[601390000] = 138.911953649;
8380  atomic_mass_map[611390000] = 138.91679967;
8381  atomic_mass_map[621390000] = 138.922296635;
8382  atomic_mass_map[631390000] = 138.92979231;
8383  atomic_mass_map[641390000] = 138.93813;
8384  atomic_mass_map[651390000] = 138.94833;
8385  atomic_mass_map[661390000] = 138.95959;
8386  atomic_mass_map[511400000] = 139.95283;
8387  atomic_mass_map[521400000] = 139.939498567;
8388  atomic_mass_map[531400000] = 139.931727;
8389  atomic_mass_map[541400000] = 139.921645817;
8390  atomic_mass_map[551400000] = 139.917283063;
8391  atomic_mass_map[561400000] = 139.91060573;
8392  atomic_mass_map[571400000] = 139.909480635;
8393  atomic_mass_map[581400000] = 139.905443107;
8394  atomic_mass_map[591400000] = 139.909080275;
8395  atomic_mass_map[601400000] = 139.909549849;
8396  atomic_mass_map[611400000] = 139.916039639;
8397  atomic_mass_map[621400000] = 139.918994717;
8398  atomic_mass_map[631400000] = 139.928087637;
8399  atomic_mass_map[641400000] = 139.933674;
8400  atomic_mass_map[651400000] = 139.945805049;
8401  atomic_mass_map[661400000] = 139.95402;
8402  atomic_mass_map[671400000] = 139.968589;
8403  atomic_mass_map[521410000] = 140.9458;
8404  atomic_mass_map[531410000] = 140.93569;
8405  atomic_mass_map[541410000] = 140.926787184;
8406  atomic_mass_map[551410000] = 140.920045491;
8407  atomic_mass_map[561410000] = 140.914403333;
8408  atomic_mass_map[571410000] = 140.91096603;
8409  atomic_mass_map[581410000] = 140.908280674;
8410  atomic_mass_map[591410000] = 140.907657568;
8411  atomic_mass_map[601410000] = 140.909614653;
8412  atomic_mass_map[611410000] = 140.913555084;
8413  atomic_mass_map[621410000] = 140.918481636;
8414  atomic_mass_map[631410000] = 140.924931754;
8415  atomic_mass_map[641410000] = 140.932126;
8416  atomic_mass_map[651410000] = 140.941448;
8417  atomic_mass_map[661410000] = 140.95128;
8418  atomic_mass_map[671410000] = 140.963108;
8419  atomic_mass_map[521420000] = 141.95022;
8420  atomic_mass_map[531420000] = 141.941202;
8421  atomic_mass_map[541420000] = 141.929973098;
8422  atomic_mass_map[551420000] = 141.924295991;
8423  atomic_mass_map[561420000] = 141.916432382;
8424  atomic_mass_map[571420000] = 141.91409089;
8425  atomic_mass_map[581420000] = 141.909250375;
8426  atomic_mass_map[591420000] = 141.910049607;
8427  atomic_mass_map[601420000] = 141.907728996;
8428  atomic_mass_map[611420000] = 141.912890411;
8429  atomic_mass_map[621420000] = 141.915204385;
8430  atomic_mass_map[631420000] = 141.92344169;
8431  atomic_mass_map[641420000] = 141.928116;
8432  atomic_mass_map[651420000] = 141.939280859;
8433  atomic_mass_map[661420000] = 141.946194;
8434  atomic_mass_map[671420000] = 141.96001;
8435  atomic_mass_map[681420000] = 141.9701;
8436  atomic_mass_map[521430000] = 142.95676;
8437  atomic_mass_map[531430000] = 142.94565;
8438  atomic_mass_map[541430000] = 142.935369554;
8439  atomic_mass_map[551430000] = 142.927349327;
8440  atomic_mass_map[561430000] = 142.920625293;
8441  atomic_mass_map[571430000] = 142.916079512;
8442  atomic_mass_map[581430000] = 142.91239212;
8443  atomic_mass_map[591430000] = 142.910822796;
8444  atomic_mass_map[601430000] = 142.909819989;
8445  atomic_mass_map[611430000] = 142.910938262;
8446  atomic_mass_map[621430000] = 142.914635303;
8447  atomic_mass_map[631430000] = 142.920298681;
8448  atomic_mass_map[641430000] = 142.926750682;
8449  atomic_mass_map[651430000] = 142.935137335;
8450  atomic_mass_map[661430000] = 142.943994335;
8451  atomic_mass_map[671430000] = 142.95486;
8452  atomic_mass_map[681430000] = 142.96662;
8453  atomic_mass_map[531440000] = 143.95139;
8454  atomic_mass_map[541440000] = 143.938945079;
8455  atomic_mass_map[551440000] = 143.932076313;
8456  atomic_mass_map[561440000] = 143.922954866;
8457  atomic_mass_map[571440000] = 143.919645589;
8458  atomic_mass_map[581440000] = 143.913652939;
8459  atomic_mass_map[591440000] = 143.913310859;
8460  atomic_mass_map[601440000] = 143.910092974;
8461  atomic_mass_map[611440000] = 143.912596396;
8462  atomic_mass_map[621440000] = 143.912006466;
8463  atomic_mass_map[631440000] = 143.918819553;
8464  atomic_mass_map[641440000] = 143.922963;
8465  atomic_mass_map[651440000] = 143.933045;
8466  atomic_mass_map[661440000] = 143.939269515;
8467  atomic_mass_map[671440000] = 143.952109715;
8468  atomic_mass_map[681440000] = 143.9607;
8469  atomic_mass_map[691440000] = 143.976283;
8470  atomic_mass_map[531450000] = 144.95605;
8471  atomic_mass_map[541450000] = 144.944719634;
8472  atomic_mass_map[551450000] = 144.935527435;
8473  atomic_mass_map[561450000] = 144.9275184;
8474  atomic_mass_map[571450000] = 144.921808068;
8475  atomic_mass_map[581450000] = 144.917265228;
8476  atomic_mass_map[591450000] = 144.914518156;
8477  atomic_mass_map[601450000] = 144.912579322;
8478  atomic_mass_map[611450000] = 144.912755935;
8479  atomic_mass_map[621450000] = 144.913417339;
8480  atomic_mass_map[631450000] = 144.916272629;
8481  atomic_mass_map[641450000] = 144.921712821;
8482  atomic_mass_map[651450000] = 144.928821947;
8483  atomic_mass_map[661450000] = 144.937473995;
8484  atomic_mass_map[671450000] = 144.947267395;
8485  atomic_mass_map[681450000] = 144.95805;
8486  atomic_mass_map[691450000] = 144.970389;
8487  atomic_mass_map[541460000] = 145.948518249;
8488  atomic_mass_map[551460000] = 145.940344271;
8489  atomic_mass_map[561460000] = 145.930283712;
8490  atomic_mass_map[571460000] = 145.925875174;
8491  atomic_mass_map[581460000] = 145.918802412;
8492  atomic_mass_map[591460000] = 145.91767985;
8493  atomic_mass_map[601460000] = 145.913122628;
8494  atomic_mass_map[611460000] = 145.914702396;
8495  atomic_mass_map[621460000] = 145.913046991;
8496  atomic_mass_map[631460000] = 145.917211039;
8497  atomic_mass_map[641460000] = 145.918318817;
8498  atomic_mass_map[651460000] = 145.927252984;
8499  atomic_mass_map[661460000] = 145.93284453;
8500  atomic_mass_map[671460000] = 145.944993506;
8501  atomic_mass_map[681460000] = 145.95241836;
8502  atomic_mass_map[691460000] = 145.966837;
8503  atomic_mass_map[541470000] = 146.95426;
8504  atomic_mass_map[551470000] = 146.944156156;
8505  atomic_mass_map[561470000] = 146.9353039;
8506  atomic_mass_map[571470000] = 146.9284178;
8507  atomic_mass_map[581470000] = 146.922689913;
8508  atomic_mass_map[591470000] = 146.919007518;
8509  atomic_mass_map[601470000] = 146.916106136;
8510  atomic_mass_map[611470000] = 146.915144988;
8511  atomic_mass_map[621470000] = 146.914904435;
8512  atomic_mass_map[631470000] = 146.916752659;
8513  atomic_mass_map[641470000] = 146.919101384;
8514  atomic_mass_map[651470000] = 146.924054788;
8515  atomic_mass_map[661470000] = 146.931082715;
8516  atomic_mass_map[671470000] = 146.940142296;
8517  atomic_mass_map[681470000] = 146.949964459;
8518  atomic_mass_map[691470000] = 146.961379891;
8519  atomic_mass_map[541480000] = 147.95813;
8520  atomic_mass_map[551480000] = 147.949225137;
8521  atomic_mass_map[561480000] = 147.938170578;
8522  atomic_mass_map[571480000] = 147.9326794;
8523  atomic_mass_map[581480000] = 147.924424225;
8524  atomic_mass_map[591480000] = 147.922130083;
8525  atomic_mass_map[601480000] = 147.916899294;
8526  atomic_mass_map[611480000] = 147.917481945;
8527  atomic_mass_map[621480000] = 147.914829226;
8528  atomic_mass_map[631480000] = 147.918089243;
8529  atomic_mass_map[641480000] = 147.918121511;
8530  atomic_mass_map[651480000] = 147.924281552;
8531  atomic_mass_map[661480000] = 147.927156571;
8532  atomic_mass_map[671480000] = 147.937743928;
8533  atomic_mass_map[681480000] = 147.944735029;
8534  atomic_mass_map[691480000] = 147.958384029;
8535  atomic_mass_map[701480000] = 147.96758;
8536  atomic_mass_map[551490000] = 148.95302;
8537  atomic_mass_map[561490000] = 148.94308;
8538  atomic_mass_map[571490000] = 148.93535126;
8539  atomic_mass_map[581490000] = 148.9284269;
8540  atomic_mass_map[591490000] = 148.9237361;
8541  atomic_mass_map[601490000] = 148.920154849;
8542  atomic_mass_map[611490000] = 148.918342277;
8543  atomic_mass_map[621490000] = 148.917192062;
8544  atomic_mass_map[631490000] = 148.917937763;
8545  atomic_mass_map[641490000] = 148.919348117;
8546  atomic_mass_map[651490000] = 148.923253549;
8547  atomic_mass_map[661490000] = 148.927321692;
8548  atomic_mass_map[671490000] = 148.933802646;
8549  atomic_mass_map[681490000] = 148.942306;
8550  atomic_mass_map[691490000] = 148.95289;
8551  atomic_mass_map[701490000] = 148.96436;
8552  atomic_mass_map[551500000] = 149.95833;
8553  atomic_mass_map[561500000] = 149.94605;
8554  atomic_mass_map[571500000] = 149.93947;
8555  atomic_mass_map[581500000] = 149.930384042;
8556  atomic_mass_map[591500000] = 149.926676502;
8557  atomic_mass_map[601500000] = 149.920902249;
8558  atomic_mass_map[611500000] = 149.920990941;
8559  atomic_mass_map[621500000] = 149.917282919;
8560  atomic_mass_map[631500000] = 149.919707671;
8561  atomic_mass_map[641500000] = 149.918664422;
8562  atomic_mass_map[651500000] = 149.923664941;
8563  atomic_mass_map[661500000] = 149.925593264;
8564  atomic_mass_map[671500000] = 149.933498408;
8565  atomic_mass_map[681500000] = 149.937915567;
8566  atomic_mass_map[691500000] = 149.95009;
8567  atomic_mass_map[701500000] = 149.95852;
8568  atomic_mass_map[711500000] = 149.973548;
8569  atomic_mass_map[551510000] = 150.96258;
8570  atomic_mass_map[561510000] = 150.95127;
8571  atomic_mass_map[571510000] = 150.94232;
8572  atomic_mass_map[581510000] = 150.9342722;
8573  atomic_mass_map[591510000] = 150.928309285;
8574  atomic_mass_map[601510000] = 150.923840289;
8575  atomic_mass_map[611510000] = 150.921217539;
8576  atomic_mass_map[621510000] = 150.919939796;
8577  atomic_mass_map[631510000] = 150.919857803;
8578  atomic_mass_map[641510000] = 150.92035595;
8579  atomic_mass_map[651510000] = 150.923109599;
8580  atomic_mass_map[661510000] = 150.926191564;
8581  atomic_mass_map[671510000] = 150.931698345;
8582  atomic_mass_map[681510000] = 150.937448567;
8583  atomic_mass_map[691510000] = 150.945487875;
8584  atomic_mass_map[701510000] = 150.955402497;
8585  atomic_mass_map[711510000] = 150.967677;
8586  atomic_mass_map[561520000] = 151.95481;
8587  atomic_mass_map[571520000] = 151.94682;
8588  atomic_mass_map[581520000] = 151.9366;
8589  atomic_mass_map[591520000] = 151.9315529;
8590  atomic_mass_map[601520000] = 151.924692216;
8591  atomic_mass_map[611520000] = 151.923506181;
8592  atomic_mass_map[621520000] = 151.919739721;
8593  atomic_mass_map[631520000] = 151.921752184;
8594  atomic_mass_map[641520000] = 151.919799494;
8595  atomic_mass_map[651520000] = 151.924082936;
8596  atomic_mass_map[661520000] = 151.924725286;
8597  atomic_mass_map[671520000] = 151.931723623;
8598  atomic_mass_map[681520000] = 151.935057085;
8599  atomic_mass_map[691520000] = 151.944422;
8600  atomic_mass_map[701520000] = 151.9502727;
8601  atomic_mass_map[711520000] = 151.96412;
8602  atomic_mass_map[561530000] = 152.96036;
8603  atomic_mass_map[571530000] = 152.95036;
8604  atomic_mass_map[581530000] = 152.94093;
8605  atomic_mass_map[591530000] = 152.933903539;
8606  atomic_mass_map[601530000] = 152.927717978;
8607  atomic_mass_map[611530000] = 152.924156686;
8608  atomic_mass_map[621530000] = 152.92210465;
8609  atomic_mass_map[631530000] = 152.921238003;
8610  atomic_mass_map[641530000] = 152.921758027;
8611  atomic_mass_map[651530000] = 152.923442403;
8612  atomic_mass_map[661530000] = 152.925772378;
8613  atomic_mass_map[671530000] = 152.930206429;
8614  atomic_mass_map[681530000] = 152.93508044;
8615  atomic_mass_map[691530000] = 152.942040101;
8616  atomic_mass_map[701530000] = 152.94932;
8617  atomic_mass_map[711530000] = 152.958751054;
8618  atomic_mass_map[721530000] = 152.97069;
8619  atomic_mass_map[571540000] = 153.95517;
8620  atomic_mass_map[581540000] = 153.9438;
8621  atomic_mass_map[591540000] = 153.937525741;
8622  atomic_mass_map[601540000] = 153.929484894;
8623  atomic_mass_map[611540000] = 153.926471531;
8624  atomic_mass_map[621540000] = 153.922216861;
8625  atomic_mass_map[631540000] = 153.922986962;
8626  atomic_mass_map[641540000] = 153.92087406;
8627  atomic_mass_map[651540000] = 153.924684767;
8628  atomic_mass_map[661540000] = 153.924429277;
8629  atomic_mass_map[671540000] = 153.930606834;
8630  atomic_mass_map[681540000] = 153.932790842;
8631  atomic_mass_map[691540000] = 153.941570033;
8632  atomic_mass_map[701540000] = 153.946395655;
8633  atomic_mass_map[711540000] = 153.957364;
8634  atomic_mass_map[721540000] = 153.96486;
8635  atomic_mass_map[571550000] = 154.95901;
8636  atomic_mass_map[581550000] = 154.94855;
8637  atomic_mass_map[591550000] = 154.940509281;
8638  atomic_mass_map[601550000] = 154.933135691;
8639  atomic_mass_map[611550000] = 154.928137048;
8640  atomic_mass_map[621550000] = 154.924647748;
8641  atomic_mass_map[631550000] = 154.922901107;
8642  atomic_mass_map[641550000] = 154.922630473;
8643  atomic_mass_map[651550000] = 154.923510547;
8644  atomic_mass_map[661550000] = 154.925759086;
8645  atomic_mass_map[671550000] = 154.929104049;
8646  atomic_mass_map[681550000] = 154.933215911;
8647  atomic_mass_map[691550000] = 154.93920966;
8648  atomic_mass_map[701550000] = 154.945783132;
8649  atomic_mass_map[711550000] = 154.9543206;
8650  atomic_mass_map[721550000] = 154.96311;
8651  atomic_mass_map[731550000] = 154.974245;
8652  atomic_mass_map[581560000] = 155.95183;
8653  atomic_mass_map[591560000] = 155.94464;
8654  atomic_mass_map[601560000] = 155.935078894;
8655  atomic_mass_map[611560000] = 155.931117516;
8656  atomic_mass_map[621560000] = 155.925536067;
8657  atomic_mass_map[631560000] = 155.924760494;
8658  atomic_mass_map[641560000] = 155.922131241;
8659  atomic_mass_map[651560000] = 155.924755181;
8660  atomic_mass_map[661560000] = 155.924284713;
8661  atomic_mass_map[671560000] = 155.929706112;
8662  atomic_mass_map[681560000] = 155.931067313;
8663  atomic_mass_map[691560000] = 155.938991573;
8664  atomic_mass_map[701560000] = 155.942824698;
8665  atomic_mass_map[711560000] = 155.953032522;
8666  atomic_mass_map[721560000] = 155.959347805;
8667  atomic_mass_map[731560000] = 155.97203;
8668  atomic_mass_map[581570000] = 156.95705;
8669  atomic_mass_map[591570000] = 156.94789;
8670  atomic_mass_map[601570000] = 156.939386061;
8671  atomic_mass_map[611570000] = 156.933121393;
8672  atomic_mass_map[621570000] = 156.928418698;
8673  atomic_mass_map[631570000] = 156.925433446;
8674  atomic_mass_map[641570000] = 156.923968569;
8675  atomic_mass_map[651570000] = 156.924033028;
8676  atomic_mass_map[661570000] = 156.92547066;
8677  atomic_mass_map[671570000] = 156.928254427;
8678  atomic_mass_map[681570000] = 156.931948658;
8679  atomic_mass_map[691570000] = 156.93694412;
8680  atomic_mass_map[701570000] = 156.942645349;
8681  atomic_mass_map[711570000] = 156.950126667;
8682  atomic_mass_map[721570000] = 156.958236;
8683  atomic_mass_map[731570000] = 156.968176167;
8684  atomic_mass_map[741570000] = 156.97884;
8685  atomic_mass_map[591580000] = 157.95241;
8686  atomic_mass_map[601580000] = 157.94197;
8687  atomic_mass_map[611580000] = 157.936565144;
8688  atomic_mass_map[621580000] = 157.929951004;
8689  atomic_mass_map[631580000] = 157.927798606;
8690  atomic_mass_map[641580000] = 157.924112348;
8691  atomic_mass_map[651580000] = 157.925420947;
8692  atomic_mass_map[661580000] = 157.924415875;
8693  atomic_mass_map[671580000] = 157.928945969;
8694  atomic_mass_map[681580000] = 157.929893474;
8695  atomic_mass_map[691580000] = 157.936979525;
8696  atomic_mass_map[701580000] = 157.939870549;
8697  atomic_mass_map[711580000] = 157.949315507;
8698  atomic_mass_map[721580000] = 157.954801092;
8699  atomic_mass_map[731580000] = 157.966541;
8700  atomic_mass_map[741580000] = 157.974562;
8701  atomic_mass_map[591590000] = 158.95589;
8702  atomic_mass_map[601590000] = 158.94653;
8703  atomic_mass_map[611590000] = 158.939286502;
8704  atomic_mass_map[621590000] = 158.933217226;
8705  atomic_mass_map[631590000] = 158.929100067;
8706  atomic_mass_map[641590000] = 158.926396969;
8707  atomic_mass_map[651590000] = 158.92535471;
8708  atomic_mass_map[661590000] = 158.925746958;
8709  atomic_mass_map[671590000] = 158.927719703;
8710  atomic_mass_map[681590000] = 158.93069181;
8711  atomic_mass_map[691590000] = 158.934975;
8712  atomic_mass_map[701590000] = 158.940054623;
8713  atomic_mass_map[711590000] = 158.946635615;
8714  atomic_mass_map[721590000] = 158.953995669;
8715  atomic_mass_map[731590000] = 158.963022556;
8716  atomic_mass_map[741590000] = 158.972638;
8717  atomic_mass_map[751590000] = 158.984179;
8718  atomic_mass_map[601600000] = 159.9494;
8719  atomic_mass_map[611600000] = 159.9431;
8720  atomic_mass_map[621600000] = 159.935335311;
8721  atomic_mass_map[631600000] = 159.931850939;
8722  atomic_mass_map[641600000] = 159.927062411;
8723  atomic_mass_map[651600000] = 159.927175556;
8724  atomic_mass_map[661600000] = 159.925204646;
8725  atomic_mass_map[671600000] = 159.928736606;
8726  atomic_mass_map[681600000] = 159.92907713;
8727  atomic_mass_map[691600000] = 159.935263106;
8728  atomic_mass_map[701600000] = 159.937557406;
8729  atomic_mass_map[711600000] = 159.946033;
8730  atomic_mass_map[721600000] = 159.950690749;
8731  atomic_mass_map[731600000] = 159.96148751;
8732  atomic_mass_map[741600000] = 159.968462584;
8733  atomic_mass_map[751600000] = 159.981823;
8734  atomic_mass_map[601610000] = 160.95428;
8735  atomic_mass_map[611610000] = 160.94607;
8736  atomic_mass_map[621610000] = 160.93916017;
8737  atomic_mass_map[631610000] = 160.933664091;
8738  atomic_mass_map[641610000] = 160.929677476;
8739  atomic_mass_map[651610000] = 160.927577825;
8740  atomic_mass_map[661610000] = 160.926940492;
8741  atomic_mass_map[671610000] = 160.927861547;
8742  atomic_mass_map[681610000] = 160.930004599;
8743  atomic_mass_map[691610000] = 160.933549;
8744  atomic_mass_map[701610000] = 160.937907138;
8745  atomic_mass_map[711610000] = 160.943572;
8746  atomic_mass_map[721610000] = 160.95027837;
8747  atomic_mass_map[731610000] = 160.958452265;
8748  atomic_mass_map[741610000] = 160.967197;
8749  atomic_mass_map[751610000] = 160.977572951;
8750  atomic_mass_map[761610000] = 160.989029;
8751  atomic_mass_map[611620000] = 161.95022;
8752  atomic_mass_map[621620000] = 161.94146;
8753  atomic_mass_map[631620000] = 161.936988761;
8754  atomic_mass_map[641620000] = 161.930993017;
8755  atomic_mass_map[651620000] = 161.92949536;
8756  atomic_mass_map[661620000] = 161.926805573;
8757  atomic_mass_map[671620000] = 161.929102274;
8758  atomic_mass_map[681620000] = 161.928788364;
8759  atomic_mass_map[691620000] = 161.934002277;
8760  atomic_mass_map[701620000] = 161.935773604;
8761  atomic_mass_map[711620000] = 161.943282776;
8762  atomic_mass_map[721620000] = 161.947214837;
8763  atomic_mass_map[731620000] = 161.957294083;
8764  atomic_mass_map[741620000] = 161.963499142;
8765  atomic_mass_map[751620000] = 161.975844;
8766  atomic_mass_map[761620000] = 161.984431;
8767  atomic_mass_map[611630000] = 162.95357;
8768  atomic_mass_map[621630000] = 162.94555;
8769  atomic_mass_map[631630000] = 162.939195675;
8770  atomic_mass_map[641630000] = 162.934176855;
8771  atomic_mass_map[651630000] = 162.930654659;
8772  atomic_mass_map[661630000] = 162.928738284;
8773  atomic_mass_map[671630000] = 162.928741027;
8774  atomic_mass_map[681630000] = 162.930040797;
8775  atomic_mass_map[691630000] = 162.932659172;
8776  atomic_mass_map[701630000] = 162.936339632;
8777  atomic_mass_map[711630000] = 162.941179;
8778  atomic_mass_map[721630000] = 162.947112946;
8779  atomic_mass_map[731630000] = 162.95433711;
8780  atomic_mass_map[741630000] = 162.962524342;
8781  atomic_mass_map[751630000] = 162.97207986;
8782  atomic_mass_map[761630000] = 162.98241;
8783  atomic_mass_map[621640000] = 163.94836;
8784  atomic_mass_map[631640000] = 163.942744;
8785  atomic_mass_map[641640000] = 163.93583;
8786  atomic_mass_map[651640000] = 163.933357961;
8787  atomic_mass_map[661640000] = 163.929181874;
8788  atomic_mass_map[671640000] = 163.930240273;
8789  atomic_mass_map[681640000] = 163.929208791;
8790  atomic_mass_map[691640000] = 163.933543614;
8791  atomic_mass_map[701640000] = 163.934494934;
8792  atomic_mass_map[711640000] = 163.941339;
8793  atomic_mass_map[721640000] = 163.944370845;
8794  atomic_mass_map[731640000] = 163.953534;
8795  atomic_mass_map[741640000] = 163.958960683;
8796  atomic_mass_map[751640000] = 163.97045287;
8797  atomic_mass_map[761640000] = 163.978021712;
8798  atomic_mass_map[771640000] = 163.991909;
8799  atomic_mass_map[621650000] = 164.95297;
8800  atomic_mass_map[631650000] = 164.945587;
8801  atomic_mass_map[641650000] = 164.93936;
8802  atomic_mass_map[651650000] = 164.93498;
8803  atomic_mass_map[661650000] = 164.931710456;
8804  atomic_mass_map[671650000] = 164.930328835;
8805  atomic_mass_map[681650000] = 164.930734496;
8806  atomic_mass_map[691650000] = 164.93244314;
8807  atomic_mass_map[701650000] = 164.935270241;
8808  atomic_mass_map[711650000] = 164.939406758;
8809  atomic_mass_map[721650000] = 164.944567;
8810  atomic_mass_map[731650000] = 164.950780572;
8811  atomic_mass_map[741650000] = 164.958280788;
8812  atomic_mass_map[751650000] = 164.96710266;
8813  atomic_mass_map[761650000] = 164.976602;
8814  atomic_mass_map[771650000] = 164.987501;
8815  atomic_mass_map[631660000] = 165.94962;
8816  atomic_mass_map[641660000] = 165.94146;
8817  atomic_mass_map[651660000] = 165.937859521;
8818  atomic_mass_map[661660000] = 165.932813863;
8819  atomic_mass_map[671660000] = 165.932290927;
8820  atomic_mass_map[681660000] = 165.93029953;
8821  atomic_mass_map[691660000] = 165.9335606;
8822  atomic_mass_map[701660000] = 165.933874749;
8823  atomic_mass_map[711660000] = 165.939859;
8824  atomic_mass_map[721660000] = 165.94218;
8825  atomic_mass_map[731660000] = 165.950512;
8826  atomic_mass_map[741660000] = 165.95503121;
8827  atomic_mass_map[751660000] = 165.965760821;
8828  atomic_mass_map[761660000] = 165.972692476;
8829  atomic_mass_map[771660000] = 165.985664;
8830  atomic_mass_map[781660000] = 165.994855;
8831  atomic_mass_map[631670000] = 166.95289;
8832  atomic_mass_map[641670000] = 166.94545;
8833  atomic_mass_map[651670000] = 166.93996;
8834  atomic_mass_map[661670000] = 166.935661379;
8835  atomic_mass_map[671670000] = 166.93313855;
8836  atomic_mass_map[681670000] = 166.932054617;
8837  atomic_mass_map[691670000] = 166.932856192;
8838  atomic_mass_map[701670000] = 166.934952988;
8839  atomic_mass_map[711670000] = 166.93827;
8840  atomic_mass_map[721670000] = 166.9426;
8841  atomic_mass_map[731670000] = 166.948093;
8842  atomic_mass_map[741670000] = 166.95480456;
8843  atomic_mass_map[751670000] = 166.962595;
8844  atomic_mass_map[761670000] = 166.971548768;
8845  atomic_mass_map[771670000] = 166.981666315;
8846  atomic_mass_map[781670000] = 166.992695;
8847  atomic_mass_map[641680000] = 167.94808;
8848  atomic_mass_map[651680000] = 167.9434;
8849  atomic_mass_map[661680000] = 167.937133273;
8850  atomic_mass_map[671680000] = 167.935522173;
8851  atomic_mass_map[681680000] = 167.932376688;
8852  atomic_mass_map[691680000] = 167.934177409;
8853  atomic_mass_map[701680000] = 167.933889602;
8854  atomic_mass_map[711680000] = 167.938735635;
8855  atomic_mass_map[721680000] = 167.940568;
8856  atomic_mass_map[731680000] = 167.948047;
8857  atomic_mass_map[741680000] = 167.951805537;
8858  atomic_mass_map[751680000] = 167.961572608;
8859  atomic_mass_map[761680000] = 167.967807751;
8860  atomic_mass_map[771680000] = 167.979906642;
8861  atomic_mass_map[781680000] = 167.988128665;
8862  atomic_mass_map[641690000] = 168.9526;
8863  atomic_mass_map[651690000] = 168.94597;
8864  atomic_mass_map[661690000] = 168.940313531;
8865  atomic_mass_map[671690000] = 168.936878189;
8866  atomic_mass_map[681690000] = 168.93459685;
8867  atomic_mass_map[691690000] = 168.934217889;
8868  atomic_mass_map[701690000] = 168.935182512;
8869  atomic_mass_map[711690000] = 168.937644149;
8870  atomic_mass_map[721690000] = 168.941259;
8871  atomic_mass_map[731690000] = 168.946011;
8872  atomic_mass_map[741690000] = 168.951778845;
8873  atomic_mass_map[751690000] = 168.958766063;
8874  atomic_mass_map[761690000] = 168.967017574;
8875  atomic_mass_map[771690000] = 168.976298488;
8876  atomic_mass_map[781690000] = 168.986567;
8877  atomic_mass_map[791690000] = 168.99808;
8878  atomic_mass_map[651700000] = 169.94984;
8879  atomic_mass_map[661700000] = 169.94239;
8880  atomic_mass_map[671700000] = 169.939624846;
8881  atomic_mass_map[681700000] = 169.93547023;
8882  atomic_mass_map[691700000] = 169.935806032;
8883  atomic_mass_map[701700000] = 169.934766376;
8884  atomic_mass_map[711700000] = 169.938478365;
8885  atomic_mass_map[721700000] = 169.939609;
8886  atomic_mass_map[731700000] = 169.946175;
8887  atomic_mass_map[741700000] = 169.949231588;
8888  atomic_mass_map[751700000] = 169.958220071;
8889  atomic_mass_map[761700000] = 169.963578454;
8890  atomic_mass_map[771700000] = 169.974922;
8891  atomic_mass_map[781700000] = 169.982496345;
8892  atomic_mass_map[791700000] = 169.995972;
8893  atomic_mass_map[651710000] = 170.95273;
8894  atomic_mass_map[661710000] = 170.94612;
8895  atomic_mass_map[671710000] = 170.941471022;
8896  atomic_mass_map[681710000] = 170.938035681;
8897  atomic_mass_map[691710000] = 170.936433871;
8898  atomic_mass_map[701710000] = 170.936330208;
8899  atomic_mass_map[711710000] = 170.93791696;
8900  atomic_mass_map[721710000] = 170.940492;
8901  atomic_mass_map[731710000] = 170.944476;
8902  atomic_mass_map[741710000] = 170.949451;
8903  atomic_mass_map[751710000] = 170.955716;
8904  atomic_mass_map[761710000] = 170.963173969;
8905  atomic_mass_map[771710000] = 170.971640252;
8906  atomic_mass_map[781710000] = 170.981245248;
8907  atomic_mass_map[791710000] = 170.991875791;
8908  atomic_mass_map[801710000] = 171.003529;
8909  atomic_mass_map[661720000] = 171.94846;
8910  atomic_mass_map[671720000] = 171.94473;
8911  atomic_mass_map[681720000] = 171.939361858;
8912  atomic_mass_map[691720000] = 171.938405521;
8913  atomic_mass_map[701720000] = 171.936385872;
8914  atomic_mass_map[711720000] = 171.939089103;
8915  atomic_mass_map[721720000] = 171.939449716;
8916  atomic_mass_map[731720000] = 171.944895;
8917  atomic_mass_map[741720000] = 171.947292;
8918  atomic_mass_map[751720000] = 171.955419665;
8919  atomic_mass_map[761720000] = 171.960017317;
8920  atomic_mass_map[771720000] = 171.970607036;
8921  atomic_mass_map[781720000] = 171.977350921;
8922  atomic_mass_map[791720000] = 171.989942284;
8923  atomic_mass_map[801720000] = 171.998808967;
8924  atomic_mass_map[661730000] = 172.95283;
8925  atomic_mass_map[671730000] = 172.94702;
8926  atomic_mass_map[681730000] = 172.9424;
8927  atomic_mass_map[691730000] = 172.939608371;
8928  atomic_mass_map[701730000] = 172.938215136;
8929  atomic_mass_map[711730000] = 172.938934029;
8930  atomic_mass_map[721730000] = 172.940513;
8931  atomic_mass_map[731730000] = 172.94375;
8932  atomic_mass_map[741730000] = 172.947689;
8933  atomic_mass_map[751730000] = 172.953243;
8934  atomic_mass_map[761730000] = 172.959808465;
8935  atomic_mass_map[771730000] = 172.967505636;
8936  atomic_mass_map[781730000] = 172.976443058;
8937  atomic_mass_map[791730000] = 172.986240924;
8938  atomic_mass_map[801730000] = 172.997091;
8939  atomic_mass_map[671740000] = 173.95095;
8940  atomic_mass_map[681740000] = 173.94423;
8941  atomic_mass_map[691740000] = 173.942172953;
8942  atomic_mass_map[701740000] = 173.938866437;
8943  atomic_mass_map[711740000] = 173.940340854;
8944  atomic_mass_map[721740000] = 173.940046141;
8945  atomic_mass_map[731740000] = 173.944454;
8946  atomic_mass_map[741740000] = 173.946079;
8947  atomic_mass_map[751740000] = 173.953115;
8948  atomic_mass_map[761740000] = 173.957063507;
8949  atomic_mass_map[771740000] = 173.966861045;
8950  atomic_mass_map[781740000] = 173.972819528;
8951  atomic_mass_map[791740000] = 173.984717;
8952  atomic_mass_map[801740000] = 173.992864748;
8953  atomic_mass_map[671750000] = 174.95362;
8954  atomic_mass_map[681750000] = 174.94777;
8955  atomic_mass_map[691750000] = 174.9438412;
8956  atomic_mass_map[701750000] = 174.941280797;
8957  atomic_mass_map[711750000] = 174.940775191;
8958  atomic_mass_map[721750000] = 174.941509187;
8959  atomic_mass_map[731750000] = 174.943737;
8960  atomic_mass_map[741750000] = 174.946717;
8961  atomic_mass_map[751750000] = 174.951381;
8962  atomic_mass_map[761750000] = 174.956945313;
8963  atomic_mass_map[771750000] = 174.964149589;
8964  atomic_mass_map[781750000] = 174.972409721;
8965  atomic_mass_map[791750000] = 174.981303712;
8966  atomic_mass_map[801750000] = 174.991440747;
8967  atomic_mass_map[681760000] = 175.94994;
8968  atomic_mass_map[691760000] = 175.946999449;
8969  atomic_mass_map[701760000] = 175.942576447;
8970  atomic_mass_map[711760000] = 175.94268968;
8971  atomic_mass_map[721760000] = 175.941407628;
8972  atomic_mass_map[731760000] = 175.944857;
8973  atomic_mass_map[741760000] = 175.945634;
8974  atomic_mass_map[751760000] = 175.951623;
8975  atomic_mass_map[761760000] = 175.954806;
8976  atomic_mass_map[771760000] = 175.963650389;
8977  atomic_mass_map[781760000] = 175.968938362;
8978  atomic_mass_map[791760000] = 175.980250432;
8979  atomic_mass_map[801760000] = 175.987360863;
8980  atomic_mass_map[811760000] = 176.000624028;
8981  atomic_mass_map[681770000] = 176.95399;
8982  atomic_mass_map[691770000] = 176.94904;
8983  atomic_mass_map[701770000] = 176.945265586;
8984  atomic_mass_map[711770000] = 176.943761525;
8985  atomic_mass_map[721770000] = 176.943227717;
8986  atomic_mass_map[731770000] = 176.944479469;
8987  atomic_mass_map[741770000] = 176.946643;
8988  atomic_mass_map[751770000] = 176.950328;
8989  atomic_mass_map[761770000] = 176.954965628;
8990  atomic_mass_map[771770000] = 176.9613015;
8991  atomic_mass_map[781770000] = 176.968469537;
8992  atomic_mass_map[791770000] = 176.976870439;
8993  atomic_mass_map[801770000] = 176.986277319;
8994  atomic_mass_map[811770000] = 176.996430829;
8995  atomic_mass_map[691780000] = 177.95264;
8996  atomic_mass_map[701780000] = 177.946651444;
8997  atomic_mass_map[711780000] = 177.945958018;
8998  atomic_mass_map[721780000] = 177.943705833;
8999  atomic_mass_map[731780000] = 177.945678;
9000  atomic_mass_map[741780000] = 177.945883303;
9001  atomic_mass_map[751780000] = 177.950989;
9002  atomic_mass_map[761780000] = 177.953253627;
9003  atomic_mass_map[771780000] = 177.961082;
9004  atomic_mass_map[781780000] = 177.965649523;
9005  atomic_mass_map[791780000] = 177.97603192;
9006  atomic_mass_map[801780000] = 177.982483769;
9007  atomic_mass_map[811780000] = 177.994854;
9008  atomic_mass_map[821780000] = 178.003831243;
9009  atomic_mass_map[691790000] = 178.95534;
9010  atomic_mass_map[701790000] = 178.95004;
9011  atomic_mass_map[711790000] = 178.947330935;
9012  atomic_mass_map[721790000] = 178.945823212;
9013  atomic_mass_map[731790000] = 178.945936555;
9014  atomic_mass_map[741790000] = 178.947077043;
9015  atomic_mass_map[751790000] = 178.94998913;
9016  atomic_mass_map[761790000] = 178.953816881;
9017  atomic_mass_map[771790000] = 178.959120178;
9018  atomic_mass_map[781790000] = 178.965358953;
9019  atomic_mass_map[791790000] = 178.973173654;
9020  atomic_mass_map[801790000] = 178.981831329;
9021  atomic_mass_map[811790000] = 178.991110696;
9022  atomic_mass_map[821790000] = 179.002201112;
9023  atomic_mass_map[701800000] = 179.95212;
9024  atomic_mass_map[711800000] = 179.94988825;
9025  atomic_mass_map[721800000] = 179.946557042;
9026  atomic_mass_map[731800000] = 179.947464832;
9027  atomic_mass_map[741800000] = 179.946710805;
9028  atomic_mass_map[751800000] = 179.950791568;
9029  atomic_mass_map[761800000] = 179.952375485;
9030  atomic_mass_map[771800000] = 179.959229446;
9031  atomic_mass_map[781800000] = 179.963031955;
9032  atomic_mass_map[791800000] = 179.972523397;
9033  atomic_mass_map[801800000] = 179.978260335;
9034  atomic_mass_map[811800000] = 179.990056524;
9035  atomic_mass_map[821800000] = 179.997928286;
9036  atomic_mass_map[701810000] = 180.95589;
9037  atomic_mass_map[711810000] = 180.951908;
9038  atomic_mass_map[721810000] = 180.949108338;
9039  atomic_mass_map[731810000] = 180.947995769;
9040  atomic_mass_map[741810000] = 180.948197783;
9041  atomic_mass_map[751810000] = 180.950057673;
9042  atomic_mass_map[761810000] = 180.953247188;
9043  atomic_mass_map[771810000] = 180.957625456;
9044  atomic_mass_map[781810000] = 180.963097588;
9045  atomic_mass_map[791810000] = 180.970079047;
9046  atomic_mass_map[801810000] = 180.977819371;
9047  atomic_mass_map[811810000] = 180.986259979;
9048  atomic_mass_map[821810000] = 180.99665331;
9049  atomic_mass_map[711820000] = 181.95504;
9050  atomic_mass_map[721820000] = 181.950561185;
9051  atomic_mass_map[731820000] = 181.950151853;
9052  atomic_mass_map[741820000] = 181.948203945;
9053  atomic_mass_map[751820000] = 181.951209869;
9054  atomic_mass_map[761820000] = 181.952110187;
9055  atomic_mass_map[771820000] = 181.958076296;
9056  atomic_mass_map[781820000] = 181.961171823;
9057  atomic_mass_map[791820000] = 181.969617874;
9058  atomic_mass_map[801820000] = 181.974689351;
9059  atomic_mass_map[811820000] = 181.985713159;
9060  atomic_mass_map[821820000] = 181.992672466;
9061  atomic_mass_map[711830000] = 182.957363;
9062  atomic_mass_map[721830000] = 182.953530444;
9063  atomic_mass_map[731830000] = 182.95137262;
9064  atomic_mass_map[741830000] = 182.950222748;
9065  atomic_mass_map[751830000] = 182.950819638;
9066  atomic_mass_map[761830000] = 182.953124719;
9067  atomic_mass_map[771830000] = 182.956839968;
9068  atomic_mass_map[781830000] = 182.961596804;
9069  atomic_mass_map[791830000] = 182.967590635;
9070  atomic_mass_map[801830000] = 182.974444783;
9071  atomic_mass_map[811830000] = 182.982192839;
9072  atomic_mass_map[821830000] = 182.991872098;
9073  atomic_mass_map[711840000] = 183.96091;
9074  atomic_mass_map[721840000] = 183.955446243;
9075  atomic_mass_map[731840000] = 183.954007694;
9076  atomic_mass_map[741840000] = 183.950930916;
9077  atomic_mass_map[751840000] = 183.952522809;
9078  atomic_mass_map[761840000] = 183.952488536;
9079  atomic_mass_map[771840000] = 183.957476;
9080  atomic_mass_map[781840000] = 183.959915113;
9081  atomic_mass_map[791840000] = 183.967451524;
9082  atomic_mass_map[801840000] = 183.971713528;
9083  atomic_mass_map[811840000] = 183.981885851;
9084  atomic_mass_map[821840000] = 183.988135701;
9085  atomic_mass_map[831840000] = 184.001274756;
9086  atomic_mass_map[711850000] = 184.96362;
9087  atomic_mass_map[721850000] = 184.958862;
9088  atomic_mass_map[731850000] = 184.955559084;
9089  atomic_mass_map[741850000] = 184.953418974;
9090  atomic_mass_map[751850000] = 184.952954486;
9091  atomic_mass_map[761850000] = 184.954041741;
9092  atomic_mass_map[771850000] = 184.956698;
9093  atomic_mass_map[781850000] = 184.960613659;
9094  atomic_mass_map[791850000] = 184.965789569;
9095  atomic_mass_map[801850000] = 184.971899388;
9096  atomic_mass_map[811850000] = 184.97878905;
9097  atomic_mass_map[821850000] = 184.987610004;
9098  atomic_mass_map[831850000] = 184.9976;
9099  atomic_mass_map[721860000] = 185.960897;
9100  atomic_mass_map[731860000] = 185.958550667;
9101  atomic_mass_map[741860000] = 185.954362771;
9102  atomic_mass_map[751860000] = 185.954985595;
9103  atomic_mass_map[761860000] = 185.953835044;
9104  atomic_mass_map[771860000] = 185.957944153;
9105  atomic_mass_map[781860000] = 185.959350812;
9106  atomic_mass_map[791860000] = 185.965952703;
9107  atomic_mass_map[801860000] = 185.969362272;
9108  atomic_mass_map[811860000] = 185.978650841;
9109  atomic_mass_map[821860000] = 185.984238331;
9110  atomic_mass_map[831860000] = 185.996643681;
9111  atomic_mass_map[841860000] = 186.004393241;
9112  atomic_mass_map[721870000] = 186.96477;
9113  atomic_mass_map[731870000] = 186.960386;
9114  atomic_mass_map[741870000] = 186.957158841;
9115  atomic_mass_map[751870000] = 186.955750071;
9116  atomic_mass_map[761870000] = 186.955747422;
9117  atomic_mass_map[771870000] = 186.957542;
9118  atomic_mass_map[781870000] = 186.960616976;
9119  atomic_mass_map[791870000] = 186.964543155;
9120  atomic_mass_map[801870000] = 186.969814428;
9121  atomic_mass_map[811870000] = 186.975906348;
9122  atomic_mass_map[821870000] = 186.983910895;
9123  atomic_mass_map[831870000] = 186.993147184;
9124  atomic_mass_map[841870000] = 187.003041054;
9125  atomic_mass_map[721880000] = 187.96685;
9126  atomic_mass_map[731880000] = 187.963916;
9127  atomic_mass_map[741880000] = 187.958486177;
9128  atomic_mass_map[751880000] = 187.95811151;
9129  atomic_mass_map[761880000] = 187.955835174;
9130  atomic_mass_map[771880000] = 187.958828095;
9131  atomic_mass_map[781880000] = 187.959388889;
9132  atomic_mass_map[791880000] = 187.965349392;
9133  atomic_mass_map[801880000] = 187.967566887;
9134  atomic_mass_map[811880000] = 187.976020886;
9135  atomic_mass_map[821880000] = 187.980874815;
9136  atomic_mass_map[831880000] = 187.992286943;
9137  atomic_mass_map[841880000] = 187.999415569;
9138  atomic_mass_map[721890000] = 188.97084;
9139  atomic_mass_map[731890000] = 188.96583;
9140  atomic_mass_map[741890000] = 188.961763;
9141  atomic_mass_map[751890000] = 188.95922602;
9142  atomic_mass_map[761890000] = 188.958144162;
9143  atomic_mass_map[771890000] = 188.958715028;
9144  atomic_mass_map[781890000] = 188.960831282;
9145  atomic_mass_map[791890000] = 188.963948286;
9146  atomic_mass_map[801890000] = 188.968194927;
9147  atomic_mass_map[811890000] = 188.973588471;
9148  atomic_mass_map[821890000] = 188.980807;
9149  atomic_mass_map[831890000] = 188.989194984;
9150  atomic_mass_map[841890000] = 188.998473429;
9151  atomic_mass_map[731900000] = 189.96939;
9152  atomic_mass_map[741900000] = 189.963090589;
9153  atomic_mass_map[751900000] = 189.96174426;
9154  atomic_mass_map[761900000] = 189.958443702;
9155  atomic_mass_map[771900000] = 189.960541215;
9156  atomic_mass_map[781900000] = 189.959929707;
9157  atomic_mass_map[791900000] = 189.96469839;
9158  atomic_mass_map[801900000] = 189.966322735;
9159  atomic_mass_map[811900000] = 189.973828;
9160  atomic_mass_map[821900000] = 189.978081999;
9161  atomic_mass_map[831900000] = 189.988621561;
9162  atomic_mass_map[841900000] = 189.995100569;
9163  atomic_mass_map[731910000] = 190.97156;
9164  atomic_mass_map[741910000] = 190.966531;
9165  atomic_mass_map[751910000] = 190.963121551;
9166  atomic_mass_map[761910000] = 190.960926361;
9167  atomic_mass_map[771910000] = 190.960589293;
9168  atomic_mass_map[781910000] = 190.961672912;
9169  atomic_mass_map[791910000] = 190.963702248;
9170  atomic_mass_map[801910000] = 190.96715716;
9171  atomic_mass_map[811910000] = 190.971784199;
9172  atomic_mass_map[821910000] = 190.978276;
9173  atomic_mass_map[831910000] = 190.985786556;
9174  atomic_mass_map[841910000] = 190.994558462;
9175  atomic_mass_map[851910000] = 191.004147909;
9176  atomic_mass_map[731920000] = 191.97514;
9177  atomic_mass_map[741920000] = 191.96817;
9178  atomic_mass_map[751920000] = 191.966088;
9179  atomic_mass_map[761920000] = 191.961476998;
9180  atomic_mass_map[771920000] = 191.962600247;
9181  atomic_mass_map[781920000] = 191.961038746;
9182  atomic_mass_map[791920000] = 191.964813694;
9183  atomic_mass_map[801920000] = 191.965634702;
9184  atomic_mass_map[811920000] = 191.972225;
9185  atomic_mass_map[821920000] = 191.975775008;
9186  atomic_mass_map[831920000] = 191.985469058;
9187  atomic_mass_map[841920000] = 191.991335925;
9188  atomic_mass_map[851920000] = 192.003151707;
9189  atomic_mass_map[741930000] = 192.97178;
9190  atomic_mass_map[751930000] = 192.967541;
9191  atomic_mass_map[761930000] = 192.96414787;
9192  atomic_mass_map[771930000] = 192.962921587;
9193  atomic_mass_map[781930000] = 192.96298238;
9194  atomic_mass_map[791930000] = 192.964137257;
9195  atomic_mass_map[801930000] = 192.966652658;
9196  atomic_mass_map[811930000] = 192.970501998;
9197  atomic_mass_map[821930000] = 192.976173234;
9198  atomic_mass_map[831930000] = 192.982959813;
9199  atomic_mass_map[841930000] = 192.991025678;
9200  atomic_mass_map[851930000] = 192.999927418;
9201  atomic_mass_map[861930000] = 193.009707979;
9202  atomic_mass_map[741940000] = 193.97367;
9203  atomic_mass_map[751940000] = 193.97076;
9204  atomic_mass_map[761940000] = 193.96517724;
9205  atomic_mass_map[771940000] = 193.965073536;
9206  atomic_mass_map[781940000] = 193.96268085;
9207  atomic_mass_map[791940000] = 193.965417754;
9208  atomic_mass_map[801940000] = 193.965449112;
9209  atomic_mass_map[811940000] = 193.971081412;
9210  atomic_mass_map[821940000] = 193.97401225;
9211  atomic_mass_map[831940000] = 193.982785;
9212  atomic_mass_map[841940000] = 193.988186101;
9213  atomic_mass_map[851940000] = 193.999236139;
9214  atomic_mass_map[861940000] = 194.006144389;
9215  atomic_mass_map[751950000] = 194.97254;
9216  atomic_mass_map[761950000] = 194.968318;
9217  atomic_mass_map[771950000] = 194.96597473;
9218  atomic_mass_map[781950000] = 194.964791719;
9219  atomic_mass_map[791950000] = 194.965035225;
9220  atomic_mass_map[801950000] = 194.96672054;
9221  atomic_mass_map[811950000] = 194.969774268;
9222  atomic_mass_map[821950000] = 194.974542922;
9223  atomic_mass_map[831950000] = 194.980648781;
9224  atomic_mass_map[841950000] = 194.988125532;
9225  atomic_mass_map[851950000] = 194.996268546;
9226  atomic_mass_map[861950000] = 195.005421673;
9227  atomic_mass_map[751960000] = 195.9758;
9228  atomic_mass_map[761960000] = 195.969641463;
9229  atomic_mass_map[771960000] = 195.968397112;
9230  atomic_mass_map[781960000] = 195.964952091;
9231  atomic_mass_map[791960000] = 195.966569908;
9232  atomic_mass_map[801960000] = 195.96583256;
9233  atomic_mass_map[811960000] = 195.970481193;
9234  atomic_mass_map[821960000] = 195.972774233;
9235  atomic_mass_map[831960000] = 195.980666509;
9236  atomic_mass_map[841960000] = 195.985525902;
9237  atomic_mass_map[851960000] = 195.995799619;
9238  atomic_mass_map[861960000] = 196.002115998;
9239  atomic_mass_map[751970000] = 196.97799;
9240  atomic_mass_map[761970000] = 196.97283;
9241  atomic_mass_map[771970000] = 196.969655415;
9242  atomic_mass_map[781970000] = 196.967340687;
9243  atomic_mass_map[791970000] = 196.966568786;
9244  atomic_mass_map[801970000] = 196.967212847;
9245  atomic_mass_map[811970000] = 196.96957589;
9246  atomic_mass_map[821970000] = 196.973431166;
9247  atomic_mass_map[831970000] = 196.978865099;
9248  atomic_mass_map[841970000] = 196.985659522;
9249  atomic_mass_map[851970000] = 196.993189187;
9250  atomic_mass_map[861970000] = 197.00158462;
9251  atomic_mass_map[751980000] = 197.9816;
9252  atomic_mass_map[761980000] = 197.97441;
9253  atomic_mass_map[771980000] = 197.97228;
9254  atomic_mass_map[781980000] = 197.96789492;
9255  atomic_mass_map[791980000] = 197.96824242;
9256  atomic_mass_map[801980000] = 197.966768602;
9257  atomic_mass_map[811980000] = 197.970483065;
9258  atomic_mass_map[821980000] = 197.972034077;
9259  atomic_mass_map[831980000] = 197.979206;
9260  atomic_mass_map[841980000] = 197.983389132;
9261  atomic_mass_map[851980000] = 197.992784;
9262  atomic_mass_map[861980000] = 197.998679156;
9263  atomic_mass_map[761990000] = 198.97801;
9264  atomic_mass_map[771990000] = 198.973805301;
9265  atomic_mass_map[781990000] = 198.970595224;
9266  atomic_mass_map[791990000] = 198.968765282;
9267  atomic_mass_map[801990000] = 198.968280643;
9268  atomic_mass_map[811990000] = 198.969877;
9269  atomic_mass_map[821990000] = 198.97291268;
9270  atomic_mass_map[831990000] = 198.97767301;
9271  atomic_mass_map[841990000] = 198.983667115;
9272  atomic_mass_map[851990000] = 198.990527654;
9273  atomic_mass_map[861990000] = 198.998389856;
9274  atomic_mass_map[871990000] = 199.007258594;
9275  atomic_mass_map[762000000] = 199.97984;
9276  atomic_mass_map[772000000] = 199.9768;
9277  atomic_mass_map[782000000] = 199.971442807;
9278  atomic_mass_map[792000000] = 199.970756456;
9279  atomic_mass_map[802000000] = 199.96832659;
9280  atomic_mass_map[812000000] = 199.970963258;
9281  atomic_mass_map[822000000] = 199.971818893;
9282  atomic_mass_map[832000000] = 199.978131179;
9283  atomic_mass_map[842000000] = 199.98179879;
9284  atomic_mass_map[852000000] = 199.990351015;
9285  atomic_mass_map[862000000] = 199.995690431;
9286  atomic_mass_map[872000000] = 200.006586003;
9287  atomic_mass_map[762010000] = 200.98364;
9288  atomic_mass_map[772010000] = 200.97864;
9289  atomic_mass_map[782010000] = 200.974513112;
9290  atomic_mass_map[792010000] = 200.971657484;
9291  atomic_mass_map[802010000] = 200.970302839;
9292  atomic_mass_map[812010000] = 200.970822212;
9293  atomic_mass_map[822010000] = 200.972882917;
9294  atomic_mass_map[832010000] = 200.977010416;
9295  atomic_mass_map[842010000] = 200.982259806;
9296  atomic_mass_map[852010000] = 200.988417147;
9297  atomic_mass_map[862010000] = 200.99562801;
9298  atomic_mass_map[872010000] = 201.003866593;
9299  atomic_mass_map[882010000] = 201.012712;
9300  atomic_mass_map[762020000] = 201.98595;
9301  atomic_mass_map[772020000] = 201.98199;
9302  atomic_mass_map[782020000] = 201.975639;
9303  atomic_mass_map[792020000] = 201.973856;
9304  atomic_mass_map[802020000] = 201.9706434;
9305  atomic_mass_map[812020000] = 201.972102441;
9306  atomic_mass_map[822020000] = 201.972152026;
9307  atomic_mass_map[832020000] = 201.977733861;
9308  atomic_mass_map[842020000] = 201.980757657;
9309  atomic_mass_map[852020000] = 201.988630302;
9310  atomic_mass_map[862020000] = 201.993264277;
9311  atomic_mass_map[872020000] = 202.00332;
9312  atomic_mass_map[882020000] = 202.009759744;
9313  atomic_mass_map[772030000] = 202.98423;
9314  atomic_mass_map[782030000] = 202.97893;
9315  atomic_mass_map[792030000] = 202.975154446;
9316  atomic_mass_map[802030000] = 202.972872837;
9317  atomic_mass_map[812030000] = 202.972344593;
9318  atomic_mass_map[822030000] = 202.973391126;
9319  atomic_mass_map[832030000] = 202.976892779;
9320  atomic_mass_map[842030000] = 202.981416133;
9321  atomic_mass_map[852030000] = 202.98694299;
9322  atomic_mass_map[862030000] = 202.993387741;
9323  atomic_mass_map[872030000] = 203.000940729;
9324  atomic_mass_map[882030000] = 203.009304274;
9325  atomic_mass_map[772040000] = 203.9896;
9326  atomic_mass_map[782040000] = 203.98076;
9327  atomic_mass_map[792040000] = 203.977831;
9328  atomic_mass_map[802040000] = 203.973493981;
9329  atomic_mass_map[812040000] = 203.9738639;
9330  atomic_mass_map[822040000] = 203.973043981;
9331  atomic_mass_map[832040000] = 203.977836062;
9332  atomic_mass_map[842040000] = 203.980310339;
9333  atomic_mass_map[852040000] = 203.987251198;
9334  atomic_mass_map[862040000] = 203.991429922;
9335  atomic_mass_map[872040000] = 204.000652059;
9336  atomic_mass_map[882040000] = 204.006491866;
9337  atomic_mass_map[782050000] = 204.98608;
9338  atomic_mass_map[792050000] = 204.97985;
9339  atomic_mass_map[802050000] = 204.976073417;
9340  atomic_mass_map[812050000] = 204.974427801;
9341  atomic_mass_map[822050000] = 204.974482157;
9342  atomic_mass_map[832050000] = 204.977386694;
9343  atomic_mass_map[842050000] = 204.981203091;
9344  atomic_mass_map[852050000] = 204.986075861;
9345  atomic_mass_map[862050000] = 204.99171884;
9346  atomic_mass_map[872050000] = 204.998593858;
9347  atomic_mass_map[882050000] = 205.006268245;
9348  atomic_mass_map[782060000] = 205.98966;
9349  atomic_mass_map[792060000] = 205.98474;
9350  atomic_mass_map[802060000] = 205.977514401;
9351  atomic_mass_map[812060000] = 205.976110589;
9352  atomic_mass_map[822060000] = 205.974465683;
9353  atomic_mass_map[832060000] = 205.978499317;
9354  atomic_mass_map[842060000] = 205.980473991;
9355  atomic_mass_map[852060000] = 205.986656933;
9356  atomic_mass_map[862060000] = 205.990214219;
9357  atomic_mass_map[872060000] = 205.998666132;
9358  atomic_mass_map[882060000] = 206.003828053;
9359  atomic_mass_map[892060000] = 206.014452;
9360  atomic_mass_map[792070000] = 206.9884;
9361  atomic_mass_map[802070000] = 206.9823;
9362  atomic_mass_map[812070000] = 206.977419712;
9363  atomic_mass_map[822070000] = 206.975897297;
9364  atomic_mass_map[832070000] = 206.978471022;
9365  atomic_mass_map[842070000] = 206.981593762;
9366  atomic_mass_map[852070000] = 206.985800332;
9367  atomic_mass_map[862070000] = 206.990730254;
9368  atomic_mass_map[872070000] = 206.996946478;
9369  atomic_mass_map[882070000] = 207.003799159;
9370  atomic_mass_map[892070000] = 207.01196583;
9371  atomic_mass_map[792080000] = 207.99345;
9372  atomic_mass_map[802080000] = 207.985759;
9373  atomic_mass_map[812080000] = 207.982019001;
9374  atomic_mass_map[822080000] = 207.976652481;
9375  atomic_mass_map[832080000] = 207.97974253;
9376  atomic_mass_map[842080000] = 207.981246092;
9377  atomic_mass_map[852080000] = 207.986613302;
9378  atomic_mass_map[862080000] = 207.989634687;
9379  atomic_mass_map[872080000] = 207.997138132;
9380  atomic_mass_map[882080000] = 208.001841122;
9381  atomic_mass_map[892080000] = 208.011550406;
9382  atomic_mass_map[902080000] = 208.017900275;
9383  atomic_mass_map[792090000] = 208.99735;
9384  atomic_mass_map[802090000] = 208.99072;
9385  atomic_mass_map[812090000] = 208.985359353;
9386  atomic_mass_map[822090000] = 208.981090461;
9387  atomic_mass_map[832090000] = 208.980399068;
9388  atomic_mass_map[842090000] = 208.982430836;
9389  atomic_mass_map[852090000] = 208.986170215;
9390  atomic_mass_map[862090000] = 208.99041451;
9391  atomic_mass_map[872090000] = 208.995954932;
9392  atomic_mass_map[882090000] = 209.001990455;
9393  atomic_mass_map[892090000] = 209.009494762;
9394  atomic_mass_map[902090000] = 209.017752974;
9395  atomic_mass_map[792100000] = 210.0025;
9396  atomic_mass_map[802100000] = 209.99424;
9397  atomic_mass_map[812100000] = 209.990073958;
9398  atomic_mass_map[822100000] = 209.984188861;
9399  atomic_mass_map[832100000] = 209.984120705;
9400  atomic_mass_map[842100000] = 209.982874076;
9401  atomic_mass_map[852100000] = 209.987147898;
9402  atomic_mass_map[862100000] = 209.989689107;
9403  atomic_mass_map[872100000] = 209.996422409;
9404  atomic_mass_map[882100000] = 210.000494169;
9405  atomic_mass_map[892100000] = 210.009436052;
9406  atomic_mass_map[902100000] = 210.015093642;
9407  atomic_mass_map[802110000] = 210.99933;
9408  atomic_mass_map[812110000] = 210.993475;
9409  atomic_mass_map[822110000] = 210.988737125;
9410  atomic_mass_map[832110000] = 210.987269741;
9411  atomic_mass_map[842110000] = 210.986653562;
9412  atomic_mass_map[852110000] = 210.987496614;
9413  atomic_mass_map[862110000] = 210.99060111;
9414  atomic_mass_map[872110000] = 210.995555723;
9415  atomic_mass_map[882110000] = 211.000893214;
9416  atomic_mass_map[892110000] = 211.007731899;
9417  atomic_mass_map[902110000] = 211.014929468;
9418  atomic_mass_map[802120000] = 212.00296;
9419  atomic_mass_map[812120000] = 211.998335;
9420  atomic_mass_map[822120000] = 211.991897703;
9421  atomic_mass_map[832120000] = 211.991286026;
9422  atomic_mass_map[842120000] = 211.988868376;
9423  atomic_mass_map[852120000] = 211.990737688;
9424  atomic_mass_map[862120000] = 211.990703919;
9425  atomic_mass_map[872120000] = 211.996225652;
9426  atomic_mass_map[882120000] = 211.999786715;
9427  atomic_mass_map[892120000] = 212.007813171;
9428  atomic_mass_map[902120000] = 212.012987595;
9429  atomic_mass_map[912120000] = 212.023202993;
9430  atomic_mass_map[802130000] = 213.00823;
9431  atomic_mass_map[812130000] = 213.001915;
9432  atomic_mass_map[822130000] = 212.996562894;
9433  atomic_mass_map[832130000] = 212.994385067;
9434  atomic_mass_map[842130000] = 212.992857623;
9435  atomic_mass_map[852130000] = 212.992936978;
9436  atomic_mass_map[862130000] = 212.993883069;
9437  atomic_mass_map[872130000] = 212.996186041;
9438  atomic_mass_map[882130000] = 213.000384258;
9439  atomic_mass_map[892130000] = 213.00660902;
9440  atomic_mass_map[902130000] = 213.013009223;
9441  atomic_mass_map[912130000] = 213.021109239;
9442  atomic_mass_map[802140000] = 214.012;
9443  atomic_mass_map[812140000] = 214.00694;
9444  atomic_mass_map[822140000] = 213.999805917;
9445  atomic_mass_map[832140000] = 213.998711926;
9446  atomic_mass_map[842140000] = 213.995201683;
9447  atomic_mass_map[852140000] = 213.996372066;
9448  atomic_mass_map[862140000] = 213.995362956;
9449  atomic_mass_map[872140000] = 213.998971333;
9450  atomic_mass_map[882140000] = 214.000099727;
9451  atomic_mass_map[892140000] = 214.006918488;
9452  atomic_mass_map[902140000] = 214.011500159;
9453  atomic_mass_map[912140000] = 214.020918483;
9454  atomic_mass_map[802150000] = 215.0174;
9455  atomic_mass_map[812150000] = 215.01064;
9456  atomic_mass_map[822150000] = 215.004741;
9457  atomic_mass_map[832150000] = 215.001769823;
9458  atomic_mass_map[842150000] = 214.999420146;
9459  atomic_mass_map[852150000] = 214.998652849;
9460  atomic_mass_map[862150000] = 214.99874589;
9461  atomic_mass_map[872150000] = 215.000341838;
9462  atomic_mass_map[882150000] = 215.00272042;
9463  atomic_mass_map[892150000] = 215.006474511;
9464  atomic_mass_map[902150000] = 215.011724774;
9465  atomic_mass_map[912150000] = 215.019182929;
9466  atomic_mass_map[802160000] = 216.02132;
9467  atomic_mass_map[812160000] = 216.0158;
9468  atomic_mass_map[822160000] = 216.00803;
9469  atomic_mass_map[832160000] = 216.006305989;
9470  atomic_mass_map[842160000] = 216.001915186;
9471  atomic_mass_map[852160000] = 216.002423555;
9472  atomic_mass_map[862160000] = 216.000271859;
9473  atomic_mass_map[872160000] = 216.003189865;
9474  atomic_mass_map[882160000] = 216.003533423;
9475  atomic_mass_map[892160000] = 216.008743482;
9476  atomic_mass_map[902160000] = 216.011056007;
9477  atomic_mass_map[912160000] = 216.019108913;
9478  atomic_mass_map[812170000] = 217.01966;
9479  atomic_mass_map[822170000] = 217.01314;
9480  atomic_mass_map[832170000] = 217.009372;
9481  atomic_mass_map[842170000] = 217.006318159;
9482  atomic_mass_map[852170000] = 217.004719222;
9483  atomic_mass_map[862170000] = 217.003928018;
9484  atomic_mass_map[872170000] = 217.004632282;
9485  atomic_mass_map[882170000] = 217.006320726;
9486  atomic_mass_map[892170000] = 217.009343872;
9487  atomic_mass_map[902170000] = 217.013116701;
9488  atomic_mass_map[912170000] = 217.018325363;
9489  atomic_mass_map[922170000] = 217.024661;
9490  atomic_mass_map[812180000] = 218.02479;
9491  atomic_mass_map[822180000] = 218.01659;
9492  atomic_mass_map[832180000] = 218.014188;
9493  atomic_mass_map[842180000] = 218.008973546;
9494  atomic_mass_map[852180000] = 218.008694723;
9495  atomic_mass_map[862180000] = 218.005601586;
9496  atomic_mass_map[872180000] = 218.007578653;
9497  atomic_mass_map[882180000] = 218.007140631;
9498  atomic_mass_map[892180000] = 218.01164164;
9499  atomic_mass_map[902180000] = 218.013276331;
9500  atomic_mass_map[912180000] = 218.020058579;
9501  atomic_mass_map[922180000] = 218.023523472;
9502  atomic_mass_map[822190000] = 219.02177;
9503  atomic_mass_map[832190000] = 219.01748;
9504  atomic_mass_map[842190000] = 219.013614;
9505  atomic_mass_map[852190000] = 219.011161848;
9506  atomic_mass_map[862190000] = 219.009480361;
9507  atomic_mass_map[872190000] = 219.009252427;
9508  atomic_mass_map[882190000] = 219.010085484;
9509  atomic_mass_map[892190000] = 219.01242073;
9510  atomic_mass_map[902190000] = 219.015537481;
9511  atomic_mass_map[912190000] = 219.019904029;
9512  atomic_mass_map[922190000] = 219.02499913;
9513  atomic_mass_map[932190000] = 219.03143;
9514  atomic_mass_map[822200000] = 220.02541;
9515  atomic_mass_map[832200000] = 220.02235;
9516  atomic_mass_map[842200000] = 220.016386;
9517  atomic_mass_map[852200000] = 220.015433;
9518  atomic_mass_map[862200000] = 220.01139413;
9519  atomic_mass_map[872200000] = 220.012327702;
9520  atomic_mass_map[882200000] = 220.011025872;
9521  atomic_mass_map[892200000] = 220.014754854;
9522  atomic_mass_map[902200000] = 220.015748148;
9523  atomic_mass_map[912200000] = 220.021705;
9524  atomic_mass_map[922200000] = 220.02462;
9525  atomic_mass_map[932200000] = 220.03254;
9526  atomic_mass_map[832210000] = 221.02587;
9527  atomic_mass_map[842210000] = 221.021228;
9528  atomic_mass_map[852210000] = 221.018017;
9529  atomic_mass_map[862210000] = 221.015537076;
9530  atomic_mass_map[872210000] = 221.014255163;
9531  atomic_mass_map[882210000] = 221.01391768;
9532  atomic_mass_map[892210000] = 221.015591579;
9533  atomic_mass_map[902210000] = 221.018184072;
9534  atomic_mass_map[912210000] = 221.021874941;
9535  atomic_mass_map[922210000] = 221.026284;
9536  atomic_mass_map[932210000] = 221.03204;
9537  atomic_mass_map[832220000] = 222.03078;
9538  atomic_mass_map[842220000] = 222.02414;
9539  atomic_mass_map[852220000] = 222.022494;
9540  atomic_mass_map[862220000] = 222.017578246;
9541  atomic_mass_map[872220000] = 222.017552192;
9542  atomic_mass_map[882220000] = 222.015374846;
9543  atomic_mass_map[892220000] = 222.017844181;
9544  atomic_mass_map[902220000] = 222.018468521;
9545  atomic_mass_map[912220000] = 222.023784;
9546  atomic_mass_map[922220000] = 222.026003;
9547  atomic_mass_map[932220000] = 222.0333;
9548  atomic_mass_map[832230000] = 223.0345;
9549  atomic_mass_map[842230000] = 223.02907;
9550  atomic_mass_map[852230000] = 223.025151;
9551  atomic_mass_map[862230000] = 223.021889286;
9552  atomic_mass_map[872230000] = 223.019736013;
9553  atomic_mass_map[882230000] = 223.018502327;
9554  atomic_mass_map[892230000] = 223.019137747;
9555  atomic_mass_map[902230000] = 223.020811853;
9556  atomic_mass_map[912230000] = 223.023962614;
9557  atomic_mass_map[922230000] = 223.027739187;
9558  atomic_mass_map[932230000] = 223.03285;
9559  atomic_mass_map[832240000] = 224.03947;
9560  atomic_mass_map[842240000] = 224.03211;
9561  atomic_mass_map[852240000] = 224.029749;
9562  atomic_mass_map[862240000] = 224.024095805;
9563  atomic_mass_map[872240000] = 224.023398;
9564  atomic_mass_map[882240000] = 224.020211968;
9565  atomic_mass_map[892240000] = 224.021723163;
9566  atomic_mass_map[902240000] = 224.021464382;
9567  atomic_mass_map[912240000] = 224.025617614;
9568  atomic_mass_map[922240000] = 224.027605163;
9569  atomic_mass_map[932240000] = 224.03422;
9570  atomic_mass_map[842250000] = 225.03707;
9571  atomic_mass_map[852250000] = 225.03263;
9572  atomic_mass_map[862250000] = 225.028485574;
9573  atomic_mass_map[872250000] = 225.025572682;
9574  atomic_mass_map[882250000] = 225.023611857;
9575  atomic_mass_map[892250000] = 225.023229987;
9576  atomic_mass_map[902250000] = 225.023951363;
9577  atomic_mass_map[912250000] = 225.026131009;
9578  atomic_mass_map[922250000] = 225.02939135;
9579  atomic_mass_map[932250000] = 225.033910892;
9580  atomic_mass_map[842260000] = 226.04031;
9581  atomic_mass_map[852260000] = 226.03716;
9582  atomic_mass_map[862260000] = 226.030861382;
9583  atomic_mass_map[872260000] = 226.029566;
9584  atomic_mass_map[882260000] = 226.02541033;
9585  atomic_mass_map[892260000] = 226.026098383;
9586  atomic_mass_map[902260000] = 226.024903383;
9587  atomic_mass_map[912260000] = 226.027948082;
9588  atomic_mass_map[922260000] = 226.029339101;
9589  atomic_mass_map[932260000] = 226.035188;
9590  atomic_mass_map[842270000] = 227.04539;
9591  atomic_mass_map[852270000] = 227.04024;
9592  atomic_mass_map[862270000] = 227.035304396;
9593  atomic_mass_map[872270000] = 227.031869;
9594  atomic_mass_map[882270000] = 227.029178349;
9595  atomic_mass_map[892270000] = 227.027752283;
9596  atomic_mass_map[902270000] = 227.027704227;
9597  atomic_mass_map[912270000] = 227.028805351;
9598  atomic_mass_map[922270000] = 227.031156773;
9599  atomic_mass_map[932270000] = 227.034957129;
9600  atomic_mass_map[852280000] = 228.04475;
9601  atomic_mass_map[862280000] = 228.037835418;
9602  atomic_mass_map[872280000] = 228.035823175;
9603  atomic_mass_map[882280000] = 228.031070728;
9604  atomic_mass_map[892280000] = 228.031021547;
9605  atomic_mass_map[902280000] = 228.028741272;
9606  atomic_mass_map[912280000] = 228.031051673;
9607  atomic_mass_map[922280000] = 228.031371492;
9608  atomic_mass_map[932280000] = 228.036066866;
9609  atomic_mass_map[942280000] = 228.038732491;
9610  atomic_mass_map[852290000] = 229.04812;
9611  atomic_mass_map[862290000] = 229.042257277;
9612  atomic_mass_map[872290000] = 229.038298;
9613  atomic_mass_map[882290000] = 229.034942262;
9614  atomic_mass_map[892290000] = 229.032955884;
9615  atomic_mass_map[902290000] = 229.031762713;
9616  atomic_mass_map[912290000] = 229.032097236;
9617  atomic_mass_map[922290000] = 229.03350628;
9618  atomic_mass_map[932290000] = 229.036264139;
9619  atomic_mass_map[942290000] = 229.040143614;
9620  atomic_mass_map[862300000] = 230.04514;
9621  atomic_mass_map[872300000] = 230.042416349;
9622  atomic_mass_map[882300000] = 230.037054781;
9623  atomic_mass_map[892300000] = 230.036327;
9624  atomic_mass_map[902300000] = 230.03313413;
9625  atomic_mass_map[912300000] = 230.034541047;
9626  atomic_mass_map[922300000] = 230.033940096;
9627  atomic_mass_map[932300000] = 230.037827926;
9628  atomic_mass_map[942300000] = 230.039650283;
9629  atomic_mass_map[952300000] = 230.04609;
9630  atomic_mass_map[862310000] = 231.04987;
9631  atomic_mass_map[872310000] = 231.045158;
9632  atomic_mass_map[882310000] = 231.041027087;
9633  atomic_mass_map[892310000] = 231.038393;
9634  atomic_mass_map[902310000] = 231.036304628;
9635  atomic_mass_map[912310000] = 231.035884243;
9636  atomic_mass_map[922310000] = 231.036293861;
9637  atomic_mass_map[932310000] = 231.038245364;
9638  atomic_mass_map[942310000] = 231.041101511;
9639  atomic_mass_map[952310000] = 231.04556;
9640  atomic_mass_map[872320000] = 232.049368;
9641  atomic_mass_map[882320000] = 232.04347527;
9642  atomic_mass_map[892320000] = 232.042034;
9643  atomic_mass_map[902320000] = 232.03805576;
9644  atomic_mass_map[912320000] = 232.038591737;
9645  atomic_mass_map[922320000] = 232.037156297;
9646  atomic_mass_map[932320000] = 232.040109;
9647  atomic_mass_map[942320000] = 232.041184582;
9648  atomic_mass_map[952320000] = 232.04645;
9649  atomic_mass_map[962320000] = 232.049817;
9650  atomic_mass_map[872330000] = 233.05264;
9651  atomic_mass_map[882330000] = 233.047582;
9652  atomic_mass_map[892330000] = 233.044346;
9653  atomic_mass_map[902330000] = 233.041582278;
9654  atomic_mass_map[912330000] = 233.040247222;
9655  atomic_mass_map[922330000] = 233.039635525;
9656  atomic_mass_map[932330000] = 233.040740989;
9657  atomic_mass_map[942330000] = 233.042997716;
9658  atomic_mass_map[952330000] = 233.046445;
9659  atomic_mass_map[962330000] = 233.050770001;
9660  atomic_mass_map[882340000] = 234.050342;
9661  atomic_mass_map[892340000] = 234.048139;
9662  atomic_mass_map[902340000] = 234.043601407;
9663  atomic_mass_map[912340000] = 234.043307161;
9664  atomic_mass_map[922340000] = 234.040952306;
9665  atomic_mass_map[932340000] = 234.042895256;
9666  atomic_mass_map[942340000] = 234.043317387;
9667  atomic_mass_map[952340000] = 234.047731;
9668  atomic_mass_map[962340000] = 234.050160237;
9669  atomic_mass_map[972340000] = 234.057267;
9670  atomic_mass_map[882350000] = 235.05497;
9671  atomic_mass_map[892350000] = 235.05084;
9672  atomic_mass_map[902350000] = 235.047255;
9673  atomic_mass_map[912350000] = 235.045399;
9674  atomic_mass_map[922350000] = 235.043930131;
9675  atomic_mass_map[932350000] = 235.044063487;
9676  atomic_mass_map[942350000] = 235.045286206;
9677  atomic_mass_map[952350000] = 235.047908245;
9678  atomic_mass_map[962350000] = 235.051542;
9679  atomic_mass_map[972350000] = 235.05658;
9680  atomic_mass_map[892360000] = 236.054988;
9681  atomic_mass_map[902360000] = 236.049657;
9682  atomic_mass_map[912360000] = 236.048668;
9683  atomic_mass_map[922360000] = 236.04556821;
9684  atomic_mass_map[932360000] = 236.046569744;
9685  atomic_mass_map[942360000] = 236.046058109;
9686  atomic_mass_map[952360000] = 236.049428;
9687  atomic_mass_map[962360000] = 236.051374477;
9688  atomic_mass_map[972360000] = 236.05748;
9689  atomic_mass_map[892370000] = 237.05827;
9690  atomic_mass_map[902370000] = 237.053629;
9691  atomic_mass_map[912370000] = 237.051023;
9692  atomic_mass_map[922370000] = 237.048730378;
9693  atomic_mass_map[932370000] = 237.048173649;
9694  atomic_mass_map[942370000] = 237.04840983;
9695  atomic_mass_map[952370000] = 237.049996;
9696  atomic_mass_map[962370000] = 237.052869294;
9697  atomic_mass_map[972370000] = 237.0571;
9698  atomic_mass_map[982370000] = 237.062197789;
9699  atomic_mass_map[902380000] = 238.056496;
9700  atomic_mass_map[912380000] = 238.054637;
9701  atomic_mass_map[922380000] = 238.050788423;
9702  atomic_mass_map[932380000] = 238.050946611;
9703  atomic_mass_map[942380000] = 238.049560111;
9704  atomic_mass_map[952380000] = 238.051984542;
9705  atomic_mass_map[962380000] = 238.05308142;
9706  atomic_mass_map[972380000] = 238.058204;
9707  atomic_mass_map[982380000] = 238.06149;
9708  atomic_mass_map[902390000] = 239.06077;
9709  atomic_mass_map[912390000] = 239.05726;
9710  atomic_mass_map[922390000] = 239.054293475;
9711  atomic_mass_map[932390000] = 239.052939241;
9712  atomic_mass_map[942390000] = 239.052163591;
9713  atomic_mass_map[952390000] = 239.053024699;
9714  atomic_mass_map[962390000] = 239.054910117;
9715  atomic_mass_map[972390000] = 239.058241;
9716  atomic_mass_map[982390000] = 239.062529;
9717  atomic_mass_map[992390000] = 239.06823;
9718  atomic_mass_map[912400000] = 240.06098;
9719  atomic_mass_map[922400000] = 240.056593356;
9720  atomic_mass_map[932400000] = 240.056165427;
9721  atomic_mass_map[942400000] = 240.05381375;
9722  atomic_mass_map[952400000] = 240.055300384;
9723  atomic_mass_map[962400000] = 240.055529681;
9724  atomic_mass_map[972400000] = 240.059759;
9725  atomic_mass_map[982400000] = 240.062255728;
9726  atomic_mass_map[992400000] = 240.06892;
9727  atomic_mass_map[912410000] = 241.06408;
9728  atomic_mass_map[922410000] = 241.06033;
9729  atomic_mass_map[932410000] = 241.058252636;
9730  atomic_mass_map[942410000] = 241.056851661;
9731  atomic_mass_map[952410000] = 241.056829349;
9732  atomic_mass_map[962410000] = 241.05765317;
9733  atomic_mass_map[972410000] = 241.060155;
9734  atomic_mass_map[982410000] = 241.06369;
9735  atomic_mass_map[992410000] = 241.06856;
9736  atomic_mass_map[1002410000] = 241.07421;
9737  atomic_mass_map[922420000] = 242.062932;
9738  atomic_mass_map[932420000] = 242.061641379;
9739  atomic_mass_map[942420000] = 242.058742809;
9740  atomic_mass_map[952420000] = 242.059549364;
9741  atomic_mass_map[962420000] = 242.058836039;
9742  atomic_mass_map[972420000] = 242.061982;
9743  atomic_mass_map[982420000] = 242.063754274;
9744  atomic_mass_map[992420000] = 242.069567;
9745  atomic_mass_map[1002420000] = 242.07343;
9746  atomic_mass_map[922430000] = 243.06699;
9747  atomic_mass_map[932430000] = 243.06428;
9748  atomic_mass_map[942430000] = 243.062003595;
9749  atomic_mass_map[952430000] = 243.061381302;
9750  atomic_mass_map[962430000] = 243.061389325;
9751  atomic_mass_map[972430000] = 243.063007791;
9752  atomic_mass_map[982430000] = 243.065477;
9753  atomic_mass_map[992430000] = 243.06951;
9754  atomic_mass_map[1002430000] = 243.074465;
9755  atomic_mass_map[932440000] = 244.06785;
9756  atomic_mass_map[942440000] = 244.06420526;
9757  atomic_mass_map[952440000] = 244.064285052;
9758  atomic_mass_map[962440000] = 244.062752783;
9759  atomic_mass_map[972440000] = 244.065180979;
9760  atomic_mass_map[982440000] = 244.066000801;
9761  atomic_mass_map[992440000] = 244.070883;
9762  atomic_mass_map[1002440000] = 244.074038;
9763  atomic_mass_map[932450000] = 245.0708;
9764  atomic_mass_map[942450000] = 245.067826058;
9765  atomic_mass_map[952450000] = 245.066454834;
9766  atomic_mass_map[962450000] = 245.065491454;
9767  atomic_mass_map[972450000] = 245.066361821;
9768  atomic_mass_map[982450000] = 245.068048677;
9769  atomic_mass_map[992450000] = 245.071249;
9770  atomic_mass_map[1002450000] = 245.075349;
9771  atomic_mass_map[1012450000] = 245.080808;
9772  atomic_mass_map[942460000] = 246.070205458;
9773  atomic_mass_map[952460000] = 246.069775;
9774  atomic_mass_map[962460000] = 246.067223841;
9775  atomic_mass_map[972460000] = 246.068673126;
9776  atomic_mass_map[982460000] = 246.068805531;
9777  atomic_mass_map[992460000] = 246.072896;
9778  atomic_mass_map[1002460000] = 246.07535047;
9779  atomic_mass_map[1012460000] = 246.081713;
9780  atomic_mass_map[942470000] = 247.07419;
9781  atomic_mass_map[952470000] = 247.072093;
9782  atomic_mass_map[962470000] = 247.070354131;
9783  atomic_mass_map[972470000] = 247.070307302;
9784  atomic_mass_map[982470000] = 247.070965463;
9785  atomic_mass_map[992470000] = 247.073622017;
9786  atomic_mass_map[1002470000] = 247.076945;
9787  atomic_mass_map[1012470000] = 247.081522;
9788  atomic_mass_map[952480000] = 248.075753;
9789  atomic_mass_map[962480000] = 248.072349862;
9790  atomic_mass_map[972480000] = 248.073088;
9791  atomic_mass_map[982480000] = 248.072185066;
9792  atomic_mass_map[992480000] = 248.075471;
9793  atomic_mass_map[1002480000] = 248.077186463;
9794  atomic_mass_map[1012480000] = 248.082823;
9795  atomic_mass_map[1022480000] = 248.08655;
9796  atomic_mass_map[952490000] = 249.07848;
9797  atomic_mass_map[962490000] = 249.075954767;
9798  atomic_mass_map[972490000] = 249.074987676;
9799  atomic_mass_map[982490000] = 249.074853903;
9800  atomic_mass_map[992490000] = 249.076411;
9801  atomic_mass_map[1002490000] = 249.07892755;
9802  atomic_mass_map[1012490000] = 249.082914;
9803  atomic_mass_map[1022490000] = 249.087797;
9804  atomic_mass_map[962500000] = 250.078358313;
9805  atomic_mass_map[972500000] = 250.078316698;
9806  atomic_mass_map[982500000] = 250.076406244;
9807  atomic_mass_map[992500000] = 250.078612;
9808  atomic_mass_map[1002500000] = 250.079521034;
9809  atomic_mass_map[1012500000] = 250.084415;
9810  atomic_mass_map[1022500000] = 250.087562;
9811  atomic_mass_map[962510000] = 251.082286441;
9812  atomic_mass_map[972510000] = 251.080762009;
9813  atomic_mass_map[982510000] = 251.079588625;
9814  atomic_mass_map[992510000] = 251.079993586;
9815  atomic_mass_map[1002510000] = 251.08153989;
9816  atomic_mass_map[1012510000] = 251.084774376;
9817  atomic_mass_map[1022510000] = 251.088944;
9818  atomic_mass_map[1032510000] = 251.09418;
9819  atomic_mass_map[962520000] = 252.08487;
9820  atomic_mass_map[972520000] = 252.084311;
9821  atomic_mass_map[982520000] = 252.081627199;
9822  atomic_mass_map[992520000] = 252.082979865;
9823  atomic_mass_map[1002520000] = 252.08246706;
9824  atomic_mass_map[1012520000] = 252.086432;
9825  atomic_mass_map[1022520000] = 252.088966908;
9826  atomic_mass_map[1032520000] = 252.095264;
9827  atomic_mass_map[972530000] = 253.08688;
9828  atomic_mass_map[982530000] = 253.085134499;
9829  atomic_mass_map[992530000] = 253.084825715;
9830  atomic_mass_map[1002530000] = 253.085184571;
9831  atomic_mass_map[1012530000] = 253.087144;
9832  atomic_mass_map[1022530000] = 253.090564103;
9833  atomic_mass_map[1032530000] = 253.095091;
9834  atomic_mass_map[1042530000] = 253.100438;
9835  atomic_mass_map[972540000] = 254.0906;
9836  atomic_mass_map[982540000] = 254.087324263;
9837  atomic_mass_map[992540000] = 254.088022199;
9838  atomic_mass_map[1002540000] = 254.086854397;
9839  atomic_mass_map[1012540000] = 254.089592;
9840  atomic_mass_map[1022540000] = 254.090955661;
9841  atomic_mass_map[1032540000] = 254.096483;
9842  atomic_mass_map[1042540000] = 254.100053;
9843  atomic_mass_map[982550000] = 255.091048;
9844  atomic_mass_map[992550000] = 255.090274958;
9845  atomic_mass_map[1002550000] = 255.089964038;
9846  atomic_mass_map[1012550000] = 255.091084149;
9847  atomic_mass_map[1022550000] = 255.093191404;
9848  atomic_mass_map[1032550000] = 255.096562404;
9849  atomic_mass_map[1042550000] = 255.101268;
9850  atomic_mass_map[1052550000] = 255.107068;
9851  atomic_mass_map[982560000] = 256.093442;
9852  atomic_mass_map[992560000] = 256.093599;
9853  atomic_mass_map[1002560000] = 256.091774469;
9854  atomic_mass_map[1012560000] = 256.093889;
9855  atomic_mass_map[1022560000] = 256.09428287;
9856  atomic_mass_map[1032560000] = 256.09849403;
9857  atomic_mass_map[1042560000] = 256.101152218;
9858  atomic_mass_map[1052560000] = 256.10789;
9859  atomic_mass_map[992570000] = 257.095979;
9860  atomic_mass_map[1002570000] = 257.095106078;
9861  atomic_mass_map[1012570000] = 257.095542387;
9862  atomic_mass_map[1022570000] = 257.09688783;
9863  atomic_mass_map[1032570000] = 257.099418;
9864  atomic_mass_map[1042570000] = 257.10291812;
9865  atomic_mass_map[1052570000] = 257.107578;
9866  atomic_mass_map[992580000] = 258.09952;
9867  atomic_mass_map[1002580000] = 258.097077;
9868  atomic_mass_map[1012580000] = 258.098431496;
9869  atomic_mass_map[1022580000] = 258.098207;
9870  atomic_mass_map[1032580000] = 258.101755;
9871  atomic_mass_map[1042580000] = 258.103427679;
9872  atomic_mass_map[1052580000] = 258.109285;
9873  atomic_mass_map[1062580000] = 258.112983;
9874  atomic_mass_map[1002590000] = 259.100597;
9875  atomic_mass_map[1012590000] = 259.100511;
9876  atomic_mass_map[1022590000] = 259.101032;
9877  atomic_mass_map[1032590000] = 259.102902;
9878  atomic_mass_map[1042590000] = 259.105596;
9879  atomic_mass_map[1052590000] = 259.109491866;
9880  atomic_mass_map[1062590000] = 259.114396;
9881  atomic_mass_map[1002600000] = 260.102809;
9882  atomic_mass_map[1012600000] = 260.103653;
9883  atomic_mass_map[1022600000] = 260.102644;
9884  atomic_mass_map[1032600000] = 260.105505;
9885  atomic_mass_map[1042600000] = 260.106441;
9886  atomic_mass_map[1052600000] = 260.111297;
9887  atomic_mass_map[1062600000] = 260.114384105;
9888  atomic_mass_map[1072600000] = 260.121659;
9889  atomic_mass_map[1012610000] = 261.105828;
9890  atomic_mass_map[1022610000] = 261.105697;
9891  atomic_mass_map[1032610000] = 261.106884;
9892  atomic_mass_map[1042610000] = 261.108773401;
9893  atomic_mass_map[1052610000] = 261.111917;
9894  atomic_mass_map[1062610000] = 261.115949461;
9895  atomic_mass_map[1072610000] = 261.121455;
9896  atomic_mass_map[1012620000] = 262.109101;
9897  atomic_mass_map[1022620000] = 262.107464;
9898  atomic_mass_map[1032620000] = 262.109612;
9899  atomic_mass_map[1042620000] = 262.109925;
9900  atomic_mass_map[1052620000] = 262.114072;
9901  atomic_mass_map[1062620000] = 262.116336679;
9902  atomic_mass_map[1072620000] = 262.122967;
9903  atomic_mass_map[1022630000] = 263.110715;
9904  atomic_mass_map[1032630000] = 263.111359;
9905  atomic_mass_map[1042630000] = 263.112495;
9906  atomic_mass_map[1052630000] = 263.11499;
9907  atomic_mass_map[1062630000] = 263.118294;
9908  atomic_mass_map[1072630000] = 263.122916;
9909  atomic_mass_map[1082630000] = 263.128522;
9910  atomic_mass_map[1022640000] = 264.112734;
9911  atomic_mass_map[1032640000] = 264.114201;
9912  atomic_mass_map[1042640000] = 264.113879;
9913  atomic_mass_map[1052640000] = 264.117405;
9914  atomic_mass_map[1062640000] = 264.118931;
9915  atomic_mass_map[1072640000] = 264.124593;
9916  atomic_mass_map[1082640000] = 264.128356917;
9917  atomic_mass_map[1032650000] = 265.116193;
9918  atomic_mass_map[1042650000] = 265.116684;
9919  atomic_mass_map[1052650000] = 265.118613;
9920  atomic_mass_map[1062650000] = 265.121093;
9921  atomic_mass_map[1072650000] = 265.124914;
9922  atomic_mass_map[1082650000] = 265.129792986;
9923  atomic_mass_map[1092650000] = 265.135996;
9924  atomic_mass_map[1032660000] = 266.119831;
9925  atomic_mass_map[1042660000] = 266.118172;
9926  atomic_mass_map[1052660000] = 266.121029;
9927  atomic_mass_map[1062660000] = 266.121975;
9928  atomic_mass_map[1072660000] = 266.126794;
9929  atomic_mass_map[1082660000] = 266.1300464;
9930  atomic_mass_map[1092660000] = 266.137374;
9931  atomic_mass_map[1042670000] = 267.121789;
9932  atomic_mass_map[1052670000] = 267.122465;
9933  atomic_mass_map[1062670000] = 267.124357;
9934  atomic_mass_map[1072670000] = 267.127501;
9935  atomic_mass_map[1082670000] = 267.131673;
9936  atomic_mass_map[1092670000] = 267.137189;
9937  atomic_mass_map[1102670000] = 267.143768;
9938  atomic_mass_map[1042680000] = 268.123968;
9939  atomic_mass_map[1052680000] = 268.125671;
9940  atomic_mass_map[1062680000] = 268.125392;
9941  atomic_mass_map[1072680000] = 268.129692;
9942  atomic_mass_map[1082680000] = 268.131865;
9943  atomic_mass_map[1092680000] = 268.138649;
9944  atomic_mass_map[1102680000] = 268.143478;
9945  atomic_mass_map[1052690000] = 269.127911;
9946  atomic_mass_map[1062690000] = 269.128627;
9947  atomic_mass_map[1072690000] = 269.130416;
9948  atomic_mass_map[1082690000] = 269.133753;
9949  atomic_mass_map[1092690000] = 269.138822;
9950  atomic_mass_map[1102690000] = 269.144752124;
9951  atomic_mass_map[1052700000] = 270.131356;
9952  atomic_mass_map[1062700000] = 270.130427;
9953  atomic_mass_map[1072700000] = 270.133363;
9954  atomic_mass_map[1082700000] = 270.13429;
9955  atomic_mass_map[1092700000] = 270.140327;
9956  atomic_mass_map[1102700000] = 270.144584153;
9957  atomic_mass_map[1062710000] = 271.133933;
9958  atomic_mass_map[1072710000] = 271.135256;
9959  atomic_mass_map[1082710000] = 271.13717;
9960  atomic_mass_map[1092710000] = 271.140744;
9961  atomic_mass_map[1102710000] = 271.145946;
9962  atomic_mass_map[1062720000] = 272.13589;
9963  atomic_mass_map[1072720000] = 272.138264;
9964  atomic_mass_map[1082720000] = 272.138495;
9965  atomic_mass_map[1092720000] = 272.143406;
9966  atomic_mass_map[1102720000] = 272.14602;
9967  atomic_mass_map[1112720000] = 272.153273;
9968  atomic_mass_map[1062730000] = 273.13958;
9969  atomic_mass_map[1072730000] = 273.14024;
9970  atomic_mass_map[1082730000] = 273.141679;
9971  atomic_mass_map[1092730000] = 273.144399;
9972  atomic_mass_map[1102730000] = 273.14856;
9973  atomic_mass_map[1112730000] = 273.153127;
9974  atomic_mass_map[1072740000] = 274.143548;
9975  atomic_mass_map[1082740000] = 274.143304;
9976  atomic_mass_map[1092740000] = 274.147245;
9977  atomic_mass_map[1102740000] = 274.149411;
9978  atomic_mass_map[1112740000] = 274.155253;
9979  atomic_mass_map[1072750000] = 275.14567;
9980  atomic_mass_map[1082750000] = 275.146668;
9981  atomic_mass_map[1092750000] = 275.14882;
9982  atomic_mass_map[1102750000] = 275.152033;
9983  atomic_mass_map[1112750000] = 275.155939;
9984  atomic_mass_map[1082760000] = 276.148455;
9985  atomic_mass_map[1092760000] = 276.151594;
9986  atomic_mass_map[1102760000] = 276.153025;
9987  atomic_mass_map[1112760000] = 276.158334;
9988  atomic_mass_map[1122760000] = 276.16141;
9989  atomic_mass_map[1082770000] = 277.151899;
9990  atomic_mass_map[1092770000] = 277.153268;
9991  atomic_mass_map[1102770000] = 277.155914;
9992  atomic_mass_map[1112770000] = 277.159069;
9993  atomic_mass_map[1122770000] = 277.163641;
9994  atomic_mass_map[1092780000] = 278.156307;
9995  atomic_mass_map[1102780000] = 278.15704;
9996  atomic_mass_map[1112780000] = 278.161493;
9997  atomic_mass_map[1122780000] = 278.164156;
9998  atomic_mass_map[1132780000] = 278.170578;
9999  atomic_mass_map[1092790000] = 279.158075;
10000  atomic_mass_map[1102790000] = 279.160097;
10001  atomic_mass_map[1112790000] = 279.162722;
10002  atomic_mass_map[1122790000] = 279.166542;
10003  atomic_mass_map[1132790000] = 279.17095;
10004  atomic_mass_map[1102800000] = 280.161311;
10005  atomic_mass_map[1112800000] = 280.165138;
10006  atomic_mass_map[1122800000] = 280.167147;
10007  atomic_mass_map[1132800000] = 280.17293;
10008  atomic_mass_map[1102810000] = 281.164511;
10009  atomic_mass_map[1112810000] = 281.16636;
10010  atomic_mass_map[1122810000] = 281.169746;
10011  atomic_mass_map[1132810000] = 281.17348;
10012  atomic_mass_map[1112820000] = 282.169119;
10013  atomic_mass_map[1122820000] = 282.170496;
10014  atomic_mass_map[1132820000] = 282.175672;
10015  atomic_mass_map[1112830000] = 283.170544;
10016  atomic_mass_map[1122830000] = 283.17327;
10017  atomic_mass_map[1132830000] = 283.176571;
10018  atomic_mass_map[1122840000] = 284.174156;
10019  atomic_mass_map[1132840000] = 284.178727;
10020  atomic_mass_map[1122850000] = 285.177117;
10021  atomic_mass_map[1132850000] = 285.179727;
10022  atomic_mass_map[1142850000] = 285.183643;
10023  atomic_mass_map[1132860000] = 286.182208;
10024  atomic_mass_map[1142860000] = 286.184235;
10025  atomic_mass_map[1132870000] = 287.183389;
10026  atomic_mass_map[1142870000] = 287.186783;
10027  atomic_mass_map[1152870000] = 287.190704;
10028  atomic_mass_map[1142880000] = 288.187572;
10029  atomic_mass_map[1152880000] = 288.19274;
10030  atomic_mass_map[1142890000] = 289.190419;
10031  atomic_mass_map[1152890000] = 289.193627;
10032  atomic_mass_map[1162890000] = 289.198162;
10033  atomic_mass_map[1152900000] = 290.195975;
10034  atomic_mass_map[1162900000] = 290.198638;
10035  atomic_mass_map[1152910000] = 291.197071;
10036  atomic_mass_map[1162910000] = 291.201077;
10037  atomic_mass_map[1172910000] = 291.205535;
10038  atomic_mass_map[1162920000] = 292.201742;
10039  atomic_mass_map[1172920000] = 292.207463;
10040  atomic_mass_map[1162930000] = 293.204487;
10041  atomic_mass_map[1172930000] = 293.208236;
10042  atomic_mass_map[1182930000] = 293.213562;
10043  atomic_mass_map[1172940000] = 294.210462;
10044  atomic_mass_map[1182940000] = 294.213921;
10045  atomic_mass_map[1182950000] = 295.21624;
10046 }
10047 
10049  natural_abund_map[10010000] = 99.9885;
10050  natural_abund_map[10020000] = 0.0115;
10051  natural_abund_map[20030000] = 0.000134;
10052  natural_abund_map[20040000] = 99.999866;
10053  natural_abund_map[30060000] = 7.59;
10054  natural_abund_map[30070000] = 92.41;
10055  natural_abund_map[40090000] = 100.0;
10056  natural_abund_map[50100000] = 19.9;
10057  natural_abund_map[50110000] = 80.1;
10058  natural_abund_map[60120000] = 98.93;
10059  natural_abund_map[60130000] = 1.07;
10060  natural_abund_map[70140000] = 99.636;
10061  natural_abund_map[70150000] = 0.364;
10062  natural_abund_map[80160000] = 99.757;
10063  natural_abund_map[80170000] = 0.038;
10064  natural_abund_map[80180000] = 0.205;
10065  natural_abund_map[90190000] = 100.0;
10066  natural_abund_map[100200000] = 90.48;
10067  natural_abund_map[100210000] = 0.27;
10068  natural_abund_map[100220000] = 9.25;
10069  natural_abund_map[110230000] = 100.0;
10070  natural_abund_map[120240000] = 78.99;
10071  natural_abund_map[120250000] = 10.00;
10072  natural_abund_map[120260000] = 11.01;
10073  natural_abund_map[130270000] = 100.0;
10074  natural_abund_map[140280000] = 92.223;
10075  natural_abund_map[140290000] = 4.685;
10076  natural_abund_map[140300000] = 3.092;
10077  natural_abund_map[150310000] = 100.0;
10078  natural_abund_map[160320000] = 94.99;
10079  natural_abund_map[160330000] = 0.75;
10080  natural_abund_map[160340000] = 4.25;
10081  natural_abund_map[160360000] = 0.01;
10082  natural_abund_map[170350000] = 75.76;
10083  natural_abund_map[170370000] = 24.24;
10084  natural_abund_map[180360000] = 0.3336;
10085  natural_abund_map[180380000] = 0.0629;
10086  natural_abund_map[180400000] = 99.6035;
10087  natural_abund_map[190390000] = 93.2581;
10088  natural_abund_map[190400000] = 0.0117;
10089  natural_abund_map[190410000] = 6.7302;
10090  natural_abund_map[200400000] = 96.941;
10091  natural_abund_map[200420000] = 0.647;
10092  natural_abund_map[200430000] = 0.135;
10093  natural_abund_map[200440000] = 2.086;
10094  natural_abund_map[200460000] = 0.004;
10095  natural_abund_map[200480000] = 0.187;
10096  natural_abund_map[210450000] = 100.0;
10097  natural_abund_map[220460000] = 8.25;
10098  natural_abund_map[220470000] = 7.44;
10099  natural_abund_map[220480000] = 73.72;
10100  natural_abund_map[220490000] = 5.41;
10101  natural_abund_map[220500000] = 5.18;
10102  natural_abund_map[230500000] = 0.250;
10103  natural_abund_map[230510000] = 99.750;
10104  natural_abund_map[240500000] = 4.345;
10105  natural_abund_map[240520000] = 83.789;
10106  natural_abund_map[240530000] = 9.501;
10107  natural_abund_map[240540000] = 2.365;
10108  natural_abund_map[250550000] = 100.0;
10109  natural_abund_map[260540000] = 5.845;
10110  natural_abund_map[260560000] = 91.754;
10111  natural_abund_map[260570000] = 2.119;
10112  natural_abund_map[260580000] = 0.282;
10113  natural_abund_map[270590000] = 100.0;
10114  natural_abund_map[280580000] = 68.077;
10115  natural_abund_map[280600000] = 26.223;
10116  natural_abund_map[280610000] = 1.1399;
10117  natural_abund_map[280620000] = 3.6346;
10118  natural_abund_map[280640000] = 0.9255;
10119  natural_abund_map[290630000] = 69.15;
10120  natural_abund_map[290650000] = 30.85;
10121  natural_abund_map[300640000] = 49.17;
10122  natural_abund_map[300660000] = 27.73;
10123  natural_abund_map[300670000] = 4.04;
10124  natural_abund_map[300680000] = 18.45;
10125  natural_abund_map[300700000] = 0.61;
10126  natural_abund_map[310690000] = 60.108;
10127  natural_abund_map[310710000] = 39.892;
10128  natural_abund_map[320700000] = 20.57;
10129  natural_abund_map[320720000] = 27.45;
10130  natural_abund_map[320730000] = 7.75;
10131  natural_abund_map[320740000] = 36.50;
10132  natural_abund_map[320760000] = 7.73;
10133  natural_abund_map[330750000] = 100.0;
10134  natural_abund_map[340740000] = 0.89;
10135  natural_abund_map[340760000] = 9.37;
10136  natural_abund_map[340770000] = 7.63;
10137  natural_abund_map[340780000] = 23.77;
10138  natural_abund_map[340800000] = 49.61;
10139  natural_abund_map[340820000] = 8.73;
10140  natural_abund_map[350790000] = 50.69;
10141  natural_abund_map[350810000] = 49.31;
10142  natural_abund_map[360780000] = 0.355;
10143  natural_abund_map[360800000] = 2.286;
10144  natural_abund_map[360820000] = 11.593;
10145  natural_abund_map[360830000] = 11.500;
10146  natural_abund_map[360840000] = 56.987;
10147  natural_abund_map[360860000] = 17.279;
10148  natural_abund_map[370850000] = 72.17;
10149  natural_abund_map[370870000] = 27.83;
10150  natural_abund_map[380840000] = 0.56;
10151  natural_abund_map[380860000] = 9.86;
10152  natural_abund_map[380870000] = 7.00;
10153  natural_abund_map[380880000] = 82.58;
10154  natural_abund_map[390890000] = 100.0;
10155  natural_abund_map[400900000] = 51.45;
10156  natural_abund_map[400910000] = 11.22;
10157  natural_abund_map[400920000] = 17.15;
10158  natural_abund_map[400940000] = 17.38;
10159  natural_abund_map[400960000] = 2.80;
10160  natural_abund_map[410930000] = 100.0;
10161  natural_abund_map[420920000] = 14.53;
10162  natural_abund_map[420940000] = 9.15;
10163  natural_abund_map[420950000] = 15.84;
10164  natural_abund_map[420960000] = 16.67;
10165  natural_abund_map[420970000] = 9.60;
10166  natural_abund_map[420980000] = 24.39;
10167  natural_abund_map[421000000] = 9.82;
10168  natural_abund_map[440960000] = 5.54;
10169  natural_abund_map[440980000] = 1.87;
10170  natural_abund_map[440990000] = 12.76;
10171  natural_abund_map[441000000] = 12.60;
10172  natural_abund_map[441010000] = 17.06;
10173  natural_abund_map[441020000] = 31.55;
10174  natural_abund_map[441040000] = 18.62;
10175  natural_abund_map[451030000] = 100.0;
10176  natural_abund_map[461020000] = 1.02;
10177  natural_abund_map[461040000] = 11.14;
10178  natural_abund_map[461050000] = 22.33;
10179  natural_abund_map[461060000] = 27.33;
10180  natural_abund_map[461080000] = 26.46;
10181  natural_abund_map[461100000] = 11.72;
10182  natural_abund_map[471070000] = 51.839;
10183  natural_abund_map[471090000] = 48.161;
10184  natural_abund_map[481060000] = 1.25;
10185  natural_abund_map[481080000] = 0.89;
10186  natural_abund_map[481100000] = 12.49;
10187  natural_abund_map[481110000] = 12.80;
10188  natural_abund_map[481120000] = 24.13;
10189  natural_abund_map[481130000] = 12.22;
10190  natural_abund_map[481140000] = 28.73;
10191  natural_abund_map[481160000] = 7.49;
10192  natural_abund_map[491130000] = 4.29;
10193  natural_abund_map[491150000] = 95.71;
10194  natural_abund_map[501120000] = 0.97;
10195  natural_abund_map[501140000] = 0.66;
10196  natural_abund_map[501150000] = 0.34;
10197  natural_abund_map[501160000] = 14.54;
10198  natural_abund_map[501170000] = 7.68;
10199  natural_abund_map[501180000] = 24.22;
10200  natural_abund_map[501190000] = 8.59;
10201  natural_abund_map[501200000] = 32.58;
10202  natural_abund_map[501220000] = 4.63;
10203  natural_abund_map[501240000] = 5.79;
10204  natural_abund_map[511210000] = 57.21;
10205  natural_abund_map[511230000] = 42.79;
10206  natural_abund_map[521200000] = 0.09;
10207  natural_abund_map[521220000] = 2.55;
10208  natural_abund_map[521230000] = 0.89;
10209  natural_abund_map[521240000] = 4.74;
10210  natural_abund_map[521250000] = 7.07;
10211  natural_abund_map[521260000] = 18.84;
10212  natural_abund_map[521280000] = 31.74;
10213  natural_abund_map[521300000] = 34.08;
10214  natural_abund_map[531270000] = 100.0;
10215  natural_abund_map[541240000] = 0.0952;
10216  natural_abund_map[541260000] = 0.0890;
10217  natural_abund_map[541280000] = 1.9102;
10218  natural_abund_map[541290000] = 26.4006;
10219  natural_abund_map[541300000] = 4.0710;
10220  natural_abund_map[541310000] = 21.2324;
10221  natural_abund_map[541320000] = 26.9086;
10222  natural_abund_map[541340000] = 10.4357;
10223  natural_abund_map[541360000] = 8.8573;
10224  natural_abund_map[551330000] = 100.0;
10225  natural_abund_map[561300000] = 0.106;
10226  natural_abund_map[561320000] = 0.101;
10227  natural_abund_map[561340000] = 2.417;
10228  natural_abund_map[561350000] = 6.592;
10229  natural_abund_map[561360000] = 7.854;
10230  natural_abund_map[561370000] = 11.232;
10231  natural_abund_map[561380000] = 71.698;
10232  natural_abund_map[571380000] = 0.08881;
10233  natural_abund_map[571390000] = 99.91119;
10234  natural_abund_map[581360000] = 0.185;
10235  natural_abund_map[581380000] = 0.251;
10236  natural_abund_map[581400000] = 88.450;
10237  natural_abund_map[581420000] = 11.114;
10238  natural_abund_map[591410000] = 100.0;
10239  natural_abund_map[601420000] = 27.152;
10240  natural_abund_map[601430000] = 12.174;
10241  natural_abund_map[601440000] = 23.798;
10242  natural_abund_map[601450000] = 8.293;
10243  natural_abund_map[601460000] = 17.189;
10244  natural_abund_map[601480000] = 5.756;
10245  natural_abund_map[601500000] = 5.638;
10246  natural_abund_map[621440000] = 3.07;
10247  natural_abund_map[621470000] = 14.99;
10248  natural_abund_map[621480000] = 11.24;
10249  natural_abund_map[621490000] = 13.82;
10250  natural_abund_map[621500000] = 7.38;
10251  natural_abund_map[621520000] = 26.75;
10252  natural_abund_map[621540000] = 22.75;
10253  natural_abund_map[631510000] = 47.81;
10254  natural_abund_map[631530000] = 52.19;
10255  natural_abund_map[641520000] = 0.20;
10256  natural_abund_map[641540000] = 2.18;
10257  natural_abund_map[641550000] = 14.80;
10258  natural_abund_map[641560000] = 20.47;
10259  natural_abund_map[641570000] = 15.65;
10260  natural_abund_map[641580000] = 24.84;
10261  natural_abund_map[641600000] = 21.86;
10262  natural_abund_map[651590000] = 100.0;
10263  natural_abund_map[661560000] = 0.056;
10264  natural_abund_map[661580000] = 0.095;
10265  natural_abund_map[661600000] = 2.329;
10266  natural_abund_map[661610000] = 18.889;
10267  natural_abund_map[661620000] = 25.475;
10268  natural_abund_map[661630000] = 24.896;
10269  natural_abund_map[661640000] = 28.260;
10270  natural_abund_map[671650000] = 100.0;
10271  natural_abund_map[681620000] = 0.139;
10272  natural_abund_map[681640000] = 1.601;
10273  natural_abund_map[681660000] = 33.503;
10274  natural_abund_map[681670000] = 22.869;
10275  natural_abund_map[681680000] = 26.978;
10276  natural_abund_map[681700000] = 14.910;
10277  natural_abund_map[691690000] = 100.0;
10278  natural_abund_map[701680000] = 0.123;
10279  natural_abund_map[701700000] = 2.982;
10280  natural_abund_map[701710000] = 14.09;
10281  natural_abund_map[701720000] = 21.68;
10282  natural_abund_map[701730000] = 16.103;
10283  natural_abund_map[701740000] = 32.026;
10284  natural_abund_map[701760000] = 12.996;
10285  natural_abund_map[711750000] = 97.401;
10286  natural_abund_map[711760000] = 2.599;
10287  natural_abund_map[721740000] = 0.16;
10288  natural_abund_map[721760000] = 5.26;
10289  natural_abund_map[721770000] = 18.60;
10290  natural_abund_map[721780000] = 27.28;
10291  natural_abund_map[721790000] = 13.62;
10292  natural_abund_map[721800000] = 35.08;
10293  natural_abund_map[731800000] = 0.01201;
10294  natural_abund_map[731810000] = 99.98799;
10295  natural_abund_map[741800000] = 0.12;
10296  natural_abund_map[741820000] = 26.50;
10297  natural_abund_map[741830000] = 14.31;
10298  natural_abund_map[741840000] = 30.64;
10299  natural_abund_map[741860000] = 28.43;
10300  natural_abund_map[751850000] = 37.40;
10301  natural_abund_map[751870000] = 62.60;
10302  natural_abund_map[761840000] = 0.02;
10303  natural_abund_map[761860000] = 1.59;
10304  natural_abund_map[761870000] = 1.96;
10305  natural_abund_map[761880000] = 13.24;
10306  natural_abund_map[761890000] = 16.15;
10307  natural_abund_map[761900000] = 26.26;
10308  natural_abund_map[761920000] = 40.78;
10309  natural_abund_map[771910000] = 37.3;
10310  natural_abund_map[771930000] = 62.7;
10311  natural_abund_map[781900000] = 0.012;
10312  natural_abund_map[781920000] = 0.782;
10313  natural_abund_map[781940000] = 32.86;
10314  natural_abund_map[781950000] = 33.78;
10315  natural_abund_map[781960000] = 25.21;
10316  natural_abund_map[781980000] = 7.356;
10317  natural_abund_map[791970000] = 100.0;
10318  natural_abund_map[801960000] = 0.15;
10319  natural_abund_map[801980000] = 9.97;
10320  natural_abund_map[801990000] = 16.87;
10321  natural_abund_map[802000000] = 23.10;
10322  natural_abund_map[802010000] = 13.18;
10323  natural_abund_map[802020000] = 29.86;
10324  natural_abund_map[802040000] = 6.87;
10325  natural_abund_map[812030000] = 29.52;
10326  natural_abund_map[812050000] = 70.48;
10327  natural_abund_map[822040000] = 1.4;
10328  natural_abund_map[822060000] = 24.1;
10329  natural_abund_map[822070000] = 22.1;
10330  natural_abund_map[822080000] = 52.4;
10331  natural_abund_map[832090000] = 100.0;
10332  natural_abund_map[902320000] = 100.0;
10333  natural_abund_map[912310000] = 100.0;
10334  natural_abund_map[922340000] = 0.0054;
10335  natural_abund_map[922350000] = 0.7204;
10336  natural_abund_map[922380000] = 99.2742;
10337 }
10338 //
10339 // end of src/_atomic_data.cpp
10340 //
10341 
10342 
10343 //
10344 // start of src/data.cpp
10345 //
10346 // Implements basic nuclear data functions.
10347 #ifndef PYNE_IS_AMALGAMATED
10348 #include "data.h"
10349 #include "atomic_data.h"
10350 #endif
10351 
10352 //
10353 // Math Helpers
10354 //
10355 
10356 const double pyne::pi = 3.14159265359;
10357 const double pyne::N_A = 6.0221415e+23;
10358 const double pyne::barns_per_cm2 = 1e24;
10359 const double pyne::cm2_per_barn = 1e-24;
10360 const double pyne::sec_per_day = 24.0 * 3600.0;
10361 const double pyne::MeV_per_K = 8.617343e-11;
10362 const double pyne::MeV_per_MJ = 6.2415096471204E+18;
10363 const double pyne::Bq_per_Ci = 3.7e10;
10364 const double pyne::Ci_per_Bq = 2.7027027e-11;
10365 
10366 
10367 /********************************/
10368 /*** data_checksums Functions ***/
10369 /********************************/
10370 
10371 std::map<std::string, std::string> pyne::get_data_checksums() {
10372  std::map<std::string, std::string> temp_map;
10373  // Initialization of dataset hashes
10374  temp_map["/atomic_mass"]="10edfdc662e35bdfab91beb89285efff";
10375  temp_map["/material_library"]="8b10864378fbd88538434679acf908cc";
10376  temp_map["/neutron/eaf_xs"]="29622c636c4a3a46802207b934f9516c";
10377  temp_map["/neutron/scattering_lengths"]="a24d391cc9dc0fc146392740bb97ead4";
10378  temp_map["/neutron/simple_xs"]="3d6e086977783dcdf07e5c6b0c2416be";
10379  temp_map["/decay"]="4f41f3e46f4306cc44449f08a20922e0";
10380  temp_map["/dose_factors"]="dafa32c24b2303850a0bebdf3e6b122e";
10381  return temp_map;
10382 }
10383 
10384 std::map<std::string, std::string> pyne::data_checksums =
10386 
10387 /*****************************/
10388 /*** atomic_mass Functions ***/
10389 /*****************************/
10390 std::map<int, double> pyne::atomic_mass_map = std::map<int, double>();
10391 
10393  // Loads the important parts of atomic_wight table into atomic_mass_map
10394 
10395  //Check to see if the file is in HDF5 format.
10398  return;
10399  }
10400 
10401  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
10402  if (!ish5)
10404 
10405  // Get the HDF5 compound type (table) description
10406  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(atomic_mass_data));
10407  H5Tinsert(desc, "nuc", HOFFSET(atomic_mass_data, nuc), H5T_NATIVE_INT);
10408  H5Tinsert(desc, "mass", HOFFSET(atomic_mass_data, mass), H5T_NATIVE_DOUBLE);
10409  H5Tinsert(desc, "error", HOFFSET(atomic_mass_data, error), H5T_NATIVE_DOUBLE);
10410  H5Tinsert(desc, "abund", HOFFSET(atomic_mass_data, abund), H5T_NATIVE_DOUBLE);
10411 
10412  // Open the HDF5 file
10413  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
10414 
10415  // Open the data set
10416  hid_t atomic_mass_set = H5Dopen2(nuc_data_h5, "/atomic_mass", H5P_DEFAULT);
10417  hid_t atomic_mass_space = H5Dget_space(atomic_mass_set);
10418  int atomic_mass_length = H5Sget_simple_extent_npoints(atomic_mass_space);
10419 
10420  // Read in the data
10421  atomic_mass_data * atomic_mass_array = new atomic_mass_data[atomic_mass_length];
10422  H5Dread(atomic_mass_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, atomic_mass_array);
10423 
10424  // close the nuc_data library, before doing anything stupid
10425  H5Dclose(atomic_mass_set);
10426  H5Fclose(nuc_data_h5);
10427 
10428  // Ok now that we have the array of structs, put it in the map
10429  for(int n = 0; n < atomic_mass_length; n++) {
10430  atomic_mass_map.insert(std::pair<int, double>(atomic_mass_array[n].nuc, \
10431  atomic_mass_array[n].mass));
10432  natural_abund_map.insert(std::pair<int, double>(atomic_mass_array[n].nuc, \
10433  atomic_mass_array[n].abund));
10434  }
10435 
10436  delete[] atomic_mass_array;
10437 }
10438 
10439 
10440 double pyne::atomic_mass(int nuc) {
10441  // Find the nuclide's mass in AMU
10442  std::map<int, double>::iterator nuc_iter, nuc_end;
10443 
10444  nuc_iter = atomic_mass_map.find(nuc);
10445  nuc_end = atomic_mass_map.end();
10446 
10447  // First check if we already have the nuc mass in the map
10448  if (nuc_iter != nuc_end) {
10449  return (*nuc_iter).second;
10450  }
10451 
10452  // Next, fill up the map with values from the
10453  // nuc_data.h5, if the map is empty.
10454  if (atomic_mass_map.empty()) {
10455  // Don't fail if we can't load the library
10457  return atomic_mass(nuc);
10458  }
10459 
10460  double aw;
10461  int nucid = nucname::id(nuc);
10462 
10463  // If in an excited state, return the ground
10464  // state mass...not strictly true, but good guess.
10465  if (0 < nucid%10000) {
10466  aw = atomic_mass((nucid/10000)*10000);
10467  if (atomic_mass_map.count(nuc) != 1) {
10468  atomic_mass_map.insert(std::pair<int, double>(nuc, aw));
10469  }
10470  return aw;
10471  };
10472 
10473  // Finally, if none of these work,
10474  // take a best guess based on the
10475  // aaa number.
10476  aw = (double) ((nucid/10000)%1000);
10477  if (atomic_mass_map.count(nuc) != 1) {
10478  atomic_mass_map.insert(std::pair<int, double>(nuc, aw));
10479  }
10480  return aw;
10481 }
10482 
10483 
10484 double pyne::atomic_mass(char * nuc) {
10485  int nuc_zz = nucname::id(nuc);
10486  return atomic_mass(nuc_zz);
10487 }
10488 
10489 
10491  int nuc_zz = nucname::id(nuc);
10492  return atomic_mass(nuc_zz);
10493 }
10494 
10495 
10496 /*******************************/
10497 /*** natural_abund functions ***/
10498 /*******************************/
10499 
10500 std::map<int, double> pyne::natural_abund_map = std::map<int, double>();
10501 
10502 double pyne::natural_abund(int nuc) {
10503  // Find the nuclide's natural abundance
10504  std::map<int, double>::iterator nuc_iter, nuc_end;
10505 
10506  nuc_iter = natural_abund_map.find(nuc);
10507  nuc_end = natural_abund_map.end();
10508 
10509  // First check if we already have the nuc mass in the map
10510  if (nuc_iter != nuc_end)
10511  return (*nuc_iter).second;
10512 
10513  // Next, fill up the map with values from the
10514  // nuc_data.h5, if the map is empty.
10515  if (natural_abund_map.empty()) {
10516  // Don't fail if we can't load the library
10518  return natural_abund(nuc);
10519  }
10520 
10521  double na;
10522  int nucid = nucname::id(nuc);
10523 
10524  // If in an excited state, return the ground
10525  // state abundance...not strictly true, but good guess.
10526  if (0 < nucid%10000) {
10527  na = natural_abund((nucid/10000)*10000);
10528  natural_abund_map[nuc] = na;
10529  return na;
10530  }
10531 
10532  // Finally, if none of these work,
10533  // take a best guess based on the
10534  // aaa number.
10535  na = 0.0;
10536  natural_abund_map[nuc] = na;
10537  return na;
10538 }
10539 
10540 
10541 double pyne::natural_abund(char * nuc) {
10542  int nuc_zz = nucname::id(nuc);
10543  return natural_abund(nuc_zz);
10544 }
10545 
10546 
10548  int nuc_zz = nucname::id(nuc);
10549  return natural_abund(nuc_zz);
10550 }
10551 
10552 
10553 
10554 /*************************/
10555 /*** Q_value Functions ***/
10556 /*************************/
10557 
10559  // Loads the important parts of q_value table into q_value_map
10560 
10561  //Check to see if the file is in HDF5 format.
10564 
10565  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
10566  if (!ish5)
10568 
10569  // Get the HDF5 compound type (table) description
10570  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(q_val_data));
10571  H5Tinsert(desc, "nuc", HOFFSET(q_val_data, nuc), H5T_NATIVE_INT);
10572  H5Tinsert(desc, "q_val", HOFFSET(q_val_data, q_val), H5T_NATIVE_DOUBLE);
10573  H5Tinsert(desc, "gamma_frac", HOFFSET(q_val_data, gamma_frac), H5T_NATIVE_DOUBLE);
10574 
10575  // Open the HDF5 file
10576  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
10577 
10578  // Open the data set
10579  hid_t q_val_set = H5Dopen2(nuc_data_h5, "/decay/q_values", H5P_DEFAULT);
10580  hid_t q_val_space = H5Dget_space(q_val_set);
10581  int q_val_length = H5Sget_simple_extent_npoints(q_val_space);
10582 
10583  // Read in the data
10584  q_val_data * q_val_array = new q_val_data[q_val_length];
10585  H5Dread(q_val_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, q_val_array);
10586 
10587  // close the nuc_data library, before doing anything stupid
10588  H5Dclose(q_val_set);
10589  H5Fclose(nuc_data_h5);
10590 
10591  // Ok now that we have the array of structs, put it in the map
10592  for(int n = 0; n < q_val_length; n++) {
10593  q_val_map[q_val_array[n].nuc] = q_val_array[n].q_val;
10594  gamma_frac_map[q_val_array[n].nuc] = q_val_array[n].gamma_frac;
10595  }
10596 
10597  delete[] q_val_array;
10598 }
10599 
10600 std::map<int, double> pyne::q_val_map = std::map<int, double>();
10601 
10602 double pyne::q_val(int nuc) {
10603  // Find the nuclide's q_val in MeV/fission
10604  std::map<int, double>::iterator nuc_iter, nuc_end;
10605 
10606  nuc_iter = q_val_map.find(nuc);
10607  nuc_end = q_val_map.end();
10608 
10609  // First check if we already have the nuc q_val in the map
10610  if (nuc_iter != nuc_end)
10611  return (*nuc_iter).second;
10612 
10613  // Next, fill up the map with values from the nuc_data.h5 if the map is empty.
10614  if (q_val_map.empty()) {
10615  _load_q_val_map();
10616  return q_val(nuc);
10617  };
10618 
10619  double qv;
10620  int nucid = nucname::id(nuc);
10621  if (nucid != nuc)
10622  return q_val(nucid);
10623 
10624  // If nuclide is not found, return 0
10625  qv = 0.0;
10626  q_val_map[nuc] = qv;
10627  return qv;
10628 }
10629 
10630 
10631 double pyne::q_val(const char * nuc) {
10632  int nuc_zz = nucname::id(nuc);
10633  return q_val(nuc_zz);
10634 }
10635 
10636 
10638  int nuc_zz = nucname::id(nuc);
10639  return q_val(nuc_zz);
10640 }
10641 
10642 
10643 /****************************/
10644 /*** gamma_frac functions ***/
10645 /****************************/
10646 
10647 std::map<int, double> pyne::gamma_frac_map = std::map<int, double>();
10648 
10649 double pyne::gamma_frac(int nuc) {
10650  // Find the nuclide's fraction of Q that comes from gammas
10651  std::map<int, double>::iterator nuc_iter, nuc_end;
10652 
10653  nuc_iter = gamma_frac_map.find(nuc);
10654  nuc_end = gamma_frac_map.end();
10655 
10656  // First check if we already have the gamma_frac in the map
10657  if (nuc_iter != nuc_end)
10658  return (*nuc_iter).second;
10659 
10660  // Next, fill up the map with values from nuc_data.h5 if the map is empty.
10661  if (gamma_frac_map.empty()) {
10662  _load_q_val_map();
10663  return gamma_frac(nuc);
10664  }
10665 
10666  double gf;
10667  int nucid = nucname::id(nuc);
10668  if (nucid != nuc)
10669  return gamma_frac(nucid);
10670 
10671  // If nuclide is not found, return 0
10672  gf = 0.0;
10673  gamma_frac_map[nucid] = gf;
10674  return gf;
10675 }
10676 
10677 
10678 double pyne::gamma_frac(const char * nuc) {
10679  int nuc_zz = nucname::id(nuc);
10680  return gamma_frac(nuc_zz);
10681 }
10682 
10683 
10685  int nuc_zz = nucname::id(nuc);
10686  return gamma_frac(nuc_zz);
10687 }
10688 
10689 
10690 /*****************************/
10691 /*** Dose Factor Functions ***/
10692 /*****************************/
10693 /***************************************************************************
10694 This data is from: [Exposure Scenarios and Unit Dose Factors for the Hanford
10695 Immobilized Low-Activity Tank Waste Performance Assessment, ref.
10696 HNF-SD-WM-TI-707 Rev. 1 December 1999] Appendix O of HNF-5636 [DATA PACKAGES
10697 FOR THE HANFORD IMMOBILIZED LOW-ACTIVITY TANK WASTE PERFORMANCE ASSESSMENT:
10698 2001 VERSION]
10699 
10700 Liability Disclaimer: The PyNE Development Team shall not be liable for any
10701 loss or injury resulting from decisions made with this data.
10702 **************************************************************************/
10703 
10704 void pyne::_load_dose_map(std::map<int, dose>& dm, std::string source_path) {
10705  herr_t status;
10706 
10707  //Check to see if the file is in HDF5 format.
10710 
10711  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
10712  if (!ish5)
10714 
10715  // Defining string type for lung model data
10716  hid_t string_type_;
10717  string_type_ = H5Tcopy(H5T_C_S1);
10718  H5Tset_size(string_type_, 1);
10719  H5Tset_strpad(string_type_, H5T_STR_NULLPAD);
10720 
10721  // Get the HDF5 compound type (table) description
10722  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(dose));
10723  status = H5Tinsert(desc, "nuc", HOFFSET(dose, nuc), H5T_NATIVE_INT);
10724  status = H5Tinsert(desc, "ext_air_dose", HOFFSET(dose, ext_air_dose), H5T_NATIVE_DOUBLE);
10725  status = H5Tinsert(desc, "ratio", HOFFSET(dose, ratio), H5T_NATIVE_DOUBLE);
10726  status = H5Tinsert(desc, "ext_soil_dose", HOFFSET(dose, ext_soil_dose), H5T_NATIVE_DOUBLE);
10727  status = H5Tinsert(desc, "ingest_dose", HOFFSET(dose, ingest_dose), H5T_NATIVE_DOUBLE);
10728  status = H5Tinsert(desc, "fluid_frac", HOFFSET(dose, fluid_frac), H5T_NATIVE_DOUBLE);
10729  status = H5Tinsert(desc, "inhale_dose", HOFFSET(dose, inhale_dose), H5T_NATIVE_DOUBLE);
10730  status = H5Tinsert(desc, "lung_mod", HOFFSET(dose, lung_mod), string_type_);
10731 
10732  // Open the HDF5 file
10733  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
10734 
10735  // Convert source_path to proper format for HD5open
10736  const char * c = source_path.c_str();
10737 
10738  // Open the data set
10739  hid_t dose_set = H5Dopen2(nuc_data_h5, c, H5P_DEFAULT);
10740  hid_t dose_space = H5Dget_space(dose_set);
10741  int dose_length = H5Sget_simple_extent_npoints(dose_space);
10742 
10743  // Read in the data
10744  dose * dose_array = new dose[dose_length];
10745  H5Dread(dose_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, dose_array);
10746 
10747  // Put array of structs in the map
10748  for (int n = 0; n < dose_length; n++) {
10749  dm[dose_array[n].nuc] = dose_array[n];
10750  }
10751 
10752  // Close the nuc_data library
10753  H5Dclose(dose_set);
10754  H5Tclose(string_type_);
10755  H5Fclose(nuc_data_h5);
10756 
10757  delete[] dose_array;
10758 }
10759 
10760 ///
10761 /// Functions for Source Location in nuc_data.h5
10762 /// and related Map Pointers
10763 ///
10764 
10766  std::string source_location;
10767  if (source == 1) {
10768  source_location = "/dose_factors/DOE";
10769  } else if (source == 2) {
10770  source_location = "/dose_factors/GENII";
10771  } else {
10772  source_location = "/dose_factors/EPA";
10773  }
10774  return source_location;
10775 }
10776 
10777 std::map<int, pyne::dose>& dose_source_map(int source) {
10778  std::map<int, pyne::dose>* dm;
10779  if (source == 1) {
10780  dm = &pyne::doe_dose_map;
10781  } else if (source == 2) {
10782  dm = &pyne::genii_dose_map;
10783  } else {
10784  dm = &pyne::epa_dose_map;
10785  }
10786  if (dm->empty()) {
10787  std::string source_path = source_string(source);
10788  _load_dose_map(*dm, source_path);
10789  }
10790  return *dm;
10791 }
10792 
10793 std::map<int, pyne::dose> pyne::epa_dose_map;
10794 std::map<int, pyne::dose> pyne::doe_dose_map;
10795 std::map<int, pyne::dose> pyne::genii_dose_map;
10796 
10797 ///
10798 /// Functions for External Air and
10799 /// Ratio of External Air to Inhalation Dose Factors
10800 ///
10801 
10802 /// External Air
10803 double pyne::ext_air_dose(int nuc, int source) {
10804  std::map<int, pyne::dose>& dm = dose_source_map(source);
10805  int nucid = nucname::id(nuc);
10806 
10807  if (dm.count(nucid)==1) {
10808  return dm[nucid].ext_air_dose;
10809  } else {
10810  return -1;
10811  }
10812 }
10813 
10814 double pyne::ext_air_dose(const char * nuc, int source) {
10815  int nuc_zz = nucname::id(nuc);
10816  return ext_air_dose(nuc_zz, source);
10817 }
10818 
10819 
10820 double pyne::ext_air_dose(std::string nuc, int source) {
10821  int nuc_zz = nucname::id(nuc);
10822  return ext_air_dose(nuc_zz, source);
10823 }
10824 
10825 /// Dose Ratio
10826 double pyne::dose_ratio(int nuc, int source) {
10827  std::map<int, pyne::dose>& dm = dose_source_map(source);
10828  int nucid = nucname::id(nuc);
10829 
10830  if (dm.count(nucid)==1) {
10831  return dm[nucid].ratio;
10832  } else {
10833  return -1;
10834  }
10835 }
10836 
10837 double pyne::dose_ratio(const char * nuc, int source) {
10838  int nuc_zz = nucname::id(nuc);
10839  return dose_ratio(nuc_zz, source);
10840 }
10841 
10842 
10843 double pyne::dose_ratio(std::string nuc, int source) {
10844  int nuc_zz = nucname::id(nuc);
10845  return dose_ratio(nuc_zz, source);
10846 }
10847 
10848 ///
10849 /// Function for External Soil Dose Factors
10850 ///
10851 
10852 double pyne::ext_soil_dose(int nuc, int source) {
10853  std::map<int, pyne::dose>& dm = dose_source_map(source);
10854  int nucid = nucname::id(nuc);
10855 
10856  if (dm.count(nucid)==1) {
10857  return dm[nucid].ext_soil_dose;
10858  } else {
10859  return -1;
10860  }
10861 }
10862 
10863 double pyne::ext_soil_dose(const char * nuc, int source) {
10864  int nuc_zz = nucname::id(nuc);
10865  return ext_soil_dose(nuc_zz, source);
10866 }
10867 
10868 
10869 double pyne::ext_soil_dose(std::string nuc, int source) {
10870  int nuc_zz = nucname::id(nuc);
10871  return ext_soil_dose(nuc_zz, source);
10872 }
10873 
10874 ///
10875 /// Functions for Ingestion Dose Factors and
10876 /// Fraction of activity that is absorbed by body fluids
10877 ///
10878 
10879 /// Ingestion
10880 double pyne::ingest_dose(int nuc, int source) {
10881  std::map<int, pyne::dose>& dm = dose_source_map(source);
10882  int nucid = nucname::id(nuc);
10883 
10884  if (dm.count(nucid)==1) {
10885  return dm[nucid].ingest_dose;
10886  } else {
10887  return -1;
10888  }
10889 }
10890 
10891 double pyne::ingest_dose(const char * nuc, int source) {
10892  int nuc_zz = nucname::id(nuc);
10893  return ingest_dose(nuc_zz, source);
10894 }
10895 
10896 double pyne::ingest_dose(std::string nuc, int source) {
10897  int nuc_zz = nucname::id(nuc);
10898  return ingest_dose(nuc_zz, source);
10899 }
10900 
10901 /// Fluid Fraction
10902 double pyne::dose_fluid_frac(int nuc, int source) {
10903  std::map<int, pyne::dose>& dm = dose_source_map(source);
10904  int nucid = nucname::id(nuc);
10905 
10906  if (dm.count(nucid)==1) {
10907  return dm[nucid].fluid_frac;
10908  } else {
10909  return -1;
10910  }
10911 }
10912 
10913 double pyne::dose_fluid_frac(const char * nuc, int source) {
10914  int nuc_zz = nucname::id(nuc);
10915  return dose_fluid_frac(nuc_zz, source);
10916 }
10917 
10918 double pyne::dose_fluid_frac(std::string nuc, int source) {
10919  int nuc_zz = nucname::id(nuc);
10920  return dose_fluid_frac(nuc_zz, source);
10921 }
10922 
10923 ///
10924 /// Functions for Inhalation Dose Factors and
10925 /// Lung Model used to obtain dose factors
10926 ///
10927 
10928 /// Inhalation
10929 double pyne::inhale_dose(int nuc, int source) {
10930  std::map<int, pyne::dose>& dm = dose_source_map(source);
10931  int nucid = nucname::id(nuc);
10932 
10933  if (dm.count(nucid)==1) {
10934  return dm[nucid].inhale_dose;
10935  } else {
10936  return -1;
10937  }
10938 }
10939 
10940 double pyne::inhale_dose(const char * nuc, int source) {
10941  int nuc_zz = nucname::id(nuc);
10942  return inhale_dose(nuc_zz, source);
10943 }
10944 
10945 double pyne::inhale_dose(std::string nuc, int source) {
10946  int nuc_zz = nucname::id(nuc);
10947  return inhale_dose(nuc_zz, source);
10948 }
10949 
10950 /// Lung Model
10951 std::string pyne::dose_lung_model(int nuc, int source) {
10952  std::map<int, pyne::dose>& dm = dose_source_map(source);
10953  int nucid = nucname::id(nuc);
10954 
10955  if (dm.count(nucid)==1) {
10956  return std::string(1, dm[nucid].lung_mod);
10957  } else {
10958  return "Nada";
10959  }
10960 }
10961 
10962 std::string pyne::dose_lung_model(const char * nuc, int source) {
10963  int nuc_zz = nucname::id(nuc);
10964  return dose_lung_model(nuc_zz, source);
10965 }
10966 
10967 
10969  int nuc_zz = nucname::id(nuc);
10970  return dose_lung_model(nuc_zz, source);
10971 }
10972 
10973 
10974 /***********************************/
10975 /*** scattering length functions ***/
10976 /***********************************/
10977 std::map<int, xd_complex_t> pyne::b_coherent_map = std::map<int, xd_complex_t>();
10978 std::map<int, xd_complex_t> pyne::b_incoherent_map = std::map<int, xd_complex_t>();
10979 std::map<int, double> pyne::b_map = std::map<int, double>();
10980 
10981 
10983  // Loads the important parts of atomic_wight table into atomic_mass_map
10984  herr_t status;
10985 
10986  //Check to see if the file is in HDF5 format.
10989 
10990  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
10991  if (!ish5)
10993 
10994  // Get the HDF5 compound type (table) description
10995  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(scattering_lengths));
10996  status = H5Tinsert(desc, "nuc", HOFFSET(scattering_lengths, nuc), H5T_NATIVE_INT);
10997  status = H5Tinsert(desc, "b_coherent", HOFFSET(scattering_lengths, b_coherent),
10999  status = H5Tinsert(desc, "b_incoherent", HOFFSET(scattering_lengths, b_incoherent),
11001  status = H5Tinsert(desc, "xs_coherent", HOFFSET(scattering_lengths, xs_coherent),
11002  H5T_NATIVE_DOUBLE);
11003  status = H5Tinsert(desc, "xs_incoherent", HOFFSET(scattering_lengths, xs_incoherent),
11004  H5T_NATIVE_DOUBLE);
11005  status = H5Tinsert(desc, "xs", HOFFSET(scattering_lengths, xs), H5T_NATIVE_DOUBLE);
11006 
11007  // Open the HDF5 file
11008  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
11009 
11010  // Open the data set
11011  hid_t scat_len_set = H5Dopen2(nuc_data_h5, "/neutron/scattering_lengths", H5P_DEFAULT);
11012  hid_t scat_len_space = H5Dget_space(scat_len_set);
11013  int scat_len_length = H5Sget_simple_extent_npoints(scat_len_space);
11014 
11015  // Read in the data
11016  scattering_lengths * scat_len_array = new scattering_lengths[scat_len_length];
11017  status = H5Dread(scat_len_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, scat_len_array);
11018 
11019  // close the nuc_data library, before doing anything stupid
11020  status = H5Dclose(scat_len_set);
11021  status = H5Fclose(nuc_data_h5);
11022 
11023  // Ok now that we have the array of stucts, put it in the maps
11024  for(int n = 0; n < scat_len_length; n++) {
11025  b_coherent_map[scat_len_array[n].nuc] = scat_len_array[n].b_coherent;
11026  b_incoherent_map[scat_len_array[n].nuc] = scat_len_array[n].b_incoherent;
11027  }
11028 
11029  delete[] scat_len_array;
11030 }
11031 
11032 
11033 
11034 //
11035 // Coherent functions
11036 //
11037 
11038 
11040  // Find the nuclide's bound scattering length in cm
11041  std::map<int, xd_complex_t>::iterator nuc_iter, nuc_end;
11042 
11043  nuc_iter = b_coherent_map.find(nuc);
11044  nuc_end = b_coherent_map.end();
11045 
11046  // First check if we already have the nuc in the map
11047  if (nuc_iter != nuc_end)
11048  return (*nuc_iter).second;
11049 
11050  // Next, fill up the map with values from the
11051  // nuc_data.h5, if the map is empty.
11052  if (b_coherent_map.empty()) {
11054  return b_coherent(nuc);
11055  }
11056 
11057  xd_complex_t bc;
11058  int nucid = nucname::id(nuc);
11059  int znum = nucname::znum(nucid);
11060  int anum = nucname::anum(nucid);
11061 
11062  // Try to find a nuclide with matching A-number
11063  nuc_iter = b_coherent_map.begin();
11064  while (nuc_iter != nuc_end) {
11065  if (anum == nucname::anum((*nuc_iter).first)) {
11066  bc = (*nuc_iter).second;
11067  b_coherent_map[nuc] = bc;
11068  return bc;
11069  }
11070  nuc_iter++;
11071  }
11072 
11073  // Try to find a nuclide with matching Z-number
11074  nuc_iter = b_coherent_map.begin();
11075  while (nuc_iter != nuc_end) {
11076  if (znum == nucname::znum((*nuc_iter).first)) {
11077  bc = (*nuc_iter).second;
11078  b_coherent_map[nuc] = bc;
11079  return bc;
11080  }
11081  nuc_iter++;
11082  }
11083 
11084  // Finally, if none of these work,
11085  // just return zero...
11086  bc.re = 0.0;
11087  bc.im = 0.0;
11088  b_coherent_map[nuc] = bc;
11089  return bc;
11090 }
11091 
11092 
11094  int nuc_zz = nucname::id(nuc);
11095  return b_coherent(nuc_zz);
11096 }
11097 
11098 
11100  int nuc_zz = nucname::id(nuc);
11101  return b_coherent(nuc_zz);
11102 }
11103 
11104 
11105 
11106 //
11107 // Incoherent functions
11108 //
11109 
11110 
11112  // Find the nuclide's bound inchoherent scattering length in cm
11113  std::map<int, xd_complex_t>::iterator nuc_iter, nuc_end;
11114 
11115  nuc_iter = b_incoherent_map.find(nuc);
11116  nuc_end = b_incoherent_map.end();
11117 
11118  // First check if we already have the nuc in the map
11119  if (nuc_iter != nuc_end)
11120  return (*nuc_iter).second;
11121 
11122  // Next, fill up the map with values from the
11123  // nuc_data.h5, if the map is empty.
11124  if (b_incoherent_map.empty()) {
11126  return b_incoherent(nuc);
11127  }
11128 
11129  xd_complex_t bi;
11130  int nucid = nucname::id(nuc);
11131  int znum = nucname::znum(nucid);
11132  int anum = nucname::anum(nucid);
11133 
11134  // Try to find a nuclide with matching A-number
11135  nuc_iter = b_incoherent_map.begin();
11136  while (nuc_iter != nuc_end) {
11137  if (anum == nucname::anum((*nuc_iter).first)) {
11138  bi = (*nuc_iter).second;
11139  b_incoherent_map[nuc] = bi;
11140  return bi;
11141  }
11142  nuc_iter++;
11143  }
11144 
11145  // Try to find a nuclide with matching Z-number
11146  nuc_iter = b_incoherent_map.begin();
11147  while (nuc_iter != nuc_end) {
11148  if (znum == nucname::znum((*nuc_iter).first)) {
11149  bi = (*nuc_iter).second;
11150  b_incoherent_map[nuc] = bi;
11151  return bi;
11152  }
11153  nuc_iter++;
11154  }
11155 
11156  // Finally, if none of these work,
11157  // just return zero...
11158  bi.re = 0.0;
11159  bi.im = 0.0;
11160  b_incoherent_map[nuc] = bi;
11161  return bi;
11162 }
11163 
11164 
11166  return b_incoherent(nucname::id(nuc));
11167 }
11168 
11169 
11171  return b_incoherent(nucname::id(nuc));
11172 }
11173 
11174 
11175 
11176 //
11177 // b functions
11178 //
11179 
11180 double pyne::b(int nuc) {
11181  // Find the nuclide's bound scattering length in cm
11182  std::map<int, double>::iterator nuc_iter, nuc_end;
11183 
11184  nuc_iter = b_map.find(nuc);
11185  nuc_end = b_map.end();
11186 
11187  // First check if we already have the nuc in the map
11188  if (nuc_iter != nuc_end)
11189  return (*nuc_iter).second;
11190 
11191  // Next, calculate the value from coherent and incoherent lengths
11192  xd_complex_t bc = b_coherent(nuc);
11193  xd_complex_t bi = b_incoherent(nuc);
11194 
11195  double b_val = sqrt(bc.re*bc.re + bc.im*bc.im + bi.re*bi.re + bi.im*bi.im);
11196 
11197  return b_val;
11198 }
11199 
11200 
11201 double pyne::b(char * nuc) {
11202  int nucid = nucname::id(nuc);
11203  return b(nucid);
11204 }
11205 
11206 
11207 double pyne::b(std::string nuc) {
11208  int nucid = nucname::id(nuc);
11209  return b(nucid);
11210 }
11211 
11212 
11213 
11214 //
11215 // Fission Product Yield Data
11216 //
11217 std::map<std::pair<int, int>, double> pyne::wimsdfpy_data = \
11218  std::map<std::pair<int, int>, double>();
11219 
11221  herr_t status;
11222 
11223  //Check to see if the file is in HDF5 format.
11226 
11227  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
11228  if (!ish5)
11230 
11231  // Get the HDF5 compound type (table) description
11232  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(wimsdfpy));
11233  status = H5Tinsert(desc, "from_nuc", HOFFSET(wimsdfpy, from_nuc),
11234  H5T_NATIVE_INT);
11235  status = H5Tinsert(desc, "to_nuc", HOFFSET(wimsdfpy, to_nuc),
11236  H5T_NATIVE_INT);
11237  status = H5Tinsert(desc, "yields", HOFFSET(wimsdfpy, yields),
11238  H5T_NATIVE_DOUBLE);
11239 
11240  // Open the HDF5 file
11241  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
11242  H5P_DEFAULT);
11243 
11244  // Open the data set
11245  hid_t wimsdfpy_set = H5Dopen2(nuc_data_h5, "/neutron/wimsd_fission_products",
11246  H5P_DEFAULT);
11247  hid_t wimsdfpy_space = H5Dget_space(wimsdfpy_set);
11248  int wimsdfpy_length = H5Sget_simple_extent_npoints(wimsdfpy_space);
11249 
11250  // Read in the data
11251  wimsdfpy * wimsdfpy_array = new wimsdfpy[wimsdfpy_length];
11252  status = H5Dread(wimsdfpy_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, wimsdfpy_array);
11253 
11254  // close the nuc_data library, before doing anything stupid
11255  status = H5Dclose(wimsdfpy_set);
11256  status = H5Fclose(nuc_data_h5);
11257 
11258  // Ok now that we have the array of stucts, put it in the maps
11259  for(int n=0; n < wimsdfpy_length; n++) {
11260  wimsdfpy_data[std::make_pair(wimsdfpy_array[n].from_nuc,
11261  wimsdfpy_array[n].to_nuc)] = wimsdfpy_array[n].yields;
11262  }
11263 
11264  delete[] wimsdfpy_array;
11265 }
11266 
11267 
11268 std::map<std::pair<int, int>, pyne::ndsfpysub> pyne::ndsfpy_data = \
11269  std::map<std::pair<int, int>, pyne::ndsfpysub>();
11270 
11272  herr_t status;
11273 
11274  //Check to see if the file is in HDF5 format.
11277 
11278  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
11279  if (!ish5)
11281 
11282  // Get the HDF5 compound type (table) description
11283  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(ndsfpy));
11284  status = H5Tinsert(desc, "from_nuc", HOFFSET(ndsfpy, from_nuc),
11285  H5T_NATIVE_INT);
11286  status = H5Tinsert(desc, "to_nuc", HOFFSET(ndsfpy, to_nuc),
11287  H5T_NATIVE_INT);
11288  status = H5Tinsert(desc, "yield_thermal", HOFFSET(ndsfpy, yield_thermal),
11289  H5T_NATIVE_DOUBLE);
11290  status = H5Tinsert(desc, "yield_thermal_err", HOFFSET(ndsfpy, yield_thermal_err),
11291  H5T_NATIVE_DOUBLE);
11292  status = H5Tinsert(desc, "yield_fast", HOFFSET(ndsfpy, yield_fast),
11293  H5T_NATIVE_DOUBLE);
11294  status = H5Tinsert(desc, "yield_fast_err", HOFFSET(ndsfpy, yield_fast_err),
11295  H5T_NATIVE_DOUBLE);
11296  status = H5Tinsert(desc, "yield_14MeV", HOFFSET(ndsfpy, yield_14MeV),
11297  H5T_NATIVE_DOUBLE);
11298  status = H5Tinsert(desc, "yield_14MeV_err", HOFFSET(ndsfpy, yield_14MeV_err),
11299  H5T_NATIVE_DOUBLE);
11300 
11301  // Open the HDF5 file
11302  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
11303  H5P_DEFAULT);
11304 
11305  // Open the data set
11306  hid_t ndsfpy_set = H5Dopen2(nuc_data_h5, "/neutron/nds_fission_products",
11307  H5P_DEFAULT);
11308  hid_t ndsfpy_space = H5Dget_space(ndsfpy_set);
11309  int ndsfpy_length = H5Sget_simple_extent_npoints(ndsfpy_space);
11310 
11311  // Read in the data
11312  ndsfpy * ndsfpy_array = new ndsfpy[ndsfpy_length];
11313  status = H5Dread(ndsfpy_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, ndsfpy_array);
11314 
11315  // close the nuc_data library, before doing anything stupid
11316  status = H5Dclose(ndsfpy_set);
11317  status = H5Fclose(nuc_data_h5);
11318 
11319  ndsfpysub ndsfpysub_temp;
11320 
11321  // Ok now that we have the array of structs, put it in the maps
11322  for(int n=0; n < ndsfpy_length; n++) {
11323  ndsfpysub_temp.yield_thermal = ndsfpy_array[n].yield_thermal;
11324  ndsfpysub_temp.yield_thermal_err = ndsfpy_array[n].yield_thermal_err;
11325  ndsfpysub_temp.yield_fast = ndsfpy_array[n].yield_fast;
11326  ndsfpysub_temp.yield_fast_err = ndsfpy_array[n].yield_fast_err;
11327  ndsfpysub_temp.yield_14MeV = ndsfpy_array[n].yield_14MeV;
11328  ndsfpysub_temp.yield_14MeV_err = ndsfpy_array[n].yield_14MeV_err;
11329  ndsfpy_data[std::make_pair(ndsfpy_array[n].from_nuc,
11330  ndsfpy_array[n].to_nuc)] = ndsfpysub_temp;
11331  }
11332 
11333 
11334 
11335  delete[] ndsfpy_array;
11336 }
11337 
11338 double pyne::fpyield(std::pair<int, int> from_to, int source, bool get_error) {
11339  // Note that this may be expanded eventually to include other
11340  // sources of fission product data.
11341 
11342  // Find the parent/child pair branch ratio as a fraction
11343  if (source == 0) {
11344  std::map<std::pair<int, int>, double>::iterator fpy_iter, fpy_end;
11345  fpy_iter = wimsdfpy_data.find(from_to);
11346  fpy_end = wimsdfpy_data.end();
11347  if (fpy_iter != fpy_end)
11348  //if (get_error == true) return 0;
11349  return (*fpy_iter).second;
11350  } else {
11351  std::map<std::pair<int, int>, ndsfpysub>::iterator fpy_iter, fpy_end;
11352  fpy_iter = ndsfpy_data.find(from_to);
11353  fpy_end = ndsfpy_data.end();
11354  if (fpy_iter != fpy_end) {
11355  switch (source) {
11356  case 1:
11357  if (get_error)
11358  return (*fpy_iter).second.yield_thermal_err;
11359  return (*fpy_iter).second.yield_thermal;
11360  break;
11361  case 2:
11362  if (get_error)
11363  return (*fpy_iter).second.yield_fast_err;
11364  return (*fpy_iter).second.yield_fast;
11365  break;
11366  case 3:
11367  if (get_error)
11368  return (*fpy_iter).second.yield_14MeV_err;
11369  return (*fpy_iter).second.yield_14MeV;
11370  break;
11371  }
11372  }
11373  }
11374 
11375 
11376  // Next, fill up the map with values from the
11377  // nuc_data.h5, if the map is empty.
11378  if ((source == 0 ) && (wimsdfpy_data.empty())) {
11379  _load_wimsdfpy();
11380  return fpyield(from_to, 0, get_error);
11381  }else if (ndsfpy_data.empty()) {
11382  _load_ndsfpy();
11383  return fpyield(from_to, source, get_error);
11384  }
11385 
11386  // Finally, if none of these work,
11387  // assume the value is stable
11388  double fpy = 0.0;
11389  wimsdfpy_data[from_to] = fpy;
11390  return fpy;
11391 }
11392 
11393 double pyne::fpyield(int from_nuc, int to_nuc, int source, bool get_error) {
11394  return fpyield(std::pair<int, int>(nucname::id(from_nuc),
11395  nucname::id(to_nuc)), source, get_error);
11396 }
11397 
11398 double pyne::fpyield(char * from_nuc, char * to_nuc, int source, bool get_error) {
11399  return fpyield(std::pair<int, int>(nucname::id(from_nuc),
11400  nucname::id(to_nuc)), source, get_error);
11401 }
11402 
11403 double pyne::fpyield(std::string from_nuc, std::string to_nuc, int source,
11404  bool get_error) {
11405  return fpyield(std::pair<int, int>(nucname::id(from_nuc),
11406  nucname::id(to_nuc)), source, get_error);
11407 }
11408 
11409 
11410 /***********************/
11411 /*** decay functions ***/
11412 /***********************/
11413 
11414 //
11415 // Data access tools
11416 //
11417 
11418 bool pyne::swapmapcompare::operator()(const std::pair<int, double>& lhs,
11419 const std::pair<int, double>& rhs) const {
11420  return lhs.second<rhs.second || (!(rhs.second<lhs.second) &&
11421  lhs.first<rhs.first);
11422 }
11423 
11424 template<typename T, typename U> std::vector<T> pyne::data_access(
11425 double energy_min, double energy_max, size_t valoffset, std::map<std::pair<int,
11426 double>, U> &data) {
11427  typename std::map<std::pair<int, double>, U, swapmapcompare>::iterator
11428  nuc_iter, nuc_end, it;
11429  std::map<std::pair<int, double>, U, swapmapcompare> dc(data.begin(),
11430  data.end());
11431  std::vector<T> result;
11432  if (energy_max < energy_min){
11433  double temp = energy_max;
11434  energy_max = energy_min;
11435  energy_min = temp;
11436  }
11437  nuc_iter = dc.lower_bound(std::make_pair(0, energy_min));
11438  nuc_end = dc.upper_bound(std::make_pair(9999999999, energy_max));
11439  T *ret;
11440  // First check if we already have the nuc in the map
11441  for (it = nuc_iter; it!= nuc_end; ++it){
11442  ret = (T *)((char *)&(it->second) + valoffset);
11443  result.push_back(*ret);
11444  }
11445  // Next, fill up the map with values from the
11446  // nuc_data.h5, if the map is empty.
11447  if (data.empty())
11448  {
11449  _load_data<U>();
11450  return data_access<T, U>(energy_min, energy_max, valoffset, data);
11451  }
11452  return result;
11453 }
11454 
11455 template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11456 double min, double max, size_t valoffset,
11457 std::map<std::pair<int, double>, U> &data) {
11458  typename std::map<std::pair<int, double>, U>::iterator nuc_iter, nuc_end, it;
11459  std::vector<T> result;
11460  nuc_iter = data.lower_bound(std::make_pair(parent,min));
11461  nuc_end = data.upper_bound(std::make_pair(parent,max));
11462  T *ret;
11463  // First check if we already have the nuc in the map
11464  for (it = nuc_iter; it!= nuc_end; ++it){
11465  ret = (T *)((char *)&(it->second) + valoffset);
11466  result.push_back(*ret);
11467  }
11468  // Next, fill up the map with values from the
11469  // nuc_data.h5, if the map is empty.
11470  if (data.empty())
11471  {
11472  _load_data<U>();
11473  return data_access<T, U>(parent, min, max, valoffset, data);
11474  }
11475  return result;
11476 }
11477 
11478 template<typename T, typename U> T pyne::data_access(std::pair<int, int>
11479 from_to, size_t valoffset, std::map<std::pair<int, int>, U> &data) {
11480  typename std::map<std::pair<int, int>, U>::iterator nuc_iter, nuc_end;
11481 
11482  nuc_iter = data.find(from_to);
11483  nuc_end = data.end();
11484  T *ret;
11485  // First check if we already have the nuc in the map
11486  if (nuc_iter != nuc_end){
11487  ret = (T *)((char *)&(nuc_iter->second) + valoffset);
11488  return *ret;
11489  }
11490  // Next, fill up the map with values from the
11491  // nuc_data.h5, if the map is empty.
11492  if (data.empty())
11493  {
11494  _load_data<U>();
11495  return data_access<T, U>(from_to, valoffset, data);
11496  }
11497  // This is okay for now because we only return ints and doubles
11498  return 0;
11499 }
11500 
11501 template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11502 size_t valoffset, std::map<std::pair<int, int>, U> &data){
11503  typename std::map<std::pair<int, int>, U>::iterator nuc_iter, nuc_end, it;
11504  std::vector<T> result;
11505  nuc_iter = data.lower_bound(std::make_pair(parent,0));
11506  nuc_end = data.upper_bound(std::make_pair(parent,9999999999));
11507  T *ret;
11508  // First check if we already have the nuc in the map
11509  for (it = nuc_iter; it!= nuc_end; ++it){
11510  ret = (T *)((char *)&(it->second) + valoffset);
11511  result.push_back(*ret);
11512  }
11513  // Next, fill up the map with values from the
11514  // nuc_data.h5, if the map is empty.
11515  if (data.empty())
11516  {
11517  _load_data<U>();
11518  return data_access<T, U>(parent, valoffset, data);
11519  }
11520  return result;
11521 }
11522 
11523 template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11524 size_t valoffset, std::map<std::pair<int, unsigned int>, U> &data){
11525  typename std::map<std::pair<int, unsigned int>, U>::iterator nuc_iter,
11526  nuc_end, it;
11527  std::vector<T> result;
11528  nuc_iter = data.lower_bound(std::make_pair(parent,0));
11529  nuc_end = data.upper_bound(std::make_pair(parent,UINT_MAX));
11530  T *ret;
11531  // First check if we already have the nuc in the map
11532  for (it = nuc_iter; it!= nuc_end; ++it){
11533  ret = (T *)((char *)&(it->second) + valoffset);
11534  result.push_back(*ret);
11535  }
11536  // Next, fill up the map with values from the
11537  // nuc_data.h5, if the map is empty.
11538  if (data.empty())
11539  {
11540  _load_data<U>();
11541  return data_access<T, U>(parent, valoffset, data);
11542  }
11543  return result;
11544 }
11545 
11546 template<typename U> double pyne::data_access(int nuc,
11547 size_t valoffset, std::map<int, U> &data){
11548  typename std::map<int, U>::iterator nuc_iter,
11549  nuc_end;
11550  nuc_iter = data.find(nuc);
11551  nuc_end = data.end();
11552  // First check if we already have the nuc in the map
11553  if (nuc_iter != nuc_end){
11554  return *(double *)((char *)&(nuc_iter->second) + valoffset);
11555  }
11556  // Next, fill up the map with values from the
11557  // nuc_data.h5, if the map is empty.
11558  if (data.empty())
11559  {
11560  _load_data<U>();
11561  return data_access<U>(nuc, valoffset, data);
11562  }
11563  throw pyne::nucname::NotANuclide(nuc, "");
11564 }
11565 
11566 
11567 //
11568 // Load atomic data
11569 //
11570 
11571 std::map<int, pyne::atomic> pyne::atomic_data_map;
11572 
11573 template<> void pyne::_load_data<pyne::atomic>() {
11574  // Loads the atomic table into memory
11575  herr_t status;
11576 
11577  //Check to see if the file is in HDF5 format.
11580 
11581  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
11582  if (!ish5)
11584 
11585  // Get the HDF5 compound type (table) description
11586  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(atomic));
11587  status = H5Tinsert(desc, "z", HOFFSET(atomic, z),
11588  H5T_NATIVE_INT);
11589  status = H5Tinsert(desc, "k_shell_fluor", HOFFSET(atomic, k_shell_fluor),
11590  H5T_NATIVE_DOUBLE);
11591  status = H5Tinsert(desc, "k_shell_fluor_error", HOFFSET(atomic, k_shell_fluor_error),
11592  H5T_NATIVE_DOUBLE);
11593  status = H5Tinsert(desc, "l_shell_fluor", HOFFSET(atomic, l_shell_fluor),
11594  H5T_NATIVE_DOUBLE);
11595  status = H5Tinsert(desc, "l_shell_fluor_error", HOFFSET(atomic, l_shell_fluor_error),
11596  H5T_NATIVE_DOUBLE);
11597  status = H5Tinsert(desc, "prob", HOFFSET(atomic, prob),
11598  H5T_NATIVE_DOUBLE);
11599  status = H5Tinsert(desc, "k_shell_be", HOFFSET(atomic, k_shell_be),
11600  H5T_NATIVE_DOUBLE);
11601  status = H5Tinsert(desc, "k_shell_be_err", HOFFSET(atomic, k_shell_be_err),
11602  H5T_NATIVE_DOUBLE);
11603  status = H5Tinsert(desc, "li_shell_be", HOFFSET(atomic, li_shell_be),
11604  H5T_NATIVE_DOUBLE);
11605  status = H5Tinsert(desc, "li_shell_be_err", HOFFSET(atomic, li_shell_be_err),
11606  H5T_NATIVE_DOUBLE);
11607  status = H5Tinsert(desc, "mi_shell_be", HOFFSET(atomic, mi_shell_be),
11608  H5T_NATIVE_DOUBLE);
11609  status = H5Tinsert(desc, "mi_shell_be_err", HOFFSET(atomic, mi_shell_be_err),
11610  H5T_NATIVE_DOUBLE);
11611  status = H5Tinsert(desc, "ni_shell_be", HOFFSET(atomic, ni_shell_be),
11612  H5T_NATIVE_DOUBLE);
11613  status = H5Tinsert(desc, "ni_shell_be_err", HOFFSET(atomic, ni_shell_be_err),
11614  H5T_NATIVE_DOUBLE);
11615  status = H5Tinsert(desc, "kb_to_ka", HOFFSET(atomic, kb_to_ka),
11616  H5T_NATIVE_DOUBLE);
11617  status = H5Tinsert(desc, "kb_to_ka_err", HOFFSET(atomic, kb_to_ka_err),
11618  H5T_NATIVE_DOUBLE);
11619  status = H5Tinsert(desc, "ka2_to_ka1", HOFFSET(atomic, ka2_to_ka1),
11620  H5T_NATIVE_DOUBLE);
11621  status = H5Tinsert(desc, "ka2_to_ka1_err", HOFFSET(atomic, ka2_to_ka1_err),
11622  H5T_NATIVE_DOUBLE);
11623  status = H5Tinsert(desc, "l_auger", HOFFSET(atomic, l_auger),
11624  H5T_NATIVE_DOUBLE);
11625  status = H5Tinsert(desc, "k_auger", HOFFSET(atomic, k_auger),
11626  H5T_NATIVE_DOUBLE);
11627  status = H5Tinsert(desc, "ka1_x_ray_en", HOFFSET(atomic, ka1_x_ray_en),
11628  H5T_NATIVE_DOUBLE);
11629  status = H5Tinsert(desc, "ka1_x_ray_en_err", HOFFSET(atomic, ka1_x_ray_en_err),
11630  H5T_NATIVE_DOUBLE);
11631  status = H5Tinsert(desc, "ka2_x_ray_en", HOFFSET(atomic, ka2_x_ray_en),
11632  H5T_NATIVE_DOUBLE);
11633  status = H5Tinsert(desc, "ka2_x_ray_en_err", HOFFSET(atomic, ka2_x_ray_en_err),
11634  H5T_NATIVE_DOUBLE);
11635  status = H5Tinsert(desc, "kb_x_ray_en", HOFFSET(atomic, kb_x_ray_en),
11636  H5T_NATIVE_DOUBLE);
11637  status = H5Tinsert(desc, "l_x_ray_en", HOFFSET(atomic, l_x_ray_en),
11638  H5T_NATIVE_DOUBLE);
11639 
11640  // Open the HDF5 file
11641  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
11642  H5P_DEFAULT);
11643  // Open the data set
11644  hid_t atomic_set = H5Dopen2(nuc_data_h5, "/decay/atomic", H5P_DEFAULT);
11645  hid_t atomic_space = H5Dget_space(atomic_set);
11646  int atomic_length = H5Sget_simple_extent_npoints(atomic_space);
11647 
11648  // Read in the data
11649  atomic * atomic_array = new atomic[atomic_length];
11650  status = H5Dread(atomic_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT,
11651  atomic_array);
11652 
11653  // close the nuc_data library, before doing anything stupid
11654  status = H5Dclose(atomic_set);
11655  status = H5Fclose(nuc_data_h5);
11656 
11657  for (int i = 0; i < atomic_length; ++i) {
11658  atomic_data_map[atomic_array[i].z] = atomic_array[i];
11659  }
11660 
11661  delete[] atomic_array;
11662 
11663 }
11664 
11665 std::vector<std::pair<double, double> >
11666  pyne::calculate_xray_data(int z, double k_conv, double l_conv) {
11667  double xk = 0;
11668  double xka = 0;
11669  double xka1 = 0;
11670  double xka2 = 0;
11671  double xkb = 0;
11672  double xl = 0;
11673  if (!isnan(k_conv)) {
11674  xk = data_access<atomic> (z, offsetof(atomic, k_shell_fluor),
11675  atomic_data_map)*k_conv;
11676  xka = xk / (1.0 + data_access<atomic> (z, offsetof(atomic,
11677  kb_to_ka), atomic_data_map));
11678  xka1 = xka / (1.0 + data_access<atomic> (z, offsetof(atomic,
11679  ka2_to_ka1), atomic_data_map));
11680  xka2 = xka - xka1;
11681  xkb = xk - xka;
11682  if (!isnan(l_conv)) {
11683  xl = (l_conv + k_conv*data_access<atomic> (z, offsetof(atomic,
11684  prob), atomic_data_map))*data_access<atomic> (z, offsetof(atomic,
11685  l_shell_fluor), atomic_data_map);
11686  }
11687  } else if (!isnan(l_conv)) {
11688  xl = l_conv*data_access<atomic> (z, offsetof(atomic,
11689  l_shell_fluor), atomic_data_map);
11690  }
11691  std::vector<std::pair<double, double> > result;
11692  result.push_back(std::make_pair(data_access<atomic> (z, offsetof(atomic,
11693  ka1_x_ray_en), atomic_data_map),xka1));
11694  result.push_back(std::make_pair(data_access<atomic> (z, offsetof(atomic,
11695  ka2_x_ray_en), atomic_data_map),xka2));
11696  result.push_back(std::make_pair(data_access<atomic> (z, offsetof(atomic,
11697  kb_x_ray_en), atomic_data_map),xkb));
11698  result.push_back(std::make_pair(data_access<atomic> (z, offsetof(atomic,
11699  l_x_ray_en), atomic_data_map),xl));
11700 
11701  return result;
11702 }
11703 
11704 
11705 //
11706 // Load level data
11707 //
11708 
11709 std::map<std::pair<int,double>, pyne::level_data> pyne::level_data_lvl_map;
11710 std::map<std::pair<int,unsigned int>,
11712 
11713 
11714 template<> void pyne::_load_data<pyne::level_data>()
11715 {
11716 
11717  // Loads the level table into memory
11718  herr_t status;
11719 
11720  //Check to see if the file is in HDF5 format.
11723 
11724  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
11725  if (!ish5)
11727 
11728  // Get the HDF5 compound type (table) description
11729  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(level_data));
11730  status = H5Tinsert(desc, "nuc_id", HOFFSET(level_data, nuc_id),
11731  H5T_NATIVE_INT);
11732  status = H5Tinsert(desc, "rx_id", HOFFSET(level_data, rx_id),
11733  H5T_NATIVE_UINT);
11734  status = H5Tinsert(desc, "half_life", HOFFSET(level_data, half_life),
11735  H5T_NATIVE_DOUBLE);
11736  status = H5Tinsert(desc, "level", HOFFSET(level_data, level),
11737  H5T_NATIVE_DOUBLE);
11738  status = H5Tinsert(desc, "branch_ratio", HOFFSET(level_data, branch_ratio),
11739  H5T_NATIVE_DOUBLE);
11740  status = H5Tinsert(desc, "metastable", HOFFSET(level_data, metastable),
11741  H5T_NATIVE_INT);
11742  status = H5Tinsert(desc, "special", HOFFSET(level_data, special),
11743  H5T_C_S1);
11744  // Open the HDF5 file
11745  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
11746  H5P_DEFAULT);
11747  // Open the data set
11748  hid_t level_set = H5Dopen2(nuc_data_h5, "/decay/level_list", H5P_DEFAULT);
11749  hid_t level_space = H5Dget_space(level_set);
11750  int level_length = H5Sget_simple_extent_npoints(level_space);
11751 
11752  // Read in the data
11753  level_data * level_array = new level_data[level_length];
11754  status = H5Dread(level_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT,
11755  level_array);
11756 
11757  // close the nuc_data library, before doing anything stupid
11758  status = H5Dclose(level_set);
11759  status = H5Fclose(nuc_data_h5);
11760 
11761  for (int i = 0; i < level_length; ++i) {
11762  if (level_array[i].rx_id == 0)
11763  level_data_lvl_map[std::make_pair(level_array[i].nuc_id,
11764  level_array[i].level)] = level_array[i];
11765  else
11766  level_data_rx_map[std::make_pair(level_array[i].nuc_id,
11767  level_array[i].rx_id)] = level_array[i];
11768  }
11769 
11770  delete[] level_array;
11771 }
11772 
11773 //
11774 // level id
11775 //
11776 int pyne::id_from_level(int nuc, double level, std::string special) {
11777  int nostate = (nuc / 10000) * 10000;
11778  if (level_data_lvl_map.empty()) {
11780  }
11781 
11782  std::map<std::pair<int, double>, level_data>::iterator nuc_lower, nuc_upper;
11783 
11784  nuc_lower = level_data_lvl_map.lower_bound(std::make_pair(nostate, 0.0));
11785  nuc_upper = level_data_lvl_map.upper_bound(std::make_pair(nostate+9999,
11786  DBL_MAX));
11787  double minv = DBL_MAX;
11788  //by default return input nuc_id with level stripped
11789  int ret_id = nuc;
11790  for (std::map<std::pair<int, double>, level_data>::iterator it=nuc_lower;
11791  it!=nuc_upper; ++it) {
11792  if ((std::abs(level - it->second.level) < minv) &&
11793  ((char)it->second.special == special.c_str()[0]) &&
11794  !isnan(it->second.level)) {
11795  minv = std::abs(level - it->second.level);
11796  ret_id = it->second.nuc_id;
11797  }
11798  }
11799  // This value was chosen so important transitions in U-235 are not missed
11800  if (minv > 3.0)
11801  return -nuc;
11802  else
11803  return ret_id;
11804 }
11805 
11806 int pyne::id_from_level(int nuc, double level){
11807  return id_from_level(nuc, level, " ");
11808 }
11809 //
11810 // Metastable id data
11811 //
11812 
11813 int pyne::metastable_id(int nuc, int m) {
11814  int nostate = (nuc / 10000) * 10000;
11815  if (m==0) return nostate;
11816  if (level_data_lvl_map.empty()) {
11818  }
11819 
11820  std::map<std::pair<int, double>, level_data>::iterator nuc_lower, nuc_upper;
11821 
11822  nuc_lower = level_data_lvl_map.lower_bound(std::make_pair(nostate, 0.0));
11823  nuc_upper = level_data_lvl_map.upper_bound(std::make_pair(nostate+9999,
11824  DBL_MAX));
11825  for (std::map<std::pair<int, double>, level_data>::iterator it=nuc_lower;
11826  it!=nuc_upper; ++it) {
11827  if (it->second.metastable == m)
11828  return it->second.nuc_id;
11829  }
11830 
11831  return nuc;
11832 }
11833 
11834 int pyne::metastable_id(int nuc) {
11835  return metastable_id(nuc, 1);
11836 }
11837 
11838 //
11839 // Decay children data
11840 //
11841 
11842 
11843 std::set<int> pyne::decay_children(int nuc) {
11844  // make sure spontaneous fission data is loaded
11845  if (wimsdfpy_data.empty())
11846  _load_wimsdfpy();
11847 
11848  std::vector<unsigned int> part = data_access<unsigned int, level_data>(nuc,
11849  offsetof(level_data, rx_id), level_data_rx_map);
11850  std::vector<unsigned int>::iterator it = part.begin();
11851  std::set<int> result;
11852  for (; it != part.end(); ++it) {
11853  switch (*it) {
11854  case 36125: {
11855  // internal conversion, rx == 'it'
11856  result.insert((nuc /10000) * 10000);
11857  break;
11858  }
11859  case 36565: {
11860  // spontaneous fission, rx == 'sf'
11861  std::map<std::pair<int, int>, double>::iterator sf = wimsdfpy_data.begin();
11862  for (; sf != wimsdfpy_data.end(); ++sf)
11863  if (sf->first.first == nuc)
11864  result.insert(sf->first.second);
11865  break;
11866  }
11867  default: {
11868  result.insert((rxname::child(nuc, *it, "decay") /10000) * 10000);
11869  }
11870  }
11871  }
11872  return result;
11873 }
11874 
11875 std::set<int> pyne::decay_children(char * nuc)
11876 {
11877  return decay_children(nucname::id(nuc));
11878 }
11879 
11881 {
11882  return decay_children(nucname::id(nuc));
11883 }
11884 
11885 //
11886 // Excitation state energy data
11887 //
11888 
11889 double pyne::state_energy(int nuc)
11890 {
11891  std::vector<double> result = data_access<double, level_data>(nuc, 0.0,
11892  DBL_MAX, offsetof(level_data, level), level_data_lvl_map);
11893  if (result.size() == 1)
11894  return result[0]/1000.0;
11895  return 0.0;
11896 }
11897 
11898 double pyne::state_energy(char * nuc)
11899 {
11900  return state_energy(nucname::id(nuc));
11901 }
11902 
11903 
11905 {
11906  return state_energy(nucname::id(nuc));
11907 }
11908 
11909 
11910 //
11911 // Decay constant data
11912 //
11913 
11914 double pyne::decay_const(int nuc)
11915 {
11916  std::vector<double> result = data_access<double, level_data>(nuc, 0.0,
11917  DBL_MAX, offsetof(level_data, half_life), level_data_lvl_map);
11918  if (result.size() == 1) {
11919  return log(2.0)/result[0];
11920  }
11921  return 0.0;
11922 }
11923 
11924 
11925 double pyne::decay_const(char * nuc) {
11926  int nuc_zz = nucname::id(nuc);
11927  return decay_const(nuc_zz);
11928 }
11929 
11930 
11932  int nuc_zz = nucname::id(nuc);
11933  return decay_const(nuc_zz);
11934 }
11935 
11936 
11937 //
11938 // Half-life data
11939 //
11940 double pyne::half_life(int nuc) {
11941  std::vector<double> result = data_access<double, level_data>(nuc, 0.0,
11942  DBL_MAX, offsetof(level_data, half_life), level_data_lvl_map);
11943  if (result.size() == 1) {
11944  return result[0];
11945  }
11946  return 1.0/0.0;
11947 }
11948 
11949 
11950 double pyne::half_life(char * nuc) {
11951  int nuc_zz = nucname::id(nuc);
11952  return half_life(nuc_zz);
11953 }
11954 
11956  int nuc_zz = nucname::id(nuc);
11957  return half_life(nuc_zz);
11958 }
11959 
11960 
11961 //
11962 // Branch ratio data
11963 //
11964 double pyne::branch_ratio(std::pair<int, int> from_to) {
11965  using std::vector;
11967  // make sure spontaneous fission data is loaded
11968  if (wimsdfpy_data.empty())
11969  _load_wimsdfpy();
11970 
11971  vector<unsigned int> part1 = \
11972  data_access<unsigned int, level_data>(from_to.first, offsetof(level_data, rx_id),
11974  vector<double> part2 = \
11975  data_access<double, level_data>(from_to.first, offsetof(level_data, branch_ratio),
11977  double result = 0.0;
11978  if ((from_to.first == from_to.second) && (decay_const(from_to.first) == 0.0))
11979  return 1.0;
11980  for (vector<unsigned int>::size_type i = 0; i < part1.size(); ++i) {
11981  if ((part1[i] == 36125) &&
11982  (groundstate(from_to.first) == groundstate(from_to.second)) &&
11983  (from_to.second % 10000 == 0)) {
11984  // internal conversion, rx == 'it'
11985  result = 1.0;
11986  break;
11987  } else if (part1[i] == 36565) {
11988  // spontaneous fission, rx == 'sf'
11989  result += part2[i] * 0.01 * wimsdfpy_data[from_to];
11990  } else if ((part1[i] != 0) && (groundstate(rxname::child(from_to.first,
11991  part1[i], "decay")) == from_to.second)) {
11992  result += part2[i] * 0.01;
11993  }
11994  }
11995  return result;
11996 }
11997 
11998 double pyne::branch_ratio(int from_nuc, int to_nuc) {
11999  return branch_ratio(std::pair<int, int>(nucname::id(from_nuc),
12000  nucname::id(to_nuc)));
12001 }
12002 
12003 double pyne::branch_ratio(char * from_nuc, char * to_nuc) {
12004  return branch_ratio(std::pair<int, int>(nucname::id(from_nuc),
12005  nucname::id(to_nuc)));
12006 }
12007 
12008 double pyne::branch_ratio(std::string from_nuc, std::string to_nuc) {
12009  return branch_ratio(std::pair<int, int>(nucname::id(from_nuc),
12010  nucname::id(to_nuc)));
12011 }
12012 
12013 std::map<std::pair<int, int>, pyne::decay> pyne::decay_data = \
12014  std::map<std::pair<int, int>, pyne::decay>();
12015 
12016 template<> void pyne::_load_data<pyne::decay>() {
12017 
12018  // Loads the decay table into memory
12019  herr_t status;
12020 
12021  //Check to see if the file is in HDF5 format.
12024 
12025  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12026  if (!ish5)
12028 
12029  // Get the HDF5 compound type (table) description
12030  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(decay));
12031  status = H5Tinsert(desc, "parent", HOFFSET(decay, parent),
12032  H5T_NATIVE_INT);
12033  status = H5Tinsert(desc, "child", HOFFSET(decay, child),
12034  H5T_NATIVE_INT);
12035  status = H5Tinsert(desc, "decay", HOFFSET(decay, decay),
12036  H5T_NATIVE_UINT);
12037  status = H5Tinsert(desc, "half_life", HOFFSET(decay, half_life),
12038  H5T_NATIVE_DOUBLE);
12039  status = H5Tinsert(desc, "half_life_error", HOFFSET(decay,
12040  half_life_error), H5T_NATIVE_DOUBLE);
12041  status = H5Tinsert(desc, "branch_ratio", HOFFSET(decay, branch_ratio),
12042  H5T_NATIVE_DOUBLE);
12043  status = H5Tinsert(desc, "branch_ratio_error", HOFFSET(decay, branch_ratio_error),
12044  H5T_NATIVE_DOUBLE);
12045  status = H5Tinsert(desc, "photon_branch_ratio", HOFFSET(decay,
12046  photon_branch_ratio), H5T_NATIVE_DOUBLE);
12047  status = H5Tinsert(desc, "photon_branch_ratio_err", HOFFSET(decay,
12048  photon_branch_ratio_error), H5T_NATIVE_DOUBLE);
12049  status = H5Tinsert(desc, "beta_branch_ratio", HOFFSET(decay,
12050  beta_branch_ratio), H5T_NATIVE_DOUBLE);
12051  status = H5Tinsert(desc, "beta_branch_ratio_err", HOFFSET(decay,
12052  beta_branch_ratio_error), H5T_NATIVE_DOUBLE);
12053 
12054  // Open the HDF5 file
12055  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
12056  H5P_DEFAULT);
12057 
12058  // Open the data set
12059  hid_t decay_set = H5Dopen2(nuc_data_h5, "/decay/decays", H5P_DEFAULT);
12060  hid_t decay_space = H5Dget_space(decay_set);
12061  int decay_length = H5Sget_simple_extent_npoints(decay_space);
12062 
12063  // Read in the data
12064  decay * decay_array = new decay[decay_length];
12065  status = H5Dread(decay_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT,
12066  decay_array);
12067 
12068  // close the nuc_data library, before doing anything stupid
12069  status = H5Dclose(decay_set);
12070  status = H5Fclose(nuc_data_h5);
12071 
12072  for (int i = 0; i < decay_length; ++i) {
12073  decay_data[std::make_pair(decay_array[i].parent, decay_array[i].child)] = \
12074  decay_array[i];
12075  }
12076  delete[] decay_array;
12077 }
12078 
12079 
12080 std::vector<int> pyne::decay_data_children(int parent) {
12081  std::vector<int> result = data_access<int, decay>(parent,
12082  offsetof(decay, child), decay_data);
12083  return result;
12084 }
12085 
12086 std::pair<double, double> pyne::decay_half_life(std::pair<int, int> from_to){
12087  return std::make_pair(data_access<double, decay>(from_to, offsetof(
12088  decay, half_life), decay_data), data_access<double, decay>(
12089  from_to, offsetof(decay, half_life_error), decay_data));
12090 }
12091 
12092 std::vector<std::pair<double, double> >pyne::decay_half_lifes(int parent) {
12093  std::vector<std::pair<double, double> > result;
12094  std::vector<double> part1 = data_access<double, decay>(parent,
12095  offsetof(decay, half_life), decay_data);
12096  std::vector<double> part2 = data_access<double, decay>(parent,
12097  offsetof(decay, half_life_error), decay_data);
12098  for(int i = 0; i < part1.size(); ++i){
12099  result.push_back(std::make_pair(part1[i],part2[i]));
12100  }
12101  return result;
12102 }
12103 
12104 std::pair<double, double> pyne::decay_branch_ratio(std::pair<int, int> from_to) {
12105  return std::make_pair(data_access<double, decay>(from_to, offsetof(decay,
12106  branch_ratio), decay_data),data_access<double, decay>(from_to, offsetof(decay,
12107  branch_ratio_error), decay_data));
12108 }
12109 
12110 std::vector<double> pyne::decay_branch_ratios(int parent) {
12111  return data_access<double, decay>(parent, offsetof(decay,
12113 }
12114 
12115 std::pair<double, double> pyne::decay_photon_branch_ratio(std::pair<int,int>
12116 from_to) {
12117  return std::make_pair(data_access<double, decay>(from_to,
12118  offsetof(decay, photon_branch_ratio), decay_data),
12119  data_access<double, decay>(from_to, offsetof(decay,
12120  photon_branch_ratio_error), decay_data));
12121 }
12122 
12123 std::vector<std::pair<double, double> >pyne::decay_photon_branch_ratios(
12124 int parent) {
12125  std::vector<std::pair<double, double> > result;
12126  std::vector<double> part1 = data_access<double, decay>(parent,
12127  offsetof(decay, photon_branch_ratio), decay_data);
12128  std::vector<double> part2 = data_access<double, decay>(parent,
12129  offsetof(decay, photon_branch_ratio_error), decay_data);
12130  for(int i = 0; i < part1.size(); ++i){
12131  result.push_back(std::make_pair(part1[i],part2[i]));
12132  }
12133  return result;
12134 }
12135 
12136 std::pair<double, double> pyne::decay_beta_branch_ratio(std::pair<int,int>
12137 from_to) {
12138  return std::make_pair(data_access<double, decay>(from_to,
12139  offsetof(decay, beta_branch_ratio), decay_data),
12140  data_access<double, decay>(from_to, offsetof(decay,
12141  beta_branch_ratio_error), decay_data));
12142 }
12143 
12144 std::vector<std::pair<double, double> >pyne::decay_beta_branch_ratios(
12145 int parent) {
12146  std::vector<std::pair<double, double> > result;
12147  std::vector<double> part1 = data_access<double, decay>(parent,
12148  offsetof(decay, beta_branch_ratio), decay_data);
12149  std::vector<double> part2 = data_access<double, decay>(parent,
12150  offsetof(decay, beta_branch_ratio_error), decay_data);
12151  for(int i = 0; i < part1.size(); ++i){
12152  result.push_back(std::make_pair(part1[i],part2[i]));
12153  }
12154  return result;
12155 }
12156 
12157 std::map<std::pair<int, double>, pyne::gamma> pyne::gamma_data;
12158 
12159 template<> void pyne::_load_data<pyne::gamma>() {
12160 
12161  // Loads the gamma table into memory
12162  herr_t status;
12163 
12164  //Check to see if the file is in HDF5 format.
12167 
12168  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12169  if (!ish5)
12171 
12172  // Get the HDF5 compound type (table) description
12173  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(gamma));
12174  status = H5Tinsert(desc, "from_nuc", HOFFSET(gamma, from_nuc),
12175  H5T_NATIVE_INT);
12176  status = H5Tinsert(desc, "to_nuc", HOFFSET(gamma, to_nuc),
12177  H5T_NATIVE_INT);
12178  status = H5Tinsert(desc, "parent_nuc", HOFFSET(gamma, parent_nuc),
12179  H5T_NATIVE_INT);
12180  status = H5Tinsert(desc, "child_nuc", HOFFSET(gamma, child_nuc),
12181  H5T_NATIVE_INT);
12182  status = H5Tinsert(desc, "energy", HOFFSET(gamma, energy),
12183  H5T_NATIVE_DOUBLE);
12184  status = H5Tinsert(desc, "energy_err", HOFFSET(gamma, energy_err),
12185  H5T_NATIVE_DOUBLE);
12186  status = H5Tinsert(desc, "photon_intensity", HOFFSET(gamma,
12187  photon_intensity), H5T_NATIVE_DOUBLE);
12188  status = H5Tinsert(desc, "photon_intensity_err", HOFFSET(gamma,
12189  photon_intensity_err), H5T_NATIVE_DOUBLE);
12190  status = H5Tinsert(desc, "conv_intensity", HOFFSET(gamma,
12191  conv_intensity), H5T_NATIVE_DOUBLE);
12192  status = H5Tinsert(desc, "conv_intensity_err", HOFFSET(gamma,
12193  conv_intensity_err), H5T_NATIVE_DOUBLE);
12194  status = H5Tinsert(desc, "total_intensity", HOFFSET(gamma,
12195  total_intensity), H5T_NATIVE_DOUBLE);
12196  status = H5Tinsert(desc, "total_intensity_err", HOFFSET(gamma,
12197  total_intensity_err), H5T_NATIVE_DOUBLE);
12198  status = H5Tinsert(desc, "k_conv_e", HOFFSET(gamma, k_conv_e),
12199  H5T_NATIVE_DOUBLE);
12200  status = H5Tinsert(desc, "l_conv_e", HOFFSET(gamma, l_conv_e),
12201  H5T_NATIVE_DOUBLE);
12202  status = H5Tinsert(desc, "m_conv_e", HOFFSET(gamma, m_conv_e),
12203  H5T_NATIVE_DOUBLE);
12204 
12205 
12206  // Open the HDF5 file
12207  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
12208  H5P_DEFAULT);
12209 
12210  // Open the data set
12211  hid_t gamma_set = H5Dopen2(nuc_data_h5, "/decay/gammas", H5P_DEFAULT);
12212  hid_t gamma_space = H5Dget_space(gamma_set);
12213  int gamma_length = H5Sget_simple_extent_npoints(gamma_space);
12214 
12215  // Read in the data
12216  gamma * gamma_array = new gamma[gamma_length];
12217  status = H5Dread(gamma_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT,
12218  gamma_array);
12219 
12220  // close the nuc_data library, before doing anything stupid
12221  status = H5Dclose(gamma_set);
12222  status = H5Fclose(nuc_data_h5);
12223 
12224  for (int i = 0; i < gamma_length; ++i) {
12225  if ((gamma_array[i].parent_nuc != 0) && !isnan(gamma_array[i].energy))
12226  gamma_data[std::make_pair(gamma_array[i].parent_nuc,
12227  gamma_array[i].energy)] = gamma_array[i];
12228  }
12229  delete[] gamma_array;
12230 }
12231 
12232 std::vector<std::pair<double, double> > pyne::gamma_energy(int parent) {
12233  std::vector<std::pair<double, double> > result;
12234  std::vector<double> part1 = data_access<double, gamma>(parent, 0.0,
12235  DBL_MAX, offsetof(gamma, energy), gamma_data);
12236  std::vector<double> part2 = data_access<double, gamma>(parent, 0.0,
12237  DBL_MAX, offsetof(gamma, energy_err), gamma_data);
12238  for(int i = 0; i < part1.size(); ++i){
12239  result.push_back(std::make_pair(part1[i],part2[i]));
12240  }
12241  return result;
12242 }
12243 
12244 std::vector<std::pair<double, double> > pyne::gamma_energy(double energy,
12245 double error) {
12246  std::vector<std::pair<double, double> > result;
12247  std::vector<double> part1 = data_access<double, gamma>(energy+error,
12248  energy-error, offsetof(gamma, energy), gamma_data);
12249  std::vector<double> part2 = data_access<double, gamma>(energy+error,
12250  energy-error, offsetof(gamma, energy_err), gamma_data);
12251  for(int i = 0; i < part1.size(); ++i){
12252  result.push_back(std::make_pair(part1[i],part2[i]));
12253  }
12254  return result;
12255 }
12256 
12257 std::vector<std::pair<double, double> > pyne::gamma_photon_intensity(
12258 int parent) {
12259  std::vector<std::pair<double, double> > result;
12260  std::vector<double> part1 = data_access<double, gamma>(parent, 0.0,
12261  DBL_MAX, offsetof(gamma, photon_intensity), gamma_data);
12262  std::vector<double> part2 = data_access<double, gamma>(parent, 0.0,
12263  DBL_MAX, offsetof(gamma, photon_intensity_err), gamma_data);
12264  for(int i = 0; i < part1.size(); ++i){
12265  result.push_back(std::make_pair(part1[i],part2[i]));
12266  }
12267  return result;
12268 }
12269 
12270 std::vector<std::pair<double, double> > pyne::gamma_photon_intensity(
12271 double energy, double error) {
12272  std::vector<std::pair<double, double> > result;
12273  std::vector<double> part1 = data_access<double, gamma>(energy+error,
12274  energy-error, offsetof(gamma, photon_intensity), gamma_data);
12275  std::vector<double> part2 = data_access<double, gamma>(energy+error,
12276  energy-error, offsetof(gamma, photon_intensity_err), gamma_data);
12277  for(int i = 0; i < part1.size(); ++i){
12278  result.push_back(std::make_pair(part1[i],part2[i]));
12279  }
12280  return result;
12281 }
12282 
12283 std::vector<std::pair<double, double> > pyne::gamma_conversion_intensity(
12284 int parent) {
12285  std::vector<std::pair<double, double> > result;
12286  std::vector<double> part1 = data_access<double, gamma>(parent, 0.0,
12287  DBL_MAX, offsetof(gamma, conv_intensity), gamma_data);
12288  std::vector<double> part2 = data_access<double, gamma>(parent, 0.0,
12289  DBL_MAX, offsetof(gamma, conv_intensity_err), gamma_data);
12290  for(int i = 0; i < part1.size(); ++i){
12291  result.push_back(std::make_pair(part1[i],part2[i]));
12292  }
12293  return result;
12294 }
12295 
12296 std::vector<std::pair<double, double> > pyne::gamma_total_intensity(
12297 int parent) {
12298  std::vector<std::pair<double, double> > result;
12299  std::vector<double> part1 = data_access<double, gamma>(parent, 0.0,
12300  DBL_MAX, offsetof(gamma, total_intensity), gamma_data);
12301  std::vector<double> part2 = data_access<double, gamma>(parent, 0.0,
12302  DBL_MAX, offsetof(gamma, total_intensity_err), gamma_data);
12303  for(int i = 0; i < part1.size(); ++i){
12304  result.push_back(std::make_pair(part1[i],part2[i]));
12305  }
12306  return result;
12307 }
12308 
12309 std::vector<std::pair<int, int> > pyne::gamma_from_to(int parent) {
12310  std::vector<std::pair<int, int> > result;
12311  std::vector<int> part1 = data_access<int, gamma>(parent, 0.0, DBL_MAX,
12312  offsetof(gamma, from_nuc), gamma_data);
12313  std::vector<int> part2 = data_access<int, gamma>(parent, 0.0, DBL_MAX,
12314  offsetof(gamma, to_nuc), gamma_data);
12315  for(int i = 0; i < part1.size(); ++i){
12316  result.push_back(std::make_pair(part1[i],part2[i]));
12317  }
12318  return result;
12319 }
12320 
12321 std::vector<std::pair<int, int> > pyne::gamma_from_to(double energy,
12322 double error) {
12323  std::vector<std::pair<int, int> > result;
12324  std::vector<int> part1 = data_access<int, gamma>(energy+error,
12325  energy-error, offsetof(gamma, from_nuc), gamma_data);
12326  std::vector<int> part2 = data_access<int, gamma>(energy+error,
12327  energy-error, offsetof(gamma, to_nuc), gamma_data);
12328  for(int i = 0; i < part1.size(); ++i){
12329  result.push_back(std::make_pair(part1[i],part2[i]));
12330  }
12331  return result;
12332 }
12333 
12334 
12335 std::vector<std::pair<int, int> > pyne::gamma_parent_child(double energy,
12336 double error) {
12337  std::vector<std::pair<int, int> > result;
12338  std::vector<int> part1 = data_access<int, gamma>(energy+error,
12339  energy-error, offsetof(gamma, parent_nuc), gamma_data);
12340  std::vector<int> part2 = data_access<int, gamma>(energy+error,
12341  energy-error, offsetof(gamma, child_nuc), gamma_data);
12342  for(int i = 0; i < part1.size(); ++i){
12343  result.push_back(std::make_pair(part1[i],part2[i]));
12344  }
12345  return result;
12346 }
12347 
12348 std::vector<int> pyne::gamma_parent(double energy, double error) {
12349  return data_access<int, gamma>(energy+error, energy-error,
12350  offsetof(gamma, parent_nuc), gamma_data);
12351 }
12352 
12353 std::vector<int> pyne::gamma_child(double energy, double error) {
12354  return data_access<int, gamma>(energy+error, energy-error,
12355  offsetof(gamma, child_nuc), gamma_data);
12356 }
12357 
12358 std::vector<int> pyne::gamma_child(int parent) {
12359  return data_access<int, gamma>(parent, 0.0, DBL_MAX,
12360  offsetof(gamma, child_nuc), gamma_data);
12361 }
12362 
12363 std::vector<std::pair<double, double> > pyne::gamma_xrays(int parent) {
12364  std::vector<std::pair<double, double> > result;
12365  std::vector<std::pair<double, double> > temp;
12366  std::vector<double> k_list = data_access<double, gamma>(parent, 0.0, DBL_MAX,
12367  offsetof(gamma, k_conv_e), gamma_data);
12368  std::vector<double> l_list = data_access<double, gamma>(parent, 0.0, DBL_MAX,
12369  offsetof(gamma, l_conv_e), gamma_data);
12370  std::vector<int> children = data_access<int, gamma>(parent, 0.0,
12371  DBL_MAX, offsetof(gamma, from_nuc), gamma_data);
12372  std::vector<int> decay_children = decay_data_children(parent);
12373  std::vector<std::pair<double, double> > decay_br =
12375  for(int i = 0; i < k_list.size(); ++i){
12376  for (int j = 0; j < decay_children.size(); ++j) {
12377  if (nucname::zzzaaa(children[i]) == nucname::zzzaaa(decay_children[j])) {
12378  temp = calculate_xray_data(nucname::znum(children[i]),
12379  k_list[i]*decay_br[j].first, l_list[i]*decay_br[j].first);
12380  for (int k = 0; k < temp.size(); ++k) {
12381  if (!isnan(temp[k].second) && !isnan(temp[k].first)) {
12382  int found = 0;
12383  for (int l = 0; l < result.size(); ++l) {
12384  if (temp[k].first == result[l].first) {
12385  result[l].second = result[l].second + temp[k].second;
12386  found = 1;
12387  break;
12388  }
12389  }
12390  if (found == 0) {
12391  result.push_back(temp[k]);
12392  }
12393  }
12394  }
12395  break;
12396  }
12397  }
12398  }
12399  return result;
12400 }
12401 
12402 std::map<std::pair<int, double>, pyne::alpha> pyne::alpha_data;
12403 
12404 template<> void pyne::_load_data<pyne::alpha>() {
12405 
12406  // Loads the alpha table into memory
12407  herr_t status;
12408 
12409  //Check to see if the file is in HDF5 format.
12412 
12413  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12414  if (!ish5)
12416 
12417  // Get the HDF5 compound type (table) description
12418  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(alpha));
12419  status = H5Tinsert(desc, "from_nuc", HOFFSET(alpha, from_nuc),
12420  H5T_NATIVE_INT);
12421  status = H5Tinsert(desc, "to_nuc", HOFFSET(alpha, to_nuc),
12422  H5T_NATIVE_INT);
12423  status = H5Tinsert(desc, "energy", HOFFSET(alpha, energy),
12424  H5T_NATIVE_DOUBLE);
12425  status = H5Tinsert(desc, "intensity", HOFFSET(alpha, intensity),
12426  H5T_NATIVE_DOUBLE);
12427 
12428 
12429  // Open the HDF5 file
12430  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
12431  H5P_DEFAULT);
12432 
12433  // Open the data set
12434  hid_t alpha_set = H5Dopen2(nuc_data_h5, "/decay/alphas", H5P_DEFAULT);
12435  hid_t alpha_space = H5Dget_space(alpha_set);
12436  int alpha_length = H5Sget_simple_extent_npoints(alpha_space);
12437 
12438  // Read in the data
12439  alpha * alpha_array = new alpha[alpha_length];
12440  status = H5Dread(alpha_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT,
12441  alpha_array);
12442 
12443  // close the nuc_data library, before doing anything stupid
12444  status = H5Dclose(alpha_set);
12445  status = H5Fclose(nuc_data_h5);
12446 
12447  for (int i = 0; i < alpha_length; ++i) {
12448  if ((alpha_array[i].from_nuc != 0) && !isnan(alpha_array[i].energy))
12449  alpha_data[std::make_pair(alpha_array[i].from_nuc, alpha_array[i].energy)]
12450  = alpha_array[i];
12451  }
12452  delete[] alpha_array;
12453 }
12454 
12455 std::vector<double > pyne::alpha_energy(int parent){
12456  return data_access<double, alpha>(parent, 0.0, DBL_MAX,
12457  offsetof(alpha,energy), alpha_data);
12458 }
12459 std::vector<double> pyne::alpha_intensity(int parent){
12460  return data_access<double, alpha>(parent, 0.0, DBL_MAX,
12461  offsetof(alpha,intensity), alpha_data);
12462 }
12463 
12464 std::vector<int> pyne::alpha_parent(double energy, double error) {
12465  return data_access<int, alpha>(energy+error, energy-error,
12466  offsetof(alpha, from_nuc), alpha_data);
12467 }
12468 
12469 std::vector<int> pyne::alpha_child(double energy, double error) {
12470  return data_access<int, alpha>(energy+error, energy-error,
12471  offsetof(alpha, to_nuc), alpha_data);
12472 }
12473 
12474 std::vector<int> pyne::alpha_child(int parent){
12475  return data_access<int, alpha>(parent, 0.0, DBL_MAX,
12476  offsetof(alpha, to_nuc), alpha_data);
12477 }
12478 
12479 std::map<std::pair<int, double>, pyne::beta> pyne::beta_data;
12480 
12481 template<> void pyne::_load_data<pyne::beta>() {
12482 
12483  // Loads the beta table into memory
12484  herr_t status;
12485 
12486  //Check to see if the file is in HDF5 format.
12489 
12490  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12491  if (!ish5)
12493 
12494  // Get the HDF5 compound type (table) description
12495  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(beta));
12496  status = H5Tinsert(desc, "endpoint_energy", HOFFSET(beta,
12497  endpoint_energy), H5T_NATIVE_DOUBLE);
12498  status = H5Tinsert(desc, "avg_energy", HOFFSET(beta, avg_energy),
12499  H5T_NATIVE_DOUBLE);
12500  status = H5Tinsert(desc, "intensity", HOFFSET(beta, intensity),
12501  H5T_NATIVE_DOUBLE);
12502  status = H5Tinsert(desc, "from_nuc", HOFFSET(beta, from_nuc),
12503  H5T_NATIVE_INT);
12504  status = H5Tinsert(desc, "to_nuc", HOFFSET(beta, to_nuc),
12505  H5T_NATIVE_INT);
12506 
12507 
12508  // Open the HDF5 file
12509  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
12510  H5P_DEFAULT);
12511 
12512  // Open the data set
12513  hid_t beta_set = H5Dopen2(nuc_data_h5, "/decay/betas", H5P_DEFAULT);
12514  hid_t beta_space = H5Dget_space(beta_set);
12515  int beta_length = H5Sget_simple_extent_npoints(beta_space);
12516 
12517  // Read in the data
12518  beta * beta_array = new beta[beta_length];
12519  status = H5Dread(beta_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, beta_array);
12520 
12521  // close the nuc_data library, before doing anything stupid
12522  status = H5Dclose(beta_set);
12523  status = H5Fclose(nuc_data_h5);
12524 
12525  for (int i = 0; i < beta_length; ++i) {
12526  if ((beta_array[i].from_nuc != 0) && !isnan(beta_array[i].avg_energy))
12527  beta_data[std::make_pair(beta_array[i].from_nuc, beta_array[i].avg_energy)]
12528  = beta_array[i];
12529  }
12530  delete[] beta_array;
12531 }
12532 
12533 std::vector<double > pyne::beta_endpoint_energy(int parent){
12534  return data_access<double, beta>(parent, 0.0, DBL_MAX,
12535  offsetof(beta, endpoint_energy), beta_data);
12536 }
12537 
12538 std::vector<double > pyne::beta_average_energy(int parent){
12539  return data_access<double, beta>(parent, 0.0, DBL_MAX,
12540  offsetof(beta, avg_energy), beta_data);
12541 }
12542 
12543 std::vector<double> pyne::beta_intensity(int parent){
12544  return data_access<double, beta>(parent, 0.0, DBL_MAX,
12545  offsetof(beta, intensity), beta_data);
12546 }
12547 
12548 std::vector<int> pyne::beta_parent(double energy, double error) {
12549  return data_access<int, beta>(energy+error, energy-error,
12550  offsetof(beta, from_nuc), beta_data);
12551 }
12552 
12553 std::vector<int> pyne::beta_child(double energy, double error) {
12554  return data_access<int, beta>(energy+error, energy-error,
12555  offsetof(beta, to_nuc), beta_data);
12556 }
12557 
12558 std::vector<int> pyne::beta_child(int parent){
12559  return data_access<int, beta>(parent, 0.0, DBL_MAX,
12560  offsetof(beta, to_nuc),beta_data);
12561 }
12562 
12563 
12564 std::map<std::pair<int, double>, pyne::ecbp> pyne::ecbp_data;
12565 
12566 template<> void pyne::_load_data<pyne::ecbp>() {
12567 
12568  // Loads the ecbp table into memory
12569  herr_t status;
12570 
12571  //Check to see if the file is in HDF5 format.
12574 
12575  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12576  if (!ish5)
12578 
12579  // Get the HDF5 compound type (table) description
12580  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(ecbp));
12581  status = H5Tinsert(desc, "from_nuc", HOFFSET(ecbp, from_nuc),
12582  H5T_NATIVE_INT);
12583  status = H5Tinsert(desc, "to_nuc", HOFFSET(ecbp, to_nuc),
12584  H5T_NATIVE_INT);
12585  status = H5Tinsert(desc, "endpoint_energy", HOFFSET(ecbp,
12586  endpoint_energy),H5T_NATIVE_DOUBLE);
12587  status = H5Tinsert(desc, "avg_energy", HOFFSET(ecbp, avg_energy),
12588  H5T_NATIVE_DOUBLE);
12589  status = H5Tinsert(desc, "beta_plus_intensity", HOFFSET(ecbp,
12590  beta_plus_intensity), H5T_NATIVE_DOUBLE);
12591  status = H5Tinsert(desc, "ec_intensity", HOFFSET(ecbp, ec_intensity),
12592  H5T_NATIVE_DOUBLE);
12593  status = H5Tinsert(desc, "k_conv_e", HOFFSET(ecbp, k_conv_e),
12594  H5T_NATIVE_DOUBLE);
12595  status = H5Tinsert(desc, "l_conv_e", HOFFSET(ecbp, l_conv_e),
12596  H5T_NATIVE_DOUBLE);
12597  status = H5Tinsert(desc, "m_conv_e", HOFFSET(ecbp, m_conv_e),
12598  H5T_NATIVE_DOUBLE);
12599 
12600  // Open the HDF5 file
12601  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY,
12602  H5P_DEFAULT);
12603 
12604  // Open the data set
12605  hid_t ecbp_set = H5Dopen2(nuc_data_h5, "/decay/ecbp", H5P_DEFAULT);
12606  hid_t ecbp_space = H5Dget_space(ecbp_set);
12607  int ecbp_length = H5Sget_simple_extent_npoints(ecbp_space);
12608 
12609  // Read in the data
12610  ecbp * ecbp_array = new ecbp[ecbp_length];
12611  status = H5Dread(ecbp_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, ecbp_array);
12612 
12613  // close the nuc_data library, before doing anything stupid
12614  status = H5Dclose(ecbp_set);
12615  status = H5Fclose(nuc_data_h5);
12616 
12617  for (int i = 0; i < ecbp_length; ++i) {
12618  if ((ecbp_array[i].from_nuc != 0) && !isnan(ecbp_array[i].avg_energy))
12619  ecbp_data[std::make_pair(ecbp_array[i].from_nuc, ecbp_array[i].avg_energy)]
12620  = ecbp_array[i];
12621  }
12622  delete[] ecbp_array;
12623 }
12624 
12625 std::vector<double > pyne::ecbp_endpoint_energy(int parent){
12626  return data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12627  offsetof(ecbp,endpoint_energy), ecbp_data);
12628 }
12629 
12630 std::vector<double > pyne::ecbp_average_energy(int parent){
12631  return data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12632  offsetof(ecbp, avg_energy), ecbp_data);
12633 }
12634 
12635 std::vector<double> pyne::ec_intensity(int parent){
12636  return data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12637  offsetof(ecbp, ec_intensity), ecbp_data);
12638 }
12639 
12640 std::vector<double> pyne::bp_intensity(int parent){
12641  return data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12642  offsetof(ecbp, beta_plus_intensity), ecbp_data);
12643 }
12644 
12645 std::vector<int> pyne::ecbp_parent(double energy, double error) {
12646  return data_access<int, ecbp>(energy+error, energy-error,
12647  offsetof(ecbp, from_nuc), ecbp_data);
12648 }
12649 
12650 std::vector<int> pyne::ecbp_child(double energy, double error) {
12651  return data_access<int, ecbp>(energy+error, energy-error,
12652  offsetof(ecbp, to_nuc), ecbp_data);
12653 }
12654 
12655 std::vector<int> pyne::ecbp_child(int parent){
12656  return data_access<int, ecbp>(parent, 0.0, DBL_MAX,
12657  offsetof(ecbp, to_nuc), ecbp_data);
12658 }
12659 
12660 std::vector<std::pair<double, double> > pyne::ecbp_xrays(int parent) {
12661  std::vector<std::pair<double, double> > result;
12662  std::vector<std::pair<double, double> > temp;
12663  std::vector<double> k_list = data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12664  offsetof(ecbp, k_conv_e), ecbp_data);
12665  std::vector<double> l_list = data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12666  offsetof(ecbp, l_conv_e), ecbp_data);
12667  std::vector<int> children = data_access<int, ecbp>(parent, 0.0, DBL_MAX,
12668  offsetof(ecbp, to_nuc), ecbp_data);
12669  std::vector<int> decay_children = decay_data_children(parent);
12670  std::vector<std::pair<double, double> > decay_br =
12671  decay_beta_branch_ratios(parent);
12672  for(int i = 0; i < k_list.size(); ++i){
12673  for (int j = 0; j < decay_children.size(); ++j) {
12674  if (nucname::zzzaaa(children[i]) == nucname::zzzaaa(decay_children[j])) {
12675  temp = calculate_xray_data(nucname::znum(children[i]),
12676  k_list[i]*decay_br[j].first, l_list[i]*decay_br[j].first);
12677  for (int k = 0; k < temp.size(); ++k) {
12678  if (!isnan(temp[k].second) && !isnan(temp[k].first)) {
12679  int found = 0;
12680  for (int l = 0; l < result.size(); ++l) {
12681  if (temp[k].first == result[l].first) {
12682  result[l].second = result[l].second + temp[k].second;
12683  found = 1;
12684  break;
12685  }
12686  }
12687  if (found == 0) {
12688  result.push_back(temp[k]);
12689  }
12690  }
12691  }
12692  break;
12693  }
12694  }
12695  }
12696  return result;
12697 }
12698 
12699 ///////////////////////////
12700 /// Combined decay data ///
12701 ///////////////////////////
12702 
12703 std::vector<std::pair<double, double> > pyne::gammas(int parent_state_id) {
12704  std::vector<std::pair<double, double> > result;
12705  double decay_c = decay_const(parent_state_id);
12706  std::vector<std::pair<double, double> > energies = gamma_energy(parent_state_id);
12707  std::vector<std::pair<double, double> > intensities =
12708  gamma_photon_intensity(parent_state_id);
12709  std::vector<std::pair<int, int> > children = gamma_from_to(parent_state_id);
12710  std::vector<int> decay_children = decay_data_children(parent_state_id);
12711  std::vector<std::pair<double, double> > decay_br =
12712  decay_photon_branch_ratios(parent_state_id);
12713  for (int i = 0; i < children.size(); ++i) {
12714  for (int j = 0; j < decay_children.size(); ++j) {
12715  if (nucname::zzzaaa(children[i].first) == nucname::zzzaaa(decay_children[j])) {
12716  result.push_back(std::make_pair(energies[i].first,
12717  decay_c*intensities[i].first*decay_br[j].first));
12718  }
12719  }
12720  }
12721  return result;
12722 }
12723 
12724 std::vector<std::pair<double, double> > pyne::alphas(int parent_state_id) {
12725  std::vector<std::pair<double, double> > result;
12726  double decay_c = decay_const(parent_state_id);
12727  std::vector<double> energies = alpha_energy(parent_state_id);
12728  std::vector<double> intensities = alpha_intensity(parent_state_id);
12729  std::vector<int> children = alpha_child(parent_state_id);
12730  std::vector<int> decay_children = decay_data_children(parent_state_id);
12731  std::vector<double> decay_br = decay_branch_ratios(parent_state_id);
12732  for (int i = 0; i < children.size(); ++i) {
12733  for (int j = 0; j < decay_children.size(); ++j) {
12734  if (nucname::zzzaaa(children[i]) == nucname::zzzaaa(decay_children[j])) {
12735  result.push_back(std::make_pair(energies[i],
12736  decay_c*decay_br[j]*intensities[i]));
12737  }
12738  }
12739  }
12740  return result;
12741 }
12742 
12743 std::vector<std::pair<double, double> > pyne::betas(int parent_state_id) {
12744  std::vector<std::pair<double, double> > result;
12745  double decay_c = decay_const(parent_state_id);
12746  std::vector<double> energies = beta_average_energy(parent_state_id);
12747  std::vector<double> intensities = beta_intensity(parent_state_id);
12748  std::vector<int> children = beta_child(parent_state_id);
12749  std::vector<int> decay_children = decay_data_children(parent_state_id);
12750  std::vector<std::pair<double, double> > decay_br =
12751  decay_beta_branch_ratios(parent_state_id);
12752  for (int i = 0; i < children.size(); ++i) {
12753  for (int j = 0; j < decay_children.size(); ++j) {
12754  if (nucname::zzzaaa(children[i]) == nucname::zzzaaa(decay_children[j])) {
12755  result.push_back(std::make_pair(energies[i],
12756  decay_c*decay_br[j].first*intensities[i]));
12757  break;
12758  }
12759  }
12760  }
12761  return result;
12762 }
12763 
12764 std::vector<std::pair<double, double> > pyne::xrays(int parent) {
12765  double decay_c = decay_const(parent);
12766  std::vector<std::pair<double, double> > result;
12767  std::vector<std::pair<double, double> > temp;
12768  std::vector<double> k_list = data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12769  offsetof(ecbp, k_conv_e), ecbp_data);
12770  std::vector<double> l_list = data_access<double, ecbp>(parent, 0.0, DBL_MAX,
12771  offsetof(ecbp, l_conv_e), ecbp_data);
12772  std::vector<int> children = data_access<int, ecbp>(parent, 0.0, DBL_MAX,
12773  offsetof(ecbp, to_nuc), ecbp_data);
12774  std::vector<int> decay_children = decay_data_children(parent);
12775  std::vector<std::pair<double, double> > decay_br =
12776  decay_beta_branch_ratios(parent);
12777  for(int i = 0; i < k_list.size(); ++i){
12778  for (int j = 0; j < decay_children.size(); ++j) {
12779  if (nucname::zzzaaa(children[i]) == nucname::zzzaaa(decay_children[j])) {
12780  temp = calculate_xray_data(nucname::znum(children[i]),
12781  k_list[i]*decay_br[j].first, l_list[i]*decay_br[j].first);
12782  for (int k = 0; k < temp.size(); ++k) {
12783  if (!isnan(temp[k].second) && !isnan(temp[k].first)) {
12784  int found = 0;
12785  for (int l = 0; l < result.size(); ++l) {
12786  if (temp[k].first == result[l].first) {
12787  result[l].second = result[l].second + temp[k].second;
12788  found = 1;
12789  break;
12790  }
12791  }
12792  if (found == 0) {
12793  result.push_back(temp[k]);
12794  }
12795  }
12796  }
12797  break;
12798  }
12799  }
12800  }
12801  std::vector<double> gk_list = data_access<double, gamma>(parent, 0.0, DBL_MAX,
12802  offsetof(gamma, k_conv_e), gamma_data);
12803  std::vector<double> gl_list = data_access<double, gamma>(parent, 0.0, DBL_MAX,
12804  offsetof(gamma, l_conv_e), gamma_data);
12805  std::vector<int> gchildren = data_access<int, gamma>(parent, 0.0,
12806  DBL_MAX, offsetof(gamma, from_nuc), gamma_data);
12807  std::vector<std::pair<double, double> > decay_nrbr =
12809  for(int i = 0; i < gk_list.size(); ++i){
12810  for (int j = 0; j < decay_children.size(); ++j) {
12811  if (nucname::zzzaaa(gchildren[i]) == nucname::zzzaaa(decay_children[j])) {
12812  temp = calculate_xray_data(nucname::znum(gchildren[i]),
12813  gk_list[i]*decay_nrbr[j].first, gl_list[i]*decay_nrbr[j].first);
12814  for (int k = 0; k < temp.size(); ++k) {
12815  if (!isnan(temp[k].second) && !isnan(temp[k].first)) {
12816  int found = 0;
12817  for (int l = 0; l < result.size(); ++l) {
12818  if (temp[k].first == result[l].first) {
12819  result[l].second = result[l].second + temp[k].second;
12820  found = 1;
12821  break;
12822  }
12823  }
12824  if (found == 0) {
12825  result.push_back(temp[k]);
12826  }
12827  }
12828  }
12829  break;
12830  }
12831  }
12832  }
12833 
12834  for(int i = 0; i < result.size(); ++i)
12835  result[i].second = result[i].second * decay_c;
12836  return result;
12837 }
12838 
12839 //////////////////////////////////////////
12840 //////////// simple xs data //////////////
12841 //////////////////////////////////////////
12842 
12843 typedef struct simple_xs {
12844  int nuc;
12845  double sigma_t;
12846  double sigma_s;
12847  double sigma_e;
12848  double sigma_i;
12849  double sigma_a;
12850  double sigma_gamma;
12851  double sigma_f;
12852  double sigma_alpha;
12854  double sigma_deut;
12855  double sigma_trit;
12856  double sigma_2n;
12857  double sigma_3n;
12858  double sigma_4n;
12859 } simple_xs;
12860 
12861 std::map<std::string, std::map<int, std::map<int, double> > > pyne::simple_xs_map;
12862 
12863 // loads the simple cross section data for the specified energy band from
12864 // the nuc_data.h5 file into memory.
12865 static void _load_simple_xs_map(std::string energy) {
12866  //Check to see if the file is in HDF5 format.
12869 
12870  bool ish5 = H5Fis_hdf5(pyne::NUC_DATA_PATH.c_str());
12871  if (!ish5)
12873 
12874  using pyne::rxname::id;
12875  std::map<unsigned int, size_t> rxns;
12876  rxns[id("tot")] = offsetof(simple_xs, sigma_t);
12877  rxns[id("scat")] = offsetof(simple_xs, sigma_s);
12878  rxns[id("elas")] = offsetof(simple_xs, sigma_e);
12879  rxns[id("inel")] = offsetof(simple_xs, sigma_i);
12880  rxns[id("abs")] = offsetof(simple_xs, sigma_a);
12881  rxns[id("gamma")] = offsetof(simple_xs, sigma_gamma);
12882  rxns[id("fiss")] = offsetof(simple_xs, sigma_f);
12883  rxns[id("alpha")] = offsetof(simple_xs, sigma_alpha);
12884  rxns[id("proton")] = offsetof(simple_xs, sigma_proton);
12885  rxns[id("deut")] = offsetof(simple_xs, sigma_deut);
12886  rxns[id("trit")] = offsetof(simple_xs, sigma_trit);
12887  rxns[id("z_2n")] = offsetof(simple_xs, sigma_2n);
12888  rxns[id("z_3n")] = offsetof(simple_xs, sigma_3n);
12889  rxns[id("z_4n")] = offsetof(simple_xs, sigma_4n);
12890 
12891  // Get the HDF5 compound type (table) description
12892  hid_t desc = H5Tcreate(H5T_COMPOUND, sizeof(simple_xs));
12893  H5Tinsert(desc, "nuc", HOFFSET(simple_xs, nuc), H5T_NATIVE_INT);
12894  H5Tinsert(desc, "sigma_t", HOFFSET(simple_xs, sigma_t), H5T_NATIVE_DOUBLE);
12895  H5Tinsert(desc, "sigma_s", HOFFSET(simple_xs, sigma_s), H5T_NATIVE_DOUBLE);
12896  H5Tinsert(desc, "sigma_e", HOFFSET(simple_xs, sigma_e), H5T_NATIVE_DOUBLE);
12897  H5Tinsert(desc, "sigma_i", HOFFSET(simple_xs, sigma_i), H5T_NATIVE_DOUBLE);
12898  H5Tinsert(desc, "sigma_a", HOFFSET(simple_xs, sigma_a), H5T_NATIVE_DOUBLE);
12899  H5Tinsert(desc, "sigma_gamma", HOFFSET(simple_xs, sigma_gamma), H5T_NATIVE_DOUBLE);
12900  H5Tinsert(desc, "sigma_f", HOFFSET(simple_xs, sigma_f), H5T_NATIVE_DOUBLE);
12901  H5Tinsert(desc, "sigma_alpha", HOFFSET(simple_xs, sigma_alpha), H5T_NATIVE_DOUBLE);
12902  H5Tinsert(desc, "sigma_proton", HOFFSET(simple_xs, sigma_proton), H5T_NATIVE_DOUBLE);
12903  H5Tinsert(desc, "sigma_deut", HOFFSET(simple_xs, sigma_deut), H5T_NATIVE_DOUBLE);
12904  H5Tinsert(desc, "sigma_trit", HOFFSET(simple_xs, sigma_trit), H5T_NATIVE_DOUBLE);
12905  H5Tinsert(desc, "sigma_2n", HOFFSET(simple_xs, sigma_2n), H5T_NATIVE_DOUBLE);
12906  H5Tinsert(desc, "sigma_3n", HOFFSET(simple_xs, sigma_3n), H5T_NATIVE_DOUBLE);
12907  H5Tinsert(desc, "sigma_4n", HOFFSET(simple_xs, sigma_4n), H5T_NATIVE_DOUBLE);
12908 
12909  // Open the HDF5 file
12910  hid_t nuc_data_h5 = H5Fopen(pyne::NUC_DATA_PATH.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
12911 
12912  // build path to prober simple xs table
12913  std::string path = "/neutron/simple_xs/" + energy;
12914 
12915  // Open the data set
12916  hid_t simple_xs_set = H5Dopen2(nuc_data_h5, path.c_str(), H5P_DEFAULT);
12917  hid_t simple_xs_space = H5Dget_space(simple_xs_set);
12918  int n = H5Sget_simple_extent_npoints(simple_xs_space);
12919 
12920  // Read in the data
12921  simple_xs* array = new simple_xs[n];
12922  H5Dread(simple_xs_set, desc, H5S_ALL, H5S_ALL, H5P_DEFAULT, array);
12923 
12924  // close the nuc_data library, before doing anything stupid
12925  H5Dclose(simple_xs_set);
12926  H5Fclose(nuc_data_h5);
12927 
12928  // Ok now that we have the array of stucts, put it in the map
12929  for(int i = 0; i < n; i++) {
12930  std::map<unsigned int, size_t>::iterator it;
12931  for (it = rxns.begin(); it != rxns.end(); ++it) {
12932  double xs = *(double*)((char*)&array[i] + it->second);
12933  pyne::simple_xs_map[energy][array[i].nuc][it->first] = xs;
12934  }
12935  }
12936  delete[] array;
12937 }
12938 
12939 double pyne::simple_xs(int nuc, int rx_id, std::string energy) {
12940  std::set<std::string> energies;
12941  energies.insert("thermal");
12942  energies.insert("thermal_maxwell_ave");
12943  energies.insert("resonance_integral");
12944  energies.insert("fourteen_MeV");
12945  energies.insert("fission_spectrum_ave");
12946 
12947  if (energies.count(energy) == 0) {
12948  throw InvalidSimpleXS("Energy '" + energy +
12949  "' is not a valid simple_xs group");
12950  } else if (simple_xs_map.count(energy) == 0) {
12951  _load_simple_xs_map(energy);
12952  }
12953 
12954  if (simple_xs_map[energy].count(nuc) == 0) {
12955  throw InvalidSimpleXS(rxname::name(rx_id) +
12956  " is not a valid simple_xs nuclide");
12957  } else if (simple_xs_map[energy][nuc].count(rx_id) == 0) {
12958  throw InvalidSimpleXS(rxname::name(rx_id) +
12959  " is not a valid simple_xs reaction");
12960  }
12961 
12962  return simple_xs_map[energy][nuc][rx_id];
12963 }
12964 
12965 double pyne::simple_xs(int nuc, std::string rx, std::string energy) {
12966  return pyne::simple_xs(nucname::id(nuc), rxname::id(rx), energy);
12967 }
12968 double pyne::simple_xs(std::string nuc, int rx, std::string energy) {
12969  return pyne::simple_xs(nucname::id(nuc), rxname::id(rx), energy);
12970 }
12972  return pyne::simple_xs(nucname::id(nuc), rxname::id(rx), energy);
12973 }
12974 //
12975 // end of src/data.cpp
12976 //
12977 
12978 
12979 //
12980 // start of src/jsoncpp.cpp
12981 //
12982 /// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/).
12983 /// It is intented to be used with #include <json.h>
12984 
12985 // //////////////////////////////////////////////////////////////////////
12986 // Beginning of content of file: LICENSE
12987 // //////////////////////////////////////////////////////////////////////
12988 
12989 /*
12990 The JsonCpp library's source code, including accompanying documentation,
12991 tests and demonstration applications, are licensed under the following
12992 conditions...
12993 
12994 The author (Baptiste Lepilleur) explicitly disclaims copyright in all
12995 jurisdictions which recognize such a disclaimer. In such jurisdictions,
12996 this software is released into the Public Domain.
12997 
12998 In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
12999 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
13000 released under the terms of the MIT License (see below).
13001 
13002 In jurisdictions which recognize Public Domain property, the user of this
13003 software may choose to accept it either as 1) Public Domain, 2) under the
13004 conditions of the MIT License (see below), or 3) under the terms of dual
13005 Public Domain/MIT License conditions described here, as they choose.
13006 
13007 The MIT License is about as close to Public Domain as a license can get, and is
13008 described in clear, concise terms at:
13009 
13010  http://en.wikipedia.org/wiki/MIT_License
13011 
13012 The full text of the MIT License follows:
13013 
13014 ========================================================================
13015 Copyright (c) 2007-2010 Baptiste Lepilleur
13016 
13017 Permission is hereby granted, free of charge, to any person
13018 obtaining a copy of this software and associated documentation
13019 files (the "Software"), to deal in the Software without
13020 restriction, including without limitation the rights to use, copy,
13021 modify, merge, publish, distribute, sublicense, and/or sell copies
13022 of the Software, and to permit persons to whom the Software is
13023 furnished to do so, subject to the following conditions:
13024 
13025 The above copyright notice and this permission notice shall be
13026 included in all copies or substantial portions of the Software.
13027 
13028 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13029 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13030 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
13031 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13032 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
13033 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
13034 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
13035 SOFTWARE.
13036 ========================================================================
13037 (END LICENSE TEXT)
13038 
13039 The MIT license is compatible with both the GPL and commercial
13040 software, affording one all of the rights of Public Domain with the
13041 minor nuisance of being required to keep the above copyright notice
13042 and license text in the source code. Note also that by accepting the
13043 Public Domain "license" you can re-license your copy using whatever
13044 license you like.
13045 
13046 */
13047 
13048 // //////////////////////////////////////////////////////////////////////
13049 // End of content of file: LICENSE
13050 // //////////////////////////////////////////////////////////////////////
13051 
13052 
13053 
13054 
13055 
13056 #ifdef PYNE_IS_AMALGAMATED
13057  #if !defined(JSON_IS_AMALGAMATION)
13058  #define JSON_IS_AMALGAMATION
13059  #endif
13060 #else
13061  #include "json.h"
13062 #endif
13063 
13064 
13065 // //////////////////////////////////////////////////////////////////////
13066 // Beginning of content of file: src/lib_json/json_tool.h
13067 // //////////////////////////////////////////////////////////////////////
13068 
13069 // Copyright 2007-2010 Baptiste Lepilleur
13070 // Distributed under MIT license, or public domain if desired and
13071 // recognized in your jurisdiction.
13072 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
13073 
13074 #ifndef LIB_JSONCPP_JSON_TOOL_H_INCLUDED
13075 # define LIB_JSONCPP_JSON_TOOL_H_INCLUDED
13076 
13077 /* This header provides common string manipulation support, such as UTF-8,
13078  * portable conversion from/to string...
13079  *
13080  * It is an internal header that must not be exposed.
13081  */
13082 
13083 namespace Json {
13084 
13085 /// Converts a unicode code-point to UTF-8.
13086 static inline std::string
13087 codePointToUTF8(unsigned int cp) {
13088  std::string result;
13089 
13090  // based on description from http://en.wikipedia.org/wiki/UTF-8
13091 
13092  if (cp <= 0x7f) {
13093  result.resize(1);
13094  result[0] = static_cast<char>(cp);
13095  } else if (cp <= 0x7FF) {
13096  result.resize(2);
13097  result[1] = static_cast<char>(0x80 | (0x3f & cp));
13098  result[0] = static_cast<char>(0xC0 | (0x1f & (cp >> 6)));
13099  } else if (cp <= 0xFFFF) {
13100  result.resize(3);
13101  result[2] = static_cast<char>(0x80 | (0x3f & cp));
13102  result[1] = 0x80 | static_cast<char>((0x3f & (cp >> 6)));
13103  result[0] = 0xE0 | static_cast<char>((0xf & (cp >> 12)));
13104  } else if (cp <= 0x10FFFF) {
13105  result.resize(4);
13106  result[3] = static_cast<char>(0x80 | (0x3f & cp));
13107  result[2] = static_cast<char>(0x80 | (0x3f & (cp >> 6)));
13108  result[1] = static_cast<char>(0x80 | (0x3f & (cp >> 12)));
13109  result[0] = static_cast<char>(0xF0 | (0x7 & (cp >> 18)));
13110  }
13111 
13112  return result;
13113 }
13114 
13115 
13116 /// Returns true if ch is a control character (in range [0,32[).
13117 static inline bool
13119  return ch > 0 && ch <= 0x1F;
13120 }
13121 
13122 
13123 enum {
13124  /// Constant that specify the size of the buffer that must be passed to uintToString.
13126 };
13127 
13128 // Defines a char buffer for use with uintToString().
13130 
13131 
13132 /** Converts an unsigned integer to string.
13133  * @param value Unsigned interger to convert to string
13134  * @param current Input/Output string buffer.
13135  * Must have at least uintToStringBufferSize chars free.
13136  */
13137 static inline void
13139  char *&current ) {
13140  *--current = 0;
13141  do {
13142  *--current = char(value % 10) + '0';
13143  value /= 10;
13144  }
13145  while ( value != 0 );
13146 }
13147 
13148 } // namespace Json {
13149 
13150 #endif // LIB_JSONCPP_JSON_TOOL_H_INCLUDED
13151 
13152 // //////////////////////////////////////////////////////////////////////
13153 // End of content of file: src/lib_json/json_tool.h
13154 // //////////////////////////////////////////////////////////////////////
13155 
13156 
13157 
13158 
13159 
13160 
13161 // //////////////////////////////////////////////////////////////////////
13162 // Beginning of content of file: src/lib_json/json_reader.cpp
13163 // //////////////////////////////////////////////////////////////////////
13164 
13165 // Copyright 2007-2010 Baptiste Lepilleur
13166 // Distributed under MIT license, or public domain if desired and
13167 // recognized in your jurisdiction.
13168 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
13169 
13170 #if !defined(JSON_IS_AMALGAMATION)
13171 # include <json/reader.h>
13172 # include <json/value.h>
13173 # include "json_tool.h"
13174 #endif // if !defined(JSON_IS_AMALGAMATION)
13175 #include <utility>
13176 #include <cstdio>
13177 #include <cassert>
13178 #include <cstring>
13179 #include <iostream>
13180 #include <stdexcept>
13181 
13182 #if _MSC_VER >= 1400 // VC++ 8.0
13183 #pragma warning( disable : 4996 ) // disable warning about strdup being deprecated.
13184 #endif
13185 
13186 namespace Json {
13187 
13188 // Implementation of class Features
13189 // ////////////////////////////////
13190 
13191 Features::Features()
13192  : allowComments_( true )
13193  , strictRoot_( false ) {
13194 }
13195 
13196 
13197 Features
13199  return Features();
13200 }
13201 
13202 
13203 Features
13205  Features features;
13206  features.allowComments_ = false;
13207  features.strictRoot_ = true;
13208  return features;
13209 }
13210 
13211 // Implementation of class Reader
13212 // ////////////////////////////////
13213 
13214 
13215 static inline bool
13217  return c == c1 || c == c2 || c == c3 || c == c4;
13218 }
13219 
13220 static inline bool
13222  return c == c1 || c == c2 || c == c3 || c == c4 || c == c5;
13223 }
13224 
13225 
13226 static bool
13228  Reader::Location end ) {
13229  for ( ;begin < end; ++begin )
13230  if ( *begin == '\n' || *begin == '\r' )
13231  return true;
13232  return false;
13233 }
13234 
13235 
13236 // Class Reader
13237 // //////////////////////////////////////////////////////////////////
13238 
13240  : features_( Features::all() ) {
13241 }
13242 
13243 
13244 Reader::Reader( const Features &features )
13245  : features_( features ) {
13246 }
13247 
13248 
13249 bool
13250 Reader::parse( const std::string &document,
13251  Value &root,
13252  bool collectComments ) {
13253  document_ = document;
13254  const char *begin = document_.c_str();
13255  const char *end = begin + document_.length();
13256  return parse( begin, end, root, collectComments );
13257 }
13258 
13259 
13260 bool
13261 Reader::parse( std::istream& sin,
13262  Value &root,
13263  bool collectComments ) {
13264  //std::istream_iterator<char> begin(sin);
13265  //std::istream_iterator<char> end;
13266  // Those would allow streamed input from a file, if parse() were a
13267  // template function.
13268 
13269  // Since std::string is reference-counted, this at least does not
13270  // create an extra copy.
13271  std::string doc;
13272  std::getline(sin, doc, (char)EOF);
13273  return parse( doc, root, collectComments );
13274 }
13275 
13276 bool
13277 Reader::parse( const char *beginDoc, const char *endDoc,
13278  Value &root,
13279  bool collectComments ) {
13280  if ( !features_.allowComments_ ) {
13281  collectComments = false;
13282  }
13283 
13284  begin_ = beginDoc;
13285  end_ = endDoc;
13286  collectComments_ = collectComments;
13287  current_ = begin_;
13288  lastValueEnd_ = 0;
13289  lastValue_ = 0;
13290  commentsBefore_ = "";
13291  errors_.clear();
13292  while ( !nodes_.empty() )
13293  nodes_.pop();
13294  nodes_.push( &root );
13295 
13296  bool successful = readValue();
13297  Token token;
13298  skipCommentTokens( token );
13299  if ( collectComments_ && !commentsBefore_.empty() )
13300  root.setComment( commentsBefore_, commentAfter );
13301  if ( features_.strictRoot_ ) {
13302  if ( !root.isArray() && !root.isObject() ) {
13303  // Set error location to start of doc, ideally should be first token found in doc
13304  token.type_ = tokenError;
13305  token.start_ = beginDoc;
13306  token.end_ = endDoc;
13307  addError( "A valid JSON document must be either an array or an object value.",
13308  token );
13309  return false;
13310  }
13311  }
13312  return successful;
13313 }
13314 
13315 
13316 bool
13317 Reader::readValue() {
13318  Token token;
13319  skipCommentTokens( token );
13320  bool successful = true;
13321 
13322  if ( collectComments_ && !commentsBefore_.empty() ) {
13323  currentValue().setComment( commentsBefore_, commentBefore );
13324  commentsBefore_ = "";
13325  }
13326 
13327 
13328  switch ( token.type_ ) {
13329  case tokenObjectBegin:
13330  successful = readObject( token );
13331  break;
13332  case tokenArrayBegin:
13333  successful = readArray( token );
13334  break;
13335  case tokenNumber:
13336  successful = decodeNumber( token );
13337  break;
13338  case tokenString:
13339  successful = decodeString( token );
13340  break;
13341  case tokenTrue:
13342  currentValue() = true;
13343  break;
13344  case tokenFalse:
13345  currentValue() = false;
13346  break;
13347  case tokenNull:
13348  currentValue() = Value();
13349  break;
13350  default:
13351  return addError( "Syntax error: value, object or array expected.", token );
13352  }
13353 
13354  if ( collectComments_ ) {
13355  lastValueEnd_ = current_;
13356  lastValue_ = &currentValue();
13357  }
13358 
13359  return successful;
13360 }
13361 
13362 
13363 void
13364 Reader::skipCommentTokens( Token &token ) {
13365  if ( features_.allowComments_ ) {
13366  do {
13367  readToken( token );
13368  }
13369  while ( token.type_ == tokenComment );
13370  } else {
13371  readToken( token );
13372  }
13373 }
13374 
13375 
13376 bool
13377 Reader::expectToken( TokenType type, Token &token, const char *message ) {
13378  readToken( token );
13379  if ( token.type_ != type )
13380  return addError( message, token );
13381  return true;
13382 }
13383 
13384 
13385 bool
13386 Reader::readToken( Token &token ) {
13387  skipSpaces();
13388  token.start_ = current_;
13389  Char c = getNextChar();
13390  bool ok = true;
13391  switch ( c ) {
13392  case '{':
13393  token.type_ = tokenObjectBegin;
13394  break;
13395  case '}':
13396  token.type_ = tokenObjectEnd;
13397  break;
13398  case '[':
13399  token.type_ = tokenArrayBegin;
13400  break;
13401  case ']':
13402  token.type_ = tokenArrayEnd;
13403  break;
13404  case '"':
13405  token.type_ = tokenString;
13406  ok = readString();
13407  break;
13408  case '/':
13409  token.type_ = tokenComment;
13410  ok = readComment();
13411  break;
13412  case '0':
13413  case '1':
13414  case '2':
13415  case '3':
13416  case '4':
13417  case '5':
13418  case '6':
13419  case '7':
13420  case '8':
13421  case '9':
13422  case '-':
13423  token.type_ = tokenNumber;
13424  readNumber();
13425  break;
13426  case 't':
13427  token.type_ = tokenTrue;
13428  ok = match( "rue", 3 );
13429  break;
13430  case 'f':
13431  token.type_ = tokenFalse;
13432  ok = match( "alse", 4 );
13433  break;
13434  case 'n':
13435  token.type_ = tokenNull;
13436  ok = match( "ull", 3 );
13437  break;
13438  case ',':
13439  token.type_ = tokenArraySeparator;
13440  break;
13441  case ':':
13442  token.type_ = tokenMemberSeparator;
13443  break;
13444  case 0:
13445  token.type_ = tokenEndOfStream;
13446  break;
13447  default:
13448  ok = false;
13449  break;
13450  }
13451  if ( !ok )
13452  token.type_ = tokenError;
13453  token.end_ = current_;
13454  return true;
13455 }
13456 
13457 
13458 void
13459 Reader::skipSpaces() {
13460  while ( current_ != end_ ) {
13461  Char c = *current_;
13462  if ( c == ' ' || c == '\t' || c == '\r' || c == '\n' )
13463  ++current_;
13464  else
13465  break;
13466  }
13467 }
13468 
13469 
13470 bool
13471 Reader::match( Location pattern,
13472  int patternLength ) {
13473  if ( end_ - current_ < patternLength )
13474  return false;
13475  int index = patternLength;
13476  while ( index-- )
13477  if ( current_[index] != pattern[index] )
13478  return false;
13479  current_ += patternLength;
13480  return true;
13481 }
13482 
13483 
13484 bool
13485 Reader::readComment() {
13486  Location commentBegin = current_ - 1;
13487  Char c = getNextChar();
13488  bool successful = false;
13489  if ( c == '*' )
13490  successful = readCStyleComment();
13491  else if ( c == '/' )
13492  successful = readCppStyleComment();
13493  if ( !successful )
13494  return false;
13495 
13496  if ( collectComments_ ) {
13497  CommentPlacement placement = commentBefore;
13498  if ( lastValueEnd_ && !containsNewLine( lastValueEnd_, commentBegin ) )
13499  {
13500  if ( c != '*' || !containsNewLine( commentBegin, current_ ) )
13501  placement = commentAfterOnSameLine;
13502  }
13503 
13504  addComment( commentBegin, current_, placement );
13505  }
13506  return true;
13507 }
13508 
13509 
13510 void
13511 Reader::addComment( Location begin,
13512  Location end,
13513  CommentPlacement placement ) {
13514  assert( collectComments_ );
13515  if ( placement == commentAfterOnSameLine )
13516  {
13517  assert( lastValue_ != 0 );
13518  lastValue_->setComment( std::string( begin, end ), placement );
13519  } else {
13520  if ( !commentsBefore_.empty() )
13521  commentsBefore_ += "\n";
13522  commentsBefore_ += std::string( begin, end );
13523  }
13524 }
13525 
13526 
13527 bool
13528 Reader::readCStyleComment() {
13529  while ( current_ != end_ ) {
13530  Char c = getNextChar();
13531  if ( c == '*' && *current_ == '/' )
13532  break;
13533  }
13534  return getNextChar() == '/';
13535 }
13536 
13537 
13538 bool
13539 Reader::readCppStyleComment() {
13540  while ( current_ != end_ ) {
13541  Char c = getNextChar();
13542  if ( c == '\r' || c == '\n' )
13543  break;
13544  }
13545  return true;
13546 }
13547 
13548 
13549 void
13550 Reader::readNumber() {
13551  while ( current_ != end_ ) {
13552  if ( !(*current_ >= '0' && *current_ <= '9') &&
13553  !in( *current_, '.', 'e', 'E', '+', '-' ) )
13554  break;
13555  ++current_;
13556  }
13557 }
13558 
13559 bool
13560 Reader::readString() {
13561  Char c = 0;
13562  while ( current_ != end_ ) {
13563  c = getNextChar();
13564  if ( c == '\\' )
13565  getNextChar();
13566  else if ( c == '"' )
13567  break;
13568  }
13569  return c == '"';
13570 }
13571 
13572 
13573 bool
13574 Reader::readObject( Token &/*tokenStart*/ ) {
13575  Token tokenName;
13576  std::string name;
13577  currentValue() = Value( objectValue );
13578  while ( readToken( tokenName ) ) {
13579  bool initialTokenOk = true;
13580  while ( tokenName.type_ == tokenComment && initialTokenOk )
13581  initialTokenOk = readToken( tokenName );
13582  if ( !initialTokenOk )
13583  break;
13584  if ( tokenName.type_ == tokenObjectEnd && name.empty() ) // empty object
13585  return true;
13586  if ( tokenName.type_ != tokenString )
13587  break;
13588 
13589  name = "";
13590  if ( !decodeString( tokenName, name ) )
13591  return recoverFromError( tokenObjectEnd );
13592 
13593  Token colon;
13594  if ( !readToken( colon ) || colon.type_ != tokenMemberSeparator ) {
13595  return addErrorAndRecover( "Missing ':' after object member name",
13596  colon,
13597  tokenObjectEnd );
13598  }
13599  Value &value = currentValue()[ name ];
13600  nodes_.push( &value );
13601  bool ok = readValue();
13602  nodes_.pop();
13603  if ( !ok ) // error already set
13604  return recoverFromError( tokenObjectEnd );
13605 
13606  Token comma;
13607  if ( !readToken( comma )
13608  || ( comma.type_ != tokenObjectEnd &&
13609  comma.type_ != tokenArraySeparator &&
13610  comma.type_ != tokenComment ) ) {
13611  return addErrorAndRecover( "Missing ',' or '}' in object declaration",
13612  comma,
13613  tokenObjectEnd );
13614  }
13615  bool finalizeTokenOk = true;
13616  while ( comma.type_ == tokenComment &&
13617  finalizeTokenOk )
13618  finalizeTokenOk = readToken( comma );
13619  if ( comma.type_ == tokenObjectEnd )
13620  return true;
13621  }
13622  return addErrorAndRecover( "Missing '}' or object member name",
13623  tokenName,
13624  tokenObjectEnd );
13625 }
13626 
13627 
13628 bool
13629 Reader::readArray( Token &/*tokenStart*/ ) {
13630  currentValue() = Value( arrayValue );
13631  skipSpaces();
13632  if ( *current_ == ']' ) { // empty array
13633  Token endArray;
13634  readToken( endArray );
13635  return true;
13636  }
13637  int index = 0;
13638  for (;;) {
13639  Value &value = currentValue()[ index++ ];
13640  nodes_.push( &value );
13641  bool ok = readValue();
13642  nodes_.pop();
13643  if ( !ok ) // error already set
13644  return recoverFromError( tokenArrayEnd );
13645 
13646  Token token;
13647  // Accept Comment after last item in the array.
13648  ok = readToken( token );
13649  while ( token.type_ == tokenComment && ok ) {
13650  ok = readToken( token );
13651  }
13652  bool badTokenType = ( token.type_ != tokenArraySeparator &&
13653  token.type_ != tokenArrayEnd );
13654  if ( !ok || badTokenType ) {
13655  return addErrorAndRecover( "Missing ',' or ']' in array declaration",
13656  token,
13657  tokenArrayEnd );
13658  }
13659  if ( token.type_ == tokenArrayEnd )
13660  break;
13661  }
13662  return true;
13663 }
13664 
13665 
13666 bool
13667 Reader::decodeNumber( Token &token ) {
13668  bool isDouble = false;
13669  for ( Location inspect = token.start_; inspect != token.end_; ++inspect )
13670  {
13671  isDouble = isDouble
13672  || in( *inspect, '.', 'e', 'E', '+' )
13673  || ( *inspect == '-' && inspect != token.start_ );
13674  }
13675  if ( isDouble )
13676  return decodeDouble( token );
13677  // Attempts to parse the number as an integer. If the number is
13678  // larger than the maximum supported value of an integer then
13679  // we decode the number as a double.
13680  Location current = token.start_;
13681  bool isNegative = *current == '-';
13682  if ( isNegative )
13683  ++current;
13684  Value::LargestUInt maxIntegerValue = isNegative ? Value::LargestUInt(-Value::minLargestInt)
13686  Value::LargestUInt threshold = maxIntegerValue / 10;
13687  Value::UInt lastDigitThreshold = Value::UInt( maxIntegerValue % 10 );
13688  assert( lastDigitThreshold >=0 && lastDigitThreshold <= 9 );
13689  Value::LargestUInt value = 0;
13690  while ( current < token.end_ ) {
13691  Char c = *current++;
13692  if ( c < '0' || c > '9' )
13693  return addError( "'" + std::string( token.start_, token.end_ ) + "' is not a number.", token );
13694  Value::UInt digit(c - '0');
13695  if ( value >= threshold ) {
13696  // If the current digit is not the last one, or if it is
13697  // greater than the last digit of the maximum integer value,
13698  // the parse the number as a double.
13699  if ( current != token.end_ || digit > lastDigitThreshold ) {
13700  return decodeDouble( token );
13701  }
13702  }
13703  value = value * 10 + digit;
13704  }
13705  if ( isNegative )
13706  currentValue() = -Value::LargestInt( value );
13707  else if ( value <= Value::LargestUInt(Value::maxInt) )
13708  currentValue() = Value::LargestInt( value );
13709  else
13710  currentValue() = value;
13711  return true;
13712 }
13713 
13714 
13715 bool
13716 Reader::decodeDouble( Token &token ) {
13717  double value = 0;
13718  const int bufferSize = 32;
13719  int count;
13720  int length = int(token.end_ - token.start_);
13721  if ( length <= bufferSize ) {
13722  Char buffer[bufferSize+1];
13723  memcpy( buffer, token.start_, length );
13724  buffer[length] = 0;
13725  count = sscanf( buffer, "%lf", &value );
13726  } else {
13727  std::string buffer( token.start_, token.end_ );
13728  count = sscanf( buffer.c_str(), "%lf", &value );
13729  }
13730 
13731  if ( count != 1 )
13732  return addError( "'" + std::string( token.start_, token.end_ ) + "' is not a number.", token );
13733  currentValue() = value;
13734  return true;
13735 }
13736 
13737 
13738 bool
13739 Reader::decodeString( Token &token ) {
13740  std::string decoded;
13741  if ( !decodeString( token, decoded ) )
13742  return false;
13743  currentValue() = decoded;
13744  return true;
13745 }
13746 
13747 
13748 bool
13749 Reader::decodeString( Token &token, std::string &decoded ) {
13750  decoded.reserve( token.end_ - token.start_ - 2 );
13751  Location current = token.start_ + 1; // skip '"'
13752  Location end = token.end_ - 1; // do not include '"'
13753  while ( current != end ) {
13754  Char c = *current++;
13755  if ( c == '"' )
13756  break;
13757  else if ( c == '\\' ) {
13758  if ( current == end )
13759  return addError( "Empty escape sequence in string", token, current );
13760  Char escape = *current++;
13761  switch ( escape ) {
13762  case '"': decoded += '"'; break;
13763  case '/': decoded += '/'; break;
13764  case '\\': decoded += '\\'; break;
13765  case 'b': decoded += '\b'; break;
13766  case 'f': decoded += '\f'; break;
13767  case 'n': decoded += '\n'; break;
13768  case 'r': decoded += '\r'; break;
13769  case 't': decoded += '\t'; break;
13770  case 'u': {
13771  unsigned int unicode;
13772  if ( !decodeUnicodeCodePoint( token, current, end, unicode ) )
13773  return false;
13774  decoded += codePointToUTF8(unicode);
13775  }
13776  break;
13777  default:
13778  return addError( "Bad escape sequence in string", token, current );
13779  }
13780  }
13781  else {
13782  decoded += c;
13783  }
13784  }
13785  return true;
13786 }
13787 
13788 bool
13789 Reader::decodeUnicodeCodePoint( Token &token,
13790  Location &current,
13791  Location end,
13792  unsigned int &unicode ) {
13793 
13794  if ( !decodeUnicodeEscapeSequence( token, current, end, unicode ) )
13795  return false;
13796  if (unicode >= 0xD800 && unicode <= 0xDBFF) {
13797  // surrogate pairs
13798  if (end - current < 6)
13799  return addError( "additional six characters expected to parse unicode surrogate pair.", token, current );
13800  unsigned int surrogatePair;
13801  if (*(current++) == '\\' && *(current++)== 'u') {
13802  if (decodeUnicodeEscapeSequence( token, current, end, surrogatePair )) {
13803  unicode = 0x10000 + ((unicode & 0x3FF) << 10) + (surrogatePair & 0x3FF);
13804  } else
13805  return false;
13806  } else
13807  return addError( "expecting another \\u token to begin the second half of a unicode surrogate pair", token, current );
13808  }
13809  return true;
13810 }
13811 
13812 bool
13813 Reader::decodeUnicodeEscapeSequence( Token &token,
13814  Location &current,
13815  Location end,
13816  unsigned int &unicode ) {
13817  if ( end - current < 4 )
13818  return addError( "Bad unicode escape sequence in string: four digits expected.", token, current );
13819  unicode = 0;
13820  for ( int index =0; index < 4; ++index ) {
13821  Char c = *current++;
13822  unicode *= 16;
13823  if ( c >= '0' && c <= '9' )
13824  unicode += c - '0';
13825  else if ( c >= 'a' && c <= 'f' )
13826  unicode += c - 'a' + 10;
13827  else if ( c >= 'A' && c <= 'F' )
13828  unicode += c - 'A' + 10;
13829  else
13830  return addError( "Bad unicode escape sequence in string: hexadecimal digit expected.", token, current );
13831  }
13832  return true;
13833 }
13834 
13835 
13836 bool
13837 Reader::addError( const std::string &message,
13838  Token &token,
13839  Location extra ) {
13840  ErrorInfo info;
13841  info.token_ = token;
13842  info.message_ = message;
13843  info.extra_ = extra;
13844  errors_.push_back( info );
13845  return false;
13846 }
13847 
13848 
13849 bool
13850 Reader::recoverFromError( TokenType skipUntilToken ) {
13851  int errorCount = int(errors_.size());
13852  Token skip;
13853  for (;;) {
13854  if ( !readToken(skip) )
13855  errors_.resize( errorCount ); // discard errors caused by recovery
13856  if ( skip.type_ == skipUntilToken || skip.type_ == tokenEndOfStream )
13857  break;
13858  }
13859  errors_.resize( errorCount );
13860  return false;
13861 }
13862 
13863 
13864 bool
13865 Reader::addErrorAndRecover( const std::string &message,
13866  Token &token,
13867  TokenType skipUntilToken ) {
13868  addError( message, token );
13869  return recoverFromError( skipUntilToken );
13870 }
13871 
13872 
13873 Value &
13874 Reader::currentValue() {
13875  return *(nodes_.top());
13876 }
13877 
13878 
13879 Reader::Char
13880 Reader::getNextChar() {
13881  if ( current_ == end_ )
13882  return 0;
13883  return *current_++;
13884 }
13885 
13886 
13887 void
13888 Reader::getLocationLineAndColumn( Location location,
13889  int &line,
13890  int &column ) const {
13891  Location current = begin_;
13892  Location lastLineStart = current;
13893  line = 0;
13894  while ( current < location && current != end_ ) {
13895  Char c = *current++;
13896  if ( c == '\r' ) {
13897  if ( *current == '\n' )
13898  ++current;
13899  lastLineStart = current;
13900  ++line;
13901  } else if ( c == '\n' ) {
13902  lastLineStart = current;
13903  ++line;
13904  }
13905  }
13906  // column & line start at 1
13907  column = int(location - lastLineStart) + 1;
13908  ++line;
13909 }
13910 
13911 
13913 Reader::getLocationLineAndColumn( Location location ) const {
13914  int line, column;
13915  getLocationLineAndColumn( location, line, column );
13916  char buffer[18+16+16+1];
13917  sprintf( buffer, "Line %d, Column %d", line, column );
13918  return buffer;
13919 }
13920 
13921 
13922 // Deprecated. Preserved for backward compatibility
13923 std::string
13925  return getFormattedErrorMessages();
13926 }
13927 
13928 
13929 std::string
13931  std::string formattedMessage;
13932  for ( Errors::const_iterator itError = errors_.begin();
13933  itError != errors_.end();
13934  ++itError ) {
13935  const ErrorInfo &error = *itError;
13936  formattedMessage += "* " + getLocationLineAndColumn( error.token_.start_ ) + "\n";
13937  formattedMessage += " " + error.message_ + "\n";
13938  if ( error.extra_ )
13939  formattedMessage += "See " + getLocationLineAndColumn( error.extra_ ) + " for detail.\n";
13940  }
13941  return formattedMessage;
13942 }
13943 
13944 
13945 std::istream& operator>>( std::istream &sin, Value &root ) {
13946  Json::Reader reader;
13947  bool ok = reader.parse(sin, root, true);
13948  //JSON_ASSERT( ok );
13949  if (!ok) throw std::runtime_error(reader.getFormattedErrorMessages());
13950  return sin;
13951 }
13952 
13953 
13954 } // namespace Json
13955 
13956 // //////////////////////////////////////////////////////////////////////
13957 // End of content of file: src/lib_json/json_reader.cpp
13958 // //////////////////////////////////////////////////////////////////////
13959 
13960 
13961 
13962 
13963 
13964 
13965 // //////////////////////////////////////////////////////////////////////
13966 // Beginning of content of file: src/lib_json/json_batchallocator.h
13967 // //////////////////////////////////////////////////////////////////////
13968 
13969 // Copyright 2007-2010 Baptiste Lepilleur
13970 // Distributed under MIT license, or public domain if desired and
13971 // recognized in your jurisdiction.
13972 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
13973 
13974 #ifndef JSONCPP_BATCHALLOCATOR_H_INCLUDED
13975 # define JSONCPP_BATCHALLOCATOR_H_INCLUDED
13976 
13977 # include <stdlib.h>
13978 # include <assert.h>
13979 
13980 # ifndef JSONCPP_DOC_EXCLUDE_IMPLEMENTATION
13981 
13982 namespace Json {
13983 
13984 /* Fast memory allocator.
13985  *
13986  * This memory allocator allocates memory for a batch of object (specified by
13987  * the page size, the number of object in each page).
13988  *
13989  * It does not allow the destruction of a single object. All the allocated objects
13990  * can be destroyed at once. The memory can be either released or reused for future
13991  * allocation.
13992  *
13993  * The in-place new operator must be used to construct the object using the pointer
13994  * returned by allocate.
13995  */
13996 template<typename AllocatedType
13997  ,const unsigned int objectPerAllocation>
13999 public:
14000  typedef AllocatedType Type;
14001 
14002  BatchAllocator( unsigned int objectsPerPage = 255 )
14003  : freeHead_( 0 )
14004  , objectsPerPage_( objectsPerPage ) {
14005 // printf( "Size: %d => %s\n", sizeof(AllocatedType), typeid(AllocatedType).name() );
14006  assert( sizeof(AllocatedType) * objectPerAllocation >= sizeof(AllocatedType *) ); // We must be able to store a slist in the object free space.
14007  assert( objectsPerPage >= 16 );
14008  batches_ = allocateBatch( 0 ); // allocated a dummy page
14009  currentBatch_ = batches_;
14010  }
14011 
14013  for ( BatchInfo *batch = batches_; batch; ) {
14014  BatchInfo *nextBatch = batch->next_;
14015  free( batch );
14016  batch = nextBatch;
14017  }
14018  }
14019 
14020  /// allocate space for an array of objectPerAllocation object.
14021  /// @warning it is the responsability of the caller to call objects constructors.
14022  AllocatedType *allocate() {
14023  if ( freeHead_ ) { // returns node from free list.
14024  AllocatedType *object = freeHead_;
14025  freeHead_ = *(AllocatedType **)object;
14026  return object;
14027  }
14028  if ( currentBatch_->used_ == currentBatch_->end_ ) {
14029  currentBatch_ = currentBatch_->next_;
14030  while ( currentBatch_ && currentBatch_->used_ == currentBatch_->end_ )
14031  currentBatch_ = currentBatch_->next_;
14032 
14033  if ( !currentBatch_ ) { // no free batch found, allocate a new one
14034  currentBatch_ = allocateBatch( objectsPerPage_ );
14035  currentBatch_->next_ = batches_; // insert at the head of the list
14036  batches_ = currentBatch_;
14037  }
14038  }
14039  AllocatedType *allocated = currentBatch_->used_;
14040  currentBatch_->used_ += objectPerAllocation;
14041  return allocated;
14042  }
14043 
14044  /// Release the object.
14045  /// @warning it is the responsability of the caller to actually destruct the object.
14046  void release( AllocatedType *object ) {
14047  assert( object != 0 );
14048  *(AllocatedType **)object = freeHead_;
14049  freeHead_ = object;
14050  }
14051 
14052 private:
14053  struct BatchInfo {
14054  BatchInfo *next_;
14055  AllocatedType *used_;
14056  AllocatedType *end_;
14057  AllocatedType buffer_[objectPerAllocation];
14058  };
14059 
14060  // disabled copy constructor and assignement operator.
14061  BatchAllocator( const BatchAllocator & );
14062  void operator =( const BatchAllocator &);
14063 
14064  static BatchInfo *allocateBatch( unsigned int objectsPerPage ) {
14065  const unsigned int mallocSize = sizeof(BatchInfo) - sizeof(AllocatedType)* objectPerAllocation
14066  + sizeof(AllocatedType) * objectPerAllocation * objectsPerPage;
14067  BatchInfo *batch = static_cast<BatchInfo*>( malloc( mallocSize ) );
14068  batch->next_ = 0;
14069  batch->used_ = batch->buffer_;
14070  batch->end_ = batch->buffer_ + objectsPerPage;
14071  return batch;
14072  }
14073 
14074  BatchInfo *batches_;
14075  BatchInfo *currentBatch_;
14076  /// Head of a single linked list within the allocated space of freeed object
14077  AllocatedType *freeHead_;
14078  unsigned int objectsPerPage_;
14079 };
14080 
14081 
14082 } // namespace Json
14083 
14084 # endif // ifndef JSONCPP_DOC_INCLUDE_IMPLEMENTATION
14085 
14086 #endif // JSONCPP_BATCHALLOCATOR_H_INCLUDED
14087 
14088 
14089 // //////////////////////////////////////////////////////////////////////
14090 // End of content of file: src/lib_json/json_batchallocator.h
14091 // //////////////////////////////////////////////////////////////////////
14092 
14093 
14094 
14095 
14096 
14097 
14098 // //////////////////////////////////////////////////////////////////////
14099 // Beginning of content of file: src/lib_json/json_valueiterator.inl
14100 // //////////////////////////////////////////////////////////////////////
14101 
14102 // Copyright 2007-2010 Baptiste Lepilleur
14103 // Distributed under MIT license, or public domain if desired and
14104 // recognized in your jurisdiction.
14105 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
14106 
14107 // included by json_value.cpp
14108 
14109 namespace Json {
14110 
14111 // //////////////////////////////////////////////////////////////////
14112 // //////////////////////////////////////////////////////////////////
14113 // //////////////////////////////////////////////////////////////////
14114 // class ValueIteratorBase
14115 // //////////////////////////////////////////////////////////////////
14116 // //////////////////////////////////////////////////////////////////
14117 // //////////////////////////////////////////////////////////////////
14118 
14120 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14121  : current_()
14122  , isNull_( true ) {
14123 }
14124 #else
14125  : isArray_( true )
14126  , isNull_( true ) {
14127  iterator_.array_ = ValueInternalArray::IteratorState();
14128 }
14129 #endif
14130 
14131 
14132 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14133 ValueIteratorBase::ValueIteratorBase( const Value::ObjectValues::iterator &current )
14134  : current_( current )
14135  , isNull_( false ) {
14136 }
14137 #else
14138 ValueIteratorBase::ValueIteratorBase( const ValueInternalArray::IteratorState &state )
14139  : isArray_( true ) {
14140  iterator_.array_ = state;
14141 }
14142 
14143 
14144 ValueIteratorBase::ValueIteratorBase( const ValueInternalMap::IteratorState &state )
14145  : isArray_( false ) {
14146  iterator_.map_ = state;
14147 }
14148 #endif
14149 
14150 Value &
14152 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14153  return current_->second;
14154 #else
14155  if ( isArray_ )
14156  return ValueInternalArray::dereference( iterator_.array_ );
14157  return ValueInternalMap::value( iterator_.map_ );
14158 #endif
14159 }
14160 
14161 
14162 void
14164 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14165  ++current_;
14166 #else
14167  if ( isArray_ )
14168  ValueInternalArray::increment( iterator_.array_ );
14169  ValueInternalMap::increment( iterator_.map_ );
14170 #endif
14171 }
14172 
14173 
14174 void
14176 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14177  --current_;
14178 #else
14179  if ( isArray_ )
14180  ValueInternalArray::decrement( iterator_.array_ );
14181  ValueInternalMap::decrement( iterator_.map_ );
14182 #endif
14183 }
14184 
14185 
14188 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14189 # ifdef JSON_USE_CPPTL_SMALLMAP
14190  return current_ - other.current_;
14191 # else
14192  // Iterator for null value are initialized using the default
14193  // constructor, which initialize current_ to the default
14194  // std::map::iterator. As begin() and end() are two instance
14195  // of the default std::map::iterator, they can not be compared.
14196  // To allow this, we handle this comparison specifically.
14197  if ( isNull_ && other.isNull_ ) {
14198  return 0;
14199  }
14200 
14201 
14202  // Usage of std::distance is not portable (does not compile with Sun Studio 12 RogueWave STL,
14203  // which is the one used by default).
14204  // Using a portable hand-made version for non random iterator instead:
14205  // return difference_type( std::distance( current_, other.current_ ) );
14206  difference_type myDistance = 0;
14207  for ( Value::ObjectValues::iterator it = current_; it != other.current_; ++it ) {
14208  ++myDistance;
14209  }
14210  return myDistance;
14211 # endif
14212 #else
14213  if ( isArray_ )
14214  return ValueInternalArray::distance( iterator_.array_, other.iterator_.array_ );
14215  return ValueInternalMap::distance( iterator_.map_, other.iterator_.map_ );
14216 #endif
14217 }
14218 
14219 
14220 bool
14221 ValueIteratorBase::isEqual( const SelfType &other ) const {
14222 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14223  if ( isNull_ ) {
14224  return other.isNull_;
14225  }
14226  return current_ == other.current_;
14227 #else
14228  if ( isArray_ )
14229  return ValueInternalArray::equals( iterator_.array_, other.iterator_.array_ );
14230  return ValueInternalMap::equals( iterator_.map_, other.iterator_.map_ );
14231 #endif
14232 }
14233 
14234 
14235 void
14237 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14238  current_ = other.current_;
14239 #else
14240  if ( isArray_ )
14241  iterator_.array_ = other.iterator_.array_;
14242  iterator_.map_ = other.iterator_.map_;
14243 #endif
14244 }
14245 
14246 
14247 Value
14249 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14250  const Value::CZString czstring = (*current_).first;
14251  if ( czstring.c_str() ) {
14252  if ( czstring.isStaticString() )
14253  return Value( StaticString( czstring.c_str() ) );
14254  return Value( czstring.c_str() );
14255  }
14256  return Value( czstring.index() );
14257 #else
14258  if ( isArray_ )
14259  return Value( ValueInternalArray::indexOf( iterator_.array_ ) );
14260  bool isStatic;
14261  const char *memberName = ValueInternalMap::key( iterator_.map_, isStatic );
14262  if ( isStatic )
14263  return Value( StaticString( memberName ) );
14264  return Value( memberName );
14265 #endif
14266 }
14267 
14268 
14269 UInt
14271 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14272  const Value::CZString czstring = (*current_).first;
14273  if ( !czstring.c_str() )
14274  return czstring.index();
14275  return Value::UInt( -1 );
14276 #else
14277  if ( isArray_ )
14278  return Value::UInt( ValueInternalArray::indexOf( iterator_.array_ ) );
14279  return Value::UInt( -1 );
14280 #endif
14281 }
14282 
14283 
14284 const char *
14286 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14287  const char *name = (*current_).first.c_str();
14288  return name ? name : "";
14289 #else
14290  if ( !isArray_ )
14291  return ValueInternalMap::key( iterator_.map_ );
14292  return "";
14293 #endif
14294 }
14295 
14296 
14297 // //////////////////////////////////////////////////////////////////
14298 // //////////////////////////////////////////////////////////////////
14299 // //////////////////////////////////////////////////////////////////
14300 // class ValueConstIterator
14301 // //////////////////////////////////////////////////////////////////
14302 // //////////////////////////////////////////////////////////////////
14303 // //////////////////////////////////////////////////////////////////
14304 
14306 }
14307 
14308 
14309 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14310 ValueConstIterator::ValueConstIterator( const Value::ObjectValues::iterator &current )
14311  : ValueIteratorBase( current ) {
14312 }
14313 #else
14314 ValueConstIterator::ValueConstIterator( const ValueInternalArray::IteratorState &state )
14315  : ValueIteratorBase( state ) {
14316 }
14317 
14318 ValueConstIterator::ValueConstIterator( const ValueInternalMap::IteratorState &state )
14319  : ValueIteratorBase( state ) {
14320 }
14321 #endif
14322 
14325  copy( other );
14326  return *this;
14327 }
14328 
14329 
14330 // //////////////////////////////////////////////////////////////////
14331 // //////////////////////////////////////////////////////////////////
14332 // //////////////////////////////////////////////////////////////////
14333 // class ValueIterator
14334 // //////////////////////////////////////////////////////////////////
14335 // //////////////////////////////////////////////////////////////////
14336 // //////////////////////////////////////////////////////////////////
14337 
14339 }
14340 
14341 
14342 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14343 ValueIterator::ValueIterator( const Value::ObjectValues::iterator &current )
14344  : ValueIteratorBase( current ) {
14345 }
14346 #else
14347 ValueIterator::ValueIterator( const ValueInternalArray::IteratorState &state )
14348  : ValueIteratorBase( state ) {
14349 }
14350 
14351 ValueIterator::ValueIterator( const ValueInternalMap::IteratorState &state )
14352  : ValueIteratorBase( state ) {
14353 }
14354 #endif
14355 
14357  : ValueIteratorBase( other ) {
14358 }
14359 
14361  : ValueIteratorBase( other ) {
14362 }
14363 
14364 ValueIterator &
14366  copy( other );
14367  return *this;
14368 }
14369 
14370 } // namespace Json
14371 
14372 // //////////////////////////////////////////////////////////////////////
14373 // End of content of file: src/lib_json/json_valueiterator.inl
14374 // //////////////////////////////////////////////////////////////////////
14375 
14376 
14377 
14378 
14379 
14380 
14381 // //////////////////////////////////////////////////////////////////////
14382 // Beginning of content of file: src/lib_json/json_value.cpp
14383 // //////////////////////////////////////////////////////////////////////
14384 
14385 // Copyright 2007-2010 Baptiste Lepilleur
14386 // Distributed under MIT license, or public domain if desired and
14387 // recognized in your jurisdiction.
14388 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
14389 
14390 #if !defined(JSON_IS_AMALGAMATION)
14391 # include <json/value.h>
14392 # include <json/writer.h>
14393 # ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
14394 # include "json_batchallocator.h"
14395 # endif // #ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
14396 #endif // if !defined(JSON_IS_AMALGAMATION)
14397 #include <iostream>
14398 #include <utility>
14399 #include <stdexcept>
14400 #include <cstring>
14401 #include <cassert>
14402 #ifdef JSON_USE_CPPTL
14403 # include <cpptl/conststring.h>
14404 #endif
14405 #include <cstddef> // size_t
14406 
14407 #define JSON_ASSERT_UNREACHABLE assert( false )
14408 #define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
14409 #define JSON_FAIL_MESSAGE( message ) throw std::runtime_error( message );
14410 #define JSON_ASSERT_MESSAGE( condition, message ) if (!( condition )) JSON_FAIL_MESSAGE( message )
14411 
14412 namespace Json {
14413 
14414 const Value Value::null;
14415 const Int Value::minInt = Int( ~(UInt(-1)/2) );
14416 const Int Value::maxInt = Int( UInt(-1)/2 );
14417 const UInt Value::maxUInt = UInt(-1);
14418 const Int64 Value::minInt64 = Int64( ~(UInt64(-1)/2) );
14419 const Int64 Value::maxInt64 = Int64( UInt64(-1)/2 );
14420 const UInt64 Value::maxUInt64 = UInt64(-1);
14424 
14425 
14426 /// Unknown size marker
14427 static const unsigned int unknown = (unsigned)-1;
14428 
14429 
14430 /** Duplicates the specified string value.
14431  * @param value Pointer to the string to duplicate. Must be zero-terminated if
14432  * length is "unknown".
14433  * @param length Length of the value. if equals to unknown, then it will be
14434  * computed using strlen(value).
14435  * @return Pointer on the duplicate instance of string.
14436  */
14437 static inline char *
14438 duplicateStringValue( const char *value,
14439  unsigned int length = unknown ) {
14440  if ( length == unknown )
14441  length = (unsigned int)strlen(value);
14442  char *newString = static_cast<char *>( malloc( length + 1 ) );
14443  JSON_ASSERT_MESSAGE( newString != 0, "Failed to allocate string value buffer" );
14444  memcpy( newString, value, length );
14445  newString[length] = 0;
14446  return newString;
14447 }
14448 
14449 
14450 /** Free the string duplicated by duplicateStringValue().
14451  */
14452 static inline void
14453 releaseStringValue( char *value ) {
14454  if ( value )
14455  free( value );
14456 }
14457 
14458 } // namespace Json
14459 
14460 
14461 // //////////////////////////////////////////////////////////////////
14462 // //////////////////////////////////////////////////////////////////
14463 // //////////////////////////////////////////////////////////////////
14464 // ValueInternals...
14465 // //////////////////////////////////////////////////////////////////
14466 // //////////////////////////////////////////////////////////////////
14467 // //////////////////////////////////////////////////////////////////
14468 #if !defined(JSON_IS_AMALGAMATION)
14469 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14470 # include "json_internalarray.inl"
14471 # include "json_internalmap.inl"
14472 # endif // JSON_VALUE_USE_INTERNAL_MAP
14473 
14474 # include "json_valueiterator.inl"
14475 #endif // if !defined(JSON_IS_AMALGAMATION)
14476 
14477 namespace Json {
14478 
14479 // //////////////////////////////////////////////////////////////////
14480 // //////////////////////////////////////////////////////////////////
14481 // //////////////////////////////////////////////////////////////////
14482 // class Value::CommentInfo
14483 // //////////////////////////////////////////////////////////////////
14484 // //////////////////////////////////////////////////////////////////
14485 // //////////////////////////////////////////////////////////////////
14486 
14487 
14488 Value::CommentInfo::CommentInfo()
14489  : comment_( 0 ) {
14490 }
14491 
14492 Value::CommentInfo::~CommentInfo() {
14493  if ( comment_ )
14494  releaseStringValue( comment_ );
14495 }
14496 
14497 
14498 void
14499 Value::CommentInfo::setComment( const char *text ) {
14500  if ( comment_ )
14501  releaseStringValue( comment_ );
14502  JSON_ASSERT( text != 0 );
14503  JSON_ASSERT_MESSAGE( text[0]=='\0' || text[0]=='/', "Comments must start with /");
14504  // It seems that /**/ style comments are acceptable as well.
14505  comment_ = duplicateStringValue( text );
14506 }
14507 
14508 
14509 // //////////////////////////////////////////////////////////////////
14510 // //////////////////////////////////////////////////////////////////
14511 // //////////////////////////////////////////////////////////////////
14512 // class Value::CZString
14513 // //////////////////////////////////////////////////////////////////
14514 // //////////////////////////////////////////////////////////////////
14515 // //////////////////////////////////////////////////////////////////
14516 # ifndef JSON_VALUE_USE_INTERNAL_MAP
14517 
14518 // Notes: index_ indicates if the string was allocated when
14519 // a string is stored.
14520 
14521 Value::CZString::CZString( ArrayIndex index )
14522  : cstr_( 0 )
14523  , index_( index ) {
14524 }
14525 
14526 Value::CZString::CZString( const char *cstr, DuplicationPolicy allocate )
14527  : cstr_( allocate == duplicate ? duplicateStringValue(cstr)
14528  : cstr )
14529  , index_( allocate ) {
14530 }
14531 
14532 Value::CZString::CZString( const CZString &other )
14533 : cstr_( other.index_ != noDuplication && other.cstr_ != 0
14534  ? duplicateStringValue( other.cstr_ )
14535  : other.cstr_ )
14536  , index_( other.cstr_ ? (other.index_ == noDuplication ? noDuplication : duplicate)
14537  : other.index_ ) {
14538 }
14539 
14540 Value::CZString::~CZString() {
14541  if ( cstr_ && index_ == duplicate )
14542  releaseStringValue( const_cast<char *>( cstr_ ) );
14543 }
14544 
14545 void
14546 Value::CZString::swap( CZString &other ) {
14547  std::swap( cstr_, other.cstr_ );
14548  std::swap( index_, other.index_ );
14549 }
14550 
14551 Value::CZString &
14552 Value::CZString::operator =( const CZString &other ) {
14553  CZString temp( other );
14554  swap( temp );
14555  return *this;
14556 }
14557 
14558 bool
14559 Value::CZString::operator<( const CZString &other ) const {
14560  if ( cstr_ )
14561  return strcmp( cstr_, other.cstr_ ) < 0;
14562  return index_ < other.index_;
14563 }
14564 
14565 bool
14566 Value::CZString::operator==( const CZString &other ) const {
14567  if ( cstr_ )
14568  return strcmp( cstr_, other.cstr_ ) == 0;
14569  return index_ == other.index_;
14570 }
14571 
14572 
14573 ArrayIndex
14574 Value::CZString::index() const {
14575  return index_;
14576 }
14577 
14578 
14579 const char *
14580 Value::CZString::c_str() const {
14581  return cstr_;
14582 }
14583 
14584 bool
14585 Value::CZString::isStaticString() const {
14586  return index_ == noDuplication;
14587 }
14588 
14589 #endif // ifndef JSON_VALUE_USE_INTERNAL_MAP
14590 
14591 
14592 // //////////////////////////////////////////////////////////////////
14593 // //////////////////////////////////////////////////////////////////
14594 // //////////////////////////////////////////////////////////////////
14595 // class Value::Value
14596 // //////////////////////////////////////////////////////////////////
14597 // //////////////////////////////////////////////////////////////////
14598 // //////////////////////////////////////////////////////////////////
14599 
14600 /*! \internal Default constructor initialization must be equivalent to:
14601  * memset( this, 0, sizeof(Value) )
14602  * This optimization is used in ValueInternalMap fast allocator.
14603  */
14605  : type_( type )
14606  , allocated_( 0 )
14607  , comments_( 0 )
14608 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14609  , itemIsUsed_( 0 )
14610 #endif
14611 {
14612  switch ( type ) {
14613  case nullValue:
14614  break;
14615  case intValue:
14616  case uintValue:
14617  value_.int_ = 0;
14618  break;
14619  case realValue:
14620  value_.real_ = 0.0;
14621  break;
14622  case stringValue:
14623  value_.string_ = 0;
14624  break;
14625 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14626  case arrayValue:
14627  case objectValue:
14628  value_.map_ = new ObjectValues();
14629  break;
14630 #else
14631  case arrayValue:
14632  value_.array_ = arrayAllocator()->newArray();
14633  break;
14634  case objectValue:
14635  value_.map_ = mapAllocator()->newMap();
14636  break;
14637 #endif
14638  case booleanValue:
14639  value_.bool_ = false;
14640  break;
14641  default:
14643  }
14644 }
14645 
14646 
14647 #if defined(JSON_HAS_INT64)
14649  : type_( uintValue )
14650  , comments_( 0 )
14651 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14652  , itemIsUsed_( 0 )
14653 #endif
14654 {
14655  value_.uint_ = value;
14656 }
14657 
14659  : type_( intValue )
14660  , comments_( 0 )
14661 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14662  , itemIsUsed_( 0 )
14663 #endif
14664 {
14665  value_.int_ = value;
14666 }
14667 
14668 #endif // if defined(JSON_HAS_INT64)
14669 
14670 
14672  : type_( intValue )
14673  , comments_( 0 )
14674 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14675  , itemIsUsed_( 0 )
14676 #endif
14677 {
14678  value_.int_ = value;
14679 }
14680 
14681 
14683  : type_( uintValue )
14684  , comments_( 0 )
14685 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14686  , itemIsUsed_( 0 )
14687 #endif
14688 {
14689  value_.uint_ = value;
14690 }
14691 
14692 Value::Value( double value )
14693  : type_( realValue )
14694  , comments_( 0 )
14695 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14696  , itemIsUsed_( 0 )
14697 #endif
14698 {
14699  value_.real_ = value;
14700 }
14701 
14702 Value::Value( const char *value )
14703  : type_( stringValue )
14704  , allocated_( true )
14705  , comments_( 0 )
14706 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14707  , itemIsUsed_( 0 )
14708 #endif
14709 {
14710  value_.string_ = duplicateStringValue( value );
14711 }
14712 
14713 
14714 Value::Value( const char *beginValue,
14715  const char *endValue )
14716  : type_( stringValue )
14717  , allocated_( true )
14718  , comments_( 0 )
14719 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14720  , itemIsUsed_( 0 )
14721 #endif
14722 {
14723  value_.string_ = duplicateStringValue( beginValue,
14724  (unsigned int)(endValue - beginValue) );
14725 }
14726 
14727 
14728 Value::Value( const std::string &value )
14729  : type_( stringValue )
14730  , allocated_( true )
14731  , comments_( 0 )
14732 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14733  , itemIsUsed_( 0 )
14734 #endif
14735 {
14736  value_.string_ = duplicateStringValue( value.c_str(),
14737  (unsigned int)value.length() );
14738 
14739 }
14740 
14742  : type_( stringValue )
14743  , allocated_( false )
14744  , comments_( 0 )
14745 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14746  , itemIsUsed_( 0 )
14747 #endif
14748 {
14749  value_.string_ = const_cast<char *>( value.c_str() );
14750 }
14751 
14752 
14753 # ifdef JSON_USE_CPPTL
14754 Value::Value( const CppTL::ConstString &value )
14755  : type_( stringValue )
14756  , allocated_( true )
14757  , comments_( 0 )
14758 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14759  , itemIsUsed_( 0 )
14760 #endif
14761 {
14762  value_.string_ = duplicateStringValue( value, value.length() );
14763 }
14764 # endif
14765 
14766 Value::Value( bool value )
14767  : type_( booleanValue )
14768  , comments_( 0 )
14769 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14770  , itemIsUsed_( 0 )
14771 #endif
14772 {
14773  value_.bool_ = value;
14774 }
14775 
14776 
14777 Value::Value( const Value &other )
14778  : type_( other.type_ )
14779  , comments_( 0 )
14780 # ifdef JSON_VALUE_USE_INTERNAL_MAP
14781  , itemIsUsed_( 0 )
14782 #endif
14783 {
14784  switch ( type_ ) {
14785  case nullValue:
14786  case intValue:
14787  case uintValue:
14788  case realValue:
14789  case booleanValue:
14790  value_ = other.value_;
14791  break;
14792  case stringValue:
14793  if ( other.value_.string_ ) {
14794  value_.string_ = duplicateStringValue( other.value_.string_ );
14795  allocated_ = true;
14796  }
14797  else
14798  value_.string_ = 0;
14799  break;
14800 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14801  case arrayValue:
14802  case objectValue:
14803  value_.map_ = new ObjectValues( *other.value_.map_ );
14804  break;
14805 #else
14806  case arrayValue:
14807  value_.array_ = arrayAllocator()->newArrayCopy( *other.value_.array_ );
14808  break;
14809  case objectValue:
14810  value_.map_ = mapAllocator()->newMapCopy( *other.value_.map_ );
14811  break;
14812 #endif
14813  default:
14815  }
14816  if ( other.comments_ ) {
14817  comments_ = new CommentInfo[numberOfCommentPlacement];
14818  for ( int comment =0; comment < numberOfCommentPlacement; ++comment ) {
14819  const CommentInfo &otherComment = other.comments_[comment];
14820  if ( otherComment.comment_ )
14821  comments_[comment].setComment( otherComment.comment_ );
14822  }
14823  }
14824 }
14825 
14826 
14828  switch ( type_ ) {
14829  case nullValue:
14830  case intValue:
14831  case uintValue:
14832  case realValue:
14833  case booleanValue:
14834  break;
14835  case stringValue:
14836  if ( allocated_ )
14837  releaseStringValue( value_.string_ );
14838  break;
14839 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14840  case arrayValue:
14841  case objectValue:
14842  delete value_.map_;
14843  break;
14844 #else
14845  case arrayValue:
14846  arrayAllocator()->destructArray( value_.array_ );
14847  break;
14848  case objectValue:
14849  mapAllocator()->destructMap( value_.map_ );
14850  break;
14851 #endif
14852  default:
14854  }
14855 
14856  if ( comments_ )
14857  delete[] comments_;
14858 }
14859 
14860 Value &
14861 Value::operator=( const Value &other ) {
14862  Value temp( other );
14863  swap( temp );
14864  return *this;
14865 }
14866 
14867 void
14868 Value::swap( Value &other ) {
14869  ValueType temp = type_;
14870  type_ = other.type_;
14871  other.type_ = temp;
14872  std::swap( value_, other.value_ );
14873  int temp2 = allocated_;
14874  allocated_ = other.allocated_;
14875  other.allocated_ = temp2;
14876 }
14877 
14878 ValueType
14879 Value::type() const {
14880  return type_;
14881 }
14882 
14883 
14884 int
14885 Value::compare( const Value &other ) const {
14886  if ( *this < other )
14887  return -1;
14888  if ( *this > other )
14889  return 1;
14890  return 0;
14891 }
14892 
14893 
14894 bool
14895 Value::operator <( const Value &other ) const {
14896  int typeDelta = type_ - other.type_;
14897  if ( typeDelta )
14898  return typeDelta < 0 ? true : false;
14899  switch ( type_ ) {
14900  case nullValue:
14901  return false;
14902  case intValue:
14903  return value_.int_ < other.value_.int_;
14904  case uintValue:
14905  return value_.uint_ < other.value_.uint_;
14906  case realValue:
14907  return value_.real_ < other.value_.real_;
14908  case booleanValue:
14909  return value_.bool_ < other.value_.bool_;
14910  case stringValue:
14911  return ( value_.string_ == 0 && other.value_.string_ )
14912  || ( other.value_.string_
14913  && value_.string_
14914  && strcmp( value_.string_, other.value_.string_ ) < 0 );
14915 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14916  case arrayValue:
14917  case objectValue: {
14918  int delta = int( value_.map_->size() - other.value_.map_->size() );
14919  if ( delta )
14920  return delta < 0;
14921  return (*value_.map_) < (*other.value_.map_);
14922  }
14923 #else
14924  case arrayValue:
14925  return value_.array_->compare( *(other.value_.array_) ) < 0;
14926  case objectValue:
14927  return value_.map_->compare( *(other.value_.map_) ) < 0;
14928 #endif
14929  default:
14931  }
14932  return false; // unreachable
14933 }
14934 
14935 bool
14936 Value::operator <=( const Value &other ) const {
14937  return !(other < *this);
14938 }
14939 
14940 bool
14941 Value::operator >=( const Value &other ) const {
14942  return !(*this < other);
14943 }
14944 
14945 bool
14946 Value::operator >( const Value &other ) const {
14947  return other < *this;
14948 }
14949 
14950 bool
14951 Value::operator ==( const Value &other ) const {
14952  //if ( type_ != other.type_ )
14953  // GCC 2.95.3 says:
14954  // attempt to take address of bit-field structure member `Json::Value::type_'
14955  // Beats me, but a temp solves the problem.
14956  int temp = other.type_;
14957  if ( type_ != temp )
14958  return false;
14959  switch ( type_ ) {
14960  case nullValue:
14961  return true;
14962  case intValue:
14963  return value_.int_ == other.value_.int_;
14964  case uintValue:
14965  return value_.uint_ == other.value_.uint_;
14966  case realValue:
14967  return value_.real_ == other.value_.real_;
14968  case booleanValue:
14969  return value_.bool_ == other.value_.bool_;
14970  case stringValue:
14971  return ( value_.string_ == other.value_.string_ )
14972  || ( other.value_.string_
14973  && value_.string_
14974  && strcmp( value_.string_, other.value_.string_ ) == 0 );
14975 #ifndef JSON_VALUE_USE_INTERNAL_MAP
14976  case arrayValue:
14977  case objectValue:
14978  return value_.map_->size() == other.value_.map_->size()
14979  && (*value_.map_) == (*other.value_.map_);
14980 #else
14981  case arrayValue:
14982  return value_.array_->compare( *(other.value_.array_) ) == 0;
14983  case objectValue:
14984  return value_.map_->compare( *(other.value_.map_) ) == 0;
14985 #endif
14986  default:
14988  }
14989  return false; // unreachable
14990 }
14991 
14992 bool
14993 Value::operator !=( const Value &other ) const
14994 {
14995  return !( *this == other );
14996 }
14997 
14998 const char *
15000  JSON_ASSERT( type_ == stringValue );
15001  return value_.string_;
15002 }
15003 
15004 
15005 std::string
15007  switch ( type_ ) {
15008  case nullValue:
15009  return "";
15010  case stringValue:
15011  return value_.string_ ? value_.string_ : "";
15012  case booleanValue:
15013  return value_.bool_ ? "true" : "false";
15014  case intValue:
15015  case uintValue:
15016  case realValue:
15017  case arrayValue:
15018  case objectValue:
15019  JSON_FAIL_MESSAGE( "Type is not convertible to string" );
15020  default:
15022  }
15023  return ""; // unreachable
15024 }
15025 
15026 # ifdef JSON_USE_CPPTL
15027 CppTL::ConstString
15028 Value::asConstString() const
15029 {
15030  return CppTL::ConstString( asString().c_str() );
15031 }
15032 # endif
15033 
15034 
15035 Value::Int
15036 Value::asInt() const {
15037  switch ( type_ )
15038  {
15039  case nullValue:
15040  return 0;
15041  case intValue:
15042  JSON_ASSERT_MESSAGE( value_.int_ >= minInt && value_.int_ <= maxInt, "unsigned integer out of signed int range" );
15043  return Int(value_.int_);
15044  case uintValue:
15045  JSON_ASSERT_MESSAGE( value_.uint_ <= UInt(maxInt), "unsigned integer out of signed int range" );
15046  return Int(value_.uint_);
15047  case realValue:
15048  JSON_ASSERT_MESSAGE( value_.real_ >= minInt && value_.real_ <= maxInt, "Real out of signed integer range" );
15049  return Int( value_.real_ );
15050  case booleanValue:
15051  return value_.bool_ ? 1 : 0;
15052  case stringValue:
15053  case arrayValue:
15054  case objectValue:
15055  JSON_FAIL_MESSAGE( "Type is not convertible to int" );
15056  default:
15058  }
15059  return 0; // unreachable;
15060 }
15061 
15062 
15063 Value::UInt
15064 Value::asUInt() const {
15065  switch ( type_ ) {
15066  case nullValue:
15067  return 0;
15068  case intValue:
15069  JSON_ASSERT_MESSAGE( value_.int_ >= 0, "Negative integer can not be converted to unsigned integer" );
15070  JSON_ASSERT_MESSAGE( value_.int_ <= maxUInt, "signed integer out of UInt range" );
15071  return UInt(value_.int_);
15072  case uintValue:
15073  JSON_ASSERT_MESSAGE( value_.uint_ <= maxUInt, "unsigned integer out of UInt range" );
15074  return UInt(value_.uint_);
15075  case realValue:
15076  JSON_ASSERT_MESSAGE( value_.real_ >= 0 && value_.real_ <= maxUInt, "Real out of unsigned integer range" );
15077  return UInt( value_.real_ );
15078  case booleanValue:
15079  return value_.bool_ ? 1 : 0;
15080  case stringValue:
15081  case arrayValue:
15082  case objectValue:
15083  JSON_FAIL_MESSAGE( "Type is not convertible to uint" );
15084  default:
15086  }
15087  return 0; // unreachable;
15088 }
15089 
15090 
15091 # if defined(JSON_HAS_INT64)
15092 
15095  switch ( type_ ) {
15096  case nullValue:
15097  return 0;
15098  case intValue:
15099  return value_.int_;
15100  case uintValue:
15101  JSON_ASSERT_MESSAGE( value_.uint_ <= UInt64(maxInt64), "unsigned integer out of Int64 range" );
15102  return value_.uint_;
15103  case realValue:
15104  JSON_ASSERT_MESSAGE( value_.real_ >= minInt64 && value_.real_ <= maxInt64, "Real out of Int64 range" );
15105  return Int( value_.real_ );
15106  case booleanValue:
15107  return value_.bool_ ? 1 : 0;
15108  case stringValue:
15109  case arrayValue:
15110  case objectValue:
15111  JSON_FAIL_MESSAGE( "Type is not convertible to Int64" );
15112  default:
15114  }
15115  return 0; // unreachable;
15116 }
15117 
15118 
15121  switch ( type_ ) {
15122  case nullValue:
15123  return 0;
15124  case intValue:
15125  JSON_ASSERT_MESSAGE( value_.int_ >= 0, "Negative integer can not be converted to UInt64" );
15126  return value_.int_;
15127  case uintValue:
15128  return value_.uint_;
15129  case realValue:
15130  JSON_ASSERT_MESSAGE( value_.real_ >= 0 && value_.real_ <= maxUInt64, "Real out of UInt64 range" );
15131  return UInt( value_.real_ );
15132  case booleanValue:
15133  return value_.bool_ ? 1 : 0;
15134  case stringValue:
15135  case arrayValue:
15136  case objectValue:
15137  JSON_FAIL_MESSAGE( "Type is not convertible to UInt64" );
15138  default:
15140  }
15141  return 0; // unreachable;
15142 }
15143 # endif // if defined(JSON_HAS_INT64)
15144 
15145 
15146 LargestInt
15148 #if defined(JSON_NO_INT64)
15149  return asInt();
15150 #else
15151  return asInt64();
15152 #endif
15153 }
15154 
15155 
15156 LargestUInt
15158 #if defined(JSON_NO_INT64)
15159  return asUInt();
15160 #else
15161  return asUInt64();
15162 #endif
15163 }
15164 
15165 
15166 double
15168  switch ( type_ ) {
15169  case nullValue:
15170  return 0.0;
15171  case intValue:
15172  return static_cast<double>( value_.int_ );
15173  case uintValue:
15174 #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15175  return static_cast<double>( value_.uint_ );
15176 #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15177  return static_cast<double>( Int(value_.uint_/2) ) * 2 + Int(value_.uint_ & 1);
15178 #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15179  case realValue:
15180  return value_.real_;
15181  case booleanValue:
15182  return value_.bool_ ? 1.0 : 0.0;
15183  case stringValue:
15184  case arrayValue:
15185  case objectValue:
15186  JSON_FAIL_MESSAGE( "Type is not convertible to double" );
15187  default:
15189  }
15190  return 0; // unreachable;
15191 }
15192 
15193 float
15195  switch ( type_ ) {
15196  case nullValue:
15197  return 0.0f;
15198  case intValue:
15199  return static_cast<float>( value_.int_ );
15200  case uintValue:
15201 #if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15202  return static_cast<float>( value_.uint_ );
15203 #else // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15204  return static_cast<float>( Int(value_.uint_/2) ) * 2 + Int(value_.uint_ & 1);
15205 #endif // if !defined(JSON_USE_INT64_DOUBLE_CONVERSION)
15206  case realValue:
15207  return static_cast<float>( value_.real_ );
15208  case booleanValue:
15209  return value_.bool_ ? 1.0f : 0.0f;
15210  case stringValue:
15211  case arrayValue:
15212  case objectValue:
15213  JSON_FAIL_MESSAGE( "Type is not convertible to float" );
15214  default:
15216  }
15217  return 0.0f; // unreachable;
15218 }
15219 
15220 bool
15221 Value::asBool() const {
15222  switch ( type_ ) {
15223  case nullValue:
15224  return false;
15225  case intValue:
15226  case uintValue:
15227  return value_.int_ != 0;
15228  case realValue:
15229  return value_.real_ != 0.0;
15230  case booleanValue:
15231  return value_.bool_;
15232  case stringValue:
15233  return value_.string_ && value_.string_[0] != 0;
15234  case arrayValue:
15235  case objectValue:
15236  return value_.map_->size() != 0;
15237  default:
15239  }
15240  return false; // unreachable;
15241 }
15242 
15243 
15244 bool
15246  switch ( type_ ) {
15247  case nullValue:
15248  return true;
15249  case intValue:
15250  return ( other == nullValue && value_.int_ == 0 )
15251  || other == intValue
15252  || ( other == uintValue && value_.int_ >= 0 )
15253  || other == realValue
15254  || other == stringValue
15255  || other == booleanValue;
15256  case uintValue:
15257  return ( other == nullValue && value_.uint_ == 0 )
15258  || ( other == intValue && value_.uint_ <= (unsigned)maxInt )
15259  || other == uintValue
15260  || other == realValue
15261  || other == stringValue
15262  || other == booleanValue;
15263  case realValue:
15264  return ( other == nullValue && value_.real_ == 0.0 )
15265  || ( other == intValue && value_.real_ >= minInt && value_.real_ <= maxInt )
15266  || ( other == uintValue && value_.real_ >= 0 && value_.real_ <= maxUInt )
15267  || other == realValue
15268  || other == stringValue
15269  || other == booleanValue;
15270  case booleanValue:
15271  return ( other == nullValue && value_.bool_ == false )
15272  || other == intValue
15273  || other == uintValue
15274  || other == realValue
15275  || other == stringValue
15276  || other == booleanValue;
15277  case stringValue:
15278  return other == stringValue
15279  || ( other == nullValue && (!value_.string_ || value_.string_[0] == 0) );
15280  case arrayValue:
15281  return other == arrayValue
15282  || ( other == nullValue && value_.map_->size() == 0 );
15283  case objectValue:
15284  return other == objectValue
15285  || ( other == nullValue && value_.map_->size() == 0 );
15286  default:
15288  }
15289  return false; // unreachable;
15290 }
15291 
15292 
15293 /// Number of values in array or object
15294 ArrayIndex
15295 Value::size() const {
15296  switch ( type_ ) {
15297  case nullValue:
15298  case intValue:
15299  case uintValue:
15300  case realValue:
15301  case booleanValue:
15302  case stringValue:
15303  return 0;
15304 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15305  case arrayValue: // size of the array is highest index + 1
15306  if ( !value_.map_->empty() ) {
15307  ObjectValues::const_iterator itLast = value_.map_->end();
15308  --itLast;
15309  return (*itLast).first.index()+1;
15310  }
15311  return 0;
15312  case objectValue:
15313  return ArrayIndex( value_.map_->size() );
15314 #else
15315  case arrayValue:
15316  return Int( value_.array_->size() );
15317  case objectValue:
15318  return Int( value_.map_->size() );
15319 #endif
15320  default:
15322  }
15323  return 0; // unreachable;
15324 }
15325 
15326 
15327 bool
15328 Value::empty() const {
15329  if ( isNull() || isArray() || isObject() )
15330  return size() == 0u;
15331  else
15332  return false;
15333 }
15334 
15335 
15336 bool
15338  return isNull();
15339 }
15340 
15341 
15342 void
15344  JSON_ASSERT( type_ == nullValue || type_ == arrayValue || type_ == objectValue );
15345 
15346  switch ( type_ )
15347  {
15348 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15349  case arrayValue:
15350  case objectValue:
15351  value_.map_->clear();
15352  break;
15353 #else
15354  case arrayValue:
15355  value_.array_->clear();
15356  break;
15357  case objectValue:
15358  value_.map_->clear();
15359  break;
15360 #endif
15361  default:
15362  break;
15363  }
15364 }
15365 
15366 void
15368  JSON_ASSERT( type_ == nullValue || type_ == arrayValue );
15369  if ( type_ == nullValue )
15370  *this = Value( arrayValue );
15371 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15372  ArrayIndex oldSize = size();
15373  if ( newSize == 0 )
15374  clear();
15375  else if ( newSize > oldSize )
15376  (*this)[ newSize - 1 ];
15377  else {
15378  for ( ArrayIndex index = newSize; index < oldSize; ++index )
15379  {
15380  value_.map_->erase( index );
15381  }
15382  assert( size() == newSize );
15383  }
15384 #else
15385  value_.array_->resize( newSize );
15386 #endif
15387 }
15388 
15389 
15390 Value &
15392  JSON_ASSERT( type_ == nullValue || type_ == arrayValue );
15393  if ( type_ == nullValue )
15394  *this = Value( arrayValue );
15395 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15396  CZString key( index );
15397  ObjectValues::iterator it = value_.map_->lower_bound( key );
15398  if ( it != value_.map_->end() && (*it).first == key )
15399  return (*it).second;
15400 
15401  ObjectValues::value_type defaultValue( key, null );
15402  it = value_.map_->insert( it, defaultValue );
15403  return (*it).second;
15404 #else
15405  return value_.array_->resolveReference( index );
15406 #endif
15407 }
15408 
15409 
15410 Value &
15411 Value::operator[]( int index ) {
15412  JSON_ASSERT( index >= 0 );
15413  return (*this)[ ArrayIndex(index) ];
15414 }
15415 
15416 
15417 const Value &
15419  JSON_ASSERT( type_ == nullValue || type_ == arrayValue );
15420  if ( type_ == nullValue )
15421  return null;
15422 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15423  CZString key( index );
15424  ObjectValues::const_iterator it = value_.map_->find( key );
15425  if ( it == value_.map_->end() )
15426  return null;
15427  return (*it).second;
15428 #else
15429  Value *value = value_.array_->find( index );
15430  return value ? *value : null;
15431 #endif
15432 }
15433 
15434 
15435 const Value &
15436 Value::operator[]( int index ) const {
15437  JSON_ASSERT( index >= 0 );
15438  return (*this)[ ArrayIndex(index) ];
15439 }
15440 
15441 
15442 Value &
15443 Value::operator[]( const char *key ) {
15444  return resolveReference( key, false );
15445 }
15446 
15447 
15448 Value &
15449 Value::resolveReference( const char *key,
15450  bool isStatic ) {
15451  JSON_ASSERT( type_ == nullValue || type_ == objectValue );
15452  if ( type_ == nullValue )
15453  *this = Value( objectValue );
15454 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15455  CZString actualKey( key, isStatic ? CZString::noDuplication
15456  : CZString::duplicateOnCopy );
15457  ObjectValues::iterator it = value_.map_->lower_bound( actualKey );
15458  if ( it != value_.map_->end() && (*it).first == actualKey )
15459  return (*it).second;
15460 
15461  ObjectValues::value_type defaultValue( actualKey, null );
15462  it = value_.map_->insert( it, defaultValue );
15463  Value &value = (*it).second;
15464  return value;
15465 #else
15466  return value_.map_->resolveReference( key, isStatic );
15467 #endif
15468 }
15469 
15470 
15471 Value
15473  const Value &defaultValue ) const {
15474  const Value *value = &((*this)[index]);
15475  return value == &null ? defaultValue : *value;
15476 }
15477 
15478 
15479 bool
15481  return index < size();
15482 }
15483 
15484 
15485 
15486 const Value &
15487 Value::operator[]( const char *key ) const {
15488  JSON_ASSERT( type_ == nullValue || type_ == objectValue );
15489  if ( type_ == nullValue )
15490  return null;
15491 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15492  CZString actualKey( key, CZString::noDuplication );
15493  ObjectValues::const_iterator it = value_.map_->find( actualKey );
15494  if ( it == value_.map_->end() )
15495  return null;
15496  return (*it).second;
15497 #else
15498  const Value *value = value_.map_->find( key );
15499  return value ? *value : null;
15500 #endif
15501 }
15502 
15503 
15504 Value &
15506  return (*this)[ key.c_str() ];
15507 }
15508 
15509 
15510 const Value &
15511 Value::operator[]( const std::string &key ) const {
15512  return (*this)[ key.c_str() ];
15513 }
15514 
15515 Value &
15517  return resolveReference( key, true );
15518 }
15519 
15520 
15521 # ifdef JSON_USE_CPPTL
15522 Value &
15523 Value::operator[]( const CppTL::ConstString &key ) {
15524  return (*this)[ key.c_str() ];
15525 }
15526 
15527 
15528 const Value &
15529 Value::operator[]( const CppTL::ConstString &key ) const {
15530  return (*this)[ key.c_str() ];
15531 }
15532 # endif
15533 
15534 
15535 Value &
15536 Value::append( const Value &value ) {
15537  return (*this)[size()] = value;
15538 }
15539 
15540 
15541 Value
15542 Value::get( const char *key,
15543  const Value &defaultValue ) const {
15544  const Value *value = &((*this)[key]);
15545  return value == &null ? defaultValue : *value;
15546 }
15547 
15548 
15549 Value
15551  const Value &defaultValue ) const {
15552  return get( key.c_str(), defaultValue );
15553 }
15554 
15555 Value
15556 Value::removeMember( const char* key ) {
15557  JSON_ASSERT( type_ == nullValue || type_ == objectValue );
15558  if ( type_ == nullValue )
15559  return null;
15560 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15561  CZString actualKey( key, CZString::noDuplication );
15562  ObjectValues::iterator it = value_.map_->find( actualKey );
15563  if ( it == value_.map_->end() )
15564  return null;
15565  Value old(it->second);
15566  value_.map_->erase(it);
15567  return old;
15568 #else
15569  Value *value = value_.map_->find( key );
15570  if (value){
15571  Value old(*value);
15572  value_.map_.remove( key );
15573  return old;
15574  } else {
15575  return null;
15576  }
15577 #endif
15578 }
15579 
15580 Value
15582  return removeMember( key.c_str() );
15583 }
15584 
15585 # ifdef JSON_USE_CPPTL
15586 Value
15587 Value::get( const CppTL::ConstString &key,
15588  const Value &defaultValue ) const {
15589  return get( key.c_str(), defaultValue );
15590 }
15591 # endif
15592 
15593 bool
15594 Value::isMember( const char *key ) const {
15595  const Value *value = &((*this)[key]);
15596  return value != &null;
15597 }
15598 
15599 
15600 bool
15601 Value::isMember( const std::string &key ) const {
15602  return isMember( key.c_str() );
15603 }
15604 
15605 
15606 # ifdef JSON_USE_CPPTL
15607 bool
15608 Value::isMember( const CppTL::ConstString &key ) const {
15609  return isMember( key.c_str() );
15610 }
15611 #endif
15612 
15615  JSON_ASSERT( type_ == nullValue || type_ == objectValue );
15616  if ( type_ == nullValue )
15617  return Value::Members();
15618  Members members;
15619  members.reserve( value_.map_->size() );
15620 #ifndef JSON_VALUE_USE_INTERNAL_MAP
15621  ObjectValues::const_iterator it = value_.map_->begin();
15622  ObjectValues::const_iterator itEnd = value_.map_->end();
15623  for ( ; it != itEnd; ++it )
15624  members.push_back( std::string( (*it).first.c_str() ) );
15625 #else
15626  ValueInternalMap::IteratorState it;
15627  ValueInternalMap::IteratorState itEnd;
15628  value_.map_->makeBeginIterator( it );
15629  value_.map_->makeEndIterator( itEnd );
15630  for ( ; !ValueInternalMap::equals( it, itEnd ); ValueInternalMap::increment(it) )
15631  members.push_back( std::string( ValueInternalMap::key( it ) ) );
15632 #endif
15633  return members;
15634 }
15635 //
15636 //# ifdef JSON_USE_CPPTL
15637 //EnumMemberNames
15638 //Value::enumMemberNames() const
15639 //{
15640 // if ( type_ == objectValue )
15641 // {
15642 // return CppTL::Enum::any( CppTL::Enum::transform(
15643 // CppTL::Enum::keys( *(value_.map_), CppTL::Type<const CZString &>() ),
15644 // MemberNamesTransform() ) );
15645 // }
15646 // return EnumMemberNames();
15647 //}
15648 //
15649 //
15650 //EnumValues
15651 //Value::enumValues() const
15652 //{
15653 // if ( type_ == objectValue || type_ == arrayValue )
15654 // return CppTL::Enum::anyValues( *(value_.map_),
15655 // CppTL::Type<const Value &>() );
15656 // return EnumValues();
15657 //}
15658 //
15659 //# endif
15660 
15661 
15662 bool
15663 Value::isNull() const {
15664  return type_ == nullValue;
15665 }
15666 
15667 
15668 bool
15669 Value::isBool() const {
15670  return type_ == booleanValue;
15671 }
15672 
15673 
15674 bool
15675 Value::isInt() const {
15676  return type_ == intValue;
15677 }
15678 
15679 
15680 bool
15681 Value::isUInt() const {
15682  return type_ == uintValue;
15683 }
15684 
15685 
15686 bool
15688  return type_ == intValue
15689  || type_ == uintValue
15690  || type_ == booleanValue;
15691 }
15692 
15693 
15694 bool
15696  return type_ == realValue;
15697 }
15698 
15699 
15700 bool
15702  return isIntegral() || isDouble();
15703 }
15704 
15705 
15706 bool
15708  return type_ == stringValue;
15709 }
15710 
15711 
15712 bool
15714  return type_ == nullValue || type_ == arrayValue;
15715 }
15716 
15717 
15718 bool
15720  return type_ == nullValue || type_ == objectValue;
15721 }
15722 
15723 
15724 void
15725 Value::setComment( const char *comment,
15726  CommentPlacement placement ) {
15727  if ( !comments_ )
15728  comments_ = new CommentInfo[numberOfCommentPlacement];
15729  comments_[placement].setComment( comment );
15730 }
15731 
15732 
15733 void
15735  CommentPlacement placement ) {
15736  setComment( comment.c_str(), placement );
15737 }
15738 
15739 
15740 bool
15742  return comments_ != 0 && comments_[placement].comment_ != 0;
15743 }
15744 
15745 std::string
15747  if ( hasComment(placement) )
15748  return comments_[placement].comment_;
15749  return "";
15750 }
15751 
15752 
15753 std::string
15755  StyledWriter writer;
15756  return writer.write( *this );
15757 }
15758 
15759 
15761 Value::begin() const {
15762  switch ( type_ ) {
15763 #ifdef JSON_VALUE_USE_INTERNAL_MAP
15764  case arrayValue:
15765  if ( value_.array_ ) {
15766  ValueInternalArray::IteratorState it;
15767  value_.array_->makeBeginIterator( it );
15768  return const_iterator( it );
15769  }
15770  break;
15771  case objectValue:
15772  if ( value_.map_ ) {
15773  ValueInternalMap::IteratorState it;
15774  value_.map_->makeBeginIterator( it );
15775  return const_iterator( it );
15776  }
15777  break;
15778 #else
15779  case arrayValue:
15780  case objectValue:
15781  if ( value_.map_ )
15782  return const_iterator( value_.map_->begin() );
15783  break;
15784 #endif
15785  default:
15786  break;
15787  }
15788  return const_iterator();
15789 }
15790 
15792 Value::end() const {
15793  switch ( type_ ) {
15794 #ifdef JSON_VALUE_USE_INTERNAL_MAP
15795  case arrayValue:
15796  if ( value_.array_ ) {
15797  ValueInternalArray::IteratorState it;
15798  value_.array_->makeEndIterator( it );
15799  return const_iterator( it );
15800  }
15801  break;
15802  case objectValue:
15803  if ( value_.map_ ) {
15804  ValueInternalMap::IteratorState it;
15805  value_.map_->makeEndIterator( it );
15806  return const_iterator( it );
15807  }
15808  break;
15809 #else
15810  case arrayValue:
15811  case objectValue:
15812  if ( value_.map_ )
15813  return const_iterator( value_.map_->end() );
15814  break;
15815 #endif
15816  default:
15817  break;
15818  }
15819  return const_iterator();
15820 }
15821 
15822 
15825  switch ( type_ ) {
15826 #ifdef JSON_VALUE_USE_INTERNAL_MAP
15827  case arrayValue:
15828  if ( value_.array_ ) {
15829  ValueInternalArray::IteratorState it;
15830  value_.array_->makeBeginIterator( it );
15831  return iterator( it );
15832  }
15833  break;
15834  case objectValue:
15835  if ( value_.map_ ) {
15836  ValueInternalMap::IteratorState it;
15837  value_.map_->makeBeginIterator( it );
15838  return iterator( it );
15839  }
15840  break;
15841 #else
15842  case arrayValue:
15843  case objectValue:
15844  if ( value_.map_ )
15845  return iterator( value_.map_->begin() );
15846  break;
15847 #endif
15848  default:
15849  break;
15850  }
15851  return iterator();
15852 }
15853 
15856  switch ( type_ ) {
15857 #ifdef JSON_VALUE_USE_INTERNAL_MAP
15858  case arrayValue:
15859  if ( value_.array_ ) {
15860  ValueInternalArray::IteratorState it;
15861  value_.array_->makeEndIterator( it );
15862  return iterator( it );
15863  }
15864  break;
15865  case objectValue:
15866  if ( value_.map_ ) {
15867  ValueInternalMap::IteratorState it;
15868  value_.map_->makeEndIterator( it );
15869  return iterator( it );
15870  }
15871  break;
15872 #else
15873  case arrayValue:
15874  case objectValue:
15875  if ( value_.map_ )
15876  return iterator( value_.map_->end() );
15877  break;
15878 #endif
15879  default:
15880  break;
15881  }
15882  return iterator();
15883 }
15884 
15885 
15886 // class PathArgument
15887 // //////////////////////////////////////////////////////////////////
15888 
15890  : kind_( kindNone ) {
15891 }
15892 
15893 
15895  : index_( index )
15896  , kind_( kindIndex ) {
15897 }
15898 
15899 
15900 PathArgument::PathArgument( const char *key )
15901  : key_( key )
15902  , kind_( kindKey ) {
15903 }
15904 
15905 
15907  : key_( key.c_str() )
15908  , kind_( kindKey ) {
15909 }
15910 
15911 // class Path
15912 // //////////////////////////////////////////////////////////////////
15913 
15915  const PathArgument &a1,
15916  const PathArgument &a2,
15917  const PathArgument &a3,
15918  const PathArgument &a4,
15919  const PathArgument &a5 ) {
15920  InArgs in;
15921  in.push_back( &a1 );
15922  in.push_back( &a2 );
15923  in.push_back( &a3 );
15924  in.push_back( &a4 );
15925  in.push_back( &a5 );
15926  makePath( path, in );
15927 }
15928 
15929 
15930 void
15931 Path::makePath( const std::string &path,
15932  const InArgs &in ) {
15933  const char *current = path.c_str();
15934  const char *end = current + path.length();
15935  InArgs::const_iterator itInArg = in.begin();
15936  while ( current != end ) {
15937  if ( *current == '[' ) {
15938  ++current;
15939  if ( *current == '%' )
15940  addPathInArg( path, in, itInArg, PathArgument::kindIndex );
15941  else {
15942  ArrayIndex index = 0;
15943  for ( ; current != end && *current >= '0' && *current <= '9'; ++current )
15944  index = index * 10 + ArrayIndex(*current - '0');
15945  args_.push_back( index );
15946  }
15947  if ( current == end || *current++ != ']' )
15948  invalidPath( path, int(current - path.c_str()) );
15949  }
15950  else if ( *current == '%' ) {
15951  addPathInArg( path, in, itInArg, PathArgument::kindKey );
15952  ++current;
15953  }
15954  else if ( *current == '.' ) {
15955  ++current;
15956  } else {
15957  const char *beginName = current;
15958  while ( current != end && !strchr( "[.", *current ) )
15959  ++current;
15960  args_.push_back( std::string( beginName, current ) );
15961  }
15962  }
15963 }
15964 
15965 
15966 void
15967 Path::addPathInArg( const std::string &path,
15968  const InArgs &in,
15969  InArgs::const_iterator &itInArg,
15970  PathArgument::Kind kind ) {
15971  if ( itInArg == in.end() ) {
15972  // Error: missing argument %d
15973  } else if ( (*itInArg)->kind_ != kind ) {
15974  // Error: bad argument type
15975  } else {
15976  args_.push_back( **itInArg );
15977  }
15978 }
15979 
15980 
15981 void
15982 Path::invalidPath( const std::string &path,
15983  int location ) {
15984  // Error: invalid path.
15985 }
15986 
15987 
15988 const Value &
15989 Path::resolve( const Value &root ) const {
15990  const Value *node = &root;
15991  for ( Args::const_iterator it = args_.begin(); it != args_.end(); ++it ) {
15992  const PathArgument &arg = *it;
15993  if ( arg.kind_ == PathArgument::kindIndex ) {
15994  if ( !node->isArray() || node->isValidIndex( arg.index_ ) ) {
15995  // Error: unable to resolve path (array value expected at position...
15996  }
15997  node = &((*node)[arg.index_]);
15998  } else if ( arg.kind_ == PathArgument::kindKey ) {
15999  if ( !node->isObject() ) {
16000  // Error: unable to resolve path (object value expected at position...)
16001  }
16002  node = &((*node)[arg.key_]);
16003  if ( node == &Value::null ) {
16004  // Error: unable to resolve path (object has no member named '' at position...)
16005  }
16006  }
16007  }
16008  return *node;
16009 }
16010 
16011 
16012 Value
16013 Path::resolve( const Value &root,
16014  const Value &defaultValue ) const {
16015  const Value *node = &root;
16016  for ( Args::const_iterator it = args_.begin(); it != args_.end(); ++it ) {
16017  const PathArgument &arg = *it;
16018  if ( arg.kind_ == PathArgument::kindIndex ) {
16019  if ( !node->isArray() || node->isValidIndex( arg.index_ ) )
16020  return defaultValue;
16021  node = &((*node)[arg.index_]);
16022  } else if ( arg.kind_ == PathArgument::kindKey ) {
16023  if ( !node->isObject() )
16024  return defaultValue;
16025  node = &((*node)[arg.key_]);
16026  if ( node == &Value::null )
16027  return defaultValue;
16028  }
16029  }
16030  return *node;
16031 }
16032 
16033 
16034 Value &
16035 Path::make( Value &root ) const {
16036  Value *node = &root;
16037  for ( Args::const_iterator it = args_.begin(); it != args_.end(); ++it ) {
16038  const PathArgument &arg = *it;
16039  if ( arg.kind_ == PathArgument::kindIndex ) {
16040  if ( !node->isArray() ) {
16041  // Error: node is not an array at position ...
16042  }
16043  node = &((*node)[arg.index_]);
16044  } else if ( arg.kind_ == PathArgument::kindKey ) {
16045  if ( !node->isObject() ) {
16046  // Error: node is not an object at position...
16047  }
16048  node = &((*node)[arg.key_]);
16049  }
16050  }
16051  return *node;
16052 }
16053 
16054 
16055 } // namespace Json
16056 
16057 // //////////////////////////////////////////////////////////////////////
16058 // End of content of file: src/lib_json/json_value.cpp
16059 // //////////////////////////////////////////////////////////////////////
16060 
16061 
16062 
16063 
16064 
16065 
16066 // //////////////////////////////////////////////////////////////////////
16067 // Beginning of content of file: src/lib_json/json_writer.cpp
16068 // //////////////////////////////////////////////////////////////////////
16069 
16070 // Copyright 2007-2010 Baptiste Lepilleur
16071 // Distributed under MIT license, or public domain if desired and
16072 // recognized in your jurisdiction.
16073 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
16074 
16075 #if !defined(JSON_IS_AMALGAMATION)
16076 # include <json/writer.h>
16077 # include "json_tool.h"
16078 #endif // if !defined(JSON_IS_AMALGAMATION)
16079 #include <utility>
16080 #include <assert.h>
16081 #include <stdio.h>
16082 #include <string.h>
16083 #include <iostream>
16084 #include <sstream>
16085 #include <iomanip>
16086 
16087 #if _MSC_VER >= 1400 // VC++ 8.0
16088 #pragma warning( disable : 4996 ) // disable warning about strdup being deprecated.
16089 #endif
16090 
16091 namespace Json {
16092 
16093 static bool containsControlCharacter( const char* str ) {
16094  while ( *str ) {
16095  if ( isControlCharacter( *(str++) ) )
16096  return true;
16097  }
16098  return false;
16099 }
16100 
16101 
16103  UIntToStringBuffer buffer;
16104  char *current = buffer + sizeof(buffer);
16105  bool isNegative = value < 0;
16106  if ( isNegative )
16107  value = -value;
16108  uintToString( LargestUInt(value), current );
16109  if ( isNegative )
16110  *--current = '-';
16111  assert( current >= buffer );
16112  return current;
16113 }
16114 
16115 
16117  UIntToStringBuffer buffer;
16118  char *current = buffer + sizeof(buffer);
16119  uintToString( value, current );
16120  assert( current >= buffer );
16121  return current;
16122 }
16123 
16124 #if defined(JSON_HAS_INT64)
16125 
16127 {
16128  return valueToString( LargestInt(value) );
16129 }
16130 
16131 
16133  return valueToString( LargestUInt(value) );
16134 }
16135 
16136 #endif // # if defined(JSON_HAS_INT64)
16137 
16138 
16139 std::string valueToString( double value ) {
16140  char buffer[32];
16141 #if defined(_MSC_VER) && defined(__STDC_SECURE_LIB__) // Use secure version with visual studio 2005 to avoid warning.
16142  sprintf_s(buffer, sizeof(buffer), "%#.16g", value);
16143 #else
16144  sprintf(buffer, "%#.16g", value);
16145 #endif
16146  char* ch = buffer + strlen(buffer) - 1;
16147  if (*ch != '0') return buffer; // nothing to truncate, so save time
16148  while(ch > buffer && *ch == '0'){
16149  --ch;
16150  }
16151  char* last_nonzero = ch;
16152  while(ch >= buffer){
16153  switch(*ch){
16154  case '0':
16155  case '1':
16156  case '2':
16157  case '3':
16158  case '4':
16159  case '5':
16160  case '6':
16161  case '7':
16162  case '8':
16163  case '9':
16164  --ch;
16165  continue;
16166  case '.':
16167  // Truncate zeroes to save bytes in output, but keep one.
16168  *(last_nonzero+2) = '\0';
16169  return buffer;
16170  default:
16171  return buffer;
16172  }
16173  }
16174  return buffer;
16175 }
16176 
16177 
16179  return value ? "true" : "false";
16180 }
16181 
16182 std::string valueToQuotedString( const char *value ) {
16183  // Not sure how to handle unicode...
16184  if (strpbrk(value, "\"\\\b\f\n\r\t") == NULL && !containsControlCharacter( value ))
16185  return std::string("\"") + value + "\"";
16186  // We have to walk value and escape any special characters.
16187  // Appending to std::string is not efficient, but this should be rare.
16188  // (Note: forward slashes are *not* rare, but I am not escaping them.)
16189  std::string::size_type maxsize = strlen(value)*2 + 3; // allescaped+quotes+NULL
16190  std::string result;
16191  result.reserve(maxsize); // to avoid lots of mallocs
16192  result += "\"";
16193  for (const char* c=value; *c != 0; ++c) {
16194  switch(*c) {
16195  case '\"':
16196  result += "\\\"";
16197  break;
16198  case '\\':
16199  result += "\\\\";
16200  break;
16201  case '\b':
16202  result += "\\b";
16203  break;
16204  case '\f':
16205  result += "\\f";
16206  break;
16207  case '\n':
16208  result += "\\n";
16209  break;
16210  case '\r':
16211  result += "\\r";
16212  break;
16213  case '\t':
16214  result += "\\t";
16215  break;
16216  //case '/':
16217  // Even though \/ is considered a legal escape in JSON, a bare
16218  // slash is also legal, so I see no reason to escape it.
16219  // (I hope I am not misunderstanding something.
16220  // blep notes: actually escaping \/ may be useful in javascript to avoid </
16221  // sequence.
16222  // Should add a flag to allow this compatibility mode and prevent this
16223  // sequence from occurring.
16224  default:
16225  if ( isControlCharacter( *c ) ) {
16226  std::ostringstream oss;
16227  oss << "\\u" << std::hex << std::uppercase << std::setfill('0') << std::setw(4) << static_cast<int>(*c);
16228  result += oss.str();
16229  } else {
16230  result += *c;
16231  }
16232  break;
16233  }
16234  }
16235  result += "\"";
16236  return result;
16237 }
16238 
16239 // Class Writer
16240 // //////////////////////////////////////////////////////////////////
16242 }
16243 
16244 
16245 // Class FastWriter
16246 // //////////////////////////////////////////////////////////////////
16247 
16249  : yamlCompatiblityEnabled_( false ) {
16250 }
16251 
16252 
16253 void
16255  yamlCompatiblityEnabled_ = true;
16256 }
16257 
16258 
16259 std::string
16260 FastWriter::write( const Value &root ) {
16261  document_ = "";
16262  writeValue( root );
16263  document_ += "\n";
16264  return document_;
16265 }
16266 
16267 
16268 void
16269 FastWriter::writeValue( const Value &value ) {
16270  switch ( value.type() ) {
16271  case nullValue:
16272  document_ += "null";
16273  break;
16274  case intValue:
16275  document_ += valueToString( value.asLargestInt() );
16276  break;
16277  case uintValue:
16278  document_ += valueToString( value.asLargestUInt() );
16279  break;
16280  case realValue:
16281  document_ += valueToString( value.asDouble() );
16282  break;
16283  case stringValue:
16284  document_ += valueToQuotedString( value.asCString() );
16285  break;
16286  case booleanValue:
16287  document_ += valueToString( value.asBool() );
16288  break;
16289  case arrayValue: {
16290  document_ += "[";
16291  int size = value.size();
16292  for ( int index =0; index < size; ++index ) {
16293  if ( index > 0 )
16294  document_ += ",";
16295  writeValue( value[index] );
16296  }
16297  document_ += "]";
16298  }
16299  break;
16300  case objectValue: {
16301  Value::Members members( value.getMemberNames() );
16302  document_ += "{";
16303  for ( Value::Members::iterator it = members.begin();
16304  it != members.end();
16305  ++it ) {
16306  const std::string &name = *it;
16307  if ( it != members.begin() )
16308  document_ += ",";
16309  document_ += valueToQuotedString( name.c_str() );
16310  document_ += yamlCompatiblityEnabled_ ? ": "
16311  : ":";
16312  writeValue( value[name] );
16313  }
16314  document_ += "}";
16315  }
16316  break;
16317  }
16318 }
16319 
16320 
16321 // Class StyledWriter
16322 // //////////////////////////////////////////////////////////////////
16323 
16325  : rightMargin_( 74 )
16326  , indentSize_( 3 ) {
16327 }
16328 
16329 
16330 std::string
16331 StyledWriter::write( const Value &root ) {
16332  document_ = "";
16333  addChildValues_ = false;
16334  indentString_ = "";
16335  writeCommentBeforeValue( root );
16336  writeValue( root );
16337  writeCommentAfterValueOnSameLine( root );
16338  document_ += "\n";
16339  return document_;
16340 }
16341 
16342 
16343 void
16344 StyledWriter::writeValue( const Value &value ) {
16345  switch ( value.type() ) {
16346  case nullValue:
16347  pushValue( "null" );
16348  break;
16349  case intValue:
16350  pushValue( valueToString( value.asLargestInt() ) );
16351  break;
16352  case uintValue:
16353  pushValue( valueToString( value.asLargestUInt() ) );
16354  break;
16355  case realValue:
16356  pushValue( valueToString( value.asDouble() ) );
16357  break;
16358  case stringValue:
16359  pushValue( valueToQuotedString( value.asCString() ) );
16360  break;
16361  case booleanValue:
16362  pushValue( valueToString( value.asBool() ) );
16363  break;
16364  case arrayValue:
16365  writeArrayValue( value);
16366  break;
16367  case objectValue:
16368  {
16369  Value::Members members( value.getMemberNames() );
16370  if ( members.empty() )
16371  pushValue( "{}" );
16372  else {
16373  writeWithIndent( "{" );
16374  indent();
16375  Value::Members::iterator it = members.begin();
16376  for (;;) {
16377  const std::string &name = *it;
16378  const Value &childValue = value[name];
16379  writeCommentBeforeValue( childValue );
16380  writeWithIndent( valueToQuotedString( name.c_str() ) );
16381  document_ += " : ";
16382  writeValue( childValue );
16383  if ( ++it == members.end() ) {
16384  writeCommentAfterValueOnSameLine( childValue );
16385  break;
16386  }
16387  document_ += ",";
16388  writeCommentAfterValueOnSameLine( childValue );
16389  }
16390  unindent();
16391  writeWithIndent( "}" );
16392  }
16393  }
16394  break;
16395  }
16396 }
16397 
16398 
16399 void
16400 StyledWriter::writeArrayValue( const Value &value ) {
16401  unsigned size = value.size();
16402  if ( size == 0 )
16403  pushValue( "[]" );
16404  else {
16405  bool isArrayMultiLine = isMultineArray( value );
16406  if ( isArrayMultiLine ) {
16407  writeWithIndent( "[" );
16408  indent();
16409  bool hasChildValue = !childValues_.empty();
16410  unsigned index =0;
16411  for (;;) {
16412  const Value &childValue = value[index];
16413  writeCommentBeforeValue( childValue );
16414  if ( hasChildValue )
16415  writeWithIndent( childValues_[index] );
16416  else {
16417  writeIndent();
16418  writeValue( childValue );
16419  }
16420  if ( ++index == size ) {
16421  writeCommentAfterValueOnSameLine( childValue );
16422  break;
16423  }
16424  document_ += ",";
16425  writeCommentAfterValueOnSameLine( childValue );
16426  }
16427  unindent();
16428  writeWithIndent( "]" );
16429  } else { // output on a single line
16430  assert( childValues_.size() == size );
16431  document_ += "[ ";
16432  for ( unsigned index =0; index < size; ++index ) {
16433  if ( index > 0 )
16434  document_ += ", ";
16435  document_ += childValues_[index];
16436  }
16437  document_ += " ]";
16438  }
16439  }
16440 }
16441 
16442 
16443 bool
16444 StyledWriter::isMultineArray( const Value &value ) {
16445  int size = value.size();
16446  bool isMultiLine = size*3 >= rightMargin_ ;
16447  childValues_.clear();
16448  for ( int index =0; index < size && !isMultiLine; ++index ) {
16449  const Value &childValue = value[index];
16450  isMultiLine = isMultiLine ||
16451  ( (childValue.isArray() || childValue.isObject()) &&
16452  childValue.size() > 0 );
16453  }
16454  if ( !isMultiLine ) { // check if line length > max line length
16455  childValues_.reserve( size );
16456  addChildValues_ = true;
16457  int lineLength = 4 + (size-1)*2; // '[ ' + ', '*n + ' ]'
16458  for ( int index =0; index < size && !isMultiLine; ++index ) {
16459  writeValue( value[index] );
16460  lineLength += int( childValues_[index].length() );
16461  isMultiLine = isMultiLine && hasCommentForValue( value[index] );
16462  }
16463  addChildValues_ = false;
16464  isMultiLine = isMultiLine || lineLength >= rightMargin_;
16465  }
16466  return isMultiLine;
16467 }
16468 
16469 
16470 void
16471 StyledWriter::pushValue( const std::string &value ) {
16472  if ( addChildValues_ )
16473  childValues_.push_back( value );
16474  else
16475  document_ += value;
16476 }
16477 
16478 
16479 void
16480 StyledWriter::writeIndent() {
16481  if ( !document_.empty() )
16482  {
16483  char last = document_[document_.length()-1];
16484  if ( last == ' ' ) // already indented
16485  return;
16486  if ( last != '\n' ) // Comments may add new-line
16487  document_ += '\n';
16488  }
16489  document_ += indentString_;
16490 }
16491 
16492 
16493 void
16494 StyledWriter::writeWithIndent( const std::string &value ) {
16495  writeIndent();
16496  document_ += value;
16497 }
16498 
16499 
16500 void
16501 StyledWriter::indent() {
16502  indentString_ += std::string( indentSize_, ' ' );
16503 }
16504 
16505 
16506 void
16507 StyledWriter::unindent() {
16508  assert( int(indentString_.size()) >= indentSize_ );
16509  indentString_.resize( indentString_.size() - indentSize_ );
16510 }
16511 
16512 
16513 void
16514 StyledWriter::writeCommentBeforeValue( const Value &root ) {
16515  if ( !root.hasComment( commentBefore ) )
16516  return;
16517  document_ += normalizeEOL( root.getComment( commentBefore ) );
16518  document_ += "\n";
16519 }
16520 
16521 
16522 void
16523 StyledWriter::writeCommentAfterValueOnSameLine( const Value &root ) {
16524  if ( root.hasComment( commentAfterOnSameLine ) )
16525  document_ += " " + normalizeEOL( root.getComment( commentAfterOnSameLine ) );
16526 
16527  if ( root.hasComment( commentAfter ) ) {
16528  document_ += "\n";
16529  document_ += normalizeEOL( root.getComment( commentAfter ) );
16530  document_ += "\n";
16531  }
16532 }
16533 
16534 
16535 bool
16536 StyledWriter::hasCommentForValue( const Value &value ) {
16537  return value.hasComment( commentBefore )
16539  || value.hasComment( commentAfter );
16540 }
16541 
16542 
16543 std::string
16544 StyledWriter::normalizeEOL( const std::string &text ) {
16545  std::string normalized;
16546  normalized.reserve( text.length() );
16547  const char *begin = text.c_str();
16548  const char *end = begin + text.length();
16549  const char *current = begin;
16550  while ( current != end ) {
16551  char c = *current++;
16552  if ( c == '\r' ) { // mac or dos EOL
16553  if ( *current == '\n' ) // convert dos EOL
16554  ++current;
16555  normalized += '\n';
16556  } else // handle unix EOL & other char
16557  normalized += c;
16558  }
16559  return normalized;
16560 }
16561 
16562 
16563 // Class StyledStreamWriter
16564 // //////////////////////////////////////////////////////////////////
16565 
16567  : document_(NULL)
16568  , rightMargin_( 74 )
16569  , indentation_( indentation ) {
16570 }
16571 
16572 
16573 void
16574 StyledStreamWriter::write( std::ostream &out, const Value &root ) {
16575  document_ = &out;
16576  addChildValues_ = false;
16577  indentString_ = "";
16578  writeCommentBeforeValue( root );
16579  writeValue( root );
16580  writeCommentAfterValueOnSameLine( root );
16581  *document_ << "\n";
16582  document_ = NULL; // Forget the stream, for safety.
16583 }
16584 
16585 
16586 void
16587 StyledStreamWriter::writeValue( const Value &value ) {
16588  switch ( value.type() ) {
16589  case nullValue:
16590  pushValue( "null" );
16591  break;
16592  case intValue:
16593  pushValue( valueToString( value.asLargestInt() ) );
16594  break;
16595  case uintValue:
16596  pushValue( valueToString( value.asLargestUInt() ) );
16597  break;
16598  case realValue:
16599  pushValue( valueToString( value.asDouble() ) );
16600  break;
16601  case stringValue:
16602  pushValue( valueToQuotedString( value.asCString() ) );
16603  break;
16604  case booleanValue:
16605  pushValue( valueToString( value.asBool() ) );
16606  break;
16607  case arrayValue:
16608  writeArrayValue( value);
16609  break;
16610  case objectValue: {
16611  Value::Members members( value.getMemberNames() );
16612  if ( members.empty() )
16613  pushValue( "{}" );
16614  else {
16615  writeWithIndent( "{" );
16616  indent();
16617  Value::Members::iterator it = members.begin();
16618  for (;;) {
16619  const std::string &name = *it;
16620  const Value &childValue = value[name];
16621  writeCommentBeforeValue( childValue );
16622  writeWithIndent( valueToQuotedString( name.c_str() ) );
16623  *document_ << " : ";
16624  writeValue( childValue );
16625  if ( ++it == members.end() ) {
16626  writeCommentAfterValueOnSameLine( childValue );
16627  break;
16628  }
16629  *document_ << ",";
16630  writeCommentAfterValueOnSameLine( childValue );
16631  }
16632  unindent();
16633  writeWithIndent( "}" );
16634  }
16635  }
16636  break;
16637  }
16638 }
16639 
16640 
16641 void
16642 StyledStreamWriter::writeArrayValue( const Value &value ) {
16643  unsigned size = value.size();
16644  if ( size == 0 )
16645  pushValue( "[]" );
16646  else {
16647  bool isArrayMultiLine = isMultineArray( value );
16648  if ( isArrayMultiLine ) {
16649  writeWithIndent( "[" );
16650  indent();
16651  bool hasChildValue = !childValues_.empty();
16652  unsigned index =0;
16653  for (;;) {
16654  const Value &childValue = value[index];
16655  writeCommentBeforeValue( childValue );
16656  if ( hasChildValue )
16657  writeWithIndent( childValues_[index] );
16658  else {
16659  writeIndent();
16660  writeValue( childValue );
16661  }
16662  if ( ++index == size ) {
16663  writeCommentAfterValueOnSameLine( childValue );
16664  break;
16665  }
16666  *document_ << ",";
16667  writeCommentAfterValueOnSameLine( childValue );
16668  }
16669  unindent();
16670  writeWithIndent( "]" );
16671  }
16672  else { // output on a single line
16673  assert( childValues_.size() == size );
16674  *document_ << "[ ";
16675  for ( unsigned index =0; index < size; ++index ) {
16676  if ( index > 0 )
16677  *document_ << ", ";
16678  *document_ << childValues_[index];
16679  }
16680  *document_ << " ]";
16681  }
16682  }
16683 }
16684 
16685 
16686 bool
16687 StyledStreamWriter::isMultineArray( const Value &value ) {
16688  int size = value.size();
16689  bool isMultiLine = size*3 >= rightMargin_ ;
16690  childValues_.clear();
16691  for ( int index =0; index < size && !isMultiLine; ++index ) {
16692  const Value &childValue = value[index];
16693  isMultiLine = isMultiLine ||
16694  ( (childValue.isArray() || childValue.isObject()) &&
16695  childValue.size() > 0 );
16696  }
16697  if ( !isMultiLine ) { // check if line length > max line length
16698  childValues_.reserve( size );
16699  addChildValues_ = true;
16700  int lineLength = 4 + (size-1)*2; // '[ ' + ', '*n + ' ]'
16701  for ( int index =0; index < size && !isMultiLine; ++index ) {
16702  writeValue( value[index] );
16703  lineLength += int( childValues_[index].length() );
16704  isMultiLine = isMultiLine && hasCommentForValue( value[index] );
16705  }
16706  addChildValues_ = false;
16707  isMultiLine = isMultiLine || lineLength >= rightMargin_;
16708  }
16709  return isMultiLine;
16710 }
16711 
16712 
16713 void
16714 StyledStreamWriter::pushValue( const std::string &value ) {
16715  if ( addChildValues_ )
16716  childValues_.push_back( value );
16717  else
16718  *document_ << value;
16719 }
16720 
16721 
16722 void
16723 StyledStreamWriter::writeIndent() {
16724  /*
16725  Some comments in this method would have been nice. ;-)
16726 
16727  if ( !document_.empty() )
16728  {
16729  char last = document_[document_.length()-1];
16730  if ( last == ' ' ) // already indented
16731  return;
16732  if ( last != '\n' ) // Comments may add new-line
16733  *document_ << '\n';
16734  }
16735  */
16736  *document_ << '\n' << indentString_;
16737 }
16738 
16739 
16740 void
16741 StyledStreamWriter::writeWithIndent( const std::string &value ) {
16742  writeIndent();
16743  *document_ << value;
16744 }
16745 
16746 
16747 void
16748 StyledStreamWriter::indent() {
16749  indentString_ += indentation_;
16750 }
16751 
16752 
16753 void
16754 StyledStreamWriter::unindent() {
16755  assert( indentString_.size() >= indentation_.size() );
16756  indentString_.resize( indentString_.size() - indentation_.size() );
16757 }
16758 
16759 
16760 void
16761 StyledStreamWriter::writeCommentBeforeValue( const Value &root ) {
16762  if ( !root.hasComment( commentBefore ) )
16763  return;
16764  *document_ << normalizeEOL( root.getComment( commentBefore ) );
16765  *document_ << "\n";
16766 }
16767 
16768 
16769 void
16770 StyledStreamWriter::writeCommentAfterValueOnSameLine( const Value &root ) {
16771  if ( root.hasComment( commentAfterOnSameLine ) )
16772  *document_ << " " + normalizeEOL( root.getComment( commentAfterOnSameLine ) );
16773 
16774  if ( root.hasComment( commentAfter ) ) {
16775  *document_ << "\n";
16776  *document_ << normalizeEOL( root.getComment( commentAfter ) );
16777  *document_ << "\n";
16778  }
16779 }
16780 
16781 
16782 bool
16783 StyledStreamWriter::hasCommentForValue( const Value &value ) {
16784  return value.hasComment( commentBefore )
16786  || value.hasComment( commentAfter );
16787 }
16788 
16789 
16790 std::string
16791 StyledStreamWriter::normalizeEOL( const std::string &text ) {
16792  std::string normalized;
16793  normalized.reserve( text.length() );
16794  const char *begin = text.c_str();
16795  const char *end = begin + text.length();
16796  const char *current = begin;
16797  while ( current != end ) {
16798  char c = *current++;
16799  if ( c == '\r' ) { // mac or dos EOL
16800  if ( *current == '\n' ) // convert dos EOL
16801  ++current;
16802  normalized += '\n';
16803  } else // handle unix EOL & other char
16804  normalized += c;
16805  }
16806  return normalized;
16807 }
16808 
16809 
16810 std::ostream& operator<<( std::ostream &sout, const Value &root ) {
16811  Json::StyledStreamWriter writer;
16812  writer.write(sout, root);
16813  return sout;
16814 }
16815 
16816 
16817 } // namespace Json
16818 
16819 // //////////////////////////////////////////////////////////////////////
16820 // End of content of file: src/lib_json/json_writer.cpp
16821 // //////////////////////////////////////////////////////////////////////
16822 
16823 
16824 
16825 
16826 
16827 //
16828 // end of src/jsoncpp.cpp
16829 //
16830 
16831 
16832 //
16833 // start of src/jsoncustomwriter.cpp
16834 //
16835 /**********************************************************************
16836 Copyright (c) 2013 by Matt Swain <m.swain@me.com>
16837 
16838 The MIT License
16839 
16840 Permission is hereby granted, free of charge, to any person obtaining a copy
16841 of this software and associated documentation files (the "Software"), to deal
16842 in the Software without restriction, including without limitation the rights
16843 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16844 copies of the Software, and to permit persons to whom the Software is
16845 furnished to do so, subject to the following conditions:
16846 
16847 The above copyright notice and this permission notice shall be included in
16848 all copies or substantial portions of the Software.
16849 
16850 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16851 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16852 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16853 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16854 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16855 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
16856 THE SOFTWARE.
16857 
16858 ***********************************************************************/
16859 
16860 #ifndef PYNE_IS_AMALGAMATED
16861  #include "json.h"
16862  #include "jsoncustomwriter.h"
16863 #endif
16864 
16865 namespace Json {
16866 
16868  std::string closecurly,
16869  std::string opensquare,
16870  std::string closesquare,
16871  std::string colon,
16872  std::string comma,
16873  std::string indent,
16874  int maxWidth)
16875  : opencurly_( opencurly )
16876  , closecurly_( closecurly )
16877  , opensquare_( opensquare )
16878  , closesquare_( closesquare )
16879  , colon_( colon )
16880  , comma_( comma )
16881  , indent_( indent )
16882  , maxWidth_( maxWidth )
16883 {
16884 }
16885 
16886 
16887 std::string
16889 {
16890  document_ = "";
16891  indentString_ = "";
16892  writeValue( root, document_, false );
16893  document_ += "\n";
16894  return document_;
16895 }
16896 
16897 
16898 void
16899 CustomWriter::writeValue( const Value &value, std::string &doc, bool forceSingleLine )
16900 {
16901  switch ( value.type() )
16902  {
16903  case nullValue:
16904  doc += "null";
16905  break;
16906  case intValue:
16907  doc += valueToString( value.asLargestInt() );
16908  break;
16909  case uintValue:
16910  doc += valueToString( value.asLargestUInt() );
16911  break;
16912  case realValue:
16913  doc += valueToString( value.asDouble() );
16914  break;
16915  case stringValue:
16916  doc += valueToQuotedString( value.asCString() );
16917  break;
16918  case booleanValue:
16919  doc += valueToString( value.asBool() );
16920  break;
16921  case arrayValue:
16922  {
16923  bool isMulti = false;
16924  if (!forceSingleLine)
16925  {
16926  std::string valLine = "";
16927  writeValue( value, valLine, true);
16928  if (valLine.length() > maxWidth_)
16929  {
16930  isMulti = true;
16931  }
16932  else
16933  {
16934  doc += valLine;
16935  break;
16936  }
16937  }
16938  doc += opensquare_;
16939  if (isMulti)
16940  indent();
16941  for ( int index =0; index < value.size(); ++index )
16942  {
16943  if (isMulti)
16944  {
16945  doc += "\n";
16946  doc += indentString_;
16947  }
16948  writeValue( value[index], doc, false );
16949  if ( index < value.size()-1 )
16950  doc += comma_;
16951  }
16952  if (isMulti)
16953  {
16954  unindent();
16955  doc += "\n";
16956  doc += indentString_;
16957  }
16958  doc += closesquare_;
16959  }
16960  break;
16961  case objectValue:
16962  {
16963  bool isMulti = false;
16964  if (!forceSingleLine)
16965  {
16966  std::string valLine = "";
16967  writeValue( value, valLine, true);
16968  if (valLine.length() > maxWidth_)
16969  {
16970  isMulti = true;
16971  }
16972  else
16973  {
16974  doc += valLine;
16975  break;
16976  }
16977  }
16978  Value::Members members( value.getMemberNames() );
16979  doc += opencurly_;
16980  if (isMulti)
16981  indent();
16982  for ( Value::Members::iterator it = members.begin();
16983  it != members.end();
16984  ++it )
16985  {
16986  if (isMulti)
16987  {
16988  doc += "\n";
16989  doc += indentString_;
16990 
16991  }
16992  const std::string &name = *it;
16993  doc += valueToQuotedString( name.c_str() );
16994  doc += colon_;
16995  writeValue( value[name], doc, forceSingleLine );
16996  if ( !(it + 1 == members.end()) )
16997  doc += comma_;
16998  }
16999  if (isMulti)
17000  {
17001  unindent();
17002  doc += "\n";
17003  doc += indentString_;
17004  }
17005  doc += closecurly_;
17006  }
17007  break;
17008  }
17009 }
17010 
17011 
17012 void
17013 CustomWriter::indent()
17014 {
17015  indentString_ += indent_;
17016 }
17017 
17018 
17019 void
17020 CustomWriter::unindent()
17021 {
17022  int idSize = int(indent_.size());
17023  int idsSize = int(indentString_.size());
17024  if (idsSize >= idSize)
17025  indentString_.resize (idsSize - idSize);
17026 }
17027 
17028 }
17029 //
17030 // end of src/jsoncustomwriter.cpp
17031 //
17032 
17033 
17034 //
17035 // start of src/material.cpp
17036 //
17037 // Material.cpp
17038 // The very central Material class
17039 // -- Anthony Scopatz
17040 
17041 #include <string>
17042 #include <vector>
17043 #include <iomanip> // std::setprecision
17044 #include <math.h> // modf
17045 #include <stdexcept>
17046 
17047 #ifndef PYNE_IS_AMALGAMATED
17048 #include "material.h"
17049 #endif
17050 
17051 // h5wrap template
17052 template double h5wrap::get_array_index(hid_t, int, hid_t);
17053 
17054 
17055 
17056 /***************************/
17057 /*** Protected Functions ***/
17058 /***************************/
17059 
17061  // Sums the weights in the composition dictionary
17062  double sum = 0.0;
17063  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
17064  sum = sum + i->second;
17065  }
17066  return sum;
17067 }
17068 
17069 
17070 
17072  double sum = get_comp_sum();
17073  if (sum != 1.0 && sum != 0.0) {
17074  for (comp_iter i = comp.begin(); i != comp.end(); i++)
17075  i->second = i->second / sum;
17076  }
17077 
17078  if (mass < 0.0)
17079  mass = sum;
17080 }
17081 
17082 
17083 
17084 
17085 
17086 
17087 void pyne::Material::_load_comp_protocol0(hid_t db, std::string datapath, int row) {
17088  hid_t matgroup = H5Gopen2(db, datapath.c_str(), H5P_DEFAULT);
17089  hid_t nucset;
17090  double nucvalue;
17091  ssize_t nuckeylen;
17092  std::string nuckey;
17093 
17094  // get the number of members in the material group
17095  H5G_info_t group_info;
17096  H5Gget_info(matgroup, &group_info);
17097  hsize_t matG = group_info.nlinks;
17098 
17099  // Iterate over datasets in the group.
17100  for (int matg = 0; matg < matG; matg++) {
17101  nuckeylen = 1 + H5Lget_name_by_idx(matgroup, ".", H5_INDEX_NAME, H5_ITER_INC, matg,
17102  NULL, 0, H5P_DEFAULT);
17103  char * nkey = new char[nuckeylen];
17104  nuckeylen = H5Lget_name_by_idx(matgroup, ".", H5_INDEX_NAME, H5_ITER_INC, matg,
17105  nkey, nuckeylen, H5P_DEFAULT);
17106  nuckey = nkey;
17107  nucset = H5Dopen2(matgroup, nkey, H5P_DEFAULT);
17108  nucvalue = h5wrap::get_array_index<double>(nucset, row);
17109 
17110  if (nuckey == "Mass" || nuckey == "MASS" || nuckey == "mass")
17111  mass = nucvalue;
17112  else
17113  comp[pyne::nucname::id(nuckey)] = nucvalue;
17114 
17115  H5Dclose(nucset);
17116  delete[] nkey;
17117  }
17118 
17119  // Set meta data
17120  atoms_per_molecule = -1.0;
17121 }
17122 
17123 
17124 
17125 void pyne::Material::_load_comp_protocol1(hid_t db, std::string datapath, int row) {
17126  std::string nucpath;
17127  hid_t data_set = H5Dopen2(db, datapath.c_str(), H5P_DEFAULT);
17128 
17129  hsize_t data_offset[1] = {static_cast<hsize_t>(row)};
17130  if (row < 0) {
17131  // Handle negative row indices
17132  hid_t data_space = H5Dget_space(data_set);
17133  hsize_t data_dims[1];
17134  H5Sget_simple_extent_dims(data_space, data_dims, NULL);
17135  data_offset[0] += data_dims[0];
17136  }
17137 
17138  // Grab the nucpath
17139  hid_t nuc_attr = H5Aopen(data_set, "nucpath", H5P_DEFAULT);
17140  H5A_info_t nuc_info;
17141  H5Aget_info(nuc_attr, &nuc_info);
17142  hsize_t nuc_attr_len = nuc_info.data_size;
17143  hid_t str_attr = H5Tcopy(H5T_C_S1);
17144  H5Tset_size(str_attr, nuc_attr_len);
17145  char * nucpathbuf = new char [nuc_attr_len];
17146  H5Aread(nuc_attr, str_attr, nucpathbuf);
17147  nucpath = std::string(nucpathbuf, nuc_attr_len);
17148  delete[] nucpathbuf;
17149 
17150  // Grab the nuclides
17151  std::vector<int> nuclides = h5wrap::h5_array_to_cpp_vector_1d<int>(db, nucpath, H5T_NATIVE_INT);
17152  int nuc_size = nuclides.size();
17153  hsize_t nuc_dims[1] = {static_cast<hsize_t>(nuc_size)};
17154 
17155  // Get the data hyperslab
17156  hid_t data_hyperslab = H5Dget_space(data_set);
17157  hsize_t data_count[1] = {1};
17158  H5Sselect_hyperslab(data_hyperslab, H5S_SELECT_SET, data_offset, NULL, data_count, NULL);
17159 
17160  // Get memory space for writing
17161  hid_t mem_space = H5Screate_simple(1, data_count, NULL);
17162 
17163  // Get material type
17164  size_t material_data_size = sizeof(pyne::material_data) + sizeof(double)*(nuc_size-1);
17165  hid_t desc = H5Tcreate(H5T_COMPOUND, material_data_size);
17166  hid_t comp_values_array_type = H5Tarray_create2(H5T_NATIVE_DOUBLE, 1, nuc_dims);
17167 
17168  // make the data table type
17169  H5Tinsert(desc, "mass", HOFFSET(pyne::material_data, mass), H5T_NATIVE_DOUBLE);
17170  H5Tinsert(desc, "density", HOFFSET(pyne::material_data, density),
17171  H5T_NATIVE_DOUBLE);
17172  H5Tinsert(desc, "atoms_per_molecule", HOFFSET(pyne::material_data, atoms_per_mol),
17173  H5T_NATIVE_DOUBLE);
17174  H5Tinsert(desc, "comp", HOFFSET(pyne::material_data, comp), comp_values_array_type);
17175 
17176  // make the data array, have to over-allocate
17177  material_data * mat_data = new material_data [material_data_size];
17178 
17179  // Finally, get data and put in on this instance
17180  H5Dread(data_set, desc, mem_space, data_hyperslab, H5P_DEFAULT, mat_data);
17181 
17182  mass = (*mat_data).mass;
17183  density = (*mat_data).density;
17184  atoms_per_molecule = (*mat_data).atoms_per_mol;
17185  for (int i = 0; i < nuc_size; i++)
17186  comp[nuclides[i]] = (double) (*mat_data).comp[i];
17187 
17188  delete[] mat_data;
17189  H5Tclose(str_attr);
17190 
17191  //
17192  // Get metadata from associated dataset, if available
17193  //
17194  std::string attrpath = datapath + "_metadata";
17195  bool attrpath_exists = h5wrap::path_exists(db, attrpath);
17196  if (!attrpath_exists)
17197  return;
17198 
17199  hid_t metadatapace, attrtype, metadataet, metadatalab, attrmemspace;
17200  int attrrank;
17201  hvl_t attrdata [1];
17202 
17203  attrtype = H5Tvlen_create(H5T_NATIVE_CHAR);
17204 
17205  // Get the metadata from the file
17206  metadataet = H5Dopen2(db, attrpath.c_str(), H5P_DEFAULT);
17207  metadatalab = H5Dget_space(metadataet);
17208  H5Sselect_hyperslab(metadatalab, H5S_SELECT_SET, data_offset, NULL, data_count, NULL);
17209  attrmemspace = H5Screate_simple(1, data_count, NULL);
17210  H5Dread(metadataet, attrtype, attrmemspace, metadatalab, H5P_DEFAULT, attrdata);
17211 
17212  // convert to in-memory JSON
17213  Json::Reader reader;
17214  reader.parse((char *) attrdata[0].p, (char *) attrdata[0].p+attrdata[0].len, metadata, false);
17215 
17216  // close attr data objects
17217  H5Fflush(db, H5F_SCOPE_GLOBAL);
17218  H5Dclose(metadataet);
17219  H5Sclose(metadatapace);
17220  H5Tclose(attrtype);
17221 
17222  // Close out the HDF5 file
17223  H5Fclose(db);
17224 }
17225 
17226 
17227 
17228 
17229 
17230 void pyne::Material::from_hdf5(char * filename, char * datapath, int row, int protocol) {
17231  std::string fname (filename);
17232  std::string dpath (datapath);
17233  from_hdf5(fname, dpath, row, protocol);
17234 }
17235 
17236 
17237 
17238 void pyne::Material::from_hdf5(std::string filename, std::string datapath, int row, int protocol) {
17239  // Turn off annoying HDF5 errors
17240  herr_t status;
17241  H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
17242 
17243  // Check that the file is there
17244  if (!pyne::file_exists(filename))
17245  throw pyne::FileNotFound(filename);
17246 
17247  // Check to see if the file is in HDF5 format.
17248  bool ish5 = H5Fis_hdf5(filename.c_str());
17249  if (!ish5)
17250  throw h5wrap::FileNotHDF5(filename);
17251 
17252  //Set file access properties so it closes cleanly
17253  hid_t fapl;
17254  fapl = H5Pcreate(H5P_FILE_ACCESS);
17255  H5Pset_fclose_degree(fapl,H5F_CLOSE_STRONG);
17256  // Open the database
17257  hid_t db = H5Fopen(filename.c_str(), H5F_ACC_RDONLY, fapl);
17258 
17259  bool datapath_exists = h5wrap::path_exists(db, datapath);
17260  if (!datapath_exists)
17261  throw h5wrap::PathNotFound(filename, datapath);
17262 
17263  // Clear current content
17264  comp.clear();
17265 
17266  // Load via various protocols
17267  if (protocol == 0)
17268  _load_comp_protocol0(db, datapath, row);
17269  else if (protocol == 1)
17270  _load_comp_protocol1(db, datapath, row);
17271  else
17273 
17274  // Close the database
17275  status = H5Fclose(db);
17276 
17277  // Renormalize the composition, just to be safe.
17278  norm_comp();
17279 }
17280 
17281 
17282 
17283 
17284 
17285 void pyne::Material::write_hdf5(char * filename, char * datapath, char * nucpath, float row, int chunksize) {
17286  std::string fname (filename);
17287  std::string groupname (datapath);
17288  std::string nuclist (nucpath);
17289  write_hdf5(fname, groupname, nuclist, row, chunksize);
17290 }
17291 
17292 
17293 
17295  std::string nucpath, float row, int chunksize) {
17296  int row_num = (int) row;
17297 
17298  // Turn off annoying HDF5 errors
17299  H5Eset_auto2(H5E_DEFAULT, NULL, NULL);
17300 
17301  //Set file access properties so it closes cleanly
17302  hid_t fapl;
17303  fapl = H5Pcreate(H5P_FILE_ACCESS);
17304  H5Pset_fclose_degree(fapl,H5F_CLOSE_STRONG);
17305  // Create new/open datafile.
17306  hid_t db;
17307  if (pyne::file_exists(filename)) {
17308  bool ish5 = H5Fis_hdf5(filename.c_str());
17309  if (!ish5)
17310  throw h5wrap::FileNotHDF5(filename);
17311  db = H5Fopen(filename.c_str(), H5F_ACC_RDWR, fapl);
17312  }
17313  else
17314  db = H5Fcreate(filename.c_str(), H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
17315 
17316  //
17317  // Read in nuclist if available, write it out if not
17318  //
17319  bool nucpath_exists = h5wrap::path_exists(db, nucpath);
17320  std::vector<int> nuclides;
17321  int nuc_size;
17322  hsize_t nuc_dims[1];
17323 
17324  if (nucpath_exists) {
17325  nuclides = h5wrap::h5_array_to_cpp_vector_1d<int>(db, nucpath, H5T_NATIVE_INT);
17326  nuc_size = nuclides.size();
17327  nuc_dims[0] = nuc_size;
17328  } else {
17329  nuclides = std::vector<int>();
17330  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++)
17331  nuclides.push_back(i->first);
17332  nuc_size = nuclides.size();
17333 
17334  // Create the data if it doesn't exist
17335  int nuc_data [nuc_size];
17336  for (int n = 0; n != nuc_size; n++)
17337  nuc_data[n] = nuclides[n];
17338  nuc_dims[0] = nuc_size;
17339  hid_t nuc_space = H5Screate_simple(1, nuc_dims, NULL);
17340  hid_t nuc_set = H5Dcreate2(db, nucpath.c_str(), H5T_NATIVE_INT, nuc_space,
17341  H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
17342  H5Dwrite(nuc_set, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, nuc_data);
17343  H5Fflush(db, H5F_SCOPE_GLOBAL);
17344  }
17345 
17346 
17347  //
17348  // Write out the data itself to the file
17349  //
17350  hid_t data_set, data_space, data_hyperslab;
17351  int data_rank = 1;
17352  hsize_t data_dims[1] = {1};
17353  hsize_t data_max_dims[1] = {H5S_UNLIMITED};
17354  hsize_t data_offset[1] = {0};
17355 
17356  size_t material_data_size = sizeof(pyne::material_data) + sizeof(double)*(nuc_size-1);
17357  hid_t desc = H5Tcreate(H5T_COMPOUND, material_data_size);
17358  hid_t comp_values_array_type = H5Tarray_create2(H5T_NATIVE_DOUBLE, 1, nuc_dims);
17359 
17360  // make the data table type
17361  H5Tinsert(desc, "mass", HOFFSET(pyne::material_data, mass), H5T_NATIVE_DOUBLE);
17362  H5Tinsert(desc, "density", HOFFSET(pyne::material_data, density),
17363  H5T_NATIVE_DOUBLE);
17364  H5Tinsert(desc, "atoms_per_molecule", HOFFSET(pyne::material_data, atoms_per_mol),
17365  H5T_NATIVE_DOUBLE);
17366  H5Tinsert(desc, "comp", HOFFSET(pyne::material_data, comp),
17367  comp_values_array_type);
17368 
17369  material_data * mat_data = new material_data[material_data_size];
17370  (*mat_data).mass = mass;
17371  (*mat_data).density = density;
17372  (*mat_data).atoms_per_mol = atoms_per_molecule;
17373  for (int n = 0; n != nuc_size; n++) {
17374  if (0 < comp.count(nuclides[n]))
17375  (*mat_data).comp[n] = comp[nuclides[n]];
17376  else
17377  (*mat_data).comp[n] = 0.0;
17378  }
17379 
17380  // get / make the data set
17381  bool datapath_exists = h5wrap::path_exists(db, datapath);
17382  if (datapath_exists) {
17383  data_set = H5Dopen2(db, datapath.c_str(), H5P_DEFAULT);
17384  data_space = H5Dget_space(data_set);
17385  data_rank = H5Sget_simple_extent_dims(data_space, data_dims, data_max_dims);
17386 
17387  // Determine the row size.
17388  if (std::signbit(row))
17389  row_num = data_dims[0] + row; // careful, row is negative
17390 
17391  if (data_dims[0] <= row_num) {
17392  // row == -0, extend to data set so that we can append, or
17393  // row_num is larger than current dimension, resize to accomodate.
17394  data_dims[0] = row_num + 1;
17395  H5Dset_extent(data_set, data_dims);
17396  }
17397 
17398  data_offset[0] = row_num;
17399  } else {
17400  // Get full space
17401  data_space = H5Screate_simple(1, data_dims, data_max_dims);
17402 
17403  // Make data set properties to enable chunking
17404  hid_t data_set_params = H5Pcreate(H5P_DATASET_CREATE);
17405  hsize_t chunk_dims[1] = {static_cast<hsize_t>(chunksize)};
17406  H5Pset_chunk(data_set_params, 1, chunk_dims);
17407  H5Pset_deflate(data_set_params, 1);
17408 
17409  // Create the data set
17410  data_set = H5Dcreate2(db, datapath.c_str(), desc, data_space, H5P_DEFAULT,
17411  data_set_params, H5P_DEFAULT);
17412  H5Dset_extent(data_set, data_dims);
17413 
17414  // Add attribute pointing to nuc path
17415  hid_t nuc_attr_type = H5Tcopy(H5T_C_S1);
17416  H5Tset_size(nuc_attr_type, nucpath.length());
17417  hid_t nuc_attr_space = H5Screate(H5S_SCALAR);
17418  hid_t nuc_attr = H5Acreate2(data_set, "nucpath", nuc_attr_type, nuc_attr_space,
17419  H5P_DEFAULT, H5P_DEFAULT);
17420  H5Awrite(nuc_attr, nuc_attr_type, nucpath.c_str());
17421  H5Fflush(db, H5F_SCOPE_GLOBAL);
17422  }
17423 
17424  // Get the data hyperslab
17425  data_hyperslab = H5Dget_space(data_set);
17426  hsize_t data_count[1] = {1};
17427  H5Sselect_hyperslab(data_hyperslab, H5S_SELECT_SET, data_offset, NULL, data_count, NULL);
17428 
17429  // Get a memory space for writing
17430  hid_t mem_space = H5Screate_simple(1, data_count, data_max_dims);
17431 
17432  // Write the row...
17433  H5Dwrite(data_set, desc, mem_space, data_hyperslab, H5P_DEFAULT, mat_data);
17434 
17435  // Close out the Dataset
17436  H5Fflush(db, H5F_SCOPE_GLOBAL);
17437  H5Dclose(data_set);
17438  H5Sclose(data_space);
17439  H5Tclose(desc);
17440 
17441  //
17442  // Write out the metadata to the file
17443  //
17444  std::string attrpath = datapath + "_metadata";
17445  hid_t metadatapace, attrtype, metadataet, metadatalab, attrmemspace;
17446  int attrrank;
17447 
17448  attrtype = H5Tvlen_create(H5T_NATIVE_CHAR);
17449 
17450  // get / make the data set
17451  bool attrpath_exists = h5wrap::path_exists(db, attrpath);
17452  if (attrpath_exists) {
17453  metadataet = H5Dopen2(db, attrpath.c_str(), H5P_DEFAULT);
17454  metadatapace = H5Dget_space(metadataet);
17455  attrrank = H5Sget_simple_extent_dims(metadatapace, data_dims, data_max_dims);
17456 
17457  if (data_dims[0] <= row_num) {
17458  // row == -0, extend to data set so that we can append, or
17459  // row_num is larger than current dimension, resize to accomodate.
17460  data_dims[0] = row_num + 1;
17461  H5Dset_extent(metadataet, data_dims);
17462  }
17463 
17464  data_offset[0] = row_num;
17465  } else {
17466  hid_t metadataetparams;
17467  hsize_t attrchunkdims [1];
17468 
17469  // Make data set properties to enable chunking
17470  metadataetparams = H5Pcreate(H5P_DATASET_CREATE);
17471  attrchunkdims[0] = chunksize;
17472  H5Pset_chunk(metadataetparams, 1, attrchunkdims);
17473  H5Pset_deflate(metadataetparams, 1);
17474 
17475  hvl_t attrfillvalue [1];
17476  attrfillvalue[0].len = 3;
17477  attrfillvalue[0].p = (char *) "{}\n";
17478  H5Pset_fill_value(metadataetparams, attrtype, &attrfillvalue);
17479 
17480  // make dataset
17481  metadatapace = H5Screate_simple(1, data_dims, data_max_dims);
17482  metadataet = H5Dcreate2(db, attrpath.c_str(), attrtype, metadatapace,
17483  H5P_DEFAULT, metadataetparams, H5P_DEFAULT);
17484  H5Dset_extent(metadataet, data_dims);
17485  H5Pclose(metadataetparams);
17486  }
17487 
17488  // set the attr string
17489  hvl_t attrdata [1];
17490  Json::FastWriter writer;
17491  std::string metadatatr = writer.write(metadata);
17492  attrdata[0].p = (char *) metadatatr.c_str();
17493  attrdata[0].len = metadatatr.length();
17494 
17495  // write the attr
17496  metadatalab = H5Dget_space(metadataet);
17497  H5Sselect_hyperslab(metadatalab, H5S_SELECT_SET, data_offset, NULL, data_count, NULL);
17498  attrmemspace = H5Screate_simple(1, data_count, data_max_dims);
17499  H5Dwrite(metadataet, attrtype, attrmemspace, metadatalab, H5P_DEFAULT, attrdata);
17500 
17501  // close attr data objects
17502  H5Fflush(db, H5F_SCOPE_GLOBAL);
17503  H5Dclose(metadataet);
17504  H5Sclose(metadatapace);
17505  H5Tclose(attrtype);
17506 
17507  // Close out the HDF5 file
17508  H5Fclose(db);
17509  // Remember the milk!
17510  // ...by which I mean to deallocate
17511  delete[] mat_data;
17512 }
17513 
17515  //////////////////// Begin card creation ///////////////////////
17516  std::ostringstream oss;
17517  // 'name'
17518  if (metadata.isMember("name")) {
17519  oss << "C name: " << metadata["name"].asString() << std::endl;
17520  }
17521  // 'density'
17522  if (density != -1.0) {
17523  std::stringstream ds;
17524  ds << std::setprecision(1) << std::fixed << "C density = " << density << std::endl;
17525  oss << ds.str();
17526  }
17527  // 'source'
17528  if (metadata.isMember("source")) {
17529  oss << "C source: " << metadata["source"].asString() << std::endl;
17530  }
17531  // Metadata comments
17532  if (metadata.isMember("comments")) {
17533  std::string comment_string = "comments: " + metadata["comments"].asString();
17534  // Include as is if short enough
17535  if (comment_string.length() <= 77) {
17536  oss << "C " << comment_string << std::endl;
17537  }
17538  else { // otherwise create a remainder string and iterate/update it
17539  oss << "C " << comment_string.substr(0,77) << std::endl;
17540  std::string remainder_string = comment_string.substr(77);
17541  while (remainder_string.length() > 77) {
17542  oss << "C " << remainder_string.substr(0,77) << std::endl;
17543  remainder_string.erase(0,77);
17544  }
17545  if (remainder_string.length() > 0) {
17546  oss << "C " << remainder_string << std::endl;
17547  }
17548  }
17549  }
17550 
17551  // Metadata mat_num
17552  oss << "m";
17553  if (metadata.isMember("mat_number")) {
17554  int mat_num = metadata["mat_number"].asInt();
17555  oss << mat_num << std::endl;
17556  } else {
17557  oss << "?" << std::endl;
17558  }
17559 
17560  // Set up atom or mass frac map
17561  std::map<int, double> fracs;
17562  std::string frac_sign;
17563 
17564  if ("atom" == frac_type) {
17565  fracs = to_atom_frac();
17566  frac_sign = "";
17567  } else {
17568  fracs = comp;
17569  frac_sign = "-";
17570  }
17571 
17572  // iterate through frac map
17573  // This is an awkward pre-C++11 way to put an int to a string
17574  std::stringstream ss;
17575  std::string nucmcnp;
17576  std::string table_item;
17577  for(pyne::comp_iter i = fracs.begin(); i != fracs.end(); ++i) {
17578  if (i->second > 0.0) {
17579  // Clear first
17580  ss.str(std::string());
17581  ss.str("");
17582  ss << pyne::nucname::mcnp(i->first);
17583  nucmcnp = ss.str();
17584 
17585  int mcnp_id;
17586  mcnp_id = pyne::nucname::mcnp(i->first);
17587  // Spaces are important for tests
17588  table_item = metadata["table_ids"][nucmcnp].asString();
17589  if (!table_item.empty()) {
17590  oss << " " << mcnp_id << "." << table_item << " ";
17591  } else {
17592  oss << " " << mcnp_id << " ";
17593  }
17594  // The int needs a little formatting
17595  std::stringstream fs;
17596  fs << std::setprecision(4) << std::scientific << frac_sign << i->second \
17597  << std::endl;
17598  oss << fs.str();
17599  }
17600  }
17601 
17602  return oss.str();
17603 }
17604 
17605 ///---------------------------------------------------------------------------//
17606 /// Create a set out of the static string array.
17607 std::set<std::string> fluka_builtin(pyne::fluka_mat_strings,
17609 
17610 ///---------------------------------------------------------------------------//
17611 /// not_fluka_builtin
17612 ///---------------------------------------------------------------------------//
17613 /// Convenience function
17614 /// This is written as a negative because that is what we care about
17616  return (fluka_builtin.find(fluka_name) == fluka_builtin.end());
17617 }
17618 
17619 ///---------------------------------------------------------------------------//
17620 /// fluka
17621 ///---------------------------------------------------------------------------//
17622 /// Main external call
17624  std::stringstream rs;
17625 
17626  // Element, one nucid
17627  if (comp.size() == 1) {
17628  rs << fluka_material_str(id);
17629  } else if (comp.size() > 1) {
17630  // Compound
17631  rs << fluka_compound_str(id, frac_type);
17632  } else {
17633  rs << "There is no nuclide information in the Material Object" << std::endl;
17634  }
17635  return rs.str();
17636 }
17637 
17638 ///---------------------------------------------------------------------------//
17639 /// fluka_material_str
17640 ///---------------------------------------------------------------------------//
17641 ///
17642 /// Requirement: the material upon which this function is called has
17643 /// exactly one nucid component, i.e. it is elemental
17644 /// Do not assume fluka_name is defined in the metadata. This function
17645 /// may be called from a user-defined material, i.e. on that is not
17646 /// read out of a UW^2-tagged geometry file, and thus does not have
17647 /// certain metadata.
17649  std::stringstream ms;
17650  std::string fluka_name; // needed to determine if built-in
17651 
17652  int nucid = comp.begin()->first;
17653 
17654  // NOTE: first part of 'if' may never be called
17655  if (metadata.isMember("fluka_name")) {
17656  fluka_name = metadata["fluka_name"].asString();
17657  } else { // Should be elemental
17658  if (comp.size() > 1 ) {
17659  std::cerr << "Error: this mix is a compound, there should be a fluka_name defined."
17660  << std::endl;
17661  return ms.str();
17662  }
17663  fluka_name = nucname::fluka(nucid);
17664  }
17665 
17666  if (not_fluka_builtin(fluka_name)) {
17667  ms << fluka_material_component(id, nucid, fluka_name);
17668  }
17669 
17670  // could be empty
17671  return ms.str();
17672 }
17673 
17674 ///---------------------------------------------------------------------------//
17675 /// fluka_material_component
17676 ///---------------------------------------------------------------------------//
17677 /// Material has only one component,
17678 /// Density is either object density or it is ignored ==> use object density
17679 /// This function is not called for a compound, but it is called on the
17680 /// material-ized components of compounds
17682  std::string fluka_name) {
17683  int znum = pyne::nucname::znum(nucid);
17684 
17685  double atomic_mass;
17686  if (0 != pyne::NUC_DATA_PATH.length()) {
17687  // for compounds (i.e., unrecognized nucids), this will be 0
17688  atomic_mass = pyne::atomic_mass(nucid);
17689  } else {
17690  atomic_mass = 1.0;
17691  }
17692 
17693  return fluka_material_line(znum, atomic_mass, fid, fluka_name);
17694 }
17695 
17696 ///---------------------------------------------------------------------------//
17697 /// fluka_material_line
17698 ///---------------------------------------------------------------------------//
17699 /// Given all the info, return the Material string
17701  int fid, std::string fluka_name) {
17702  std::stringstream ls;
17703 
17704  if (metadata.isMember("comments") ) {
17705  std::string comment = metadata["comments"].asString();
17706  ls << "* " << comment;
17707  ls << std::endl;
17708  }
17709  ls << std::setw(10) << std::left << "MATERIAL";
17710  ls << std::setprecision(0) << std::fixed << std::showpoint <<
17711  std::setw(10) << std::right << (float)znum;
17712 
17713  ls << fluka_format_field(atomic_mass);
17714  // Note this is the current object density, and may or may not be meaningful
17715  ls << fluka_format_field(std::sqrt(density*density));
17716 
17717  ls << std::setprecision(0) << std::fixed << std::showpoint <<
17718  std::setw(10) << std::right << (float)fid;
17719  ls << std::setw(10) << std::right << "";
17720  ls << std::setw(10) << std::right << "";
17721  ls << std::setw(10) << std::left << fluka_name << std::endl;
17722 
17723  return ls.str();
17724 }
17725 
17726 ///---------------------------------------------------------------------------//
17727 /// fluka_format_field
17728 ///---------------------------------------------------------------------------//
17729 /// Convenience function that returns a 10-character formatted string
17730 /// 999 -> 999.
17731 /// 999.12 -> 999.12
17732 /// 999.123 -> 999.123
17733 /// 999.1234 -> 999.123
17735  std::stringstream ls;
17736  double intpart;
17737  modf (field, &intpart);
17738  if (field == intpart) {
17739  ls << std::setprecision(0) << std::fixed << std::showpoint
17740  << std::setw(10) << std::right << field;
17741  } else {
17742  // This will print however many digits after the decimal, up to a max of six
17743  ls.unsetf(std::ios::showpoint);
17744  ls.unsetf(std::ios::floatfield);
17745  ls.precision(6);
17746  ls << std::setw(10) << std::right << field;
17747  }
17748 
17749  return ls.str();
17750 }
17751 
17752 ///---------------------------------------------------------------------------//
17753 /// fluka_compound_str
17754 ///---------------------------------------------------------------------------//
17755 /// Returns
17756 /// -- MATERIAL line for compound
17757 /// -- COMPOUND lines
17759  std::stringstream ss;
17760  std::map<double, std::string> frac_name_map;
17761  std::string compound_string = "";
17762  std::vector<std::string> material_names;
17763 
17764  // The nucid doesn't make sense for a compound
17765  int znum = 1;
17766  double atomic_mass = 1.;
17767  // This better be true
17768  std::string compound_name;
17769  if (metadata.isMember("fluka_name")) {
17770  compound_name = metadata["fluka_name"].asString();
17771  } else {
17772  std::cerr << "Error: metadata \"fluka_name\" expected." << std::endl;
17773  compound_name = "NotFound";
17774  }
17775  ss << fluka_material_line(znum, atomic_mass, id, compound_name);
17776 
17777  std::string frac_sign;
17778  if ("atom" == frac_type) {
17779  frac_sign = "";
17780  } else {
17781  frac_sign = "-";
17782  }
17783 
17784  std::stringstream temp_s;
17785  temp_s << std::scientific;
17786  temp_s << std::setprecision(3);
17787 
17788  int counter = comp.size();
17789  pyne::comp_iter nuc = comp.begin();
17790  // This will pick up multiples of 3 components
17791  while (counter >= 3) {
17792  ss << std::setw(10) << std::left << "COMPOUND";
17793 
17794  temp_s << frac_sign << nuc->second;
17795 
17796  ss << std::setw(10) << std::right << temp_s.str();
17797  ss << std::setw(10) << std::right << nucname::fluka(nuc->first);
17798  nuc++;
17799  temp_s.str(""); // reset the stringstream for reuse
17800 
17801  temp_s << frac_sign << nuc->second;
17802  ss << std::setw(10) << std::right << temp_s.str();
17803  ss << std::setw(10) << std::right << nucname::fluka(nuc->first);
17804  nuc++;
17805  temp_s.str("");
17806 
17807  temp_s << frac_sign << nuc->second;
17808  ss << std::setw(10) << std::right << temp_s.str();
17809  ss << std::setw(10) << std::right << nucname::fluka(nuc->first);
17810  nuc++;
17811  temp_s.str("");
17812 
17813  ss << std::setw(10) << std::left << compound_name;
17814  ss << std::endl;
17815 
17816  counter -= 3;
17817  }
17818 
17819  // Get the last (or only, as the case may be) one or two fractions
17820  if (nuc != comp.end()) {
17821  ss << std::setw(10) << std::left << "COMPOUND";
17822  temp_s << frac_sign << nuc->second;
17823  ss << std::setw(10) << std::right << temp_s.str();
17824  ss << std::setw(10) << std::right << nucname::fluka(nuc->first);
17825  nuc++;
17826  temp_s.str("");
17827 
17828  if (nuc != comp.end()) {
17829  temp_s << frac_sign << nuc->second;
17830  ss << std::setw(10) << std::right << temp_s.str();
17831  ss << std::setw(10) << std::right << nucname::fluka(nuc->first);
17832  nuc++;
17833  temp_s.str("");
17834  } else {
17835  ss << std::setw(10) << std::right << "";
17836  ss << std::setw(10) << std::right << "";
17837  }
17838 
17839  ss << std::setw(10) << std::right << "";
17840  ss << std::setw(10) << std::right << "";
17841  ss << std::setw(10) << std::left << compound_name;
17842  ss << std::endl;
17843  }
17844 
17845  return ss.str();
17846 }
17847 
17848 void pyne::Material::from_text(char * filename) {
17849  std::string fname (filename);
17850  from_text(fname);
17851 }
17852 
17853 
17855  // Check that the file is there
17856  if (!pyne::file_exists(filename))
17857  throw pyne::FileNotFound(filename);
17858 
17859  // New filestream
17860  std::ifstream f;
17861  f.open(filename.c_str());
17862 
17863  // Read in
17864  comp.clear();
17865  std::string keystr, valstr;
17866 
17867  f >> keystr;
17868  while ( !f.eof() ) {
17869 
17870  if (0 == keystr.length())
17871  continue;
17872 
17873  if (keystr == "Mass"){
17874  f >> valstr;
17875  mass = pyne::to_dbl(valstr);
17876  } else if (keystr == "Density") {
17877  f >> valstr;
17878  density = pyne::to_dbl(valstr);
17879  } else if (keystr == "APerM") {
17880  f >> valstr;
17881  atoms_per_molecule = pyne::to_dbl(valstr);
17882  } else if (pyne::nucname::isnuclide(keystr) ||
17883  pyne::nucname::iselement(keystr)) {
17884  f >> valstr;
17885  if (comp.count(pyne::nucname::id(keystr))>0) {
17886  comp[pyne::nucname::id(keystr)] += pyne::to_dbl(valstr);
17887  } else {
17888  comp[pyne::nucname::id(keystr)] = pyne::to_dbl(valstr);
17889  }
17890  } else {
17891  getline(f, valstr);
17892  valstr= valstr.substr(0, valstr.length()-1);
17893  metadata[keystr]= valstr;
17894 
17895  }
17896  f >> keystr;
17897  }
17898 
17899  f.close();
17900  norm_comp();
17901 }
17902 
17903 
17904 
17905 void pyne::Material::write_text(char * filename) {
17906  std::string fname (filename);
17907  write_text(fname);
17908 }
17909 
17910 
17912  std::ofstream f;
17913  f.open(filename.c_str(), std::ios_base::trunc);
17914 
17915  Json::Reader reader;
17916  std::vector<std::string> obj = metadata.getMemberNames();
17917 
17918  if (0 <= mass)
17919  f << "Mass " << mass << "\n";
17920 
17921  if (0 <= density)
17922  f << "Density " << density << "\n";
17923 
17924  if (0 <= atoms_per_molecule)
17925  f << "APerM " << atoms_per_molecule << "\n";
17926 
17927  for (int i=0; i < metadata.size(); i=i+2){
17928  f <<metadata.get(obj.at(i), "") << metadata.get(obj.at(i+1), "");
17929  }
17930 
17931  std::string nuc_name;
17932  for(pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
17933  nuc_name = pyne::nucname::name( i->first ) + " ";
17934  while (nuc_name.length() < 8)
17935  nuc_name += " ";
17936  f << nuc_name << i->second << "\n";
17937  }
17938 
17939  f.close();
17940 }
17941 
17942 
17944  Json::Value::Members keys = json["comp"].getMemberNames();
17945  Json::Value::Members::const_iterator ikey = keys.begin();
17946  Json::Value::Members::const_iterator ikey_end = keys.end();
17947  comp.clear();
17948  for (; ikey != ikey_end; ++ikey)
17949  comp[nucname::id(*ikey)] = json["comp"][*ikey].asDouble();
17950  norm_comp();
17951  mass = json["mass"].asDouble();
17952  density = json["density"].asDouble();
17953  atoms_per_molecule = json["atoms_per_molecule"].asDouble();
17954  metadata = json["metadata"];
17955 }
17956 
17957 
17961  json["mass"] = mass;
17962  json["density"] = density;
17963  json["atoms_per_molecule"] = atoms_per_molecule;
17964  json["metadata"] = metadata;
17965  for(comp_iter i = comp.begin(); i != comp.end(); i++)
17966  jcomp[nucname::name(i->first)] = (i->second);
17967  json["comp"] = jcomp;
17968  return json;
17969 }
17970 
17971 
17972 void pyne::Material::from_json(char * filename) {
17973  std::string fname (filename);
17974  from_json(fname);
17975 }
17976 
17978  if (!pyne::file_exists(filename))
17979  throw pyne::FileNotFound(filename);
17980  std::string s;
17981  std::ifstream f (filename.c_str(), std::ios::in | std::ios::binary);
17982  f.seekg(0, std::ios::end);
17983  s.resize(f.tellg());
17984  f.seekg(0, std::ios::beg);
17985  f.read(&s[0], s.size());
17986  f.close();
17987  Json::Reader reader;
17988  Json::Value json;
17989  reader.parse(s, json);
17990  load_json(json);
17991 }
17992 
17993 
17994 void pyne::Material::write_json(char * filename) {
17995  std::string fname (filename);
17996  write_json(fname);
17997 }
17998 
18000  Json::Value json = dump_json();
18001  Json::StyledWriter writer;
18002  std::string s = writer.write(json);
18003  std::ofstream f;
18004  f.open(filename.c_str(), std::ios_base::trunc);
18005  f << s << "\n";
18006  f.close();
18007 }
18008 
18009 
18010 /************************/
18011 /*** Public Functions ***/
18012 /************************/
18013 
18014 /*--- Constructors ---*/
18015 
18017  // Empty Material constructor
18018  mass = -1.0;
18019  density = -1.0;
18020  atoms_per_molecule = -1.0;
18021  metadata = Json::Value(Json::objectValue);
18022 }
18023 
18024 
18025 pyne::Material::Material(pyne::comp_map cm, double m, double d, double apm,
18026  Json::Value attributes) {
18027  // Initializes the mass stream based on an isotopic component dictionary.
18028  comp = cm;
18029  mass = m;
18030  density=d;
18031  atoms_per_molecule = apm;
18032  metadata = attributes;
18033  if (!comp.empty())
18034  norm_comp();
18035 }
18036 
18037 
18038 
18039 pyne::Material::Material(char * filename, double m, double d, double apm,
18040  Json::Value attributes) {
18041  mass = m;
18042  density=d;
18043  atoms_per_molecule = apm;
18044  metadata = attributes;
18045 
18046  // Check that the file is there
18047  std::string fname (filename);
18048  if (!pyne::file_exists(fname))
18049  throw pyne::FileNotFound(fname);
18050 
18051  // Check to see if the file is in HDF5 format.
18052  bool ish5 = H5Fis_hdf5(fname.c_str());
18053  if (ish5)
18054  from_hdf5(fname);
18055  else
18056  from_text(fname);
18057 }
18058 
18059 
18060 pyne::Material::Material(std::string filename, double m, double d, double apm,
18061  Json::Value attributes) {
18062  // Initializes the mass stream based on an isotopic composition file with a string name.
18063  mass = m;
18064  density=d;
18065  atoms_per_molecule = apm;
18066  metadata = attributes;
18067 
18068  // Check that the file is there
18069  if (!pyne::file_exists(filename))
18070  throw pyne::FileNotFound(filename);
18071 
18072  // Check to see if the file is in HDF5 format.
18073  bool ish5 = H5Fis_hdf5(filename.c_str());
18074  if (ish5)
18075  from_hdf5(filename);
18076  else
18077  from_text(filename);
18078 }
18079 
18080 
18082 }
18083 
18084 
18085 
18086 /*--- Method definitions ---*/
18087 
18088 
18089 std::ostream& operator<<(std::ostream& os, pyne::Material mat) {
18090  //print the Mass Stream to stdout
18091  os << "\tMass: " << mat.mass << "\n";
18092  os << "\t---------\n";
18093  for(pyne::comp_iter i = mat.comp.begin(); i != mat.comp.end(); i++)
18094  {
18095  os << "\t" << pyne::nucname::name( i->first ) << "\t" << i->second << "\n";
18096  }
18097  return os;
18098 }
18099 
18100 // Note this refines << for an inheritor of std::ostream.
18101 std::ostringstream& operator<<(std::ostringstream& os, pyne::Material mat) {
18102  return os;
18103 }
18104 
18106  // normalizes the mass
18107  mass = 1.0;
18108 }
18109 
18110 
18112  // bypass calculation if already normalized.
18113  if (mass == 1.0)
18114  return comp;
18115 
18116  pyne::comp_map cm;
18117  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18118  cm[i->first] = (i->second) * mass;
18119  }
18120  return cm;
18121 }
18122 
18123 
18124 
18127  double masspermole = mass * pyne::N_A;
18128  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18129  act[i->first] = masspermole * (i->second) * decay_const(i->first) / \
18130  atomic_mass(i->first);
18131  }
18132  return act;
18133 }
18134 
18135 
18137  pyne::comp_map dh;
18138  double masspermole = mass * pyne::N_A;
18139  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18140  dh[i->first] = masspermole * (i->second) * \
18141  decay_const(i->first) * q_val(i->first) / \
18142  atomic_mass(i->first) / pyne::MeV_per_MJ;
18143  }
18144  return dh;
18145 }
18146 
18147 
18150  const double pCi_per_Bq = 27.027027;
18151  if (dose_type == "ext_air") {
18152  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18153  dose[i->first] = Ci_per_Bq * pyne::N_A * (i->second) * \
18154  decay_const(i->first) * ext_air_dose(i->first, source) / \
18155  atomic_mass(i->first);
18156  }
18157  } else if (dose_type == "ext_soil") {
18158  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18159  dose[i->first] = Ci_per_Bq * pyne::N_A * (i->second) * \
18160  decay_const(i->first) * ext_soil_dose(i->first, source) / \
18161  atomic_mass(i->first);
18162  }
18163  } else if (dose_type == "ingest") {
18164  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18165  dose[i->first] = pCi_per_Bq * pyne::N_A * (i->second) * \
18166  decay_const(i->first) * ingest_dose(i->first, source) / \
18167  atomic_mass(i->first);
18168  }
18169  } else if (dose_type == "inhale") {
18170  for (pyne::comp_iter i = comp.begin(); i != comp.end(); ++i) {
18171  dose[i->first] = pCi_per_Bq * pyne::N_A * (i->second) * \
18172  decay_const(i->first) * inhale_dose(i->first, source) / \
18173  atomic_mass(i->first);
18174  }
18175  } else {
18176  throw std::invalid_argument("Dose type must be one of: ext_air, ext_soil, ingest, inhale.");
18177  }
18178  return dose;
18179 }
18180 
18181 
18183  // Calculate the atomic weight of the Material
18184  double inverseA = 0.0;
18185 
18186  for (pyne::comp_iter nuc = comp.begin(); nuc != comp.end(); nuc++)
18187  inverseA += (nuc->second) / pyne::atomic_mass(nuc->first);
18188 
18189  if (inverseA == 0.0)
18190  return inverseA;
18191 
18192  // select the atoms per mol
18193  double atsperm = 1.0; // default to 1.0
18194  if (0.0 <= apm) {
18195  atsperm = apm; // take the function argument, if valid
18196  if (atoms_per_molecule < 0.0)
18197  atoms_per_molecule = apm; // Store the function argument on class, if class has no value
18198  } else if (0.0 <= atoms_per_molecule)
18199  atsperm = atoms_per_molecule; // select the class's value
18200 
18201  return atsperm / inverseA;
18202 }
18203 
18204 
18206  // Expands the natural elements of a material and returns a new material note
18207  // that this implementation relies on the fact that maps of ints are stored in
18208  // a sorted manner in C++.
18209  int n, nabund, znuc, zabund;
18210  comp_map newcomp;
18211  std::map<int, double>::iterator abund_itr, abund_end;
18212  if (pyne::natural_abund_map.empty())
18214  abund_itr = pyne::natural_abund_map.begin();
18215  abund_end = pyne::natural_abund_map.end();
18216  zabund = nucname::znum((*abund_itr).first);
18217  for (comp_iter nuc = comp.begin(); nuc != comp.end(); nuc++) {
18218  if(abund_itr == abund_end)
18219  newcomp.insert(*nuc);
18220  else if(0 == nucname::anum((*nuc).first)) {
18221  n = (*nuc).first;
18222  znuc = nucname::znum(n);
18223  if (znuc < zabund) {
18224  newcomp.insert(*nuc);
18225  continue;
18226  }
18227  while(zabund <= znuc) {
18228  nabund = (*abund_itr).first;
18229  if (zabund == znuc && 0 != nucname::anum(nabund) && 0.0 != (*abund_itr).second)
18230  newcomp[nabund] = (*abund_itr).second * (*nuc).second * \
18231  atomic_mass(nabund) / atomic_mass(n);
18232  else if (n == nabund && 0.0 == (*abund_itr).second)
18233  newcomp.insert(*nuc);
18234  abund_itr++;
18235  if (abund_itr == abund_end) {
18236  zabund = INT_MAX;
18237  break;
18238  }
18239  zabund = nucname::znum(nabund);
18240  }
18241  } else
18242  newcomp.insert(*nuc);
18243  }
18244  return Material(newcomp, mass, density, atoms_per_molecule, metadata);
18245 }
18246 
18248  ////////////////////////////////////////////////////////////////////////
18249  // Assumptions
18250  // - list passed in is of nucid's formed from the znum-anum of
18251  // Fluka-named isotopes, since we want to preserve the full
18252  // nucid of any such material in the problem
18253  // Algorithm
18254  // for each component listed in this material that has a nonzero frac or
18255  // weight amount, look at its 'stripped' nucid, that is, the last four
18256  // places replaced by zeros.
18257  // if it's on the exception list, copy the component
18258  // else it is to be collapsed
18259  // => add its frac to the component of the znum
18260  //
18261  // * When from_hdf5 reads from a file the comp iterator will produce a
18262  // hit for EVERY nucid in EVERY material in the file. Only the nucids
18263  // belonging to the CURRENT material have a nonzero fraction/mass amount
18264  /////////////////////////////////////////////////////////////////////////
18265  pyne::comp_map cm;
18266 
18267  for (pyne::comp_iter ptr = comp.begin(); ptr != comp.end(); ptr++) {
18268  if (0 < ptr->second) {
18269  // There is a nonzero amount of this nucid in the current material,
18270  // check if znum and anum are in the exception list,
18271  int cur_stripped_id = nucname::znum(ptr->first)*10000000
18272  + nucname::anum(ptr->first)*10000;
18273  if (0 < exception_ids.count(cur_stripped_id)) {
18274  // The znum/anum combination identify the current material as a
18275  // fluka-named exception list => copy, don't collapse
18276  cm[ptr->first] = (ptr->second) * mass;
18277  } else {
18278  // Not on exception list => add frac to id-component
18279  int znum_id = nucname::id(nucname::znum(ptr->first));
18280  cm[znum_id] += (ptr->second) * mass;
18281  }
18282  }
18283  }
18284  // Copy
18285  pyne::Material collapsed = pyne::Material(cm, mass, density,
18286  atoms_per_molecule, metadata);
18287  return collapsed;
18288 }
18289 
18290 // Wrapped version for calling from python
18292  std::set<int> nucvec;
18293  // Set first pointer to first int pointed to by arg
18294  int *int_ptr = *int_ptr_arry;
18295  while (int_ptr != NULL)
18296  {
18297  nucvec.insert(*int_ptr);
18298  int_ptr++;
18299  }
18300  return collapse_elements(nucvec);
18301 }
18302 
18303 double pyne::Material::mass_density(double num_dens, double apm) {
18304  if (0.0 <= num_dens) {
18305  double mw = molecular_mass(apm);
18306  density = num_dens * mw / pyne::N_A / atoms_per_molecule;
18307  }
18308  return density;
18309 }
18310 
18311 
18312 double pyne::Material::number_density(double mass_dens, double apm) {
18313  if (0 <= mass_dens)
18314  density = mass_dens;
18315  double mw = molecular_mass(apm);
18316  double num_dens = density * pyne::N_A * atoms_per_molecule / mw;
18317  return num_dens;
18318 }
18319 
18320 
18321 /*--- Stub-Stream Computation ---*/
18322 
18324  // Grabs a sub-material from this mat based on a set of integers.
18325  // Integers can either be of id form -OR- they can be a z-numer (is 8 for O, 93 for Np, etc).
18326 
18327  pyne::comp_map cm;
18328  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18329  if ( 0 < nucset.count(i->first) )
18330  cm[i->first] = (i->second) * mass;
18331  }
18332 
18333  return pyne::Material(cm, -1, -1);
18334 }
18335 
18336 
18337 
18338 pyne::Material pyne::Material::sub_mat(std::set<std::string> nucset) {
18339  // Grabs a substream from this stream based on a set of strings.
18340  // Strings can be of any form.
18341  std::set<int> iset;
18342  for (std::set<std::string>::iterator i = nucset.begin(); i != nucset.end(); i++) {
18343  iset.insert(pyne::nucname::id(*i));
18344  }
18345 
18346  return sub_mat(iset);
18347 }
18348 
18349 
18350 
18351 pyne::Material pyne::Material::set_mat (std::set<int> nucset, double value) {
18352  // Sets a sub-material from this mat based on a set of integers.
18353  // Integers can either be of id form -OR- they can be a z-numer (is 8 for O, 93 for Np, etc).
18354  // n is the name of the new material.
18355 
18356  pyne::comp_map cm;
18357 
18358  // Add non-set components
18359  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18360  if ( 0 == nucset.count(i->first) )
18361  cm[i->first] = (i->second) * mass;
18362  }
18363 
18364  // Add set component
18365  for (std::set<int>::iterator nuc = nucset.begin(); nuc != nucset.end(); nuc++)
18366  cm[*nuc] = value;
18367 
18368  return pyne::Material(cm, -1, -1);
18369 }
18370 
18371 
18372 
18373 pyne::Material pyne::Material::set_mat(std::set<std::string> nucset, double value) {
18374  // Sets a substream from this stream based on a set of strings.
18375  // Strings can be of any form.
18376  std::set<int> iset;
18377  for (std::set<std::string>::iterator i = nucset.begin(); i != nucset.end(); i++) {
18378  iset.insert(pyne::nucname::id(*i));
18379  }
18380 
18381  return set_mat(iset, value);
18382 }
18383 
18384 
18385 
18386 
18388  // Removes a sub-material from this mat based on a set of integers.
18389  // Integers can either be of id form -OR- they can be a z-numer (is 8 for O, 93 for Np, etc).
18390  // n is the name of the new material.
18391 
18392  pyne::comp_map cm;
18393  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18394  // Only add to new comp if not in nucset
18395  if ( 0 == nucset.count(i->first) )
18396  cm[i->first] = (i->second) * mass;
18397  }
18398 
18399  return pyne::Material(cm, -1, -1);
18400 }
18401 
18402 
18403 
18404 pyne::Material pyne::Material::del_mat (std::set<std::string> nucset) {
18405  // Removes a substream from this stream based on a set of strings.
18406  // Strings can be of any form.
18407  std::set<int> iset;
18408  for (std::set<std::string>::iterator i = nucset.begin(); i != nucset.end(); i++) {
18409  iset.insert(pyne::nucname::id(*i));
18410  }
18411 
18412  return del_mat(iset);
18413 }
18414 
18415 
18416 
18417 
18418 
18419 
18421  // Grabs a sub-material from this mat based on a range of integers.
18422  if (upper < lower)
18423  {
18424  int temp_upper = upper;
18425  upper = lower;
18426  lower = temp_upper;
18427  }
18428 
18429  pyne::comp_map cm;
18430  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18431  if ((lower <= (i->first)) && ((i->first) < upper))
18432  cm[i->first] = (i->second) * mass;
18433  }
18434 
18435  return pyne::Material(cm, -1,-1);
18436 }
18437 
18438 
18439 
18440 pyne::Material pyne::Material::set_range(int lower, int upper, double value) {
18441  // Sets a sub-material from this mat based on a range of integers.
18442  if (upper < lower) {
18443  int temp_upper = upper;
18444  upper = lower;
18445  lower = temp_upper;
18446  }
18447 
18448  pyne::comp_map cm;
18449  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18450  if ((lower <= (i->first)) && ((i->first) < upper))
18451  cm[i->first] = value;
18452  else
18453  cm[i->first] = (i->second) * mass;
18454  }
18455 
18456  return pyne::Material(cm, -1,-1);
18457 }
18458 
18459 
18460 
18462  // Removes a sub-material from this mat based on a range of integers.
18463  if (upper < lower) {
18464  int temp_upper = upper;
18465  upper = lower;
18466  lower = temp_upper;
18467  }
18468 
18469  pyne::comp_map cm;
18470  for (pyne::comp_iter i = comp.begin(); i != comp.end(); i++) {
18471  if ((upper <= (i->first)) || ((i->first) < lower))
18472  cm[i->first] = (i->second) * mass;
18473  }
18474 
18475  return pyne::Material(cm, -1, -1);
18476 }
18477 
18478 
18479 
18480 
18481 
18482 
18483 
18484 
18485 
18486 
18488  // Returns a material of the element that is a submaterial of this one.
18489  return sub_range(elem, elem + 10000000);
18490 }
18491 
18492 
18493 
18495  // Returns a material of Lanthanides that is a sub-material of this one.
18496  return sub_range(570000000, 720000000);
18497 }
18498 
18499 
18500 
18502  //Returns a material of Actindes that is a sub-material of this one.
18503  return sub_range(890000000, 1040000000);
18504 }
18505 
18506 
18508  // Returns a material of Transuranics that is a sub-material of this one.
18509  return sub_range(930000000, INT_MAX);
18510 }
18511 
18512 
18513 
18515  // Returns a material of Minor Actinides that is a sub-material of this one.
18516  return sub_range(930000000, 1040000000).del_range(940000000, 950000000);
18517 }
18518 
18519 
18520 
18522  // Returns a material of Fission Products that is a sub-material of this one.
18523  return sub_range(0, 890000000);
18524 }
18525 
18526 
18527 
18528 
18529 /*--- Atom Frac Functions ---*/
18530 
18531 std::map<int, double> pyne::Material::to_atom_frac() {
18532  // Returns an atom fraction map from this material's composition
18533  // the material's molecular mass
18534  double mat_mw = molecular_mass();
18535 
18536  std::map<int, double> atom_fracs = std::map<int, double>();
18537 
18538  for (comp_iter ci = comp.begin(); ci != comp.end(); ci++)
18539  atom_fracs[ci->first] = (ci->second) * mat_mw / pyne::atomic_mass(ci->first);
18540 
18541  return atom_fracs;
18542 }
18543 
18544 
18545 void pyne::Material::from_atom_frac(std::map<int, double> atom_fracs) {
18546  // atom frac must be of the form {nuc: af}, eg, water
18547  // 80160: 1.0
18548  // 10010: 2.0
18549 
18550  // clear existing components
18551  comp.clear();
18552  atoms_per_molecule = 0.0;
18553 
18554  for (std::map<int, double>::iterator afi = atom_fracs.begin(); afi != atom_fracs.end(); afi++) {
18555  comp[afi->first] = (afi->second) * pyne::atomic_mass(afi->first);
18556  atoms_per_molecule += (afi->second);
18557  }
18558 
18559  norm_comp();
18560 }
18561 
18562 
18563 std::map<int, double> pyne::Material::to_atom_dens() {
18564  // Returns an atom density map from this material's composition
18565  // the material's density
18566 
18567  std::map<int, double> atom_dens = std::map<int, double>();
18568 
18569  for (comp_iter ci = comp.begin(); ci != comp.end(); ci++)
18570  atom_dens[ci->first] = (ci->second) * density * pyne::N_A / pyne::atomic_mass(ci->first);
18571 
18572  return atom_dens;
18573 }
18574 
18575 
18576 std::vector<std::pair<double, double> > pyne::Material::gammas() {
18577  std::vector<std::pair<double, double> > result;
18578  std::map<int, double> atom_fracs = this->to_atom_frac();
18579  int state_id;
18580  for (comp_iter ci = comp.begin(); ci != comp.end(); ci++) {
18581  if (ci->first % 10000 > 0)
18582  state_id = nucname::id_to_state_id(ci->first);
18583  else
18584  state_id = ci->first;
18585 
18586  std::vector<std::pair<double, double> > raw_gammas = pyne::gammas(state_id);
18587  for (int i = 0; i < raw_gammas.size(); ++i) {
18588  result.push_back(std::make_pair(raw_gammas[i].first,
18589  atom_fracs[ci->first]*raw_gammas[i].second));
18590  }
18591  }
18592  return result;
18593 }
18594 
18595 std::vector<std::pair<double, double> > pyne::Material::xrays() {
18596  std::vector<std::pair<double, double> > result;
18597  std::map<int, double> atom_fracs = this->to_atom_frac();
18598  int state_id;
18599  for (comp_iter ci = comp.begin(); ci != comp.end(); ci++) {
18600  if (ci->first % 10000 > 0)
18601  state_id = nucname::id_to_state_id(ci->first);
18602  else
18603  state_id = ci->first;
18604 
18605  std::vector<std::pair<double, double> > raw_xrays = pyne::xrays(state_id);
18606  for (int i = 0; i < raw_xrays.size(); ++i) {
18607  result.push_back(std::make_pair(raw_xrays[i].first,
18608  atom_fracs[ci->first]*raw_xrays[i].second));
18609  }
18610  }
18611  return result;
18612 }
18613 
18614 std::vector<std::pair<double, double> > pyne::Material::photons(bool norm) {
18615  std::vector<std::pair<double, double> > txray = this->xrays();
18616  std::vector<std::pair<double, double> > tgammas = this->gammas();
18617  for (int i = 0; i < txray.size(); ++i)
18618  tgammas.push_back(txray[i]);
18619  if (norm)
18620  tgammas = normalize_radioactivity(tgammas);
18621  return tgammas;
18622 }
18623 
18624 std::vector<std::pair<double, double> > pyne::Material::normalize_radioactivity(
18625 std::vector<std::pair<double, double> > unnormed) {
18626  std::vector<std::pair<double, double> > normed;
18627  double sum = 0.0;
18628  for (int i = 0; i < unnormed.size(); ++i) {
18629  if (!isnan(unnormed[i].second))
18630  sum = sum + unnormed[i].second;
18631  }
18632  for (int i = 0; i < unnormed.size(); ++i) {
18633  if (!isnan(unnormed[i].second)) {
18634  normed.push_back(std::make_pair(unnormed[i].first,
18635  (unnormed[i].second)/sum));
18636  }
18637  }
18638  return normed;
18639 }
18640 
18641 
18643  Material rtn;
18644  comp_map out = pyne::decayers::decay(to_atom_frac(), t);
18645  rtn.from_atom_frac(out);
18646  rtn.mass = mass * rtn.molecular_mass() / molecular_mass();
18647  return rtn;
18648 }
18649 
18650 
18652  // Overloads x + y
18653  return pyne::Material(comp, mass + y, density);
18654 }
18655 
18656 
18657 
18659  // Overloads x + y
18660  pyne::comp_map cm;
18661  pyne::comp_map xwgt = mult_by_mass();
18662  pyne::comp_map ywgt = y.mult_by_mass();
18663 
18664  for (pyne::comp_iter i = xwgt.begin(); i != xwgt.end(); i++) {
18665  if ( 0 < ywgt.count(i->first) )
18666  cm[i->first] = xwgt[i->first] + ywgt[i->first];
18667  else
18668  cm[i->first] = xwgt[i->first];
18669  }
18670 
18671  for (pyne::comp_iter i = ywgt.begin(); i != ywgt.end(); i++) {
18672  if ( 0 == cm.count(i->first) )
18673  cm[i->first] = ywgt[i->first];
18674  }
18675 
18676  return pyne::Material(cm, -1, -1);
18677 }
18678 
18679 
18680 
18682  // Overloads x * y
18683  return pyne::Material(comp, mass * y, density);
18684 }
18685 
18686 
18687 
18689  // Overloads x / y
18690  return pyne::Material(comp, mass / y, density );
18691 }
18692 //
18693 // end of src/material.cpp
18694 //
18695 
18696 
18697 //
18698 // start of src/enrichment_cascade.cpp
18699 //
18700 // Enrichment Cascade
18701 #ifndef PYNE_IS_AMALGAMATED
18702 #include "enrichment_cascade.h"
18703 #endif
18704 
18705 namespace pyne_enr = pyne::enrichment;
18706 
18707 /*********************************/
18708 /*** Enrichment Helper Classes ***/
18709 /*********************************/
18711  alpha = 0.0;
18712  Mstar = 0.0;
18713 
18714  j = 0;
18715  k = 0;
18716 
18717  N = 0.0;
18718  M = 0.0;
18719 
18720  x_feed_j = 0.0;
18721  x_prod_j = 0.0;
18722  x_tail_j = 0.0;
18723 
18724  mat_feed = pyne::Material();
18725  mat_prod = pyne::Material();
18726  mat_tail = pyne::Material();
18727 
18728  l_t_per_feed = 0.0;
18729  swu_per_feed = 0.0;
18730  swu_per_prod = 0.0;
18731 }
18732 
18733 
18735 }
18736 
18737 
18739  // resets the key enriment member variables
18740  x_feed_j = mat_feed.comp[j];
18741  x_prod_j = mat_prod.comp[j];
18742  x_tail_j = mat_tail.comp[j];
18743 }
18744 
18745 //
18746 // end of src/enrichment_cascade.cpp
18747 //
18748 
18749 
18750 //
18751 // start of src/enrichment.cpp
18752 //
18753 // Enrichment
18754 #ifndef PYNE_IS_AMALGAMATED
18755 #include "enrichment.h"
18756 #endif
18757 
18758 namespace pyne_enr = pyne::enrichment;
18759 
18761  // Default cascade for uranium-based enrichment
18762  Cascade duc;
18763 
18764  duc.alpha = 1.05;
18765  duc.Mstar = 236.5;
18766 
18767  duc.j = 922350000;
18768  duc.k = 922380000;
18769 
18770  duc.N = 30.0;
18771  duc.M = 10.0;
18772 
18773  duc.x_feed_j = 0.0072;
18774  duc.x_prod_j = 0.05;
18775  duc.x_tail_j = 0.0025;
18776 
18777  pyne::comp_map cm;
18778  cm[922340000] = 0.000055;
18779  cm[922350000] = 0.00720;
18780  cm[922380000] = 0.992745;
18781  duc.mat_feed = pyne::Material(cm, 1.0, 1.0);
18782 
18783  return duc;
18784 }
18786 
18787 
18788 
18789 double pyne_enr::feed_per_prod(double x_feed, double x_prod, double x_tail) {
18790  return 1 / prod_per_feed(x_feed, x_prod, x_tail);
18791 }
18792 
18793 double pyne_enr::feed_per_tail(double x_feed, double x_prod, double x_tail) {
18794  return 1 / tail_per_feed(x_feed, x_prod, x_tail);
18795 }
18796 
18797 double pyne_enr::prod_per_tail(double x_feed, double x_prod, double x_tail) {
18798  return 1 / tail_per_prod(x_feed, x_prod, x_tail);
18799 }
18800 
18801 double pyne_enr::prod_per_feed(double x_feed, double x_prod, double x_tail) {
18802  return (x_feed - x_tail) / (x_prod - x_tail);
18803 }
18804 
18805 double pyne_enr::tail_per_feed(double x_feed, double x_prod, double x_tail) {
18806  return (x_feed - x_prod) / (x_tail - x_prod);
18807 }
18808 
18809 double pyne_enr::tail_per_prod(double x_feed, double x_prod, double x_tail) {
18810  return (x_feed - x_prod) / (x_tail - x_feed);
18811 }
18812 
18813 double pyne_enr::value_func(double x) {
18814  return (2 * x - 1) * log(x / (1 - x));
18815 }
18816 
18817 double pyne_enr::swu_per_feed(double x_feed, double x_prod, double x_tail) {
18818  return
18819  prod_per_feed(x_feed, x_prod, x_tail) * value_func(x_prod) + \
18820  tail_per_feed(x_feed, x_prod, x_tail) * value_func(x_tail) - \
18821  value_func(x_feed);
18822 }
18823 
18824 double pyne_enr::swu_per_prod(double x_feed, double x_prod, double x_tail) {
18825  return
18826  value_func(x_prod) + \
18827  tail_per_prod(x_feed, x_prod, x_tail) * value_func(x_tail) - \
18828  feed_per_prod(x_feed, x_prod, x_tail) * value_func(x_feed);
18829 }
18830 
18831 double pyne_enr::swu_per_tail(double x_feed, double x_prod, double x_tail) {
18832  return
18833  prod_per_tail(x_feed, x_prod, x_tail) * value_func(x_prod) + \
18834  value_func(x_tail) - \
18835  feed_per_tail(x_feed, x_prod, x_tail) * value_func(x_feed);
18836 }
18837 
18838 
18839 double pyne_enr::alphastar_i(double alpha, double Mstar, double M_i) {
18840  // M_i is the mass of the ith nuclide
18841  return pow(alpha, (Mstar - M_i));
18842 }
18843 
18844 
18845 void pyne_enr::_recompute_nm(pyne_enr::Cascade & casc, double tolerance) {
18846 
18847  double ppf = prod_per_feed(casc.mat_feed.comp[casc.j], casc.x_prod_j, casc.x_tail_j);
18848  double tpf = tail_per_feed(casc.mat_feed.comp[casc.j], casc.x_prod_j, casc.x_tail_j);
18849  double astar_j = alphastar_i(casc.alpha, casc.Mstar, pyne::atomic_mass(casc.j));
18850 
18851  // Save original state of N & M
18852  double N = casc.N;
18853  double M = casc.M;
18854  double origN = casc.N;
18855  double origM = casc.M;
18856 
18857  double lhs_prod = ppf * casc.x_prod_j / casc.mat_feed.comp[casc.j];
18858  double rhs_prod = (pow(astar_j, M+1.0) - 1.0) / (pow(astar_j, M+1.0) - pow(astar_j, -N));
18859  double lhs_tail = tpf * casc.x_tail_j / casc.mat_feed.comp[casc.j];
18860  double rhs_tail = (1.0 - pow(astar_j, -N)) / (pow(astar_j, M+1.0) - pow(astar_j, -N));
18861 
18862  double n = 1.0;
18863  double delta_prod = lhs_prod - rhs_prod;
18864  double delta_tail = lhs_tail - rhs_tail;
18865  while (tolerance < fabs(delta_prod) && tolerance < fabs(delta_tail)) {
18866  delta_prod = lhs_prod - rhs_prod;
18867  delta_tail = lhs_tail - rhs_tail;
18868 
18869  if (tolerance < fabs(delta_prod)) {
18870  N = N - (delta_prod * N);
18871  rhs_prod = (pow(astar_j, M+1.0) - 1.0) / (pow(astar_j, M+1.0) - pow(astar_j, -N));
18872  }
18873 
18874  if (tolerance < fabs(delta_tail)) {
18875  M = M - (delta_tail * M);
18876  rhs_tail = (1.0 - pow(astar_j, -N)) / (pow(astar_j, M+1.0) - pow(astar_j, -N));
18877  }
18878 
18879  if (N < tolerance) {
18880  N = origN + n;
18881  M = origM + n;
18882  n = n + 1.0;
18883  }
18884 
18885  if (M < tolerance) {
18886  N = origN + n;
18887  M = origM + n;
18888  n = n + 1.0;
18889  }
18890  }
18891 
18892  casc.N = N;
18893  casc.M = M;
18894  return;
18895 }
18896 
18897 
18898 
18900  //This function takes a given initial guess number of enriching and stripping stages
18901  //for a given composition of fuel with a given jth key component, knowing the values
18902  //that are desired in both Product and Tails streams. Having this it solves for what
18903  //the actual N and M stage numbers are and also what the product and waste streams
18904  //compositions are. It returns precisely these.
18905  pyne::comp_map comp_prod;
18906  pyne::comp_map comp_tail;
18907 
18908  int nuc;
18909  double astar_i, numer_prod, numer_tail, denom_prod, denom_tail;
18910 
18911  double N = casc.N;
18912  double M = casc.M;
18913 
18914  double ppf = prod_per_feed(casc.mat_feed.comp[casc.j], casc.x_prod_j, casc.x_tail_j);
18915  double tpf = tail_per_feed(casc.mat_feed.comp[casc.j], casc.x_prod_j, casc.x_tail_j);
18916 
18917  for (pyne::comp_iter i = casc.mat_feed.comp.begin(); i != casc.mat_feed.comp.end(); i++) {
18918  nuc = (i->first);
18919  astar_i = alphastar_i(casc.alpha, casc.Mstar, pyne::atomic_mass(nuc));
18920 
18921  // calc prod comp
18922  numer_prod = casc.mat_feed.comp[nuc] * (pow(astar_i, M+1.0) - 1.0);
18923  denom_prod = (pow(astar_i, M+1.0) - pow(astar_i, -N)) / ppf;
18924  comp_prod[nuc] = numer_prod / denom_prod;
18925 
18926  // calc tail comp
18927  numer_tail = casc.mat_feed.comp[nuc] * (1.0 - pow(astar_i, -N));
18928  denom_tail = (pow(astar_i, M+1.0) - pow(astar_i, -N)) / tpf;
18929  comp_tail[nuc] = numer_tail / denom_tail;
18930  }
18931 
18932  casc.mat_prod = pyne::Material(comp_prod);
18933  casc.mat_tail = pyne::Material(comp_tail);
18934  return;
18935 }
18936 
18937 
18938 
18940  double tolerance, int max_iter) {
18941  // This function actually solves the whole system of equations. It uses _recompute_prod_tail_mats
18942  // to find the roots for the enriching and stripping stage numbers. It then
18943  // checks to see if the product and waste streams meet their target enrichments
18944  // for the jth component like they should. If they don't then it trys other values
18945  // of N and M varied by the Secant ethod. Rinse and repeat as needed.
18946  int j = casc.j;
18947  pyne_enr::Cascade prev_casc = casc;
18948  pyne_enr::Cascade curr_casc = casc;
18949 
18950  // Is the history of N and M that has been input
18951  unsigned int h;
18952  int niter = 0;
18953  int max_hist = max_iter / 10;
18954  std::vector<double> historyN;
18955  std::vector<double> historyM;
18956 
18957  // Initialize prev point
18958  prev_casc.N += 1.0;
18959  prev_casc.M += 1.0;
18960  _recompute_nm(prev_casc, tolerance);
18961  _recompute_prod_tail_mats(prev_casc);
18962  historyN.push_back(prev_casc.N);
18963  historyM.push_back(prev_casc.M);
18964 
18965 
18966  // Initialize current point
18967  _recompute_nm(curr_casc, tolerance);
18968  _recompute_prod_tail_mats(curr_casc);
18969  historyN.push_back(curr_casc.N);
18970  historyM.push_back(curr_casc.M);
18971 
18972  // My guess is that what we are checkin here is that the isotopic compositions
18973  // make sense with abs(1.0 - masscurr_P) rather than calculatign the
18974  // relative product to watse mass streams.
18975  double prev_N = prev_casc.N;
18976  double prev_M = prev_casc.M;
18977  double curr_N = curr_casc.N;
18978  double curr_M = curr_casc.M;
18979  double temp_prev_N = 0.0;
18980  double temp_prev_M = 0.0;
18981  double temp_curr_N = 0.0;
18982  double temp_curr_M = 0.0;
18983 
18984  double delta_x_prod_j = casc.x_prod_j - curr_casc.mat_prod.comp[j];
18985  double delta_x_tail_j = casc.x_tail_j - curr_casc.mat_tail.comp[j];
18986 
18987  while ((tolerance < fabs(delta_x_prod_j) / curr_casc.mat_prod.comp[j] || \
18988  tolerance < fabs(delta_x_tail_j) / curr_casc.mat_tail.comp[j]) && \
18989  niter < max_iter) {
18990  delta_x_prod_j = casc.x_prod_j - curr_casc.mat_prod.comp[j];
18991  delta_x_tail_j = casc.x_tail_j - curr_casc.mat_tail.comp[j];
18992 
18993  if (tolerance <= fabs(delta_x_prod_j)/curr_casc.mat_prod.comp[j]) {
18994  // Make a new guess for N
18995  temp_curr_N = curr_N;
18996  temp_prev_N = prev_N;
18997  curr_N = curr_N + delta_x_prod_j*\
18998  ((curr_N - prev_N)/(curr_casc.mat_prod.comp[j] - prev_casc.mat_prod.comp[j]));
18999  prev_N = temp_curr_N;
19000 
19001  // If the new value of N is less than zero, reset.
19002  if (curr_N < 0.0)
19003  curr_N = (temp_curr_N + temp_prev_N)/2.0;
19004  }
19005 
19006  if (tolerance <= fabs(delta_x_tail_j)/curr_casc.mat_tail.comp[j]) {
19007  // Make a new guess for M
19008  temp_curr_M = curr_M;
19009  temp_prev_M = prev_M;
19010  curr_M = curr_M + delta_x_tail_j*\
19011  ((curr_M - prev_M)/(curr_casc.mat_tail.comp[j] - prev_casc.mat_tail.comp[j]));
19012  prev_M = temp_curr_M;
19013 
19014  // If the new value of M is less than zero, reset.
19015  if (curr_M < 0.0)
19016  curr_M = (temp_curr_M + temp_prev_M)/2.0;
19017  }
19018 
19019  // Check for infinite loops
19020  for (h = 0; h < historyN.size(); h++) {
19021  if (historyN[h] == curr_N && historyM[h] == curr_M) {
19022  curr_N = curr_N + delta_x_prod_j * \
19023  ((curr_N - prev_N)/(curr_casc.mat_prod.comp[j] - prev_casc.mat_prod.comp[j]));
19024  curr_M = curr_M + delta_x_tail_j * \
19025  ((curr_M - prev_M)/(curr_casc.mat_tail.comp[j] - prev_casc.mat_tail.comp[j]));;
19026  break;
19027  }
19028  }
19029 
19030  if (max_hist <= historyN.size()) {
19031  historyN.erase(historyN.begin());
19032  historyM.erase(historyM.begin());
19033  }
19034  historyN.push_back(curr_N);
19035  historyM.push_back(curr_M);
19036 
19037  niter += 1;
19038 
19039  // Calculate new isotopics for valid (N, M)
19040  prev_casc = curr_casc;
19041  curr_casc.N = curr_N;
19042  curr_casc.M = curr_M;
19043  _recompute_nm(curr_casc, tolerance);
19044  _recompute_prod_tail_mats(curr_casc);
19045  }
19046  return curr_casc;
19047 }
19048 
19049 
19050 
19052  // Solves for a stage separative power relevant to the ith component
19053  // per unit of flow G. This is taken from Equation 31 divided by G
19054  // from the paper "Wood, Houston G., Borisevich, V. D. and Sulaberidze, G. A.,
19055  // 'On a Criterion Efficiency for Multi-Isotope Mixtures Separation',
19056  // Separation Science and Technology, 34:3, 343 - 357"
19057  // To link to this article: DOI: 10.1081/SS-100100654
19058  // URL: http://dx.doi.org/10.1081/SS-100100654
19059 
19060  double astar_i = alphastar_i(casc.alpha, casc.Mstar, pyne::atomic_mass(i));
19061  return log(pow(casc.alpha, (casc.Mstar - pyne::atomic_mass(casc.j)) )) * \
19062  ((astar_i - 1.0)/(astar_i + 1.0));
19063 }
19064 
19065 
19067  double tolerance, int max_iter) {
19068  // This function finds the total flow rate (L) over the feed flow rate (F)
19069  pyne_enr::Cascade casc = orig_casc;
19070 
19071  casc = _norm_comp_secant(casc, tolerance, max_iter);
19072 
19073  int nuc;
19074  int j = casc.j;
19075  int k = casc.k;
19076  double ppf = prod_per_feed(casc.mat_feed.comp[j], casc.x_prod_j, casc.x_tail_j);
19077  double tpf = tail_per_feed(casc.mat_feed.comp[j], casc.x_prod_j, casc.x_tail_j);
19078 
19079  // Matched Flow Ratios
19080  double rfeed = casc.mat_feed.comp[j] / casc.mat_feed.comp[k];
19081  double rprod = casc.mat_prod.comp[j] / casc.mat_prod.comp[k];
19082  double rtail = casc.mat_tail.comp[j] / casc.mat_tail.comp[k];
19083 
19084  double ltotpf = 0.0;
19085  double swupf = 0.0;
19086  double temp_numer = 0.0;
19087 
19088  for (pyne::comp_iter i = casc.mat_feed.comp.begin(); i != casc.mat_feed.comp.end(); i++) {
19089  nuc = (i->first);
19090  temp_numer = (ppf*casc.mat_prod.comp[nuc]*log(rprod) + \
19091  tpf*casc.mat_tail.comp[nuc]*log(rtail) - \
19092  casc.mat_feed.comp[nuc]*log(rfeed));
19093  ltotpf = ltotpf + (temp_numer / _deltaU_i_OverG(casc, nuc));
19094  swupf = swupf + temp_numer;
19095  }
19096 
19097  // Assign flow rates
19098  casc.l_t_per_feed = ltotpf;
19099 
19100  // The -1 term is put in the SWU calculation because otherwise swupf
19101  // represents the SWU that would be undone if you were to deenrich the
19102  // whole process. Thus the SWU to enrich is -1x this number. This is
19103  // a by-product of the value function used as a constraint.
19104  casc.swu_per_feed = -1 * swupf; // This is the SWU for 1 kg of Feed material.
19105  casc.swu_per_prod = -1 * swupf / ppf; // This is the SWU for 1 kg of Product material.
19106 
19107  // Assign isotopic streams the proper masses.
19108  casc.mat_prod.mass = casc.mat_feed.mass * ppf;
19109  casc.mat_tail.mass = casc.mat_feed.mass * tpf;
19110  return casc;
19111 }
19112 
19114  char * solver, double tolerance, int max_iter) {
19115  std::string strsolver(solver);
19116  return multicomponent(orig_casc, strsolver, tolerance, max_iter);
19117 }
19118 
19120  std::string solver, double tolerance, int max_iter) {
19121  // The multicomponent() function finds a value of Mstar by minimzing the seperative power.
19122  // Note that Mstar0 represents an intial guess at what Mstar might be.
19123  // This is the final function that actually solves for an optimized M* that makes the cascade!
19124  pyne_enr::Cascade temp_casc;
19125  pyne_enr::Cascade prev_casc = orig_casc;
19126  pyne_enr::Cascade curr_casc = orig_casc;
19127 
19128  // define the solver to use
19129  int solver_code;
19130  if (solver == "symbolic")
19131  solver_code = 0;
19132  else if (solver == "numeric")
19133  solver_code = 1;
19134  else
19135  throw "solver not known: " + solver;
19136 
19137  // validate Mstar or pick new value
19138  if ((orig_casc.Mstar < pyne::atomic_mass(orig_casc.j) && \
19139  orig_casc.Mstar < pyne::atomic_mass(orig_casc.k)) || \
19140  (orig_casc.Mstar > pyne::atomic_mass(orig_casc.j) && \
19141  orig_casc.Mstar > pyne::atomic_mass(orig_casc.k))) {
19142  double ms = (pyne::atomic_mass(orig_casc.j) + pyne::atomic_mass(orig_casc.k)) / 2.0;
19143  prev_casc.Mstar = ms;
19144  curr_casc.Mstar = ms;
19145  }
19146 
19147  // xpn is the exponential index
19148  double ooe = -log10(tolerance);
19149  double xpn = 1.0;
19150 
19151  // Initialize previous point
19152  switch (solver_code) {
19153  case 0:
19154  prev_casc = solve_symbolic(prev_casc);
19155  break;
19156  case 1:
19157  prev_casc = solve_numeric(prev_casc, tolerance, max_iter);
19158  break;
19159  }
19160 
19161  // Initialize curr_ent point
19162  curr_casc.Mstar = (pyne::atomic_mass(curr_casc.j) + curr_casc.Mstar) / 2.0;
19163  switch (solver_code) {
19164  case 0:
19165  curr_casc = solve_symbolic(curr_casc);
19166  break;
19167  case 1:
19168  curr_casc = solve_numeric(curr_casc, tolerance, max_iter);
19169  break;
19170  }
19171 
19172  double m = pyne::slope(curr_casc.Mstar, curr_casc.l_t_per_feed, \
19173  prev_casc.Mstar, prev_casc.l_t_per_feed);
19174  double m_sign = m / fabs(m);
19175 
19176  double temp_m;
19177  double temp_m_sign;
19178 
19179  while (tolerance < fabs(curr_casc.l_t_per_feed - prev_casc.l_t_per_feed) / curr_casc.l_t_per_feed) {
19180  // Check that parameters are still well-formed
19181  if (isnan(curr_casc.Mstar) || isnan(curr_casc.l_t_per_feed) || \
19182  isnan(prev_casc.Mstar) || isnan(prev_casc.l_t_per_feed))
19183  throw EnrichmentIterationNaN();
19184 
19185  prev_casc = curr_casc;
19186 
19187  curr_casc.Mstar = curr_casc.Mstar - (m_sign * pow(10.0, -xpn));
19188  switch (solver_code) {
19189  case 0:
19190  curr_casc = solve_symbolic(curr_casc);
19191  break;
19192  case 1:
19193  curr_casc = solve_numeric(curr_casc, tolerance, max_iter);
19194  break;
19195  }
19196 
19197  if (prev_casc.l_t_per_feed < curr_casc.l_t_per_feed) {
19198  temp_casc = curr_casc;
19199  temp_casc.Mstar = temp_casc.Mstar - (m_sign * pow(10.0, -xpn));
19200  switch (solver_code) {
19201  case 0:
19202  temp_casc = solve_symbolic(temp_casc);
19203  break;
19204  case 1:
19205  temp_casc = solve_numeric(temp_casc, tolerance, max_iter);
19206  break;
19207  }
19208 
19209  temp_m = pyne::slope(curr_casc.Mstar, curr_casc.l_t_per_feed, \
19210  temp_casc.Mstar, temp_casc.l_t_per_feed);
19211  if (temp_m == 0.0) {
19212  prev_casc = curr_casc;
19213  curr_casc = temp_casc;
19214  break;
19215  }
19216 
19217  temp_m_sign = temp_m / fabs(temp_m);
19218  if (m_sign != temp_m_sign) {
19219  xpn = xpn + 1;
19220 
19221  temp_casc = prev_casc;
19222  temp_casc.Mstar = temp_casc.Mstar + (m_sign * pow(10.0, -xpn));
19223  switch (solver_code) {
19224  case 0:
19225  temp_casc = solve_symbolic(temp_casc);
19226  break;
19227  case 1:
19228  temp_casc = solve_numeric(temp_casc, tolerance, max_iter);
19229  break;
19230  }
19231  temp_m = pyne::slope(prev_casc.Mstar, prev_casc.l_t_per_feed, \
19232  temp_casc.Mstar, temp_casc.l_t_per_feed);
19233 
19234  if (temp_m == 0.0) {
19235  prev_casc = curr_casc;
19236  curr_casc = temp_casc;
19237  break;
19238  }
19239 
19240  m_sign = temp_m / fabs(temp_m);
19241  m = temp_m;
19242  prev_casc = curr_casc;
19243  curr_casc = temp_casc;
19244  }
19245  }
19246  }
19247 
19248  return curr_casc;
19249 }
19250 //
19251 // end of src/enrichment.cpp
19252 //
19253 
19254 
19255 //
19256 // start of src/enrichment_symbolic20.cpp
19257 //
19258 
19259 /*********************************************************/
19260 /*** Symbolic Enrichment Functions ***/
19261 /*** WARNING: This file is auto-generated. ***/
19262 /*** DO NOT MODIFY!!! ***/
19263 /*********************************************************/
19264 #ifndef PYNE_IS_AMALGAMATED
19265 #include "enrichment_symbolic.h"
19266 #endif
19267 
19269 {
19270  pyne::enrichment::Cascade casc = orig_casc;
19271  int j = casc.j;
19272  int k = casc.k;
19273  double alpha = casc.alpha;
19274  double NP0 = casc.N;
19275  //double NT0 = casc.M;
19276  double Mstar = casc.Mstar;
19277  double xPj = casc.x_prod_j;
19278  //double xFj = casc.x_feed_j;
19279  double xTj = casc.x_tail_j;
19280  int ncomp = casc.mat_feed.comp.size();
19281  double LpF = -1.0, PpF = -1.0, TpF = -1.0,
19282  SWUpF = -1.0, SWUpP = -1.0,
19283  NP_b = -1.0, NP_sqrt_base = -1.0, NP_2a = -1.0,
19284  NP1 = -1.0, NT1 = -1.0;
19285  double * MW = new double [ncomp];
19286  double * xP = new double [ncomp];
19287  double * xF = new double [ncomp];
19288  double * xT = new double [ncomp];
19289  double n538 = 0.0,
19290  n539 = 0.0,
19291  n536 = 0.0,
19292  n537 = 0.0,
19293  n534 = 0.0,
19294  n535 = 0.0,
19295  n532 = 0.0,
19296  n533 = 0.0,
19297  n530 = 0.0,
19298  n531 = 0.0,
19299  n408 = 0.0,
19300  n409 = 0.0,
19301  n402 = 0.0,
19302  n403 = 0.0,
19303  n400 = 0.0,
19304  n401 = 0.0,
19305  n406 = 0.0,
19306  n407 = 0.0,
19307  n404 = 0.0,
19308  n405 = 0.0,
19309  n392 = 0.0,
19310  n393 = 0.0,
19311  n390 = 0.0,
19312  n391 = 0.0,
19313  n396 = 0.0,
19314  n397 = 0.0,
19315  n394 = 0.0,
19316  n395 = 0.0,
19317  n398 = 0.0,
19318  n399 = 0.0,
19319  n240 = 0.0,
19320  n241 = 0.0,
19321  n242 = 0.0,
19322  n243 = 0.0,
19323  n244 = 0.0,
19324  n245 = 0.0,
19325  n246 = 0.0,
19326  n247 = 0.0,
19327  n248 = 0.0,
19328  n249 = 0.0,
19329  n499 = 0.0,
19330  n498 = 0.0,
19331  n329 = 0.0,
19332  n328 = 0.0,
19333  n327 = 0.0,
19334  n326 = 0.0,
19335  n325 = 0.0,
19336  n324 = 0.0,
19337  n323 = 0.0,
19338  n322 = 0.0,
19339  n321 = 0.0,
19340  n320 = 0.0,
19341  n149 = 0.0,
19342  n148 = 0.0,
19343  n143 = 0.0,
19344  n142 = 0.0,
19345  n141 = 0.0,
19346  n140 = 0.0,
19347  n147 = 0.0,
19348  n146 = 0.0,
19349  n145 = 0.0,
19350  n144 = 0.0,
19351  n74 = 0.0,
19352  n75 = 0.0,
19353  n76 = 0.0,
19354  n77 = 0.0,
19355  n70 = 0.0,
19356  n71 = 0.0,
19357  n72 = 0.0,
19358  n73 = 0.0,
19359  n78 = 0.0,
19360  n79 = 0.0,
19361  n615 = 0.0,
19362  g128 = 0.0,
19363  g129 = 0.0,
19364  g126 = 0.0,
19365  g127 = 0.0,
19366  g124 = 0.0,
19367  g125 = 0.0,
19368  g122 = 0.0,
19369  g123 = 0.0,
19370  g120 = 0.0,
19371  g121 = 0.0,
19372  g221 = 0.0,
19373  g220 = 0.0,
19374  g223 = 0.0,
19375  g222 = 0.0,
19376  g225 = 0.0,
19377  g224 = 0.0,
19378  g227 = 0.0,
19379  g226 = 0.0,
19380  g229 = 0.0,
19381  g228 = 0.0,
19382  g254 = 0.0,
19383  g255 = 0.0,
19384  g256 = 0.0,
19385  g257 = 0.0,
19386  g319 = 0.0,
19387  g251 = 0.0,
19388  g252 = 0.0,
19389  g253 = 0.0,
19390  g315 = 0.0,
19391  g314 = 0.0,
19392  g317 = 0.0,
19393  g316 = 0.0,
19394  g258 = 0.0,
19395  g259 = 0.0,
19396  g313 = 0.0,
19397  g312 = 0.0,
19398  g19 = 0.0,
19399  g18 = 0.0,
19400  g17 = 0.0,
19401  g16 = 0.0,
19402  g15 = 0.0,
19403  g14 = 0.0,
19404  g13 = 0.0,
19405  g12 = 0.0,
19406  g11 = 0.0,
19407  g10 = 0.0,
19408  n529 = 0.0,
19409  n528 = 0.0,
19410  n521 = 0.0,
19411  n520 = 0.0,
19412  n523 = 0.0,
19413  n522 = 0.0,
19414  n525 = 0.0,
19415  n524 = 0.0,
19416  n527 = 0.0,
19417  n526 = 0.0,
19418  n415 = 0.0,
19419  n414 = 0.0,
19420  n417 = 0.0,
19421  n416 = 0.0,
19422  n411 = 0.0,
19423  n410 = 0.0,
19424  n413 = 0.0,
19425  n412 = 0.0,
19426  n419 = 0.0,
19427  n418 = 0.0,
19428  n558 = 0.0,
19429  n559 = 0.0,
19430  n554 = 0.0,
19431  n555 = 0.0,
19432  n556 = 0.0,
19433  n557 = 0.0,
19434  n550 = 0.0,
19435  n551 = 0.0,
19436  n552 = 0.0,
19437  n553 = 0.0,
19438  n389 = 0.0,
19439  n388 = 0.0,
19440  n385 = 0.0,
19441  n384 = 0.0,
19442  n387 = 0.0,
19443  n386 = 0.0,
19444  n381 = 0.0,
19445  n380 = 0.0,
19446  n383 = 0.0,
19447  n382 = 0.0,
19448  n253 = 0.0,
19449  n252 = 0.0,
19450  n251 = 0.0,
19451  n250 = 0.0,
19452  n257 = 0.0,
19453  n256 = 0.0,
19454  n255 = 0.0,
19455  n254 = 0.0,
19456  n259 = 0.0,
19457  n258 = 0.0,
19458  n318 = 0.0,
19459  n319 = 0.0,
19460  n312 = 0.0,
19461  n313 = 0.0,
19462  n310 = 0.0,
19463  n311 = 0.0,
19464  n316 = 0.0,
19465  n317 = 0.0,
19466  n314 = 0.0,
19467  n315 = 0.0,
19468  n176 = 0.0,
19469  n177 = 0.0,
19470  n174 = 0.0,
19471  n175 = 0.0,
19472  n172 = 0.0,
19473  n173 = 0.0,
19474  n170 = 0.0,
19475  n171 = 0.0,
19476  n178 = 0.0,
19477  n179 = 0.0,
19478  n49 = 0.0,
19479  n48 = 0.0,
19480  n41 = 0.0,
19481  n40 = 0.0,
19482  n43 = 0.0,
19483  n42 = 0.0,
19484  n45 = 0.0,
19485  n44 = 0.0,
19486  n47 = 0.0,
19487  n46 = 0.0,
19488  g139 = 0.0,
19489  g138 = 0.0,
19490  g131 = 0.0,
19491  g130 = 0.0,
19492  g133 = 0.0,
19493  g132 = 0.0,
19494  g135 = 0.0,
19495  g134 = 0.0,
19496  g137 = 0.0,
19497  g136 = 0.0,
19498  n294 = 0.0,
19499  g97 = 0.0,
19500  g96 = 0.0,
19501  g95 = 0.0,
19502  g94 = 0.0,
19503  g93 = 0.0,
19504  g92 = 0.0,
19505  g91 = 0.0,
19506  g90 = 0.0,
19507  g144 = 0.0,
19508  g145 = 0.0,
19509  g146 = 0.0,
19510  g147 = 0.0,
19511  g140 = 0.0,
19512  g141 = 0.0,
19513  g99 = 0.0,
19514  g98 = 0.0,
19515  g247 = 0.0,
19516  g246 = 0.0,
19517  g245 = 0.0,
19518  g244 = 0.0,
19519  g243 = 0.0,
19520  g242 = 0.0,
19521  g241 = 0.0,
19522  g240 = 0.0,
19523  g360 = 0.0,
19524  g249 = 0.0,
19525  g248 = 0.0,
19526  n495 = 0.0,
19527  n494 = 0.0,
19528  n497 = 0.0,
19529  n496 = 0.0,
19530  n491 = 0.0,
19531  n490 = 0.0,
19532  n493 = 0.0,
19533  n492 = 0.0,
19534  g159 = 0.0,
19535  g83 = 0.0,
19536  g88 = 0.0,
19537  g89 = 0.0,
19538  n460 = 0.0,
19539  n461 = 0.0,
19540  n462 = 0.0,
19541  n463 = 0.0,
19542  n464 = 0.0,
19543  n465 = 0.0,
19544  n466 = 0.0,
19545  n467 = 0.0,
19546  n468 = 0.0,
19547  n469 = 0.0,
19548  n549 = 0.0,
19549  n548 = 0.0,
19550  n547 = 0.0,
19551  n546 = 0.0,
19552  n545 = 0.0,
19553  n544 = 0.0,
19554  n543 = 0.0,
19555  n542 = 0.0,
19556  n541 = 0.0,
19557  n540 = 0.0,
19558  n341 = 0.0,
19559  n340 = 0.0,
19560  n343 = 0.0,
19561  n342 = 0.0,
19562  n345 = 0.0,
19563  n344 = 0.0,
19564  n347 = 0.0,
19565  n346 = 0.0,
19566  n305 = 0.0,
19567  n304 = 0.0,
19568  n307 = 0.0,
19569  n306 = 0.0,
19570  n301 = 0.0,
19571  n300 = 0.0,
19572  n268 = 0.0,
19573  n269 = 0.0,
19574  n266 = 0.0,
19575  n267 = 0.0,
19576  n264 = 0.0,
19577  n265 = 0.0,
19578  n309 = 0.0,
19579  n263 = 0.0,
19580  n260 = 0.0,
19581  n261 = 0.0,
19582  n284 = 0.0,
19583  n285 = 0.0,
19584  n286 = 0.0,
19585  n287 = 0.0,
19586  n280 = 0.0,
19587  n281 = 0.0,
19588  n282 = 0.0,
19589  n283 = 0.0,
19590  n288 = 0.0,
19591  n289 = 0.0,
19592  n161 = 0.0,
19593  n160 = 0.0,
19594  n163 = 0.0,
19595  n162 = 0.0,
19596  n165 = 0.0,
19597  n164 = 0.0,
19598  n167 = 0.0,
19599  n166 = 0.0,
19600  n169 = 0.0,
19601  n168 = 0.0,
19602  n608 = 0.0,
19603  n609 = 0.0,
19604  n600 = 0.0,
19605  n601 = 0.0,
19606  n602 = 0.0,
19607  n603 = 0.0,
19608  n604 = 0.0,
19609  n605 = 0.0,
19610  n606 = 0.0,
19611  n515 = 0.0,
19612  n58 = 0.0,
19613  n59 = 0.0,
19614  n56 = 0.0,
19615  n57 = 0.0,
19616  n54 = 0.0,
19617  n55 = 0.0,
19618  n52 = 0.0,
19619  n53 = 0.0,
19620  n50 = 0.0,
19621  n51 = 0.0,
19622  n518 = 0.0,
19623  n519 = 0.0,
19624  n114 = 0.0,
19625  n115 = 0.0,
19626  n116 = 0.0,
19627  n117 = 0.0,
19628  n110 = 0.0,
19629  n111 = 0.0,
19630  n112 = 0.0,
19631  n113 = 0.0,
19632  n118 = 0.0,
19633  n119 = 0.0,
19634  n29 = 0.0,
19635  n28 = 0.0,
19636  n23 = 0.0,
19637  n22 = 0.0,
19638  n21 = 0.0,
19639  n20 = 0.0,
19640  n27 = 0.0,
19641  n26 = 0.0,
19642  n25 = 0.0,
19643  n24 = 0.0,
19644  g84 = 0.0,
19645  g85 = 0.0,
19646  g86 = 0.0,
19647  g87 = 0.0,
19648  g80 = 0.0,
19649  g81 = 0.0,
19650  g82 = 0.0,
19651  g158 = 0.0,
19652  g157 = 0.0,
19653  g156 = 0.0,
19654  g155 = 0.0,
19655  g154 = 0.0,
19656  g153 = 0.0,
19657  g152 = 0.0,
19658  g151 = 0.0,
19659  g150 = 0.0,
19660  g272 = 0.0,
19661  g273 = 0.0,
19662  g270 = 0.0,
19663  g271 = 0.0,
19664  g276 = 0.0,
19665  g277 = 0.0,
19666  g274 = 0.0,
19667  g275 = 0.0,
19668  g278 = 0.0,
19669  g279 = 0.0,
19670  g31 = 0.0,
19671  g30 = 0.0,
19672  g33 = 0.0,
19673  g32 = 0.0,
19674  g35 = 0.0,
19675  g34 = 0.0,
19676  g37 = 0.0,
19677  g36 = 0.0,
19678  g39 = 0.0,
19679  g38 = 0.0,
19680  n486 = 0.0,
19681  n487 = 0.0,
19682  n488 = 0.0,
19683  n489 = 0.0,
19684  g148 = 0.0,
19685  g149 = 0.0,
19686  n473 = 0.0,
19687  n472 = 0.0,
19688  n471 = 0.0,
19689  n470 = 0.0,
19690  n477 = 0.0,
19691  n476 = 0.0,
19692  n475 = 0.0,
19693  n474 = 0.0,
19694  n479 = 0.0,
19695  n478 = 0.0,
19696  n578 = 0.0,
19697  n579 = 0.0,
19698  n572 = 0.0,
19699  n573 = 0.0,
19700  n570 = 0.0,
19701  n571 = 0.0,
19702  n576 = 0.0,
19703  n577 = 0.0,
19704  n574 = 0.0,
19705  n575 = 0.0,
19706  g142 = 0.0,
19707  g143 = 0.0,
19708  n370 = 0.0,
19709  n371 = 0.0,
19710  n372 = 0.0,
19711  n373 = 0.0,
19712  n374 = 0.0,
19713  n375 = 0.0,
19714  n376 = 0.0,
19715  n377 = 0.0,
19716  n378 = 0.0,
19717  n379 = 0.0,
19718  n273 = 0.0,
19719  n272 = 0.0,
19720  n275 = 0.0,
19721  n274 = 0.0,
19722  n277 = 0.0,
19723  n276 = 0.0,
19724  n424 = 0.0,
19725  n357 = 0.0,
19726  n426 = 0.0,
19727  n297 = 0.0,
19728  n296 = 0.0,
19729  n295 = 0.0,
19730  n427 = 0.0,
19731  n293 = 0.0,
19732  n292 = 0.0,
19733  n291 = 0.0,
19734  n290 = 0.0,
19735  n420 = 0.0,
19736  n299 = 0.0,
19737  n421 = 0.0,
19738  n422 = 0.0,
19739  n351 = 0.0,
19740  n198 = 0.0,
19741  n199 = 0.0,
19742  n194 = 0.0,
19743  n195 = 0.0,
19744  n196 = 0.0,
19745  n197 = 0.0,
19746  n190 = 0.0,
19747  n191 = 0.0,
19748  n192 = 0.0,
19749  n193 = 0.0,
19750  n619 = 0.0,
19751  n618 = 0.0,
19752  n208 = 0.0,
19753  n209 = 0.0,
19754  n204 = 0.0,
19755  n205 = 0.0,
19756  n206 = 0.0,
19757  n207 = 0.0,
19758  n200 = 0.0,
19759  n201 = 0.0,
19760  n202 = 0.0,
19761  n203 = 0.0,
19762  n107 = 0.0,
19763  n106 = 0.0,
19764  n105 = 0.0,
19765  n104 = 0.0,
19766  n103 = 0.0,
19767  n102 = 0.0,
19768  n101 = 0.0,
19769  n100 = 0.0,
19770  n0 = 0.0,
19771  n1 = 0.0,
19772  n2 = 0.0,
19773  n3 = 0.0,
19774  n4 = 0.0,
19775  n5 = 0.0,
19776  n6 = 0.0,
19777  n7 = 0.0,
19778  n563 = 0.0,
19779  n562 = 0.0,
19780  n38 = 0.0,
19781  n39 = 0.0,
19782  n30 = 0.0,
19783  n31 = 0.0,
19784  n32 = 0.0,
19785  n33 = 0.0,
19786  n34 = 0.0,
19787  n35 = 0.0,
19788  n36 = 0.0,
19789  n37 = 0.0,
19790  n569 = 0.0,
19791  n568 = 0.0,
19792  g7 = 0.0,
19793  g6 = 0.0,
19794  g5 = 0.0,
19795  g4 = 0.0,
19796  g3 = 0.0,
19797  g2 = 0.0,
19798  g1 = 0.0,
19799  g0 = 0.0,
19800  g9 = 0.0,
19801  g8 = 0.0,
19802  g168 = 0.0,
19803  g169 = 0.0,
19804  n629 = 0.0,
19805  g162 = 0.0,
19806  g163 = 0.0,
19807  g160 = 0.0,
19808  g161 = 0.0,
19809  g166 = 0.0,
19810  g167 = 0.0,
19811  g164 = 0.0,
19812  g165 = 0.0,
19813  n85 = 0.0,
19814  n84 = 0.0,
19815  n87 = 0.0,
19816  n86 = 0.0,
19817  n81 = 0.0,
19818  n80 = 0.0,
19819  n83 = 0.0,
19820  n82 = 0.0,
19821  n89 = 0.0,
19822  n88 = 0.0,
19823  g346 = 0.0,
19824  g347 = 0.0,
19825  g344 = 0.0,
19826  g345 = 0.0,
19827  g342 = 0.0,
19828  g343 = 0.0,
19829  g340 = 0.0,
19830  g341 = 0.0,
19831  g348 = 0.0,
19832  g349 = 0.0,
19833  g269 = 0.0,
19834  g268 = 0.0,
19835  g265 = 0.0,
19836  g264 = 0.0,
19837  g267 = 0.0,
19838  g266 = 0.0,
19839  g261 = 0.0,
19840  g260 = 0.0,
19841  g263 = 0.0,
19842  g262 = 0.0,
19843  g26 = 0.0,
19844  g27 = 0.0,
19845  g24 = 0.0,
19846  g25 = 0.0,
19847  g22 = 0.0,
19848  g23 = 0.0,
19849  g20 = 0.0,
19850  g21 = 0.0,
19851  g28 = 0.0,
19852  g29 = 0.0,
19853  g53 = 0.0,
19854  g52 = 0.0,
19855  g51 = 0.0,
19856  g50 = 0.0,
19857  g57 = 0.0,
19858  g56 = 0.0,
19859  g55 = 0.0,
19860  g54 = 0.0,
19861  g59 = 0.0,
19862  g58 = 0.0,
19863  n565 = 0.0,
19864  n564 = 0.0,
19865  n567 = 0.0,
19866  n566 = 0.0,
19867  n561 = 0.0,
19868  n560 = 0.0,
19869  n448 = 0.0,
19870  n449 = 0.0,
19871  n446 = 0.0,
19872  n447 = 0.0,
19873  n444 = 0.0,
19874  n445 = 0.0,
19875  n442 = 0.0,
19876  n443 = 0.0,
19877  n440 = 0.0,
19878  n441 = 0.0,
19879  n363 = 0.0,
19880  n362 = 0.0,
19881  n361 = 0.0,
19882  n360 = 0.0,
19883  n367 = 0.0,
19884  n366 = 0.0,
19885  n365 = 0.0,
19886  n364 = 0.0,
19887  n369 = 0.0,
19888  n368 = 0.0,
19889  n598 = 0.0,
19890  n599 = 0.0,
19891  n590 = 0.0,
19892  n591 = 0.0,
19893  n592 = 0.0,
19894  n593 = 0.0,
19895  n594 = 0.0,
19896  n595 = 0.0,
19897  n596 = 0.0,
19898  n597 = 0.0,
19899  n510 = 0.0,
19900  n626 = 0.0,
19901  n627 = 0.0,
19902  n624 = 0.0,
19903  n625 = 0.0,
19904  n622 = 0.0,
19905  n623 = 0.0,
19906  n189 = 0.0,
19907  n188 = 0.0,
19908  n187 = 0.0,
19909  n186 = 0.0,
19910  n185 = 0.0,
19911  n184 = 0.0,
19912  n183 = 0.0,
19913  n182 = 0.0,
19914  n181 = 0.0,
19915  n180 = 0.0,
19916  n219 = 0.0,
19917  n218 = 0.0,
19918  n217 = 0.0,
19919  n216 = 0.0,
19920  n215 = 0.0,
19921  n214 = 0.0,
19922  n213 = 0.0,
19923  n212 = 0.0,
19924  n211 = 0.0,
19925  n210 = 0.0,
19926  n132 = 0.0,
19927  n133 = 0.0,
19928  n130 = 0.0,
19929  n131 = 0.0,
19930  n136 = 0.0,
19931  n137 = 0.0,
19932  n134 = 0.0,
19933  n135 = 0.0,
19934  n138 = 0.0,
19935  n139 = 0.0,
19936  g175 = 0.0,
19937  g174 = 0.0,
19938  g177 = 0.0,
19939  g176 = 0.0,
19940  g171 = 0.0,
19941  g170 = 0.0,
19942  g173 = 0.0,
19943  g172 = 0.0,
19944  g179 = 0.0,
19945  g178 = 0.0,
19946  n98 = 0.0,
19947  n99 = 0.0,
19948  n92 = 0.0,
19949  n93 = 0.0,
19950  n90 = 0.0,
19951  n91 = 0.0,
19952  n96 = 0.0,
19953  n97 = 0.0,
19954  n94 = 0.0,
19955  n95 = 0.0,
19956  g351 = 0.0,
19957  g350 = 0.0,
19958  g353 = 0.0,
19959  g352 = 0.0,
19960  g355 = 0.0,
19961  g354 = 0.0,
19962  g357 = 0.0,
19963  g356 = 0.0,
19964  g359 = 0.0,
19965  g358 = 0.0,
19966  g218 = 0.0,
19967  g219 = 0.0,
19968  g210 = 0.0,
19969  g211 = 0.0,
19970  g212 = 0.0,
19971  g213 = 0.0,
19972  g214 = 0.0,
19973  g215 = 0.0,
19974  g216 = 0.0,
19975  g217 = 0.0,
19976  g188 = 0.0,
19977  g189 = 0.0,
19978  g180 = 0.0,
19979  g181 = 0.0,
19980  g182 = 0.0,
19981  g183 = 0.0,
19982  g184 = 0.0,
19983  g185 = 0.0,
19984  g186 = 0.0,
19985  g187 = 0.0,
19986  g250 = 0.0,
19987  g318 = 0.0,
19988  g324 = 0.0,
19989  g325 = 0.0,
19990  g326 = 0.0,
19991  g327 = 0.0,
19992  g320 = 0.0,
19993  g321 = 0.0,
19994  g322 = 0.0,
19995  g323 = 0.0,
19996  g328 = 0.0,
19997  g329 = 0.0,
19998  g311 = 0.0,
19999  g310 = 0.0,
20000  g40 = 0.0,
20001  g41 = 0.0,
20002  g42 = 0.0,
20003  g43 = 0.0,
20004  g44 = 0.0,
20005  g45 = 0.0,
20006  g46 = 0.0,
20007  g47 = 0.0,
20008  g48 = 0.0,
20009  g49 = 0.0,
20010  n620 = 0.0,
20011  n621 = 0.0,
20012  n459 = 0.0,
20013  n458 = 0.0,
20014  n512 = 0.0,
20015  n513 = 0.0,
20016  n514 = 0.0,
20017  n628 = 0.0,
20018  n516 = 0.0,
20019  n517 = 0.0,
20020  n451 = 0.0,
20021  n450 = 0.0,
20022  n453 = 0.0,
20023  n452 = 0.0,
20024  n455 = 0.0,
20025  n454 = 0.0,
20026  n457 = 0.0,
20027  n456 = 0.0,
20028  n428 = 0.0,
20029  n429 = 0.0,
20030  n358 = 0.0,
20031  n359 = 0.0,
20032  n356 = 0.0,
20033  n425 = 0.0,
20034  n354 = 0.0,
20035  n355 = 0.0,
20036  n352 = 0.0,
20037  n353 = 0.0,
20038  n350 = 0.0,
20039  n423 = 0.0,
20040  n589 = 0.0,
20041  n588 = 0.0,
20042  n583 = 0.0,
20043  n582 = 0.0,
20044  n581 = 0.0,
20045  n580 = 0.0,
20046  n587 = 0.0,
20047  n586 = 0.0,
20048  n585 = 0.0,
20049  n584 = 0.0,
20050  n631 = 0.0,
20051  n630 = 0.0,
20052  n633 = 0.0,
20053  n632 = 0.0,
20054  n635 = 0.0,
20055  n634 = 0.0,
20056  n637 = 0.0,
20057  n636 = 0.0,
20058  n638 = 0.0,
20059  n610 = 0.0,
20060  n228 = 0.0,
20061  n229 = 0.0,
20062  n222 = 0.0,
20063  n223 = 0.0,
20064  n220 = 0.0,
20065  n221 = 0.0,
20066  n226 = 0.0,
20067  n227 = 0.0,
20068  n224 = 0.0,
20069  n225 = 0.0,
20070  n279 = 0.0,
20071  n278 = 0.0,
20072  n271 = 0.0,
20073  n129 = 0.0,
20074  n128 = 0.0,
20075  n270 = 0.0,
20076  n125 = 0.0,
20077  n124 = 0.0,
20078  n127 = 0.0,
20079  n126 = 0.0,
20080  n121 = 0.0,
20081  n120 = 0.0,
20082  n123 = 0.0,
20083  n122 = 0.0,
20084  n12 = 0.0,
20085  n13 = 0.0,
20086  n10 = 0.0,
20087  n11 = 0.0,
20088  n16 = 0.0,
20089  n17 = 0.0,
20090  n14 = 0.0,
20091  n15 = 0.0,
20092  n18 = 0.0,
20093  n19 = 0.0,
20094  n614 = 0.0,
20095  g100 = 0.0,
20096  g101 = 0.0,
20097  g102 = 0.0,
20098  g103 = 0.0,
20099  g104 = 0.0,
20100  g105 = 0.0,
20101  g106 = 0.0,
20102  g107 = 0.0,
20103  g108 = 0.0,
20104  g109 = 0.0,
20105  n511 = 0.0,
20106  g209 = 0.0,
20107  g208 = 0.0,
20108  g203 = 0.0,
20109  g202 = 0.0,
20110  g201 = 0.0,
20111  g200 = 0.0,
20112  g207 = 0.0,
20113  g206 = 0.0,
20114  g205 = 0.0,
20115  g204 = 0.0,
20116  g199 = 0.0,
20117  g198 = 0.0,
20118  g193 = 0.0,
20119  g192 = 0.0,
20120  g191 = 0.0,
20121  g190 = 0.0,
20122  g197 = 0.0,
20123  g196 = 0.0,
20124  g195 = 0.0,
20125  g194 = 0.0,
20126  g290 = 0.0,
20127  g291 = 0.0,
20128  g292 = 0.0,
20129  g293 = 0.0,
20130  g294 = 0.0,
20131  g295 = 0.0,
20132  g296 = 0.0,
20133  g297 = 0.0,
20134  g298 = 0.0,
20135  g299 = 0.0,
20136  g337 = 0.0,
20137  g336 = 0.0,
20138  g335 = 0.0,
20139  g334 = 0.0,
20140  g333 = 0.0,
20141  g332 = 0.0,
20142  g331 = 0.0,
20143  g330 = 0.0,
20144  n298 = 0.0,
20145  g339 = 0.0,
20146  g338 = 0.0,
20147  g75 = 0.0,
20148  g74 = 0.0,
20149  g77 = 0.0,
20150  g76 = 0.0,
20151  g71 = 0.0,
20152  g70 = 0.0,
20153  g73 = 0.0,
20154  g72 = 0.0,
20155  g79 = 0.0,
20156  g78 = 0.0,
20157  n503 = 0.0,
20158  n502 = 0.0,
20159  n501 = 0.0,
20160  n500 = 0.0,
20161  n507 = 0.0,
20162  n506 = 0.0,
20163  n505 = 0.0,
20164  n504 = 0.0,
20165  n509 = 0.0,
20166  n508 = 0.0,
20167  n349 = 0.0,
20168  n348 = 0.0,
20169  n439 = 0.0,
20170  n438 = 0.0,
20171  n437 = 0.0,
20172  n436 = 0.0,
20173  n435 = 0.0,
20174  n434 = 0.0,
20175  n433 = 0.0,
20176  n432 = 0.0,
20177  n431 = 0.0,
20178  n430 = 0.0,
20179  n613 = 0.0,
20180  n612 = 0.0,
20181  n611 = 0.0,
20182  n235 = 0.0,
20183  n234 = 0.0,
20184  n237 = 0.0,
20185  n236 = 0.0,
20186  n231 = 0.0,
20187  n230 = 0.0,
20188  n233 = 0.0,
20189  n232 = 0.0,
20190  n617 = 0.0,
20191  n239 = 0.0,
20192  n238 = 0.0,
20193  n616 = 0.0,
20194  n482 = 0.0,
20195  n483 = 0.0,
20196  n480 = 0.0,
20197  n481 = 0.0,
20198  n338 = 0.0,
20199  n339 = 0.0,
20200  n484 = 0.0,
20201  n485 = 0.0,
20202  n334 = 0.0,
20203  n335 = 0.0,
20204  n336 = 0.0,
20205  n337 = 0.0,
20206  n330 = 0.0,
20207  n331 = 0.0,
20208  n332 = 0.0,
20209  n333 = 0.0,
20210  n158 = 0.0,
20211  n159 = 0.0,
20212  n150 = 0.0,
20213  n151 = 0.0,
20214  n152 = 0.0,
20215  n153 = 0.0,
20216  n154 = 0.0,
20217  n155 = 0.0,
20218  n156 = 0.0,
20219  n157 = 0.0,
20220  n67 = 0.0,
20221  n66 = 0.0,
20222  n65 = 0.0,
20223  n64 = 0.0,
20224  n63 = 0.0,
20225  n62 = 0.0,
20226  n61 = 0.0,
20227  n60 = 0.0,
20228  n69 = 0.0,
20229  n68 = 0.0,
20230  n303 = 0.0,
20231  n302 = 0.0,
20232  g113 = 0.0,
20233  g112 = 0.0,
20234  g111 = 0.0,
20235  g110 = 0.0,
20236  g117 = 0.0,
20237  g116 = 0.0,
20238  g115 = 0.0,
20239  g114 = 0.0,
20240  n262 = 0.0,
20241  g119 = 0.0,
20242  g118 = 0.0,
20243  n308 = 0.0,
20244  n607 = 0.0,
20245  g236 = 0.0,
20246  g237 = 0.0,
20247  g234 = 0.0,
20248  g235 = 0.0,
20249  g232 = 0.0,
20250  g233 = 0.0,
20251  g230 = 0.0,
20252  g231 = 0.0,
20253  g238 = 0.0,
20254  g239 = 0.0,
20255  g283 = 0.0,
20256  g282 = 0.0,
20257  g281 = 0.0,
20258  g280 = 0.0,
20259  g287 = 0.0,
20260  g286 = 0.0,
20261  g285 = 0.0,
20262  g284 = 0.0,
20263  g289 = 0.0,
20264  g288 = 0.0,
20265  g302 = 0.0,
20266  g303 = 0.0,
20267  g300 = 0.0,
20268  g301 = 0.0,
20269  g306 = 0.0,
20270  g307 = 0.0,
20271  g304 = 0.0,
20272  g305 = 0.0,
20273  g308 = 0.0,
20274  g309 = 0.0,
20275  n8 = 0.0,
20276  n9 = 0.0,
20277  g68 = 0.0,
20278  g69 = 0.0,
20279  g62 = 0.0,
20280  g63 = 0.0,
20281  g60 = 0.0,
20282  g61 = 0.0,
20283  g66 = 0.0,
20284  g67 = 0.0,
20285  g64 = 0.0,
20286  g65 = 0.0,
20287  n109 = 0.0,
20288  n108 = 0.0;
20289 
20290  int nuc;
20291  int i = 2;
20292  MW[0] = pyne::atomic_mass(j);
20293  MW[1] = pyne::atomic_mass(k);
20294  xF[0] = casc.mat_feed.comp[j];
20295  xF[1] = casc.mat_feed.comp[k];
20296  for(pyne::comp_iter ci = casc.mat_feed.comp.begin(); ci != casc.mat_feed.comp.end(); ci++)
20297  {
20298  nuc = (*ci).first;
20299  if (nuc == j || nuc == k)
20300  continue;
20301  MW[i] = pyne::atomic_mass(nuc);
20302  xF[i] = (*ci).second;
20303  i++;
20304  };
20305 
20306  switch (ncomp)
20307  {
20308  case 3:
20309  n0 = -2.00000000000000;
20310  n1 = MW[0] - Mstar;
20311  n2 = log(alpha);
20312  n3 = xPj - xTj;
20313  n4 = xF[0] - xPj;
20314  n5 = MW[1] - Mstar;
20315  n6 = MW[2] - Mstar;
20316  n7 = log(xTj);
20317  n8 = -2;
20318  n9 = xF[0]*xPj;
20319  n10 = -Mstar;
20320  n11 = -xTj;
20321  n12 = -NP0*n0;
20322  n13 = pow(n1, -n0);
20323  n14 = pow(n2, -n0);
20324  n15 = pow(n5, -n0);
20325  n16 = pow(n6, -n0);
20326  n17 = Mstar*n2;
20327  n18 = -n0*n2;
20328  n19 = -n2;
20329  n20 = pow(alpha, NP0*n1);
20330  n21 = n11*xF[0] + n9;
20331  n22 = n11*xPj + n9;
20332  n23 = pow(alpha, NP0*n5);
20333  n24 = pow(alpha, NP0*n6);
20334  n25 = MW[0]*n19;
20335  n26 = n3/n4;
20336  n27 = -n14;
20337  n28 = -n20 + 1;
20338  n29 = -n23 + 1;
20339  n30 = pow(alpha, n1*n12);
20340  n31 = pow(n22, -n0);
20341  n32 = -n24 + 1;
20342  n33 = -n32;
20343  n34 = -n20;
20344  n35 = n1*n14;
20345  n36 = 1/(n1*n2);
20346  n37 = n24*n6;
20347  n38 = n23*n5;
20348  n39 = n1*n20;
20349  n40 = n28*xF[0];
20350  n41 = log((-1.0 + xPj/xF[0])/n3);
20351  n42 = n39*xF[0];
20352  n43 = -n29*xF[1];
20353  n44 = n22/n21;
20354  n45 = n14*n16*n24;
20355  n46 = n13*n14*n20;
20356  n47 = n13*n14*n30;
20357  n48 = n34*n44 + 1;
20358  n49 = n17 + n25 + n41 + n7;
20359  n50 = n36*(n49 - log(n48)) + 1;
20360  n51 = pow(alpha, n1*n50);
20361  n52 = pow(alpha, n5*n50);
20362  n53 = pow(alpha, n50*n6);
20363  n54 = n28 - 1 + 1.0/n51;
20364  n55 = n29 - 1 + 1.0/n52;
20365  n56 = n32 - 1 + 1.0/n53;
20366  n57 = pow(n54, 3);
20367  n58 = pow(n55, 3);
20368  n59 = pow(n56, 3);
20369  n60 = xF[2]/n56;
20370  n61 = n2/n54;
20371  n62 = n40/n57;
20372  n63 = n2*n38*xF[1]/n55;
20373  n64 = 1/(n48*n51);
20374  n65 = n46*xF[0]/n54;
20375  n66 = n14*n15*n23*xF[1]/n55;
20376  n67 = n26*n42*n61;
20377  n68 = n19*n26*n42/n54;
20378  n69 = n20*n5/(n48*n52);
20379  n70 = n20*n6/(n48*n53);
20380  n71 = n26*n65;
20381  n72 = n26*n66;
20382  n73 = n26*n45*n60;
20383  n74 = 0.5*n71;
20384  n75 = n44*n64 + 1;
20385  n76 = pow(n21, n8)*n30*n31*pow(n48, n8)/n53;
20386  n77 = pow(n21, n8)*n30*n31*pow(n48, n8)/n52;
20387  n78 = n2*n39*n44*n64 + n2*n39;
20388  n79 = n2*n38 + n2*n44*n69;
20389  n80 = n2*n37 + n2*n44*n70;
20390  n81 = pow(n78, -n0);
20391  n82 = pow(n79, -n0);
20392  n83 = pow(n80, -n0);
20393  n84 = n80*xF[2];
20394  n85 = n18*n39*n44*n64 + n18*n39;
20395  n86 = n44*n46*n64 + n46;
20396  n87 = pow(n54, n8)*n78;
20397  n88 = pow(n55, n8)*n79;
20398  n89 = n29*n82*xF[1]/n58;
20399  n90 = n40*pow(n54, n8)*n86;
20400  n91 = -n26*n40*n87;
20401  n92 = n18*n26*n42*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39);
20402  n93 = n18*n26*n38*pow(n55, n8)*xF[1]*(pow(alpha, NP0*n1 - n5*n50)*n2*n44*n5/n48 + n2*n38);
20403  n94 = n18*n26*n37*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n2*n44*n6/n48 + n2*n37);
20404  n95 = 1.0*n2*n26*n42*n87;
20405  n96 = -n26*n90;
20406  n97 = -0.5*n26*n90;
20407  n98 = -n78*n85;
20408  n99 = n67 + n91;
20409  n100 = n14*n15*n23 + n15*n27*n77 + n35*n44*n69 + n35*n5*n77;
20410  n101 = n16*n27*n76 + n35*n44*n70 + n35*n6*n76 + n45;
20411  n102 = n26*n43*pow(n55, n8)*(pow(alpha, n1*n12 - n5*n50)*n15*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n5*n50)*pow(n21, n8)*n31*n35*pow(n48, n8)*n5 + n14*n15*n23 + n35*n44*n69);
20412  n103 = n26*n33*pow(n56, n8)*xF[2]*(pow(alpha, n1*n12 - n50*n6)*n16*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n50*n6)*pow(n21, n8)*n31*n35*pow(n48, n8)*n6 + n35*n44*n70 + n45);
20413  n104 = n74 + n95 + n97;
20414  n105 = n2*n26*n37*n60 + n26*n33*pow(n56, n8)*n84 + n26*n43*n88 + n26*n63 + n99;
20415  n106 = n102 + n103 + n71 + n72 + n73 + n92 + n93 + n94 + n96;
20416  n107 = n106 + n26*n33*n84*(n18*n37 + n18*n44*n70)/n59 + n26*n43*n79*(n18*n38 + n18*n44*n69)/n58 + n26*n62*n98;
20417  NP_b = -n12*(1.0*n2*n26*n42*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) - 0.5*n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n13*n14*n44/n48 + n46) - 1.0*n26*n62*n81 + n74 - 0.5*xTj*(n26*n32*n8*n83*xF[2]/n59 + n26*n33*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n35*n44*n6/n48 + pow(alpha, n1*n12 - n50*n6)*n16*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n50*n6)*pow(n21, n8)*n31*n35*pow(n48, n8)*n6 + n45) - n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n13*n14*n44/n48 + n46) + n26*n43*pow(n55, n8)*(pow(alpha, NP0*n1 - n5*n50)*n35*n44*n5/n48 + pow(alpha, n1*n12 - n5*n50)*n15*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n5*n50)*pow(n21, n8)*n31*n35*pow(n48, n8)*n5 + n14*n15*n23) + n26*n62*n8*n81 + n26*n8*n89 + n71 + n72 + n73 + n92 + n93 + n94)) - n2*n26*n39*n40*pow(n54, n8)*n75 - n26*xTj*(n2*n37*n60 + n33*pow(n56, n8)*n84 - n40*n87 + n42*n61 + n43*n88 + n63) - n68;
20418  NP_2a = -n26*(n0*n13*n27*n30*n62*pow(n75, -n0) + n0*n47*pow(n54, n8)*n75*xF[0] + n40*n46*pow(n54, n8)*n75 - 1.0*n65 + 1.0*xTj*(n18*n37*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n2*n44*n6/n48 + n2*n37) + n18*n38*pow(n55, n8)*xF[1]*(pow(alpha, NP0*n1 - n5*n50)*n2*n44*n5/n48 + n2*n38) + n18*n42*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) + n32*n8*n83*xF[2]/n59 + n33*pow(n56, n8)*xF[2]*(pow(alpha, n1*n12 - n50*n6)*n16*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n50*n6)*pow(n21, n8)*n31*n35*pow(n48, n8)*n6 + n35*n44*n70 + n45) + n43*pow(n55, n8)*(pow(alpha, n1*n12 - n5*n50)*n15*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n5*n50)*pow(n21, n8)*n31*n35*pow(n48, n8)*n5 + n14*n15*n23 + n35*n44*n69) + n45*n60 + n62*n8*n81 + n65 + n66 + n8*n89 - n90));
20419  NP_sqrt_base = (NP0*(n11*(n2*n26*n37*n60 + n26*n33*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n2*n44*n6/n48 + n2*n37) - n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) + n26*n43*pow(n55, n8)*(pow(alpha, NP0*n1 - n5*n50)*n2*n44*n5/n48 + n2*n38) + n26*n63 + n67) + n99) + n26*n40/n54 + xTj*(n26*n33*n60 - n26*n40/n54 + n26*n43/n55) + pow(NP0, -n0)*(0.5*n107*xTj - 1.0*n2*n26*n42*n87 + 0.5*n26*n62*n78*n85 + 0.5*n26*n90 - 0.5*n71))*(-n0*n11*(n26*n33*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n35*n44*n6/n48 + pow(alpha, n1*n12 - n50*n6)*n16*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n50*n6)*pow(n21, n8)*n31*n35*pow(n48, n8)*n6 + n45) + n26*n33*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n18*n44*n6/n48 + n18*n37)*(pow(alpha, NP0*n1 - n50*n6)*n2*n44*n6/n48 + n2*n37)/n59 - n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n13*n14*n44/n48 + n46) + n26*n43*pow(n55, n8)*(pow(alpha, NP0*n1 - n5*n50)*n35*n44*n5/n48 + pow(alpha, n1*n12 - n5*n50)*n15*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n5*n50)*pow(n21, n8)*n31*n35*pow(n48, n8)*n5 + n14*n15*n23) + n26*n43*(pow(alpha, NP0*n1 - n5*n50)*n18*n44*n5/n48 + n18*n38)*(pow(alpha, NP0*n1 - n5*n50)*n2*n44*n5/n48 + n2*n38)/n58 - n26*n62*(pow(alpha, NP0*n1 - n1*n50)*n1*n18*n44/n48 + n18*n39)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) + n71 + n72 + n73 + n92 + n93 + n94) - n0*n71 - n0*n96 + 4.0*n2*n26*n42*n87 - 4.0*n26*n62*n81) + pow(-n105*xTj - n12*(1.0*n2*n26*n42*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) - 0.5*n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n13*n14*n44/n48 + n46) - 0.5*n26*n62*(pow(alpha, NP0*n1 - n1*n50)*n1*n18*n44/n48 + n18*n39)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) + n74 - 0.5*xTj*(n26*n33*pow(n56, n8)*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n35*n44*n6/n48 + pow(alpha, n1*n12 - n50*n6)*n16*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n50*n6)*pow(n21, n8)*n31*n35*pow(n48, n8)*n6 + n45) + n26*n33*xF[2]*(pow(alpha, NP0*n1 - n50*n6)*n18*n44*n6/n48 + n18*n37)*(pow(alpha, NP0*n1 - n50*n6)*n2*n44*n6/n48 + n2*n37)/n59 - n26*n40*pow(n54, n8)*(pow(alpha, NP0*n1 - n1*n50)*n13*n14*n44/n48 + n46) + n26*n43*pow(n55, n8)*(pow(alpha, NP0*n1 - n5*n50)*n35*n44*n5/n48 + pow(alpha, n1*n12 - n5*n50)*n15*pow(n21, n8)*n27*n31*pow(n48, n8) + pow(alpha, n1*n12 - n5*n50)*pow(n21, n8)*n31*n35*pow(n48, n8)*n5 + n14*n15*n23) + n26*n43*(pow(alpha, NP0*n1 - n5*n50)*n18*n44*n5/n48 + n18*n38)*(pow(alpha, NP0*n1 - n5*n50)*n2*n44*n5/n48 + n2*n38)/n58 - n26*n62*(pow(alpha, NP0*n1 - n1*n50)*n1*n18*n44/n48 + n18*n39)*(pow(alpha, NP0*n1 - n1*n50)*n1*n2*n44/n48 + n2*n39) + n71 + n72 + n73 + n92 + n93 + n94)) - n26*n40*n87 - n68, -n0);
20420  NP_sqrt_base = fabs(NP_sqrt_base);
20421  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
20422  NT1 = n36*(n49 - log(-pow(alpha, NP1*n1)*n44 + 1));
20423  g0 = MW[1] - Mstar;
20424  g1 = MW[0] - Mstar;
20425  g2 = NT1 + 1;
20426  g3 = xPj - xTj;
20427  g4 = MW[2] - Mstar;
20428  g5 = xF[0] - xTj;
20429  g6 = xF[0] - xPj;
20430  g7 = -xTj;
20431  g8 = xPj/xF[1];
20432  g9 = pow(alpha, -g1);
20433  g10 = pow(alpha, -g0);
20434  g11 = pow(alpha, -g4);
20435  g12 = log(xF[0]/xF[1]);
20436  g13 = -g2;
20437  g14 = pow(alpha, NP1*g0);
20438  g15 = pow(alpha, NP1*g1);
20439  g16 = log(g9);
20440  g17 = pow(alpha, NP1*g4);
20441  g18 = -g12;
20442  g19 = g3/g5;
20443  g20 = g5/g3;
20444  g21 = -g14 + 1;
20445  g22 = -g14 + 1;
20446  g23 = -g15 + 1;
20447  g24 = -g17 + 1;
20448  g25 = -g15;
20449  g26 = -g17;
20450  g27 = -1.0*g12;
20451  g28 = -g3/g6;
20452  g29 = pow(alpha, g0*g13) - 1;
20453  g30 = pow(alpha, g0*g13) - 1;
20454  g31 = pow(alpha, g1*g13) - 1;
20455  g32 = pow(alpha, g13*g4) - 1;
20456  g33 = -pow(alpha, g1*g13);
20457  g34 = -pow(alpha, g13*g4);
20458  g35 = g6*g7/(g3*xF[1]);
20459  g36 = g22 + g30;
20460  g37 = -g15 - g33;
20461  g38 = -g17 - g34;
20462  g39 = pow(alpha, g1*g13) + g25;
20463  g40 = g22 + g30;
20464  g41 = pow(alpha, g13*g4) + g26;
20465  g42 = xF[1]/g40;
20466  g43 = xF[2]/g41;
20467  g44 = xF[0]/g39;
20468  g45 = xF[2]/g38;
20469  g46 = xF[1]/g36;
20470  g47 = xF[0]/g37;
20471  g48 = g23/g37;
20472  g49 = g21/g36;
20473  g50 = g24/g38;
20474  g51 = g32/g38;
20475  g52 = g29/g36;
20476  g53 = g31/g37;
20477  g54 = log(g35*g40/g22);
20478  g55 = log(g35*g36/g21);
20479  g56 = log(g20*g40*g8/g30);
20480  g57 = 1.0*g54;
20481  g58 = log(g20*g36*g8/g29);
20482  g59 = 1.0*g56;
20483  g60 = -g22*g42*g57 - g27*xF[0] - g27*xF[1] - g27*xF[2] - g30*g42*g59 - g43*g57*(g26 + 1) - g43*g59*(pow(alpha, g13*g4) - 1) - g44*g57*(g25 + 1) - g44*g59*(pow(alpha, g1*g13) - 1);
20484  LpF = xF[0]*(g9 + 1.0)*(g18 + g48*g55 + g53*g58)/(g16*(g9 - 1.0)) + xF[1]*(g10 + 1.0)*(g18 + g49*g55 + g52*g58)/(g16*(g10 - 1.0)) + xF[2]*(g11 + 1.0)*(g18 + g50*g55 + g51*g58)/(g16*(g11 - 1.0));
20485  PpF = g20;
20486  TpF = -g6/g3;
20487  SWUpF = g60;
20488  SWUpP = g19*g60;
20489  xP[0] = g19*g31*g47;
20490  xP[1] = g19*g29*g46;
20491  xP[2] = g19*g32*g45;
20492  xT[0] = g23*g28*g47;
20493  xT[1] = g21*g28*g46;
20494  xT[2] = g24*g28*g45;
20495  break;
20496  case 4:
20497  n0 = -0.500000000000000;
20498  n1 = MW[0] - Mstar;
20499  n2 = log(alpha);
20500  n3 = xPj - xTj;
20501  n4 = xF[0] - xPj;
20502  n5 = MW[1] - Mstar;
20503  n6 = MW[2] - Mstar;
20504  n7 = MW[3] - Mstar;
20505  n8 = log(xTj);
20506  n9 = -2;
20507  n10 = xF[0]*xPj;
20508  n11 = -Mstar;
20509  n12 = -xF[0];
20510  n13 = -xPj;
20511  n14 = -NP0*n9;
20512  n15 = -xTj;
20513  n16 = pow(n1, -n9);
20514  n17 = pow(n2, -n9);
20515  n18 = pow(n5, -n9);
20516  n19 = pow(n6, -n9);
20517  n20 = pow(n7, -n9);
20518  n21 = Mstar*n2;
20519  n22 = -n2*n9;
20520  n23 = pow(alpha, NP0*n1);
20521  n24 = n10 + n12*xTj;
20522  n25 = n10 + n13*xTj;
20523  n26 = pow(alpha, NP0*n5);
20524  n27 = pow(alpha, NP0*n6);
20525  n28 = pow(alpha, NP0*n7);
20526  n29 = -MW[0]*n2;
20527  n30 = n3/n4;
20528  n31 = -n23 + 1;
20529  n32 = -n26 + 1;
20530  n33 = pow(alpha, n1*n14);
20531  n34 = pow(n24, -n9);
20532  n35 = pow(n25, -n9);
20533  n36 = -n27 + 1;
20534  n37 = -n28 + 1;
20535  n38 = -n36;
20536  n39 = -n23;
20537  n40 = -n26;
20538  n41 = 1/(n1*n2);
20539  n42 = n1*n17;
20540  n43 = n27*n6;
20541  n44 = n37*xF[3];
20542  n45 = n28*n7;
20543  n46 = n1*n23;
20544  n47 = n32*xF[1];
20545  n48 = n26*n5;
20546  n49 = n16*n17;
20547  n50 = log((-1.0 + xPj/xF[0])/n3);
20548  n51 = n25/n24;
20549  n52 = n17*n19*n27;
20550  n53 = n23*n49;
20551  n54 = n17*n20*n28;
20552  n55 = n39*n51 + 1;
20553  n56 = pow(n55, -n9);
20554  n57 = n21 + n29 + n50 + n8;
20555  n58 = n23*n51/n55;
20556  n59 = n17*n33*n35/(n34*n56);
20557  n60 = n41*(n57 - log(n55)) + 1;
20558  n61 = pow(alpha, n1*n60);
20559  n62 = pow(alpha, n5*n60);
20560  n63 = pow(alpha, n6*n60);
20561  n64 = pow(alpha, n60*n7);
20562  n65 = n5/n62;
20563  n66 = n7/n64;
20564  n67 = n6/n63;
20565  n68 = n31 - 1 + 1.0/n61;
20566  n69 = n32 - 1 + 1.0/n62;
20567  n70 = n36 - 1 + 1.0/n63;
20568  n71 = n37 - 1 + 1.0/n64;
20569  n72 = pow(n68, -n9);
20570  n73 = pow(n69, -n9);
20571  n74 = pow(n70, -n9);
20572  n75 = pow(n71, -n9);
20573  n76 = pow(n68, 3);
20574  n77 = pow(n69, 3);
20575  n78 = pow(n70, 3);
20576  n79 = pow(n71, 3);
20577  n80 = xF[2]/n70;
20578  n81 = xF[3]/n71;
20579  n82 = n2/n68;
20580  n83 = xF[0]/n72;
20581  n84 = n2*n81;
20582  n85 = n31*xF[0]/n76;
20583  n86 = -n44/n75;
20584  n87 = n2*n48*xF[1]/n69;
20585  n88 = n53*xF[0]/n68;
20586  n89 = n17*n18*n26*xF[1]/n69;
20587  n90 = n12*n30*n46*n82;
20588  n91 = n30*n88;
20589  n92 = n30*n89;
20590  n93 = n30*n52*n80;
20591  n94 = n30*n54*n81;
20592  n95 = n0*n12*n30*n53/n68;
20593  n96 = n51/(n55*n61) + 1;
20594  n97 = n31*n96;
20595  n98 = n2*n46*n51/(n55*n61) + n2*n46;
20596  n99 = n2*n48 + n2*n58*n65;
20597  n100 = n2*n43 + n2*n58*n67;
20598  n101 = n2*n45 + n2*n58*n66;
20599  n102 = pow(n98, -n9);
20600  n103 = pow(n99, -n9);
20601  n104 = pow(n100, -n9);
20602  n105 = pow(n101, -n9);
20603  n106 = n100*xF[2];
20604  n107 = n22*n46*n51/(n55*n61) + n22*n46;
20605  n108 = n2*n98;
20606  n109 = n51*n53/(n55*n61) + n53;
20607  n110 = n103/n77;
20608  n111 = n105*n9/n79;
20609  n112 = n30*n31*n83*n98;
20610  n113 = n12*n2*n30*n46*n9*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)/n72;
20611  n114 = n22*n30*n48*xF[1]*(pow(alpha, NP0*n1 - n5*n60)*n2*n5*n51/n55 + n2*n48)/n73;
20612  n115 = n22*n30*n43*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n2*n51*n6/n55 + n2*n43)/n74;
20613  n116 = n22*n30*n45*xF[3]*(pow(alpha, NP0*n1 - n60*n7)*n2*n51*n7/n55 + n2*n45)/n75;
20614  n117 = 1.0*n108*n30*n46*n83;
20615  n118 = n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n49*n51/n55 + n53)/n72;
20616  n119 = n0*n109*n30*n31*n83;
20617  n120 = n17*n18*n26 - n18*n59/n62 + n33*n35*n42*n65/(n34*n56) + n42*n58*n65;
20618  n121 = -n19*n59/n63 + n33*n35*n42*n67/(n34*n56) + n42*n58*n67 + n52;
20619  n122 = -n30*n47*(-pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26 + n42*n58*n65)/n73;
20620  n123 = n30*n38*xF[2]*(-pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n42*n58*n67 + n52)/n74;
20621  n124 = n30*n86*(-pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n42*n58*n66 + n54);
20622  n125 = xTj*(n101*n30*n86 + n106*n30*n38/n74 + n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)/n72 + n2*n30*n43*n80 + n30*n45*n84 + n30*n46*n82*xF[0] - n30*n47*n99/n73 + n30*n87);
20623  n126 = n112 + n125 + n90;
20624  n127 = n113 + n114 + n115 + n116 + n118 + n122 + n123 + n124 + n91 + n92 + n93 + n94;
20625  n128 = -n101*n30*n44*(n22*n45 + n22*n58*n66)/n79 + n106*n30*n38*(n22*n43 + n22*n58*n67)/n78 + n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46)/n76 + n127 - n30*n47*n99*(n22*n48 + n22*n58*n65)/n77;
20626  NP_b = -n14*(n0*n30*n31*n83*(pow(alpha, NP0*n1 - n1*n60)*n49*n51/n55 + n53) + n0*xTj*(n102*n30*n85*n9 + n104*n30*n36*n9*xF[2]/n78 + n110*n30*n47*n9 + n111*n30*n44 + n113 + n114 + n115 + n116 + n118 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n42*n51*n6/n55 - pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n52)/n74 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n42*n5*n51/n55 - pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26)/n73 + n30*n86*(pow(alpha, NP0*n1 - n60*n7)*n42*n51*n7/n55 - pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n54) + n91 + n92 + n93 + n94) - 1.0*n102*n30*n85 + 1.0*n2*n30*n46*n83*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46) + n95) - n2*n30*n46*n83*n97 - n30*xTj*(n101*n86 + n106*n38/n74 + n12*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)/n72 + n2*n43*n80 + n45*n84 + n46*n82*xF[0] - n47*n99/n73 + n87) - n90;
20627  NP_2a = -n30*(n12*n31*n33*n49*n9*pow(n96, -n9)/n76 - 2.0*n33*n49*n83*n96 + n53*n83*n97 - 1.0*n88 + 1.0*xTj*(n102*n85*n9 + n104*n36*n9*xF[2]/n78 + n110*n47*n9 + n111*n44 + n12*n2*n46*n9*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)/n72 + n12*n31*(pow(alpha, NP0*n1 - n1*n60)*n49*n51/n55 + n53)/n72 + n22*n43*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n2*n51*n6/n55 + n2*n43)/n74 + n22*n45*xF[3]*(pow(alpha, NP0*n1 - n60*n7)*n2*n51*n7/n55 + n2*n45)/n75 + n22*n48*xF[1]*(pow(alpha, NP0*n1 - n5*n60)*n2*n5*n51/n55 + n2*n48)/n73 + n38*xF[2]*(-pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n42*n58*n67 + n52)/n74 - n47*(-pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26 + n42*n58*n65)/n73 + n52*n80 + n54*n81 + n86*(-pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n42*n58*n66 + n54) + n88 + n89));
20628  NP_sqrt_base = (-NP0*n126 - n12*n30*n31/(n31 - 1 + pow(alpha, -n1*(n41*(n57 - log(n25*n39/(n10 + n15*xF[0]) + 1)) + 1))) - n15*(-n30*n31*xF[0]/n68 - n30*n36*n80 - n30*n44/n71 - n30*n47/n69) - pow(NP0, -n9)*(-n0*n118 - n0*n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46)/n76 - n0*n15*(n113 + n114 + n115 + n116 + n118 + n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46)/n76 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n2*n51*n6/n55 + n2*n43)*(pow(alpha, NP0*n1 - n6*n60)*n22*n51*n6/n55 + n22*n43)/n78 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n42*n51*n6/n55 - pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n52)/n74 - n30*n44*(pow(alpha, NP0*n1 - n60*n7)*n2*n51*n7/n55 + n2*n45)*(pow(alpha, NP0*n1 - n60*n7)*n22*n51*n7/n55 + n22*n45)/n79 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n2*n5*n51/n55 + n2*n48)*(pow(alpha, NP0*n1 - n5*n60)*n22*n5*n51/n55 + n22*n48)/n77 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n42*n5*n51/n55 - pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26)/n73 + n30*n86*(pow(alpha, NP0*n1 - n60*n7)*n42*n51*n7/n55 - pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n54) + n91 + n92 + n93 + n94) - n0*n91 + 1.0*n108*n30*n46*n83))*(-4.0*n102*n30*n85 + 4.0*n108*n30*n46*n83 - n118*n9 - n15*n9*(n113 + n114 + n115 + n116 + n118 + n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46)/n76 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n2*n51*n6/n55 + n2*n43)*(pow(alpha, NP0*n1 - n6*n60)*n22*n51*n6/n55 + n22*n43)/n78 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n42*n51*n6/n55 - pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n52)/n74 - n30*n44*(pow(alpha, NP0*n1 - n60*n7)*n2*n51*n7/n55 + n2*n45)*(pow(alpha, NP0*n1 - n60*n7)*n22*n51*n7/n55 + n22*n45)/n79 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n2*n5*n51/n55 + n2*n48)*(pow(alpha, NP0*n1 - n5*n60)*n22*n5*n51/n55 + n22*n48)/n77 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n42*n5*n51/n55 - pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26)/n73 + n30*n86*(pow(alpha, NP0*n1 - n60*n7)*n42*n51*n7/n55 - pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n54) + n91 + n92 + n93 + n94) + 2.0*n91) + pow(-n126 - n14*(n0*n30*n31*n83*(pow(alpha, NP0*n1 - n1*n60)*n49*n51/n55 + n53) + n0*n30*n85*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46) + n0*xTj*(n113 + n114 + n115 + n116 + n118 + n12*n30*n31*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46)*(pow(alpha, NP0*n1 - n1*n60)*n1*n22*n51/n55 + n22*n46)/n76 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n2*n51*n6/n55 + n2*n43)*(pow(alpha, NP0*n1 - n6*n60)*n22*n51*n6/n55 + n22*n43)/n78 + n30*n38*xF[2]*(pow(alpha, NP0*n1 - n6*n60)*n42*n51*n6/n55 - pow(alpha, n1*n14 - n6*n60)*n17*n19*n35/(n34*n56) + pow(alpha, n1*n14 - n6*n60)*n35*n42*n6/(n34*n56) + n52)/n74 - n30*n44*(pow(alpha, NP0*n1 - n60*n7)*n2*n51*n7/n55 + n2*n45)*(pow(alpha, NP0*n1 - n60*n7)*n22*n51*n7/n55 + n22*n45)/n79 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n2*n5*n51/n55 + n2*n48)*(pow(alpha, NP0*n1 - n5*n60)*n22*n5*n51/n55 + n22*n48)/n77 - n30*n47*(pow(alpha, NP0*n1 - n5*n60)*n42*n5*n51/n55 - pow(alpha, n1*n14 - n5*n60)*n17*n18*n35/(n34*n56) + pow(alpha, n1*n14 - n5*n60)*n35*n42*n5/(n34*n56) + n17*n18*n26)/n73 + n30*n86*(pow(alpha, NP0*n1 - n60*n7)*n42*n51*n7/n55 - pow(alpha, n1*n14 - n60*n7)*n17*n20*n35/(n34*n56) + pow(alpha, n1*n14 - n60*n7)*n35*n42*n7/(n34*n56) + n54) + n91 + n92 + n93 + n94) + 1.0*n2*n30*n46*n83*(pow(alpha, NP0*n1 - n1*n60)*n1*n2*n51/n55 + n2*n46) + n95), -n9);
20629  NP_sqrt_base = fabs(NP_sqrt_base);
20630  NP1 = (-NP_b - pow(NP_sqrt_base, -n0))/NP_2a;
20631  NT1 = n41*(n57 - log(-pow(alpha, NP1*n1)*n51 + 1));
20632  g0 = MW[1] - Mstar;
20633  g1 = MW[0] - Mstar;
20634  g2 = NT1 + 1;
20635  g3 = xPj - xTj;
20636  g4 = MW[2] - Mstar;
20637  g5 = MW[3] - Mstar;
20638  g6 = xF[0] - xTj;
20639  g7 = xF[0] - xPj;
20640  g8 = -xTj;
20641  g9 = xPj/xF[1];
20642  g10 = pow(alpha, -g1);
20643  g11 = pow(alpha, -g0);
20644  g12 = pow(alpha, -g4);
20645  g13 = pow(alpha, -g5);
20646  g14 = log(xF[0]/xF[1]);
20647  g15 = -g2;
20648  g16 = pow(alpha, NP1*g0);
20649  g17 = pow(alpha, NP1*g1);
20650  g18 = log(g10);
20651  g19 = pow(alpha, NP1*g4);
20652  g20 = pow(alpha, NP1*g5);
20653  g21 = -g14;
20654  g22 = g3/g6;
20655  g23 = g6/g3;
20656  g24 = -g16 + 1;
20657  g25 = -g16 + 1;
20658  g26 = -g17 + 1;
20659  g27 = -g19 + 1;
20660  g28 = -g20 + 1;
20661  g29 = -g17;
20662  g30 = -g19;
20663  g31 = -g20;
20664  g32 = -1.0*g14;
20665  g33 = -g3/g7;
20666  g34 = pow(alpha, g0*g15) - 1;
20667  g35 = pow(alpha, g0*g15) - 1;
20668  g36 = pow(alpha, g1*g15) - 1;
20669  g37 = pow(alpha, g15*g4) - 1;
20670  g38 = pow(alpha, g15*g5) - 1;
20671  g39 = -pow(alpha, g1*g15);
20672  g40 = -pow(alpha, g15*g4);
20673  g41 = -pow(alpha, g15*g5);
20674  g42 = g7*g8/(g3*xF[1]);
20675  g43 = g25 + g35;
20676  g44 = -g17 - g39;
20677  g45 = -g19 - g40;
20678  g46 = -g20 - g41;
20679  g47 = pow(alpha, g1*g15) + g29;
20680  g48 = g25 + g35;
20681  g49 = pow(alpha, g15*g4) + g30;
20682  g50 = pow(alpha, g15*g5) + g31;
20683  g51 = xF[0]/g47;
20684  g52 = xF[1]/g48;
20685  g53 = xF[3]/g50;
20686  g54 = xF[2]/g49;
20687  g55 = xF[1]/g43;
20688  g56 = xF[0]/g44;
20689  g57 = xF[3]/g46;
20690  g58 = xF[2]/g45;
20691  g59 = g26/g44;
20692  g60 = g28/g46;
20693  g61 = g24/g43;
20694  g62 = g27/g45;
20695  g63 = g34/g43;
20696  g64 = g37/g45;
20697  g65 = g36/g44;
20698  g66 = g38/g46;
20699  g67 = log(g42*g48/g25);
20700  g68 = log(g42*g43/g24);
20701  g69 = log(g23*g48*g9/g35);
20702  g70 = 1.0*g67;
20703  g71 = log(g23*g43*g9/g34);
20704  g72 = 1.0*g69;
20705  g73 = -g25*g52*g70 - g32*xF[0] - g32*xF[1] - g32*xF[2] - g32*xF[3] - g35*g52*g72 - g51*g70*(g29 + 1) - g51*g72*(pow(alpha, g1*g15) - 1) - g53*g70*(g31 + 1) - g53*g72*(pow(alpha, g15*g5) - 1) - g54*g70*(g30 + 1) - g54*g72*(pow(alpha, g15*g4) - 1);
20706  LpF = xF[0]*(g10 + 1.0)*(g21 + g59*g68 + g65*g71)/(g18*(g10 - 1.0)) + xF[1]*(g11 + 1.0)*(g21 + g61*g68 + g63*g71)/(g18*(g11 - 1.0)) + xF[2]*(g12 + 1.0)*(g21 + g62*g68 + g64*g71)/(g18*(g12 - 1.0)) + xF[3]*(g13 + 1.0)*(g21 + g60*g68 + g66*g71)/(g18*(g13 - 1.0));
20707  PpF = g23;
20708  TpF = -g7/g3;
20709  SWUpF = g73;
20710  SWUpP = g22*g73;
20711  xP[0] = g22*g36*g56;
20712  xP[1] = g22*g34*g55;
20713  xP[2] = g22*g37*g58;
20714  xP[3] = g22*g38*g57;
20715  xT[0] = g26*g33*g56;
20716  xT[1] = g24*g33*g55;
20717  xT[2] = g27*g33*g58;
20718  xT[3] = g28*g33*g57;
20719  break;
20720  case 5:
20721  n0 = MW[0] - Mstar;
20722  n1 = log(alpha);
20723  n2 = xPj - xTj;
20724  n3 = xF[0] - xPj;
20725  n4 = MW[1] - Mstar;
20726  n5 = MW[2] - Mstar;
20727  n6 = MW[3] - Mstar;
20728  n7 = MW[4] - Mstar;
20729  n8 = log(xTj);
20730  n9 = xF[0]*xPj;
20731  n10 = -Mstar;
20732  n11 = 2*NP0;
20733  n12 = -xPj;
20734  n13 = -xF[0];
20735  n14 = -xTj;
20736  n15 = pow(n0, 2);
20737  n16 = pow(n1, 2);
20738  n17 = pow(n4, 2);
20739  n18 = pow(n5, 2);
20740  n19 = pow(n6, 2);
20741  n20 = pow(n7, 2);
20742  n21 = Mstar*n1;
20743  n22 = 2*n1;
20744  n23 = pow(alpha, NP0*n0);
20745  n24 = n13*xTj + n9;
20746  n25 = n12*xTj + n9;
20747  n26 = pow(alpha, NP0*n4);
20748  n27 = pow(alpha, NP0*n5);
20749  n28 = pow(alpha, NP0*n6);
20750  n29 = pow(alpha, NP0*n7);
20751  n30 = -MW[0]*n1;
20752  n31 = n2/n3;
20753  n32 = -n23 + 1;
20754  n33 = -n26 + 1;
20755  n34 = pow(alpha, n0*n11);
20756  n35 = pow(n24, 2);
20757  n36 = pow(n25, 2);
20758  n37 = -n27 + 1;
20759  n38 = -n28 + 1;
20760  n39 = -n29 + 1;
20761  n40 = -n37;
20762  n41 = -n38;
20763  n42 = -n23;
20764  n43 = 1/(n0*n1);
20765  n44 = n0*n16;
20766  n45 = n27*n5;
20767  n46 = n28*n6;
20768  n47 = n29*n7;
20769  n48 = n0*n23;
20770  n49 = n26*n4;
20771  n50 = n15*n16;
20772  n51 = log((-1.0 + xPj/xF[0])/n2);
20773  n52 = -n33*xF[1];
20774  n53 = -n39*xF[4];
20775  n54 = n25/n24;
20776  n55 = n16*n18*n27;
20777  n56 = n16*n20*n29;
20778  n57 = n23*n50;
20779  n58 = n16*n19*n28;
20780  n59 = n42*n54 + 1;
20781  n60 = pow(n59, 2);
20782  n61 = n21 + n30 + n51 + n8;
20783  n62 = n23*n54/n59;
20784  n63 = n16*n34*n36/(n35*n60);
20785  n64 = n43*(n61 - log(n59)) + 1;
20786  n65 = pow(alpha, n0*n64);
20787  n66 = pow(alpha, n4*n64);
20788  n67 = pow(alpha, n5*n64);
20789  n68 = pow(alpha, n6*n64);
20790  n69 = pow(alpha, n64*n7);
20791  n70 = n4/n66;
20792  n71 = n7/n69;
20793  n72 = n6/n68;
20794  n73 = n5/n67;
20795  n74 = n32 - 1 + 1.0/n65;
20796  n75 = n33 - 1 + 1.0/n66;
20797  n76 = n37 - 1 + 1.0/n67;
20798  n77 = n38 - 1 + 1.0/n68;
20799  n78 = n39 - 1 + 1.0/n69;
20800  n79 = pow(n74, 2);
20801  n80 = pow(n75, 2);
20802  n81 = pow(n76, 2);
20803  n82 = pow(n77, 2);
20804  n83 = pow(n78, 2);
20805  n84 = pow(n74, 3);
20806  n85 = pow(n75, 3);
20807  n86 = pow(n76, 3);
20808  n87 = pow(n77, 3);
20809  n88 = pow(n78, 3);
20810  n89 = xF[2]/n76;
20811  n90 = xF[4]/n78;
20812  n91 = xF[3]/n77;
20813  n92 = n1/n74;
20814  n93 = xF[0]/n79;
20815  n94 = n1*n91;
20816  n95 = n32/n74;
20817  n96 = n32*xF[0]/n84;
20818  n97 = n41*xF[3]/n82;
20819  n98 = n1*n49*xF[1]/n75;
20820  n99 = n57*xF[0]/n74;
20821  n100 = n16*n17*n26*xF[1]/n75;
20822  n101 = n31*n48*n92*xF[0];
20823  n102 = n13*n31*n48*n92;
20824  n103 = n31*n99;
20825  n104 = n100*n31;
20826  n105 = n31*n55*n89;
20827  n106 = n31*n58*n91;
20828  n107 = n31*n56*n90;
20829  n108 = 0.5*n103;
20830  n109 = n54/(n59*n65) + 1;
20831  n110 = n109*n32;
20832  n111 = n1*n48*n54/(n59*n65) + n1*n48;
20833  n112 = n1*n49 + n1*n62*n70;
20834  n113 = n1*n45 + n1*n62*n73;
20835  n114 = n1*n46 + n1*n62*n72;
20836  n115 = n1*n47 + n1*n62*n71;
20837  n116 = pow(n111, 2);
20838  n117 = pow(n112, 2);
20839  n118 = pow(n113, 2);
20840  n119 = pow(n114, 2);
20841  n120 = pow(n115, 2);
20842  n121 = n113*xF[2];
20843  n122 = n114*xF[3];
20844  n123 = n22*n48*n54/(n59*n65) + n22*n48;
20845  n124 = n1*n111;
20846  n125 = -2*n116;
20847  n126 = n54*n57/(n59*n65) + n57;
20848  n127 = n111*n32;
20849  n128 = n115*n53;
20850  n129 = n112/n80;
20851  n130 = 2*n120/n88;
20852  n131 = 2*n117/n85;
20853  n132 = 2*n118*xF[2]/n86;
20854  n133 = -2*n119*n38*xF[3]/n87;
20855  n134 = n13*n31*n32*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48)/n79;
20856  n135 = n22*n31*n48*n93*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48);
20857  n136 = n22*n31*n49*xF[1]*(pow(alpha, NP0*n0 - n4*n64)*n1*n4*n54/n59 + n1*n49)/n80;
20858  n137 = n22*n31*n45*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n1*n5*n54/n59 + n1*n45)/n81;
20859  n138 = n22*n31*n46*xF[3]*(pow(alpha, NP0*n0 - n6*n64)*n1*n54*n6/n59 + n1*n46)/n82;
20860  n139 = n22*n31*n47*xF[4]*(pow(alpha, NP0*n0 - n64*n7)*n1*n54*n7/n59 + n1*n47)/n83;
20861  n140 = 1.0*n124*n31*n48*n93;
20862  n141 = n13*n31*n32*(pow(alpha, NP0*n0 - n0*n64)*n50*n54/n59 + n57)/n79;
20863  n142 = -0.5*n126*n31*n32*n93;
20864  n143 = n101 + n134;
20865  n144 = n16*n17*n26 - n17*n63/n66 + n34*n36*n44*n70/(n35*n60) + n44*n62*n70;
20866  n145 = -n18*n63/n67 + n34*n36*n44*n73/(n35*n60) + n44*n62*n73 + n55;
20867  n146 = -n20*n63/n69 + n34*n36*n44*n71/(n35*n60) + n44*n62*n71 + n56;
20868  n147 = n31*n52*(-pow(alpha, n0*n11 - n4*n64)*n16*n17*n36/(n35*n60) + pow(alpha, n0*n11 - n4*n64)*n36*n4*n44/(n35*n60) + n16*n17*n26 + n44*n62*n70)/n80;
20869  n148 = n31*n40*xF[2]*(-pow(alpha, n0*n11 - n5*n64)*n16*n18*n36/(n35*n60) + pow(alpha, n0*n11 - n5*n64)*n36*n44*n5/(n35*n60) + n44*n62*n73 + n55)/n81;
20870  n149 = n31*n97*(-pow(alpha, n0*n11 - n6*n64)*n16*n19*n36/(n35*n60) + pow(alpha, n0*n11 - n6*n64)*n36*n44*n6/(n35*n60) + n44*n62*n72 + n58);
20871  n150 = n31*n53*(-pow(alpha, n0*n11 - n64*n7)*n16*n20*n36/(n35*n60) + pow(alpha, n0*n11 - n64*n7)*n36*n44*n7/(n35*n60) + n44*n62*n71 + n56)/n83;
20872  n151 = n108 + n140 + n142;
20873  n152 = n1*n31*n45*n89 + n1*n31*n47*n90 + n114*n31*n97 + n121*n31*n40/n81 + n128*n31/n83 + n129*n31*n52 + n143 + n31*n46*n94 + n31*n98;
20874  n153 = n152*xTj;
20875  n154 = n103 + n104 + n105 + n106 + n107 + n135 + n136 + n137 + n138 + n139 + n141 + n147 + n148 + n149 + n150;
20876  n155 = n112*n31*n52*(n22*n49 + n22*n62*n70)/n85 + n121*n31*n40*(n22*n45 + n22*n62*n73)/n86 + n122*n31*n41*(n22*n46 + n22*n62*n72)/n87 + n128*n31*(n22*n47 + n22*n62*n71)/n88 + n13*n31*n32*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48)*(pow(alpha, NP0*n0 - n0*n64)*n0*n22*n54/n59 + n22*n48)/n84 + n154;
20877  n156 = n155*xTj;
20878  n157 = -0.5*n111*n123*n31*n96 + n151 - 0.5*n156;
20879  NP_b = -n1*n110*n31*n48*n93 - n102 - n11*(1.0*n1*n31*n48*n93*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48) + n108 - 1.0*n116*n31*n96 - 0.5*n31*n32*n93*(pow(alpha, NP0*n0 - n0*n64)*n50*n54/n59 + n57) - 0.5*xTj*(n103 + n104 + n105 + n106 + n107 + n125*n31*n96 - n130*n31*n39*xF[4] - n131*n31*n33*xF[1] - n132*n31*n37 + n133*n31 + n135 + n136 + n137 + n138 + n139 + n141 + n31*n40*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n44*n5*n54/n59 - pow(alpha, n0*n11 - n5*n64)*n16*n18*n36/(n35*n60) + pow(alpha, n0*n11 - n5*n64)*n36*n44*n5/(n35*n60) + n55)/n81 + n31*n52*(pow(alpha, NP0*n0 - n4*n64)*n4*n44*n54/n59 - pow(alpha, n0*n11 - n4*n64)*n16*n17*n36/(n35*n60) + pow(alpha, n0*n11 - n4*n64)*n36*n4*n44/(n35*n60) + n16*n17*n26)/n80 + n31*n53*(pow(alpha, NP0*n0 - n64*n7)*n44*n54*n7/n59 - pow(alpha, n0*n11 - n64*n7)*n16*n20*n36/(n35*n60) + pow(alpha, n0*n11 - n64*n7)*n36*n44*n7/(n35*n60) + n56)/n83 + n31*n97*(pow(alpha, NP0*n0 - n6*n64)*n44*n54*n6/n59 - pow(alpha, n0*n11 - n6*n64)*n16*n19*n36/(n35*n60) + pow(alpha, n0*n11 - n6*n64)*n36*n44*n6/(n35*n60) + n58))) - n31*xTj*(n1*n45*n89 + n1*n47*n90 + n114*n97 + n121*n40/n81 + n128/n83 + n129*n52 + n13*n32*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48)/n79 + n46*n94 + n48*n92*xF[0] + n98);
20880  NP_2a = -n31*(2*pow(n109, 2)*n34*n50*n96 - 2.0*n109*n34*n50*n93 + n110*n57*n93 - 1.0*n99 + 1.0*xTj*(n100 + n125*n96 + n13*n32*(pow(alpha, NP0*n0 - n0*n64)*n50*n54/n59 + n57)/n79 - n130*n39*xF[4] - n131*n33*xF[1] - n132*n37 + n133 + n22*n45*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n1*n5*n54/n59 + n1*n45)/n81 + n22*n46*xF[3]*(pow(alpha, NP0*n0 - n6*n64)*n1*n54*n6/n59 + n1*n46)/n82 + n22*n47*xF[4]*(pow(alpha, NP0*n0 - n64*n7)*n1*n54*n7/n59 + n1*n47)/n83 + n22*n48*n93*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48) + n22*n49*xF[1]*(pow(alpha, NP0*n0 - n4*n64)*n1*n4*n54/n59 + n1*n49)/n80 + n40*xF[2]*(-pow(alpha, n0*n11 - n5*n64)*n16*n18*n36/(n35*n60) + pow(alpha, n0*n11 - n5*n64)*n36*n44*n5/(n35*n60) + n44*n62*n73 + n55)/n81 + n52*(-pow(alpha, n0*n11 - n4*n64)*n16*n17*n36/(n35*n60) + pow(alpha, n0*n11 - n4*n64)*n36*n4*n44/(n35*n60) + n16*n17*n26 + n44*n62*n70)/n80 + n53*(-pow(alpha, n0*n11 - n64*n7)*n16*n20*n36/(n35*n60) + pow(alpha, n0*n11 - n64*n7)*n36*n44*n7/(n35*n60) + n44*n62*n71 + n56)/n83 + n55*n89 + n56*n90 + n58*n91 + n97*(-pow(alpha, n0*n11 - n6*n64)*n16*n19*n36/(n35*n60) + pow(alpha, n0*n11 - n6*n64)*n36*n44*n6/(n35*n60) + n44*n62*n72 + n58) + n99));
20881  NP_sqrt_base = pow(-n102 - n11*(1.0*n1*n31*n48*n93*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48) + n108 - 0.5*n31*n32*n93*(pow(alpha, NP0*n0 - n0*n64)*n50*n54/n59 + n57) - 0.5*n31*n96*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48)*(pow(alpha, NP0*n0 - n0*n64)*n0*n22*n54/n59 + n22*n48) - 0.5*xTj*(n103 + n104 + n105 + n106 + n107 + n13*n31*n32*(pow(alpha, NP0*n0 - n0*n64)*n0*n1*n54/n59 + n1*n48)*(pow(alpha, NP0*n0 - n0*n64)*n0*n22*n54/n59 + n22*n48)/n84 + n135 + n136 + n137 + n138 + n139 + n141 + n31*n40*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n1*n5*n54/n59 + n1*n45)*(pow(alpha, NP0*n0 - n5*n64)*n22*n5*n54/n59 + n22*n45)/n86 + n31*n40*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n44*n5*n54/n59 - pow(alpha, n0*n11 - n5*n64)*n16*n18*n36/(n35*n60) + pow(alpha, n0*n11 - n5*n64)*n36*n44*n5/(n35*n60) + n55)/n81 + n31*n41*xF[3]*(pow(alpha, NP0*n0 - n6*n64)*n1*n54*n6/n59 + n1*n46)*(pow(alpha, NP0*n0 - n6*n64)*n22*n54*n6/n59 + n22*n46)/n87 + n31*n52*(pow(alpha, NP0*n0 - n4*n64)*n1*n4*n54/n59 + n1*n49)*(pow(alpha, NP0*n0 - n4*n64)*n22*n4*n54/n59 + n22*n49)/n85 + n31*n52*(pow(alpha, NP0*n0 - n4*n64)*n4*n44*n54/n59 - pow(alpha, n0*n11 - n4*n64)*n16*n17*n36/(n35*n60) + pow(alpha, n0*n11 - n4*n64)*n36*n4*n44/(n35*n60) + n16*n17*n26)/n80 + n31*n53*(pow(alpha, NP0*n0 - n64*n7)*n1*n54*n7/n59 + n1*n47)*(pow(alpha, NP0*n0 - n64*n7)*n22*n54*n7/n59 + n22*n47)/n88 + n31*n53*(pow(alpha, NP0*n0 - n64*n7)*n44*n54*n7/n59 - pow(alpha, n0*n11 - n64*n7)*n16*n20*n36/(n35*n60) + pow(alpha, n0*n11 - n64*n7)*n36*n44*n7/(n35*n60) + n56)/n83 + n31*n97*(pow(alpha, NP0*n0 - n6*n64)*n44*n54*n6/n59 - pow(alpha, n0*n11 - n6*n64)*n16*n19*n36/(n35*n60) + pow(alpha, n0*n11 - n6*n64)*n36*n44*n6/(n35*n60) + n58))) - n127*n31*n93 - n153, 2) + (-pow(NP0, 2)*n157 + NP0*(n14*(n1*n31*n45*n89 + n1*n31*n47*n90 + n143 + n31*n40*xF[2]*(pow(alpha, NP0*n0 - n5*n64)*n1*n5*n54/n59 + n1*n45)/n81 + n31*n46*n94 + n31*n52*(pow(alpha, NP0*n0 - n4*n64)*n1*n4*n54/n59 + n1*n49)/n80 + n31*n53*(pow(alpha, NP0*n0 - n64*n7)*n1*n54*n7/n59 + n1*n47)/n83 + n31*n97*(pow(alpha, NP0*n0 - n6*n64)*n1*n54*n6/n59 + n1*n46) + n31*n98) + n143) + n31*n95*xF[0] + xTj*(n13*n31*n95 + n31*n40*n89 + n31*n41*n91 + n31*n52/n75 + n31*n53/n78))*(2.0*n103 - 4.0*n116*n31*n96 + 4.0*n124*n31*n48*n93 - 2.0*n126*n31*n32*n93 - 2.0*n156);
20882  NP_sqrt_base = fabs(NP_sqrt_base);
20883  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
20884  NT1 = n43*(n61 - log(-pow(alpha, NP1*n0)*n54 + 1));
20885  g0 = MW[1] - Mstar;
20886  g1 = MW[0] - Mstar;
20887  g2 = NT1 + 1;
20888  g3 = xPj - xTj;
20889  g4 = MW[2] - Mstar;
20890  g5 = MW[3] - Mstar;
20891  g6 = MW[4] - Mstar;
20892  g7 = xF[0] - xTj;
20893  g8 = xF[0] - xPj;
20894  g9 = -xTj;
20895  g10 = 1.0*xF[4];
20896  g11 = 1.0*xF[3];
20897  g12 = 1.0*xF[0];
20898  g13 = xPj/xF[1];
20899  g14 = pow(alpha, -g1);
20900  g15 = pow(alpha, -g0);
20901  g16 = pow(alpha, -g4);
20902  g17 = pow(alpha, -g5);
20903  g18 = pow(alpha, -g6);
20904  g19 = log(xF[0]/xF[1]);
20905  g20 = -g2;
20906  g21 = pow(alpha, NP1*g0);
20907  g22 = pow(alpha, NP1*g1);
20908  g23 = log(g14);
20909  g24 = pow(alpha, NP1*g4);
20910  g25 = pow(alpha, NP1*g5);
20911  g26 = pow(alpha, NP1*g6);
20912  g27 = -g19;
20913  g28 = g3/g7;
20914  g29 = g7/g3;
20915  g30 = -g21 + 1;
20916  g31 = -g21 + 1;
20917  g32 = -g22 + 1;
20918  g33 = -g24 + 1;
20919  g34 = -g25 + 1;
20920  g35 = -g26 + 1;
20921  g36 = -g22;
20922  g37 = -g24;
20923  g38 = -g25;
20924  g39 = -g26;
20925  g40 = -1.0*g19;
20926  g41 = -g3/g8;
20927  g42 = g40*xF[0];
20928  g43 = g40*xF[1];
20929  g44 = g40*xF[2];
20930  g45 = g40*xF[3];
20931  g46 = g40*xF[4];
20932  g47 = pow(alpha, g0*g20) - 1;
20933  g48 = pow(alpha, g0*g20) - 1;
20934  g49 = pow(alpha, g1*g20) - 1;
20935  g50 = pow(alpha, g20*g4) - 1;
20936  g51 = pow(alpha, g20*g5) - 1;
20937  g52 = pow(alpha, g20*g6) - 1;
20938  g53 = -pow(alpha, g1*g20);
20939  g54 = -pow(alpha, g20*g4);
20940  g55 = -pow(alpha, g20*g5);
20941  g56 = -pow(alpha, g20*g6);
20942  g57 = g8*g9/(g3*xF[1]);
20943  g58 = g31 + g48;
20944  g59 = -g22 - g53;
20945  g60 = -g24 - g54;
20946  g61 = -g25 - g55;
20947  g62 = -g26 - g56;
20948  g63 = pow(alpha, g1*g20) + g36;
20949  g64 = g31 + g48;
20950  g65 = pow(alpha, g20*g4) + g37;
20951  g66 = pow(alpha, g20*g5) + g38;
20952  g67 = pow(alpha, g20*g6) + g39;
20953  g68 = xF[1]/g64;
20954  g69 = xF[2]/g65;
20955  g70 = xF[1]/g58;
20956  g71 = xF[3]/g61;
20957  g72 = xF[0]/g59;
20958  g73 = xF[2]/g60;
20959  g74 = xF[4]/g62;
20960  g75 = g12/g59;
20961  g76 = 1.0*g73;
20962  g77 = 1.0*g70;
20963  g78 = g35/g62;
20964  g79 = g32/g59;
20965  g80 = g34/g61;
20966  g81 = g30/g58;
20967  g82 = g33/g60;
20968  g83 = g32*g72;
20969  g84 = g33*g73;
20970  g85 = g30*g70;
20971  g86 = g47/g58;
20972  g87 = g50/g60;
20973  g88 = g51/g61;
20974  g89 = g49/g59;
20975  g90 = g52/g62;
20976  g91 = g47*g70;
20977  g92 = g49*g72;
20978  g93 = g50*g73;
20979  g94 = log(g57*g64/g31);
20980  g95 = log(g57*g58/g30);
20981  g96 = log(g13*g29*g64/g48);
20982  g97 = 1.0*g94;
20983  g98 = log(g13*g29*g58/g47);
20984  g99 = 1.0*g96;
20985  g100 = g42 + g43 + g44 + g45 + g46;
20986  g101 = g78*g95;
20987  g102 = g79*g95;
20988  g103 = g82*g95;
20989  g104 = g81*g95;
20990  g105 = g80*g95;
20991  g106 = g87*g98;
20992  g107 = g88*g98;
20993  g108 = g90*g98;
20994  g109 = g86*g98;
20995  g110 = g89*g98;
20996  LpF = xF[0]*(g14 + 1.0)*(g102 + g110 + g27)/(g23*(g14 - 1.0)) + xF[1]*(g15 + 1.0)*(g104 + g109 + g27)/(g23*(g15 - 1.0)) + xF[2]*(g16 + 1.0)*(g103 + g106 + g27)/(g23*(g16 - 1.0)) + xF[3]*(g17 + 1.0)*(g105 + g107 + g27)/(g23*(g17 - 1.0)) + xF[4]*(g18 + 1.0)*(g101 + g108 + g27)/(g23*(g18 - 1.0));
20997  PpF = g29;
20998  TpF = -g8/g3;
20999  SWUpF = -g10*g94*(g39 + 1)/g67 - g10*g96*(pow(alpha, g20*g6) - 1)/g67 - g100 - g11*g94*(g38 + 1)/g66 - g11*g96*(pow(alpha, g20*g5) - 1)/g66 - g12*g94*(g36 + 1)/g63 - g12*g96*(pow(alpha, g1*g20) - 1)/g63 - g31*g68*g97 - g48*g68*g99 - g69*g97*(g37 + 1) - g69*g99*(pow(alpha, g20*g4) - 1);
21000  SWUpP = -g28*(g10*g101 + g10*g108 + g100 + g105*g11 + g107*g11 + g30*g77*g95 + g32*g75*g95 + g33*g76*g95 + g47*g77*g98 + g49*g75*g98 + g50*g76*g98);
21001  xP[0] = g28*g92;
21002  xP[1] = g28*g91;
21003  xP[2] = g28*g93;
21004  xP[3] = g28*g51*g71;
21005  xP[4] = g28*g52*g74;
21006  xT[0] = g41*g83;
21007  xT[1] = g41*g85;
21008  xT[2] = g41*g84;
21009  xT[3] = g34*g41*g71;
21010  xT[4] = g35*g41*g74;
21011  break;
21012  case 6:
21013  n0 = MW[0] - Mstar;
21014  n1 = log(alpha);
21015  n2 = xPj - xTj;
21016  n3 = xF[0] - xPj;
21017  n4 = MW[1] - Mstar;
21018  n5 = MW[2] - Mstar;
21019  n6 = MW[3] - Mstar;
21020  n7 = MW[4] - Mstar;
21021  n8 = MW[5] - Mstar;
21022  n9 = log(xTj);
21023  n10 = xF[0]*xPj;
21024  n11 = -Mstar;
21025  n12 = -xF[0];
21026  n13 = -xTj;
21027  n14 = -xPj;
21028  n15 = 2*NP0;
21029  n16 = 0.5*xF[0];
21030  n17 = pow(n0, 2);
21031  n18 = pow(n1, 2);
21032  n19 = pow(n4, 2);
21033  n20 = pow(n5, 2);
21034  n21 = pow(n6, 2);
21035  n22 = pow(n7, 2);
21036  n23 = pow(n8, 2);
21037  n24 = Mstar*n1;
21038  n25 = 2*n1;
21039  n26 = -1.0*xF[0];
21040  n27 = pow(alpha, NP0*n0);
21041  n28 = n10 + n12*xTj;
21042  n29 = n10 + n13*xPj;
21043  n30 = pow(alpha, NP0*n4);
21044  n31 = pow(alpha, NP0*n5);
21045  n32 = pow(alpha, NP0*n6);
21046  n33 = pow(alpha, NP0*n7);
21047  n34 = pow(alpha, NP0*n8);
21048  n35 = -MW[0]*n1;
21049  n36 = n2/n3;
21050  n37 = -n27 + 1;
21051  n38 = -n30 + 1;
21052  n39 = pow(alpha, n0*n15);
21053  n40 = pow(n28, 2);
21054  n41 = pow(n29, 2);
21055  n42 = -n31 + 1;
21056  n43 = -n32 + 1;
21057  n44 = -n33 + 1;
21058  n45 = -n34 + 1;
21059  n46 = -n27;
21060  n47 = 1/(n0*n1);
21061  n48 = n0*n18;
21062  n49 = n45*xF[5];
21063  n50 = n32*n6;
21064  n51 = n30*n4;
21065  n52 = n33*n7;
21066  n53 = n0*n27;
21067  n54 = n34*n8;
21068  n55 = n42*xF[2];
21069  n56 = n31*n5;
21070  n57 = n17*n18;
21071  n58 = log((-1.0 + xPj/xF[0])/n2);
21072  n59 = n56*xF[2];
21073  n60 = -n44*xF[4];
21074  n61 = -n38*xF[1];
21075  n62 = n29/n28;
21076  n63 = n18*n20*n31;
21077  n64 = n18*n22*n33;
21078  n65 = n27*n57;
21079  n66 = n18*n21*n32;
21080  n67 = n18*n19*n30;
21081  n68 = -n36*n49;
21082  n69 = n46*n62 + 1;
21083  n70 = pow(n69, 2);
21084  n71 = n24 + n35 + n58 + n9;
21085  n72 = n27*n62/n69;
21086  n73 = n18*n39*n41/(n40*n70);
21087  n74 = n47*(n71 - log(n69)) + 1;
21088  n75 = pow(alpha, n0*n74);
21089  n76 = pow(alpha, n4*n74);
21090  n77 = pow(alpha, n5*n74);
21091  n78 = pow(alpha, n6*n74);
21092  n79 = pow(alpha, n7*n74);
21093  n80 = pow(alpha, n74*n8);
21094  n81 = n4/n76;
21095  n82 = n7/n79;
21096  n83 = n6/n78;
21097  n84 = n8/n80;
21098  n85 = n5/n77;
21099  n86 = n37 - 1 + 1.0/n75;
21100  n87 = n38 - 1 + 1.0/n76;
21101  n88 = n42 - 1 + 1.0/n77;
21102  n89 = n43 - 1 + 1.0/n78;
21103  n90 = n44 - 1 + 1.0/n79;
21104  n91 = n45 - 1 + 1.0/n80;
21105  n92 = pow(n86, 2);
21106  n93 = pow(n87, 2);
21107  n94 = pow(n88, 2);
21108  n95 = pow(n89, 2);
21109  n96 = pow(n90, 2);
21110  n97 = pow(n91, 2);
21111  n98 = pow(n86, 3);
21112  n99 = pow(n87, 3);
21113  n100 = pow(n88, 3);
21114  n101 = pow(n89, 3);
21115  n102 = pow(n90, 3);
21116  n103 = pow(n91, 3);
21117  n104 = xF[1]/n87;
21118  n105 = xF[4]/n90;
21119  n106 = xF[2]/n88;
21120  n107 = xF[3]/n89;
21121  n108 = n1/n88;
21122  n109 = n1/n86;
21123  n110 = n1*n107;
21124  n111 = n37/n98;
21125  n112 = -n43*xF[3]/n95;
21126  n113 = n1*n54*xF[5]/n91;
21127  n114 = n65/n86;
21128  n115 = n18*n23*n34*xF[5]/n91;
21129  n116 = n109*n12*n36*n53;
21130  n117 = n114*n36*xF[0];
21131  n118 = n104*n36*n67;
21132  n119 = n106*n36*n63;
21133  n120 = n107*n36*n66;
21134  n121 = n105*n36*n64;
21135  n122 = n115*n36;
21136  n123 = n114*n16*n36;
21137  n124 = n62/(n69*n75) + 1;
21138  n125 = n1*n53*n62/(n69*n75) + n1*n53;
21139  n126 = n1*n51 + n1*n72*n81;
21140  n127 = n1*n56 + n1*n72*n85;
21141  n128 = n1*n50 + n1*n72*n83;
21142  n129 = n1*n52 + n1*n72*n82;
21143  n130 = n1*n54 + n1*n72*n84;
21144  n131 = pow(n125, 2);
21145  n132 = pow(n126, 2);
21146  n133 = pow(n127, 2);
21147  n134 = pow(n128, 2);
21148  n135 = pow(n129, 2);
21149  n136 = pow(n130, 2);
21150  n137 = n128*xF[3];
21151  n138 = n25*n53*n62/(n69*n75) + n25*n53;
21152  n139 = 2*n131;
21153  n140 = n62*n65/(n69*n75) + n65;
21154  n141 = n129*n60;
21155  n142 = n124*n37*xF[0]/n92;
21156  n143 = n130/n97;
21157  n144 = n127/n94;
21158  n145 = n126/n93;
21159  n146 = n129*xF[4]/n96;
21160  n147 = n125*xF[0]/n92;
21161  n148 = 2*n136/n103;
21162  n149 = 2*n135/n102;
21163  n150 = 2*n132/n99;
21164  n151 = -2*n133/n100;
21165  n152 = -2*n134*n43*xF[3]/n101;
21166  n153 = n140*n37/n92;
21167  n154 = n147*n36*n37;
21168  n155 = n25*n36*n53*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92;
21169  n156 = n25*n36*n51*xF[1]*(pow(alpha, NP0*n0 - n4*n74)*n1*n4*n62/n69 + n1*n51)/n93;
21170  n157 = n25*n36*n59*(pow(alpha, NP0*n0 - n5*n74)*n1*n5*n62/n69 + n1*n56)/n94;
21171  n158 = n25*n36*n50*xF[3]*(pow(alpha, NP0*n0 - n6*n74)*n1*n6*n62/n69 + n1*n50)/n95;
21172  n159 = n25*n36*n52*xF[4]*(pow(alpha, NP0*n0 - n7*n74)*n1*n62*n7/n69 + n1*n52)/n96;
21173  n160 = n25*n36*n54*xF[5]*(pow(alpha, NP0*n0 - n74*n8)*n1*n62*n8/n69 + n1*n54)/n97;
21174  n161 = 1.0*n1*n147*n36*n53;
21175  n162 = n12*n36*n37*(pow(alpha, NP0*n0 - n0*n74)*n57*n62/n69 + n65)/n92;
21176  n163 = -0.5*n153*n36*xF[0];
21177  n164 = n125*n138;
21178  n165 = -n19*n73/n76 + n39*n41*n48*n81/(n40*n70) + n48*n72*n81 + n67;
21179  n166 = -n20*n73/n77 + n39*n41*n48*n85/(n40*n70) + n48*n72*n85 + n63;
21180  n167 = -n22*n73/n79 + n39*n41*n48*n82/(n40*n70) + n48*n72*n82 + n64;
21181  n168 = n18*n23*n34 - n23*n73/n80 + n39*n41*n48*n84/(n40*n70) + n48*n72*n84;
21182  n169 = n36*n61*(-pow(alpha, n0*n15 - n4*n74)*n18*n19*n41/(n40*n70) + pow(alpha, n0*n15 - n4*n74)*n4*n41*n48/(n40*n70) + n48*n72*n81 + n67)/n93;
21183  n170 = -n36*n55*(-pow(alpha, n0*n15 - n5*n74)*n18*n20*n41/(n40*n70) + pow(alpha, n0*n15 - n5*n74)*n41*n48*n5/(n40*n70) + n48*n72*n85 + n63)/n94;
21184  n171 = n112*n36*(-pow(alpha, n0*n15 - n6*n74)*n18*n21*n41/(n40*n70) + pow(alpha, n0*n15 - n6*n74)*n41*n48*n6/(n40*n70) + n48*n72*n83 + n66);
21185  n172 = n36*n60*(-pow(alpha, n0*n15 - n7*n74)*n18*n22*n41/(n40*n70) + pow(alpha, n0*n15 - n7*n74)*n41*n48*n7/(n40*n70) + n48*n72*n82 + n64)/n96;
21186  n173 = n68*(-pow(alpha, n0*n15 - n74*n8)*n18*n23*n41/(n40*n70) + pow(alpha, n0*n15 - n74*n8)*n41*n48*n8/(n40*n70) + n18*n23*n34 + n48*n72*n84)/n97;
21187  n174 = n123 + n161 + n163;
21188  n175 = xTj*(n1*n104*n36*n51 + n1*n105*n36*n52 + n108*n36*n59 + n109*n36*n53*xF[0] + n110*n36*n50 + n112*n128*n36 + n113*n36 + n12*n36*n37*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 + n141*n36/n96 + n143*n68 - n144*n36*n55 + n145*n36*n61);
21189  n176 = n116 + n154 + n175;
21190  n177 = n117 + n118 + n119 + n120 + n121 + n122 + n155 + n156 + n157 + n158 + n159 + n160 + n162 + n169 + n170 + n171 + n172 + n173;
21191  n178 = n111*n12*n36*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)*(pow(alpha, NP0*n0 - n0*n74)*n0*n25*n62/n69 + n25*n53) + n126*n36*n61*(n25*n51 + n25*n72*n81)/n99 + n177 + n130*n68*(n25*n54 + n25*n72*n84)/n103 + n141*n36*(n25*n52 + n25*n72*n82)/n102 - n137*n36*n43*(n25*n50 + n25*n72*n83)/n101 - n127*n36*n55*(n25*n56 + n25*n72*n85)/n100;
21192  NP_b = -n1*n142*n36*n53 - n116 - n15*(1.0*n1*n36*n53*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 + n111*n131*n26*n36 + n123 - 0.5*n36*n37*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n57*n62/n69 + n65)/n92 - 0.5*xTj*(-n111*n139*n36*xF[0] + n112*n36*(pow(alpha, NP0*n0 - n6*n74)*n48*n6*n62/n69 - pow(alpha, n0*n15 - n6*n74)*n18*n21*n41/(n40*n70) + pow(alpha, n0*n15 - n6*n74)*n41*n48*n6/(n40*n70) + n66) + n117 + n118 + n119 + n120 + n121 + n122 - n148*n36*n49 - n149*n36*n44*xF[4] - n150*n36*n38*xF[1] + n151*n36*n55 + n152*n36 + n155 + n156 + n157 + n158 + n159 + n160 + n162 - n36*n55*(pow(alpha, NP0*n0 - n5*n74)*n48*n5*n62/n69 - pow(alpha, n0*n15 - n5*n74)*n18*n20*n41/(n40*n70) + pow(alpha, n0*n15 - n5*n74)*n41*n48*n5/(n40*n70) + n63)/n94 + n36*n60*(pow(alpha, NP0*n0 - n7*n74)*n48*n62*n7/n69 - pow(alpha, n0*n15 - n7*n74)*n18*n22*n41/(n40*n70) + pow(alpha, n0*n15 - n7*n74)*n41*n48*n7/(n40*n70) + n64)/n96 + n36*n61*(pow(alpha, NP0*n0 - n4*n74)*n4*n48*n62/n69 - pow(alpha, n0*n15 - n4*n74)*n18*n19*n41/(n40*n70) + pow(alpha, n0*n15 - n4*n74)*n4*n41*n48/(n40*n70) + n67)/n93 + n68*(pow(alpha, NP0*n0 - n74*n8)*n48*n62*n8/n69 - pow(alpha, n0*n15 - n74*n8)*n18*n23*n41/(n40*n70) + pow(alpha, n0*n15 - n74*n8)*n41*n48*n8/(n40*n70) + n18*n23*n34)/n97)) - n36*xTj*(n1*n104*n51 + n1*n105*n52 + n108*n59 + n109*n53*xF[0] + n110*n50 + n112*n128 + n113 + n12*n37*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 + n141/n96 - n143*n49 - n144*n55 + n145*n61);
21193  NP_2a = -n36*(2*n111*pow(n124, 2)*n39*n57*xF[0] + n114*n26 - 2.0*n124*n39*n57*xF[0]/n92 + n142*n65 + 1.0*xTj*(n104*n67 + n105*n64 + n106*n63 + n107*n66 - n111*n139*xF[0] + n112*(-pow(alpha, n0*n15 - n6*n74)*n18*n21*n41/(n40*n70) + pow(alpha, n0*n15 - n6*n74)*n41*n48*n6/(n40*n70) + n48*n72*n83 + n66) + n114*xF[0] + n115 + n12*n37*(pow(alpha, NP0*n0 - n0*n74)*n57*n62/n69 + n65)/n92 - n148*n49 - n149*n44*xF[4] - n150*n38*xF[1] + n151*n55 + n152 + n25*n50*xF[3]*(pow(alpha, NP0*n0 - n6*n74)*n1*n6*n62/n69 + n1*n50)/n95 + n25*n51*xF[1]*(pow(alpha, NP0*n0 - n4*n74)*n1*n4*n62/n69 + n1*n51)/n93 + n25*n52*xF[4]*(pow(alpha, NP0*n0 - n7*n74)*n1*n62*n7/n69 + n1*n52)/n96 + n25*n53*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 + n25*n54*xF[5]*(pow(alpha, NP0*n0 - n74*n8)*n1*n62*n8/n69 + n1*n54)/n97 + n25*n59*(pow(alpha, NP0*n0 - n5*n74)*n1*n5*n62/n69 + n1*n56)/n94 - n49*(-pow(alpha, n0*n15 - n74*n8)*n18*n23*n41/(n40*n70) + pow(alpha, n0*n15 - n74*n8)*n41*n48*n8/(n40*n70) + n18*n23*n34 + n48*n72*n84)/n97 - n55*(-pow(alpha, n0*n15 - n5*n74)*n18*n20*n41/(n40*n70) + pow(alpha, n0*n15 - n5*n74)*n41*n48*n5/(n40*n70) + n48*n72*n85 + n63)/n94 + n60*(-pow(alpha, n0*n15 - n7*n74)*n18*n22*n41/(n40*n70) + pow(alpha, n0*n15 - n7*n74)*n41*n48*n7/(n40*n70) + n48*n72*n82 + n64)/n96 + n61*(-pow(alpha, n0*n15 - n4*n74)*n18*n19*n41/(n40*n70) + pow(alpha, n0*n15 - n4*n74)*n4*n41*n48/(n40*n70) + n48*n72*n81 + n67)/n93));
21194  NP_sqrt_base = pow(-n15*(1.0*n1*n36*n53*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 - 0.5*n111*n36*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)*(pow(alpha, NP0*n0 - n0*n74)*n0*n25*n62/n69 + n25*n53) + n123 - 0.5*n36*n37*xF[0]*(pow(alpha, NP0*n0 - n0*n74)*n57*n62/n69 + n65)/n92 - 0.5*xTj*(n111*n12*n36*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)*(pow(alpha, NP0*n0 - n0*n74)*n0*n25*n62/n69 + n25*n53) + n112*n36*(pow(alpha, NP0*n0 - n6*n74)*n48*n6*n62/n69 - pow(alpha, n0*n15 - n6*n74)*n18*n21*n41/(n40*n70) + pow(alpha, n0*n15 - n6*n74)*n41*n48*n6/(n40*n70) + n66) + n117 + n118 + n119 + n120 + n121 + n122 + n155 + n156 + n157 + n158 + n159 + n160 + n162 - n36*n55*(pow(alpha, NP0*n0 - n5*n74)*n48*n5*n62/n69 - pow(alpha, n0*n15 - n5*n74)*n18*n20*n41/(n40*n70) + pow(alpha, n0*n15 - n5*n74)*n41*n48*n5/(n40*n70) + n63)/n94 + n36*n60*(pow(alpha, NP0*n0 - n7*n74)*n48*n62*n7/n69 - pow(alpha, n0*n15 - n7*n74)*n18*n22*n41/(n40*n70) + pow(alpha, n0*n15 - n7*n74)*n41*n48*n7/(n40*n70) + n64)/n96 + n36*n61*(pow(alpha, NP0*n0 - n4*n74)*n1*n4*n62/n69 + n1*n51)*(pow(alpha, NP0*n0 - n4*n74)*n25*n4*n62/n69 + n25*n51)/n99 + n36*n61*(pow(alpha, NP0*n0 - n4*n74)*n4*n48*n62/n69 - pow(alpha, n0*n15 - n4*n74)*n18*n19*n41/(n40*n70) + pow(alpha, n0*n15 - n4*n74)*n4*n41*n48/(n40*n70) + n67)/n93 + n68*(pow(alpha, NP0*n0 - n74*n8)*n48*n62*n8/n69 - pow(alpha, n0*n15 - n74*n8)*n18*n23*n41/(n40*n70) + pow(alpha, n0*n15 - n74*n8)*n41*n48*n8/(n40*n70) + n18*n23*n34)/n97 + n68*(pow(alpha, NP0*n0 - n74*n8)*n1*n62*n8/n69 + n1*n54)*(pow(alpha, NP0*n0 - n74*n8)*n25*n62*n8/n69 + n25*n54)/n103 + n36*n60*(pow(alpha, NP0*n0 - n7*n74)*n1*n62*n7/n69 + n1*n52)*(pow(alpha, NP0*n0 - n7*n74)*n25*n62*n7/n69 + n25*n52)/n102 - n36*n43*xF[3]*(pow(alpha, NP0*n0 - n6*n74)*n1*n6*n62/n69 + n1*n50)*(pow(alpha, NP0*n0 - n6*n74)*n25*n6*n62/n69 + n25*n50)/n101 - n36*n55*(pow(alpha, NP0*n0 - n5*n74)*n1*n5*n62/n69 + n1*n56)*(pow(alpha, NP0*n0 - n5*n74)*n25*n5*n62/n69 + n25*n56)/n100)) - n176, 2) + (-pow(NP0, 2)*(-n1*n26*n36*n53*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)/n92 - n111*n16*n36*(pow(alpha, NP0*n0 - n0*n74)*n0*n1*n62/n69 + n1*n53)*(pow(alpha, NP0*n0 - n0*n74)*n0*n25*n62/n69 + n25*n53) + 0.5*n117 - n16*n36*n37*(pow(alpha, NP0*n0 - n0*n74)*n57*n62/n69 + n65)/n92 - 0.5*n178*xTj) - NP0*n176 - n12*n36*n37/(n37 - 1 + pow(alpha, -n0*(n47*(n71 - log(n29*n46/(n10 + n13*xF[0]) + 1)) + 1))) - n13*(-n36*n37*xF[0]/(n37 - 1 + pow(alpha, -n0*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1))) - n36*n38*xF[1]/(n38 - 1 + pow(alpha, -n4*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1))) - n36*n43*xF[3]/(n43 - 1 + pow(alpha, -n6*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1))) - n36*n44*xF[4]/(n44 - 1 + pow(alpha, -n7*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1))) - n36*n49/(n45 - 1 + pow(alpha, -n8*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1))) - n36*n55/(n42 - 1 + pow(alpha, -n5*(n47*(n71 - log(1 + n46*(n10 + n14*xTj)/n28)) + 1)))))*(4.0*n1*n147*n36*n53 - 4.0*n111*n131*n36*xF[0] + 2.0*n117 - 2.0*n153*n36*xF[0] - 2.0*n178*xTj);
21195  NP_sqrt_base = fabs(NP_sqrt_base);
21196  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
21197  NT1 = n47*(n71 - log(-pow(alpha, NP1*n0)*n62 + 1));
21198  g0 = MW[1] - Mstar;
21199  g1 = MW[0] - Mstar;
21200  g2 = NT1 + 1;
21201  g3 = xPj - xTj;
21202  g4 = MW[2] - Mstar;
21203  g5 = MW[3] - Mstar;
21204  g6 = MW[4] - Mstar;
21205  g7 = MW[5] - Mstar;
21206  g8 = xF[0] - xTj;
21207  g9 = xF[0] - xPj;
21208  g10 = -xTj;
21209  g11 = xPj/xF[1];
21210  g12 = pow(alpha, -g1);
21211  g13 = pow(alpha, -g0);
21212  g14 = pow(alpha, -g4);
21213  g15 = pow(alpha, -g5);
21214  g16 = pow(alpha, -g6);
21215  g17 = pow(alpha, -g7);
21216  g18 = log(xF[0]/xF[1]);
21217  g19 = -g2;
21218  g20 = pow(alpha, NP1*g0);
21219  g21 = pow(alpha, NP1*g1);
21220  g22 = log(g12);
21221  g23 = pow(alpha, NP1*g4);
21222  g24 = pow(alpha, NP1*g5);
21223  g25 = pow(alpha, NP1*g6);
21224  g26 = pow(alpha, NP1*g7);
21225  g27 = -g18;
21226  g28 = g3/g8;
21227  g29 = g8/g3;
21228  g30 = -g20 + 1;
21229  g31 = -g20 + 1;
21230  g32 = -g21 + 1;
21231  g33 = -g23 + 1;
21232  g34 = -g24 + 1;
21233  g35 = -g25 + 1;
21234  g36 = -g26 + 1;
21235  g37 = -g21;
21236  g38 = -g23;
21237  g39 = -g24;
21238  g40 = -g25;
21239  g41 = -g26;
21240  g42 = -1.0*g18;
21241  g43 = -g3/g9;
21242  g44 = pow(alpha, g0*g19) - 1;
21243  g45 = pow(alpha, g0*g19) - 1;
21244  g46 = pow(alpha, g1*g19) - 1;
21245  g47 = pow(alpha, g19*g4) - 1;
21246  g48 = pow(alpha, g19*g5) - 1;
21247  g49 = pow(alpha, g19*g6) - 1;
21248  g50 = pow(alpha, g19*g7) - 1;
21249  g51 = -pow(alpha, g1*g19);
21250  g52 = -pow(alpha, g19*g4);
21251  g53 = -pow(alpha, g19*g5);
21252  g54 = -pow(alpha, g19*g6);
21253  g55 = -pow(alpha, g19*g7);
21254  g56 = g10*g9/(g3*xF[1]);
21255  g57 = g31 + g45;
21256  g58 = -g21 - g51;
21257  g59 = -g23 - g52;
21258  g60 = -g24 - g53;
21259  g61 = -g25 - g54;
21260  g62 = -g26 - g55;
21261  g63 = pow(alpha, g1*g19) + g37;
21262  g64 = g31 + g45;
21263  g65 = pow(alpha, g19*g4) + g38;
21264  g66 = pow(alpha, g19*g5) + g39;
21265  g67 = pow(alpha, g19*g6) + g40;
21266  g68 = pow(alpha, g19*g7) + g41;
21267  g69 = xF[5]/g68;
21268  g70 = xF[4]/g67;
21269  g71 = xF[3]/g66;
21270  g72 = xF[1]/g64;
21271  g73 = xF[2]/g65;
21272  g74 = xF[0]/g63;
21273  g75 = xF[1]/g57;
21274  g76 = xF[3]/g60;
21275  g77 = xF[0]/g58;
21276  g78 = xF[4]/g61;
21277  g79 = xF[5]/g62;
21278  g80 = xF[2]/g59;
21279  g81 = g35/g61;
21280  g82 = g32/g58;
21281  g83 = g34/g60;
21282  g84 = g36/g62;
21283  g85 = g30/g57;
21284  g86 = g33/g59;
21285  g87 = g44/g57;
21286  g88 = g47/g59;
21287  g89 = g48/g60;
21288  g90 = g50/g62;
21289  g91 = g46/g58;
21290  g92 = g49/g61;
21291  g93 = log(g56*g64/g31);
21292  g94 = log(g56*g57/g30);
21293  g95 = log(g11*g29*g64/g45);
21294  g96 = 1.0*g93;
21295  g97 = log(g11*g29*g57/g44);
21296  g98 = 1.0*g95;
21297  g99 = -g31*g72*g96 - g42*xF[0] - g42*xF[1] - g42*xF[2] - g42*xF[3] - g42*xF[4] - g42*xF[5] - g45*g72*g98 - g69*g96*(g41 + 1) - g69*g98*(pow(alpha, g19*g7) - 1) - g70*g96*(g40 + 1) - g70*g98*(pow(alpha, g19*g6) - 1) - g71*g96*(g39 + 1) - g71*g98*(pow(alpha, g19*g5) - 1) - g73*g96*(g38 + 1) - g73*g98*(pow(alpha, g19*g4) - 1) - g74*g96*(g37 + 1) - g74*g98*(pow(alpha, g1*g19) - 1);
21298  LpF = xF[0]*(g12 + 1.0)*(g27 + g82*g94 + g91*g97)/(g22*(g12 - 1.0)) + xF[1]*(g13 + 1.0)*(g27 + g85*g94 + g87*g97)/(g22*(g13 - 1.0)) + xF[2]*(g14 + 1.0)*(g27 + g86*g94 + g88*g97)/(g22*(g14 - 1.0)) + xF[3]*(g15 + 1.0)*(g27 + g83*g94 + g89*g97)/(g22*(g15 - 1.0)) + xF[4]*(g16 + 1.0)*(g27 + g81*g94 + g92*g97)/(g22*(g16 - 1.0)) + xF[5]*(g17 + 1.0)*(g27 + g84*g94 + g90*g97)/(g22*(g17 - 1.0));
21299  PpF = g29;
21300  TpF = -g9/g3;
21301  SWUpF = g99;
21302  SWUpP = g28*g99;
21303  xP[0] = g28*g46*g77;
21304  xP[1] = g28*g44*g75;
21305  xP[2] = g28*g47*g80;
21306  xP[3] = g28*g48*g76;
21307  xP[4] = g28*g49*g78;
21308  xP[5] = g28*g50*g79;
21309  xT[0] = g32*g43*g77;
21310  xT[1] = g30*g43*g75;
21311  xT[2] = g33*g43*g80;
21312  xT[3] = g34*g43*g76;
21313  xT[4] = g35*g43*g78;
21314  xT[5] = g36*g43*g79;
21315  break;
21316  case 7:
21317  n0 = MW[0] - Mstar;
21318  n1 = log(alpha);
21319  n2 = xPj - xTj;
21320  n3 = xF[0] - xPj;
21321  n4 = MW[1] - Mstar;
21322  n5 = MW[2] - Mstar;
21323  n6 = MW[3] - Mstar;
21324  n7 = MW[4] - Mstar;
21325  n8 = MW[5] - Mstar;
21326  n9 = MW[6] - Mstar;
21327  n10 = log(xTj);
21328  n11 = -2;
21329  n12 = xF[0]*xPj;
21330  n13 = -Mstar;
21331  n14 = -NP0*n11;
21332  n15 = -xPj;
21333  n16 = -xF[0];
21334  n17 = pow(n0, -n11);
21335  n18 = pow(n1, -n11);
21336  n19 = pow(n4, -n11);
21337  n20 = pow(n5, -n11);
21338  n21 = pow(n6, -n11);
21339  n22 = pow(n7, -n11);
21340  n23 = pow(n8, -n11);
21341  n24 = pow(n9, -n11);
21342  n25 = Mstar*n1;
21343  n26 = -n1*n11;
21344  n27 = -0.5*xTj;
21345  n28 = pow(alpha, NP0*n0);
21346  n29 = n12 + n16*xTj;
21347  n30 = n12 + n15*xTj;
21348  n31 = pow(alpha, NP0*n4);
21349  n32 = pow(alpha, NP0*n5);
21350  n33 = pow(alpha, NP0*n6);
21351  n34 = pow(alpha, NP0*n7);
21352  n35 = pow(alpha, NP0*n8);
21353  n36 = pow(alpha, NP0*n9);
21354  n37 = -MW[0]*n1;
21355  n38 = n2/n3;
21356  n39 = -n28 + 1;
21357  n40 = -n31 + 1;
21358  n41 = pow(alpha, n0*n14);
21359  n42 = pow(n29, -n11);
21360  n43 = pow(n30, -n11);
21361  n44 = -n32 + 1;
21362  n45 = -n33 + 1;
21363  n46 = -n34 + 1;
21364  n47 = -n35 + 1;
21365  n48 = -n36 + 1;
21366  n49 = -n48;
21367  n50 = -n44;
21368  n51 = -n28;
21369  n52 = 1/(n0*n1);
21370  n53 = n0*n18;
21371  n54 = n32*n5;
21372  n55 = n35*n8;
21373  n56 = n36*n9;
21374  n57 = n33*n6;
21375  n58 = n34*n7;
21376  n59 = n31*n4;
21377  n60 = n0*n28;
21378  n61 = n17*n18;
21379  n62 = log((-1.0 + xPj/xF[0])/n2);
21380  n63 = -n47*xF[5];
21381  n64 = -n40*xF[1];
21382  n65 = -n46*xF[4];
21383  n66 = n30/n29;
21384  n67 = n18*n20*n32;
21385  n68 = n18*n22*n34;
21386  n69 = n28*n61;
21387  n70 = n18*n21*n33;
21388  n71 = n18*n24*n36;
21389  n72 = n38*n63;
21390  n73 = n51*n66 + 1;
21391  n74 = pow(n73, -n11);
21392  n75 = n10 + n25 + n37 + n62;
21393  n76 = n28*n66/n73;
21394  n77 = n18*n41*n43/(n42*n74);
21395  n78 = n52*(n75 - log(n73)) + 1;
21396  n79 = pow(alpha, n0*n78);
21397  n80 = pow(alpha, n4*n78);
21398  n81 = pow(alpha, n5*n78);
21399  n82 = pow(alpha, n6*n78);
21400  n83 = pow(alpha, n7*n78);
21401  n84 = pow(alpha, n78*n8);
21402  n85 = pow(alpha, n78*n9);
21403  n86 = n4/n80;
21404  n87 = n7/n83;
21405  n88 = n6/n82;
21406  n89 = n9/n85;
21407  n90 = n8/n84;
21408  n91 = n5/n81;
21409  n92 = n39 - 1 + 1.0/n79;
21410  n93 = n40 - 1 + 1.0/n80;
21411  n94 = n44 - 1 + 1.0/n81;
21412  n95 = n45 - 1 + 1.0/n82;
21413  n96 = n46 - 1 + 1.0/n83;
21414  n97 = n47 - 1 + 1.0/n84;
21415  n98 = n48 - 1 + 1.0/n85;
21416  n99 = pow(n92, -n11);
21417  n100 = pow(n93, -n11);
21418  n101 = pow(n94, -n11);
21419  n102 = pow(n95, -n11);
21420  n103 = pow(n96, -n11);
21421  n104 = pow(n97, -n11);
21422  n105 = pow(n98, -n11);
21423  n106 = pow(n92, 3);
21424  n107 = pow(n93, 3);
21425  n108 = pow(n94, 3);
21426  n109 = pow(n95, 3);
21427  n110 = pow(n96, 3);
21428  n111 = pow(n97, 3);
21429  n112 = pow(n98, 3);
21430  n113 = xF[6]/n98;
21431  n114 = xF[2]/n94;
21432  n115 = xF[4]/n96;
21433  n116 = xF[3]/n95;
21434  n117 = n1/n92;
21435  n118 = xF[6]/n112;
21436  n119 = n1*xF[5]/n97;
21437  n120 = n1*xF[1]/n93;
21438  n121 = n1*n116;
21439  n122 = n39/n92;
21440  n123 = n39*xF[0]/n106;
21441  n124 = n45*xF[3]/n109;
21442  n125 = -n45*xF[3]/n102;
21443  n126 = n69*xF[0]/n92;
21444  n127 = n18*n19*n31*xF[1]/n93;
21445  n128 = n18*n23*n35*xF[5]/n97;
21446  n129 = n117*n38*n60*xF[0];
21447  n130 = n117*n16*n38*n60;
21448  n131 = n126*n38;
21449  n132 = n127*n38;
21450  n133 = n114*n38*n67;
21451  n134 = n116*n38*n70;
21452  n135 = n115*n38*n68;
21453  n136 = n128*n38;
21454  n137 = n113*n38*n71;
21455  n138 = 0.5*n131;
21456  n139 = n66/(n73*n79) + 1;
21457  n140 = n1*n60*n66/(n73*n79) + n1*n60;
21458  n141 = n1*n59 + n1*n76*n86;
21459  n142 = n1*n54 + n1*n76*n91;
21460  n143 = n1*n57 + n1*n76*n88;
21461  n144 = n1*n58 + n1*n76*n87;
21462  n145 = n1*n55 + n1*n76*n90;
21463  n146 = n1*n56 + n1*n76*n89;
21464  n147 = pow(n140, -n11);
21465  n148 = pow(n141, -n11);
21466  n149 = pow(n142, -n11);
21467  n150 = pow(n143, -n11);
21468  n151 = pow(n144, -n11);
21469  n152 = pow(n145, -n11);
21470  n153 = pow(n146, -n11);
21471  n154 = n142*xF[2];
21472  n155 = n26*n60*n66/(n73*n79) + n26*n60;
21473  n156 = n66*n69/(n73*n79) + n69;
21474  n157 = n153*n48;
21475  n158 = n144*n65;
21476  n159 = n139*n39*xF[0]/n99;
21477  n160 = n145/n104;
21478  n161 = n141/n100;
21479  n162 = n140/n99;
21480  n163 = n146*xF[6]/n105;
21481  n164 = n162*xF[0];
21482  n165 = n149*n44*xF[2]/n108;
21483  n166 = n156*n39/n99;
21484  n167 = n16*n38*n39*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99;
21485  n168 = n1*n11*n16*n38*n60*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99;
21486  n169 = n26*n38*n59*xF[1]*(pow(alpha, NP0*n0 - n4*n78)*n1*n4*n66/n73 + n1*n59)/n100;
21487  n170 = n26*n38*n54*xF[2]*(pow(alpha, NP0*n0 - n5*n78)*n1*n5*n66/n73 + n1*n54)/n101;
21488  n171 = n26*n38*n57*xF[3]*(pow(alpha, NP0*n0 - n6*n78)*n1*n6*n66/n73 + n1*n57)/n102;
21489  n172 = n26*n38*n58*xF[4]*(pow(alpha, NP0*n0 - n7*n78)*n1*n66*n7/n73 + n1*n58)/n103;
21490  n173 = n26*n38*n55*xF[5]*(pow(alpha, NP0*n0 - n78*n8)*n1*n66*n8/n73 + n1*n55)/n104;
21491  n174 = n26*n38*n56*xF[6]*(pow(alpha, NP0*n0 - n78*n9)*n1*n66*n9/n73 + n1*n56)/n105;
21492  n175 = 1.0*n1*n164*n38*n60;
21493  n176 = n16*n38*n39*(pow(alpha, NP0*n0 - n0*n78)*n61*n66/n73 + n69)/n99;
21494  n177 = -0.5*n166*n38*xF[0];
21495  n178 = n129 + n167;
21496  n179 = n18*n19*n31 - n19*n77/n80 + n41*n43*n53*n86/(n42*n74) + n53*n76*n86;
21497  n180 = -n20*n77/n81 + n41*n43*n53*n91/(n42*n74) + n53*n76*n91 + n67;
21498  n181 = -n22*n77/n83 + n41*n43*n53*n87/(n42*n74) + n53*n76*n87 + n68;
21499  n182 = n18*n23*n35 - n23*n77/n84 + n41*n43*n53*n90/(n42*n74) + n53*n76*n90;
21500  n183 = -n24*n77/n85 + n41*n43*n53*n89/(n42*n74) + n53*n76*n89 + n71;
21501  n184 = n38*n64*(-pow(alpha, n0*n14 - n4*n78)*n18*n19*n43/(n42*n74) + pow(alpha, n0*n14 - n4*n78)*n4*n43*n53/(n42*n74) + n18*n19*n31 + n53*n76*n86)/n100;
21502  n185 = n38*n50*xF[2]*(-pow(alpha, n0*n14 - n5*n78)*n18*n20*n43/(n42*n74) + pow(alpha, n0*n14 - n5*n78)*n43*n5*n53/(n42*n74) + n53*n76*n91 + n67)/n101;
21503  n186 = n125*n38*(-pow(alpha, n0*n14 - n6*n78)*n18*n21*n43/(n42*n74) + pow(alpha, n0*n14 - n6*n78)*n43*n53*n6/(n42*n74) + n53*n76*n88 + n70);
21504  n187 = n38*n65*(-pow(alpha, n0*n14 - n7*n78)*n18*n22*n43/(n42*n74) + pow(alpha, n0*n14 - n7*n78)*n43*n53*n7/(n42*n74) + n53*n76*n87 + n68)/n103;
21505  n188 = n72*(-pow(alpha, n0*n14 - n78*n8)*n18*n23*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n8)*n43*n53*n8/(n42*n74) + n18*n23*n35 + n53*n76*n90)/n104;
21506  n189 = n38*n49*xF[6]*(-pow(alpha, n0*n14 - n78*n9)*n18*n24*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n9)*n43*n53*n9/(n42*n74) + n53*n76*n89 + n71)/n105;
21507  n190 = n138 + n175 + n177;
21508  n191 = n1*n113*n38*n56 + n1*n114*n38*n54 + n1*n115*n38*n58 + n119*n38*n55 + n120*n38*n59 + n121*n38*n57 + n125*n143*n38 + n160*n72 + n161*n38*n64 + n163*n38*n49 + n178 + n158*n38/n103 + n154*n38*n50/n101;
21509  n192 = n191*xTj;
21510  n193 = n131 + n132 + n133 + n134 + n135 + n136 + n137 + n168 + n169 + n170 + n171 + n172 + n173 + n174 + n176 + n184 + n185 + n186 + n187 + n188 + n189;
21511  n194 = n118*n146*n38*n49*(n26*n56 + n26*n76*n89) - n124*n143*n38*(n26*n57 + n26*n76*n88) + n193 + n145*n72*(n26*n55 + n26*n76*n90)/n111 + n158*n38*(n26*n58 + n26*n76*n87)/n110 + n154*n38*n50*(n26*n54 + n26*n76*n91)/n108 + n141*n38*n64*(n26*n59 + n26*n76*n86)/n107 + n16*n38*n39*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)*(pow(alpha, NP0*n0 - n0*n78)*n0*n26*n66/n73 + n26*n60)/n106;
21512  NP_b = -n1*n159*n38*n60 - n130 - n14*(1.0*n1*n38*n60*xF[0]*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99 - 1.0*n123*n147*n38 + n138 + n27*(n11*n118*n157*n38 + n11*n123*n147*n38 + n11*n124*n150*n38 + n11*n165*n38 + n11*n152*n38*n47*xF[5]/n111 + n11*n151*n38*n46*xF[4]/n110 + n125*n38*(pow(alpha, NP0*n0 - n6*n78)*n53*n6*n66/n73 - pow(alpha, n0*n14 - n6*n78)*n18*n21*n43/(n42*n74) + pow(alpha, n0*n14 - n6*n78)*n43*n53*n6/(n42*n74) + n70) + n131 + n132 + n133 + n134 + n135 + n136 + n137 + n168 + n169 + n170 + n171 + n172 + n173 + n174 + n176 + n11*n148*n38*n40*xF[1]/n107 + n38*n49*xF[6]*(pow(alpha, NP0*n0 - n78*n9)*n53*n66*n9/n73 - pow(alpha, n0*n14 - n78*n9)*n18*n24*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n9)*n43*n53*n9/(n42*n74) + n71)/n105 + n72*(pow(alpha, NP0*n0 - n78*n8)*n53*n66*n8/n73 - pow(alpha, n0*n14 - n78*n8)*n18*n23*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n8)*n43*n53*n8/(n42*n74) + n18*n23*n35)/n104 + n38*n65*(pow(alpha, NP0*n0 - n7*n78)*n53*n66*n7/n73 - pow(alpha, n0*n14 - n7*n78)*n18*n22*n43/(n42*n74) + pow(alpha, n0*n14 - n7*n78)*n43*n53*n7/(n42*n74) + n68)/n103 + n38*n50*xF[2]*(pow(alpha, NP0*n0 - n5*n78)*n5*n53*n66/n73 - pow(alpha, n0*n14 - n5*n78)*n18*n20*n43/(n42*n74) + pow(alpha, n0*n14 - n5*n78)*n43*n5*n53/(n42*n74) + n67)/n101 + n38*n64*(pow(alpha, NP0*n0 - n4*n78)*n4*n53*n66/n73 - pow(alpha, n0*n14 - n4*n78)*n18*n19*n43/(n42*n74) + pow(alpha, n0*n14 - n4*n78)*n4*n43*n53/(n42*n74) + n18*n19*n31)/n100) - 0.5*n38*n39*xF[0]*(pow(alpha, NP0*n0 - n0*n78)*n61*n66/n73 + n69)/n99) - n38*xTj*(n1*n113*n56 + n1*n114*n54 + n1*n115*n58 + n117*n60*xF[0] + n119*n55 + n120*n59 + n121*n57 + n125*n143 + n16*n39*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99 + n160*n63 + n161*n64 + n163*n49 + n158/n103 + n154*n50/n101);
21513  NP_2a = -n38*(-1.0*n126 - 2.0*n139*n41*n61*xF[0]/n99 + n159*n69 + 1.0*xTj*(n1*n11*n16*n60*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99 + n11*n118*n157 + n11*n123*n147 + n11*n124*n150 + n11*n165 + n11*n152*n47*xF[5]/n111 + n11*n151*n46*xF[4]/n110 + n113*n71 + n114*n67 + n115*n68 + n116*n70 + n125*(-pow(alpha, n0*n14 - n6*n78)*n18*n21*n43/(n42*n74) + pow(alpha, n0*n14 - n6*n78)*n43*n53*n6/(n42*n74) + n53*n76*n88 + n70) + n126 + n127 + n128 + n16*n39*(pow(alpha, NP0*n0 - n0*n78)*n61*n66/n73 + n69)/n99 + n11*n148*n40*xF[1]/n107 + n26*n56*xF[6]*(pow(alpha, NP0*n0 - n78*n9)*n1*n66*n9/n73 + n1*n56)/n105 + n49*xF[6]*(-pow(alpha, n0*n14 - n78*n9)*n18*n24*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n9)*n43*n53*n9/(n42*n74) + n53*n76*n89 + n71)/n105 + n26*n55*xF[5]*(pow(alpha, NP0*n0 - n78*n8)*n1*n66*n8/n73 + n1*n55)/n104 + n63*(-pow(alpha, n0*n14 - n78*n8)*n18*n23*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n8)*n43*n53*n8/(n42*n74) + n18*n23*n35 + n53*n76*n90)/n104 + n26*n58*xF[4]*(pow(alpha, NP0*n0 - n7*n78)*n1*n66*n7/n73 + n1*n58)/n103 + n65*(-pow(alpha, n0*n14 - n7*n78)*n18*n22*n43/(n42*n74) + pow(alpha, n0*n14 - n7*n78)*n43*n53*n7/(n42*n74) + n53*n76*n87 + n68)/n103 + n26*n57*xF[3]*(pow(alpha, NP0*n0 - n6*n78)*n1*n6*n66/n73 + n1*n57)/n102 + n26*n54*xF[2]*(pow(alpha, NP0*n0 - n5*n78)*n1*n5*n66/n73 + n1*n54)/n101 + n50*xF[2]*(-pow(alpha, n0*n14 - n5*n78)*n18*n20*n43/(n42*n74) + pow(alpha, n0*n14 - n5*n78)*n43*n5*n53/(n42*n74) + n53*n76*n91 + n67)/n101 + n26*n59*xF[1]*(pow(alpha, NP0*n0 - n4*n78)*n1*n4*n66/n73 + n1*n59)/n100 + n64*(-pow(alpha, n0*n14 - n4*n78)*n18*n19*n43/(n42*n74) + pow(alpha, n0*n14 - n4*n78)*n4*n43*n53/(n42*n74) + n18*n19*n31 + n53*n76*n86)/n100) + n11*pow(n139, -n11)*n16*n39*n41*n61/n106);
21514  NP_sqrt_base = (NP0*(n178 - n192) + n122*n38*xF[0] + xTj*(n113*n38*n49 + n114*n38*n50 - n116*n38*n45 + n122*n16*n38 + n38*n64/n93 + n38*n65/n96 + n72/n97) + pow(NP0, -n11)*(-1.0*n1*n164*n38*n60 + 0.5*n123*n140*n155*n38 - 0.5*n131 + 0.5*n166*n38*xF[0] + 0.5*n194*xTj))*(4.0*n1*n164*n38*n60 - n11*n176 + n11*n194*xTj - 4.0*n123*n147*n38 + 2.0*n131) + pow(-n130 - n14*(1.0*n1*n38*n60*xF[0]*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)/n99 - 0.5*n123*n38*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)*(pow(alpha, NP0*n0 - n0*n78)*n0*n26*n66/n73 + n26*n60) + n138 + n27*(n118*n38*n49*(pow(alpha, NP0*n0 - n78*n9)*n1*n66*n9/n73 + n1*n56)*(pow(alpha, NP0*n0 - n78*n9)*n26*n66*n9/n73 + n26*n56) - n124*n38*(pow(alpha, NP0*n0 - n6*n78)*n1*n6*n66/n73 + n1*n57)*(pow(alpha, NP0*n0 - n6*n78)*n26*n6*n66/n73 + n26*n57) + n125*n38*(pow(alpha, NP0*n0 - n6*n78)*n53*n6*n66/n73 - pow(alpha, n0*n14 - n6*n78)*n18*n21*n43/(n42*n74) + pow(alpha, n0*n14 - n6*n78)*n43*n53*n6/(n42*n74) + n70) + n131 + n132 + n133 + n134 + n135 + n136 + n137 + n168 + n169 + n170 + n171 + n172 + n173 + n174 + n176 + n72*(pow(alpha, NP0*n0 - n78*n8)*n1*n66*n8/n73 + n1*n55)*(pow(alpha, NP0*n0 - n78*n8)*n26*n66*n8/n73 + n26*n55)/n111 + n38*n65*(pow(alpha, NP0*n0 - n7*n78)*n1*n66*n7/n73 + n1*n58)*(pow(alpha, NP0*n0 - n7*n78)*n26*n66*n7/n73 + n26*n58)/n110 + n38*n50*xF[2]*(pow(alpha, NP0*n0 - n5*n78)*n1*n5*n66/n73 + n1*n54)*(pow(alpha, NP0*n0 - n5*n78)*n26*n5*n66/n73 + n26*n54)/n108 + n38*n64*(pow(alpha, NP0*n0 - n4*n78)*n1*n4*n66/n73 + n1*n59)*(pow(alpha, NP0*n0 - n4*n78)*n26*n4*n66/n73 + n26*n59)/n107 + n16*n38*n39*(pow(alpha, NP0*n0 - n0*n78)*n0*n1*n66/n73 + n1*n60)*(pow(alpha, NP0*n0 - n0*n78)*n0*n26*n66/n73 + n26*n60)/n106 + n38*n49*xF[6]*(pow(alpha, NP0*n0 - n78*n9)*n53*n66*n9/n73 - pow(alpha, n0*n14 - n78*n9)*n18*n24*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n9)*n43*n53*n9/(n42*n74) + n71)/n105 + n72*(pow(alpha, NP0*n0 - n78*n8)*n53*n66*n8/n73 - pow(alpha, n0*n14 - n78*n8)*n18*n23*n43/(n42*n74) + pow(alpha, n0*n14 - n78*n8)*n43*n53*n8/(n42*n74) + n18*n23*n35)/n104 + n38*n65*(pow(alpha, NP0*n0 - n7*n78)*n53*n66*n7/n73 - pow(alpha, n0*n14 - n7*n78)*n18*n22*n43/(n42*n74) + pow(alpha, n0*n14 - n7*n78)*n43*n53*n7/(n42*n74) + n68)/n103 + n38*n50*xF[2]*(pow(alpha, NP0*n0 - n5*n78)*n5*n53*n66/n73 - pow(alpha, n0*n14 - n5*n78)*n18*n20*n43/(n42*n74) + pow(alpha, n0*n14 - n5*n78)*n43*n5*n53/(n42*n74) + n67)/n101 + n38*n64*(pow(alpha, NP0*n0 - n4*n78)*n4*n53*n66/n73 - pow(alpha, n0*n14 - n4*n78)*n18*n19*n43/(n42*n74) + pow(alpha, n0*n14 - n4*n78)*n4*n43*n53/(n42*n74) + n18*n19*n31)/n100) - 0.5*n38*n39*xF[0]*(pow(alpha, NP0*n0 - n0*n78)*n61*n66/n73 + n69)/n99) - n164*n38*n39 - n192, -n11);
21515  NP_sqrt_base = fabs(NP_sqrt_base);
21516  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
21517  NT1 = n52*(n75 - log(-pow(alpha, NP1*n0)*n66 + 1));
21518  g0 = MW[1] - Mstar;
21519  g1 = MW[0] - Mstar;
21520  g2 = NT1 + 1;
21521  g3 = xPj - xTj;
21522  g4 = MW[2] - Mstar;
21523  g5 = MW[3] - Mstar;
21524  g6 = MW[4] - Mstar;
21525  g7 = MW[5] - Mstar;
21526  g8 = MW[6] - Mstar;
21527  g9 = xF[0] - xTj;
21528  g10 = xF[0] - xPj;
21529  g11 = -xTj;
21530  g12 = xPj/xF[1];
21531  g13 = pow(alpha, -g1);
21532  g14 = pow(alpha, -g0);
21533  g15 = pow(alpha, -g4);
21534  g16 = pow(alpha, -g5);
21535  g17 = pow(alpha, -g6);
21536  g18 = pow(alpha, -g7);
21537  g19 = pow(alpha, -g8);
21538  g20 = log(xF[0]/xF[1]);
21539  g21 = -g2;
21540  g22 = pow(alpha, NP1*g0);
21541  g23 = pow(alpha, NP1*g1);
21542  g24 = log(g13);
21543  g25 = pow(alpha, NP1*g4);
21544  g26 = pow(alpha, NP1*g5);
21545  g27 = pow(alpha, NP1*g6);
21546  g28 = pow(alpha, NP1*g7);
21547  g29 = pow(alpha, NP1*g8);
21548  g30 = -g20;
21549  g31 = g9/g3;
21550  g32 = g3/g9;
21551  g33 = -g22 + 1;
21552  g34 = -g22 + 1;
21553  g35 = -g23 + 1;
21554  g36 = -g25 + 1;
21555  g37 = -g26 + 1;
21556  g38 = -g27 + 1;
21557  g39 = -g28 + 1;
21558  g40 = -g29 + 1;
21559  g41 = -g23;
21560  g42 = -g25;
21561  g43 = -g26;
21562  g44 = -g27;
21563  g45 = -g28;
21564  g46 = -g29;
21565  g47 = -1.0*g20;
21566  g48 = -g3/g10;
21567  g49 = g10/(g3*xF[1]);
21568  g50 = pow(alpha, g0*g21) - 1;
21569  g51 = pow(alpha, g0*g21) - 1;
21570  g52 = pow(alpha, g1*g21) - 1;
21571  g53 = pow(alpha, g21*g4) - 1;
21572  g54 = pow(alpha, g21*g5) - 1;
21573  g55 = pow(alpha, g21*g6) - 1;
21574  g56 = pow(alpha, g21*g7) - 1;
21575  g57 = pow(alpha, g21*g8) - 1;
21576  g58 = -pow(alpha, g1*g21);
21577  g59 = -pow(alpha, g21*g4);
21578  g60 = -pow(alpha, g21*g5);
21579  g61 = -pow(alpha, g21*g6);
21580  g62 = -pow(alpha, g21*g7);
21581  g63 = -pow(alpha, g21*g8);
21582  g64 = g34 + g51;
21583  g65 = -g23 - g58;
21584  g66 = -g25 - g59;
21585  g67 = -g26 - g60;
21586  g68 = -g27 - g61;
21587  g69 = -g28 - g62;
21588  g70 = -g29 - g63;
21589  g71 = pow(alpha, g1*g21) + g41;
21590  g72 = g34 + g51;
21591  g73 = pow(alpha, g21*g4) + g42;
21592  g74 = pow(alpha, g21*g5) + g43;
21593  g75 = pow(alpha, g21*g6) + g44;
21594  g76 = pow(alpha, g21*g7) + g45;
21595  g77 = pow(alpha, g21*g8) + g46;
21596  g78 = xF[0]/g71;
21597  g79 = xF[1]/g72;
21598  g80 = xF[2]/g73;
21599  g81 = xF[3]/g74;
21600  g82 = xF[6]/g77;
21601  g83 = xF[4]/g75;
21602  g84 = xF[5]/g76;
21603  g85 = xF[1]/g64;
21604  g86 = xF[0]/g65;
21605  g87 = xF[4]/g68;
21606  g88 = xF[5]/g69;
21607  g89 = xF[2]/g66;
21608  g90 = xF[6]/g70;
21609  g91 = xF[3]/g67;
21610  g92 = g40/g70;
21611  g93 = g38/g68;
21612  g94 = g35/g65;
21613  g95 = g39/g69;
21614  g96 = g37/g67;
21615  g97 = g33/g64;
21616  g98 = g36/g66;
21617  g99 = g50/g64;
21618  g100 = g52/g65;
21619  g101 = g56/g69;
21620  g102 = g53/g66;
21621  g103 = g54/g67;
21622  g104 = g55/g68;
21623  g105 = g57/g70;
21624  g106 = log(g11*g49*g72/g34);
21625  g107 = log(g11*g49*g64/g33);
21626  g108 = log(g12*g31*g72/g51);
21627  g109 = 1.0*g106;
21628  g110 = log(g12*g31*g64/g50);
21629  g111 = 1.0*g108;
21630  g112 = -g109*g34*g79 - g109*g78*(g41 + 1) - g109*g80*(g42 + 1) - g109*g81*(g43 + 1) - g109*g82*(g46 + 1) - g109*g83*(g44 + 1) - g109*g84*(g45 + 1) - g111*g51*g79 - g111*g78*(pow(alpha, g1*g21) - 1) - g111*g80*(pow(alpha, g21*g4) - 1) - g111*g81*(pow(alpha, g21*g5) - 1) - g111*g82*(pow(alpha, g21*g8) - 1) - g111*g83*(pow(alpha, g21*g6) - 1) - g111*g84*(pow(alpha, g21*g7) - 1) - g47*xF[0] - g47*xF[1] - g47*xF[2] - g47*xF[3] - g47*xF[4] - g47*xF[5] - g47*xF[6];
21631  LpF = xF[0]*(g13 + 1.0)*(g100*g110 + g107*g94 + g30)/(g24*(g13 - 1.0)) + xF[1]*(g14 + 1.0)*(g107*g97 + g110*g99 + g30)/(g24*(g14 - 1.0)) + xF[2]*(g15 + 1.0)*(g102*g110 + g107*g98 + g30)/(g24*(g15 - 1.0)) + xF[3]*(g16 + 1.0)*(g103*g110 + g107*g96 + g30)/(g24*(g16 - 1.0)) + xF[4]*(g17 + 1.0)*(g104*g110 + g107*g93 + g30)/(g24*(g17 - 1.0)) + xF[5]*(g18 + 1.0)*(g101*g110 + g107*g95 + g30)/(g24*(g18 - 1.0)) + xF[6]*(g19 + 1.0)*(g105*g110 + g107*g92 + g30)/(g24*(g19 - 1.0));
21632  PpF = g31;
21633  TpF = -g10/g3;
21634  SWUpF = g112;
21635  SWUpP = g112*g32;
21636  xP[0] = g32*g52*g86;
21637  xP[1] = g32*g50*g85;
21638  xP[2] = g32*g53*g89;
21639  xP[3] = g32*g54*g91;
21640  xP[4] = g32*g55*g87;
21641  xP[5] = g32*g56*g88;
21642  xP[6] = g32*g57*g90;
21643  xT[0] = g35*g48*g86;
21644  xT[1] = g33*g48*g85;
21645  xT[2] = g36*g48*g89;
21646  xT[3] = g37*g48*g91;
21647  xT[4] = g38*g48*g87;
21648  xT[5] = g39*g48*g88;
21649  xT[6] = g40*g48*g90;
21650  break;
21651  case 8:
21652  n0 = -0.500000000000000;
21653  n1 = -2.00000000000000;
21654  n2 = MW[0] - Mstar;
21655  n3 = log(alpha);
21656  n4 = xPj - xTj;
21657  n5 = xF[0] - xPj;
21658  n6 = MW[1] - Mstar;
21659  n7 = MW[2] - Mstar;
21660  n8 = MW[3] - Mstar;
21661  n9 = MW[4] - Mstar;
21662  n10 = MW[5] - Mstar;
21663  n11 = MW[6] - Mstar;
21664  n12 = MW[7] - Mstar;
21665  n13 = log(xTj);
21666  n14 = -2;
21667  n15 = xF[0]*xPj;
21668  n16 = -Mstar;
21669  n17 = -xPj;
21670  n18 = -NP0*n1;
21671  n19 = -xTj;
21672  n20 = pow(n2, -n1);
21673  n21 = pow(n3, -n1);
21674  n22 = pow(n6, -n1);
21675  n23 = pow(n7, -n1);
21676  n24 = pow(n8, -n1);
21677  n25 = pow(n9, -n1);
21678  n26 = pow(n10, -n1);
21679  n27 = pow(n11, -n1);
21680  n28 = pow(n12, -n1);
21681  n29 = Mstar*n3;
21682  n30 = -n1*n3;
21683  n31 = pow(alpha, NP0*n2);
21684  n32 = n15 + n19*xF[0];
21685  n33 = n15 + n17*xTj;
21686  n34 = pow(alpha, NP0*n6);
21687  n35 = pow(alpha, NP0*n7);
21688  n36 = pow(alpha, NP0*n8);
21689  n37 = pow(alpha, NP0*n9);
21690  n38 = pow(alpha, NP0*n10);
21691  n39 = pow(alpha, NP0*n11);
21692  n40 = pow(alpha, NP0*n12);
21693  n41 = -MW[0]*n3;
21694  n42 = n4/n5;
21695  n43 = -n31 + 1;
21696  n44 = -n34 + 1;
21697  n45 = pow(alpha, n18*n2);
21698  n46 = pow(n33, -n1);
21699  n47 = -n35 + 1;
21700  n48 = -n36 + 1;
21701  n49 = -n37 + 1;
21702  n50 = -n38 + 1;
21703  n51 = -n39 + 1;
21704  n52 = -n40 + 1;
21705  n53 = -n31;
21706  n54 = -n34;
21707  n55 = -n35;
21708  n56 = -n36;
21709  n57 = -n37;
21710  n58 = -n38;
21711  n59 = -n39;
21712  n60 = -n40;
21713  n61 = n2*n21;
21714  n62 = 1/(n2*n3);
21715  n63 = n47*xF[2];
21716  n64 = n35*n7;
21717  n65 = n10*n38;
21718  n66 = n44*xF[1];
21719  n67 = n49*xF[4];
21720  n68 = n51*xF[6];
21721  n69 = n11*n39;
21722  n70 = n36*n8;
21723  n71 = n34*n6;
21724  n72 = n37*n9;
21725  n73 = n12*n40;
21726  n74 = n20*n21;
21727  n75 = log((-1.0 + xPj/xF[0])/n4);
21728  n76 = -n50*xF[5];
21729  n77 = n2*n3*n31;
21730  n78 = n3*n73;
21731  n79 = n33/n32;
21732  n80 = n21*n23*n35;
21733  n81 = n21*n25*n37;
21734  n82 = n21*n26*n38;
21735  n83 = n31*n74;
21736  n84 = n21*n28*n40;
21737  n85 = n21*n24*n36;
21738  n86 = n21*n27*n39;
21739  n87 = n21*n22*n34;
21740  n88 = n53*n79 + 1;
21741  n89 = n13 + n29 + n41 + n75;
21742  n90 = n31*n79/n88;
21743  n91 = n21*pow(n32, n14)*n45*n46*pow(n88, n14);
21744  n92 = n62*(n89 - log(n88)) + 1;
21745  n93 = pow(alpha, n2*n92);
21746  n94 = pow(alpha, n6*n92);
21747  n95 = pow(alpha, n7*n92);
21748  n96 = pow(alpha, n8*n92);
21749  n97 = pow(alpha, n9*n92);
21750  n98 = pow(alpha, n10*n92);
21751  n99 = pow(alpha, n11*n92);
21752  n100 = pow(alpha, n12*n92);
21753  n101 = n6/n94;
21754  n102 = n9/n97;
21755  n103 = n8/n96;
21756  n104 = n12/n100;
21757  n105 = n11/n99;
21758  n106 = n10/n98;
21759  n107 = n2/n93;
21760  n108 = n7/n95;
21761  n109 = n43 - 1 + 1.0/n93;
21762  n110 = n44 - 1 + 1.0/n94;
21763  n111 = n47 - 1 + 1.0/n95;
21764  n112 = n48 - 1 + 1.0/n96;
21765  n113 = n49 - 1 + 1.0/n97;
21766  n114 = n50 - 1 + 1.0/n98;
21767  n115 = n51 - 1 + 1.0/n99;
21768  n116 = n52 - 1 + 1.0/n100;
21769  n117 = pow(n109, 3);
21770  n118 = pow(n110, 3);
21771  n119 = pow(n111, 3);
21772  n120 = pow(n112, 3);
21773  n121 = pow(n113, 3);
21774  n122 = pow(n114, 3);
21775  n123 = pow(n115, 3);
21776  n124 = pow(n116, 3);
21777  n125 = xF[6]/n115;
21778  n126 = xF[7]/n116;
21779  n127 = xF[1]/n110;
21780  n128 = xF[2]/n111;
21781  n129 = xF[0]/n109;
21782  n130 = xF[5]/n114;
21783  n131 = xF[4]/n113;
21784  n132 = xF[3]/n112;
21785  n133 = pow(n109, n14)*xF[0];
21786  n134 = n130*n3;
21787  n135 = -pow(n110, n14);
21788  n136 = n132*n3;
21789  n137 = n43*xF[0]/n117;
21790  n138 = n52*xF[7]/n124;
21791  n139 = pow(n116, n14)*n52*xF[7];
21792  n140 = -pow(n112, n14)*n48*xF[3];
21793  n141 = n129*n83;
21794  n142 = n129*n2*n3*n42*n53;
21795  n143 = n141*n42;
21796  n144 = n127*n42*n87;
21797  n145 = n128*n42*n80;
21798  n146 = n132*n42*n85;
21799  n147 = n131*n42*n81;
21800  n148 = n130*n42*n82;
21801  n149 = n125*n42*n86;
21802  n150 = n126*n42*n84;
21803  n151 = n0*n129*n42*n53*n74;
21804  n152 = n79/(n88*n93) + 1;
21805  n153 = n152*n43;
21806  n154 = n77*n79/(n88*n93) + n77;
21807  n155 = n101*n3*n90 + n3*n71;
21808  n156 = n108*n3*n90 + n3*n64;
21809  n157 = n103*n3*n90 + n3*n70;
21810  n158 = n102*n3*n90 + n3*n72;
21811  n159 = n106*n3*n90 + n3*n65;
21812  n160 = n105*n3*n90 + n3*n69;
21813  n161 = n104*n3*n90 + n78;
21814  n162 = pow(n154, -n1);
21815  n163 = pow(n155, -n1);
21816  n164 = pow(n156, -n1);
21817  n165 = pow(n157, -n1);
21818  n166 = pow(n158, -n1);
21819  n167 = pow(n159, -n1);
21820  n168 = pow(n160, -n1);
21821  n169 = pow(n161, -n1);
21822  n170 = n157*xF[3];
21823  n171 = n107*n30*n90 + n2*n30*n31;
21824  n172 = n79*n83/(n88*n93) + n83;
21825  n173 = -n158*n67;
21826  n174 = n172*n43;
21827  n175 = pow(n114, n14)*n159;
21828  n176 = pow(n111, n14)*n156;
21829  n177 = pow(n115, n14)*n160;
21830  n178 = n166/n121;
21831  n179 = n168/n123;
21832  n180 = pow(n113, n14)*n158*xF[4];
21833  n181 = n164/n119;
21834  n182 = pow(n110, n14)*n155*xF[1];
21835  n183 = n163/n118;
21836  n184 = pow(n116, n14)*n161*xF[7];
21837  n185 = n165*n48*xF[3]/n120;
21838  n186 = n133*n154*n42*n43;
21839  n187 = n133*n2*n30*n31*n42*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77);
21840  n188 = pow(n110, n14)*n30*n42*n71*xF[1]*(pow(alpha, NP0*n2 - n6*n92)*n3*n6*n79/n88 + n3*n71);
21841  n189 = pow(n111, n14)*n30*n42*n64*xF[2]*(pow(alpha, NP0*n2 - n7*n92)*n3*n7*n79/n88 + n3*n64);
21842  n190 = pow(n112, n14)*n30*n42*n70*xF[3]*(pow(alpha, NP0*n2 - n8*n92)*n3*n79*n8/n88 + n3*n70);
21843  n191 = pow(n113, n14)*n30*n42*n72*xF[4]*(pow(alpha, NP0*n2 - n9*n92)*n3*n79*n9/n88 + n3*n72);
21844  n192 = pow(n114, n14)*n30*n42*n65*xF[5]*(pow(alpha, NP0*n2 - n10*n92)*n10*n3*n79/n88 + n3*n65);
21845  n193 = pow(n115, n14)*n30*n42*n69*xF[6]*(pow(alpha, NP0*n2 - n11*n92)*n11*n3*n79/n88 + n3*n69);
21846  n194 = pow(n116, n14)*n30*n42*n73*xF[7]*(pow(alpha, NP0*n2 - n12*n92)*n12*n3*n79/n88 + n78);
21847  n195 = 1.0*n133*n154*n42*n77;
21848  n196 = -n133*n174*n42;
21849  n197 = n0*n133*n174*n42;
21850  n198 = n154*n171;
21851  n199 = n108*pow(n32, n14)*n45*n46*n61*pow(n88, n14) + n108*n61*n90 - n23*n91/n95 + n80;
21852  n200 = n102*pow(n32, n14)*n45*n46*n61*pow(n88, n14) + n102*n61*n90 - n25*n91/n97 + n81;
21853  n201 = n106*pow(n32, n14)*n45*n46*n61*pow(n88, n14) + n106*n61*n90 - n26*n91/n98 + n82;
21854  n202 = n105*pow(n32, n14)*n45*n46*n61*pow(n88, n14) + n105*n61*n90 - n27*n91/n99 + n86;
21855  n203 = n135*n42*n66*(-pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n101*n61*n90 + n87);
21856  n204 = -pow(n111, n14)*n42*n63*(-pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n108*n61*n90 + n80);
21857  n205 = n140*n42*(-pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n103*n61*n90 + n85);
21858  n206 = -pow(n113, n14)*n42*n67*(-pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n102*n61*n90 + n81);
21859  n207 = pow(n114, n14)*n42*n76*(pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n106*n61*n90 + n82);
21860  n208 = -pow(n115, n14)*n42*n68*(pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n105*n61*n90 + n86);
21861  n209 = -n139*n42*(pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n104*n61*n90 + n84);
21862  n210 = n151 + n195 + n197;
21863  n211 = xTj*(pow(n113, n14)*n173*n42 + n125*n3*n42*n69 + n126*n42*n78 + n127*n3*n42*n71 + n128*n3*n42*n64 + n129*n42*n77 + n131*n3*n42*n72 + n134*n42*n65 + n135*n155*n42*n66 + n136*n42*n70 - n139*n161*n42 + n140*n157*n42 + n175*n42*n76 - n176*n42*n63 - n177*n42*n68 - n186);
21864  n212 = n142 + n186 + n211;
21865  n213 = n143 + n144 + n145 + n146 + n147 + n148 + n149 + n150 + n187 + n188 + n189 + n190 + n191 + n192 + n193 + n194 + n196 + n203 + n204 + n205 + n206 + n207 + n208 + n209;
21866  NP_b = -n133*n153*n42*n77 - n142 - n18*(n0*n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n0*xTj*(-pow(n111, n14)*n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n61*n7*n79/n88 - pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n80) - pow(n113, n14)*n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n61*n79*n9/n88 - pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n81) + pow(n114, n14)*n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n61*n79/n88 + pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n82) - pow(n115, n14)*n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n61*n79/n88 + pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n86) - n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n135*n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n6*n61*n79/n88 - pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n87) + n137*n14*n162*n42 + n138*n14*n169*n42 - n139*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n61*n79/n88 + pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n84) + n14*n178*n42*n67 + n14*n179*n42*n68 + n14*n181*n42*n63 + n14*n183*n42*n66 + n14*n185*n42 + n140*n42*(pow(alpha, NP0*n2 - n8*n92)*n61*n79*n8/n88 - pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n85) + n143 + n144 + n145 + n146 + n147 + n148 + n149 + n150 + n187 + n188 + n189 + n190 + n191 + n192 + n193 + n194 + n14*n167*n42*n50*xF[5]/n122) + 1.0*n133*n42*n77*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77) - 1.0*n137*n162*n42 + n151) - n42*xTj*(pow(n113, n14)*n173 + n125*n3*n69 + n126*n78 + n127*n3*n71 + n128*n3*n64 + n129*n77 + n131*n3*n72 - n133*n154*n43 + n134*n65 + n135*n155*n66 + n136*n70 - n139*n161 + n140*n157 + n175*n76 - n176*n63 - n177*n68);
21867  NP_2a = -n42*(n1*n133*n152*n45*n74 - n1*n137*pow(n152, -n1)*n45*n74 + n133*n153*n83 - 1.0*n141 + 1.0*xTj*(pow(n110, n14)*n30*n71*xF[1]*(pow(alpha, NP0*n2 - n6*n92)*n3*n6*n79/n88 + n3*n71) + pow(n111, n14)*n30*n64*xF[2]*(pow(alpha, NP0*n2 - n7*n92)*n3*n7*n79/n88 + n3*n64) - pow(n111, n14)*n63*(-pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n108*n61*n90 + n80) + pow(n112, n14)*n30*n70*xF[3]*(pow(alpha, NP0*n2 - n8*n92)*n3*n79*n8/n88 + n3*n70) + pow(n113, n14)*n30*n72*xF[4]*(pow(alpha, NP0*n2 - n9*n92)*n3*n79*n9/n88 + n3*n72) - pow(n113, n14)*n67*(-pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n102*n61*n90 + n81) + pow(n114, n14)*n30*n65*xF[5]*(pow(alpha, NP0*n2 - n10*n92)*n10*n3*n79/n88 + n3*n65) + pow(n114, n14)*n76*(pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n106*n61*n90 + n82) + pow(n115, n14)*n30*n69*xF[6]*(pow(alpha, NP0*n2 - n11*n92)*n11*n3*n79/n88 + n3*n69) - pow(n115, n14)*n68*(pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n105*n61*n90 + n86) + pow(n116, n14)*n30*n73*xF[7]*(pow(alpha, NP0*n2 - n12*n92)*n12*n3*n79/n88 + n78) + n125*n86 + n126*n84 + n127*n87 + n128*n80 + n130*n82 + n131*n81 + n132*n85 - n133*n174 + n133*n2*n30*n31*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77) + n135*n66*(-pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n101*n61*n90 + n87) + n137*n14*n162 + n138*n14*n169 - n139*(pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n104*n61*n90 + n84) + n14*n178*n67 + n14*n179*n68 + n14*n181*n63 + n14*n183*n66 + n14*n185 + n140*(-pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n103*n61*n90 + n85) + n141 + n14*n167*n50*xF[5]/n122));
21868  NP_sqrt_base = (-NP0*n212 - n19*(-n42*n43*xF[0]/(n43 - 1 + pow(alpha, -n2*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n48*xF[3]/(n48 - 1 + pow(alpha, -n8*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n50*xF[5]/(n50 - 1 + pow(alpha, -n10*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n52*xF[7]/(n52 - 1 + pow(alpha, -n12*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n63/(n47 - 1 + pow(alpha, -n7*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n66/(n44 - 1 + pow(alpha, -n6*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n67/(n49 - 1 + pow(alpha, -n9*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1))) - n42*n68/(n51 - 1 + pow(alpha, -n11*(n62*(n89 - log(n33*n53/(n15 - xF[0]*xTj) + 1)) + 1)))) + n42*n43*xF[0]/n109 - pow(NP0, -n1)*(n0*n137*n198*n42 - n0*n143 - n0*n19*(-pow(n111, n14)*n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n61*n7*n79/n88 - pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n80) - pow(n113, n14)*n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n61*n79*n9/n88 - pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n81) + pow(n114, n14)*n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n61*n79/n88 + pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n82) - pow(n115, n14)*n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n61*n79/n88 + pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n86) - n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n135*n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n6*n61*n79/n88 - pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n87) - n137*n42*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77)*(pow(alpha, NP0*n2 - n2*n92)*n2*n30*n79/n88 + n2*n30*n31) - n138*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n3*n79/n88 + n78)*(pow(alpha, NP0*n2 - n12*n92)*n12*n30*n79/n88 + n30*n73) - n139*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n61*n79/n88 + pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n84) + n140*n42*(pow(alpha, NP0*n2 - n8*n92)*n61*n79*n8/n88 - pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n85) + n143 + n144 + n145 + n146 + n147 + n148 + n149 + n150 + n187 + n188 + n189 + n190 + n191 + n192 + n193 + n194 - n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n3*n79/n88 + n3*n69)*(pow(alpha, NP0*n2 - n11*n92)*n11*n30*n79/n88 + n30*n69)/n123 + n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n3*n79/n88 + n3*n65)*(pow(alpha, NP0*n2 - n10*n92)*n10*n30*n79/n88 + n30*n65)/n122 - n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n3*n79*n9/n88 + n3*n72)*(pow(alpha, NP0*n2 - n9*n92)*n30*n79*n9/n88 + n30*n72)/n121 - n42*n48*xF[3]*(pow(alpha, NP0*n2 - n8*n92)*n3*n79*n8/n88 + n3*n70)*(pow(alpha, NP0*n2 - n8*n92)*n30*n79*n8/n88 + n30*n70)/n120 - n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n3*n7*n79/n88 + n3*n64)*(pow(alpha, NP0*n2 - n7*n92)*n30*n7*n79/n88 + n30*n64)/n119 - n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n3*n6*n79/n88 + n3*n71)*(pow(alpha, NP0*n2 - n6*n92)*n30*n6*n79/n88 + n30*n71)/n118) - n0*n196 + 1.0*n133*n154*n42*n77))*(-n1*n143 - n1*n19*(-pow(n111, n14)*n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n61*n7*n79/n88 - pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n80) - pow(n113, n14)*n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n61*n79*n9/n88 - pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n81) + pow(n114, n14)*n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n61*n79/n88 + pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n82) - pow(n115, n14)*n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n61*n79/n88 + pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n86) - n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n135*n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n6*n61*n79/n88 - pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n87) - n137*n42*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77)*(pow(alpha, NP0*n2 - n2*n92)*n2*n30*n79/n88 + n2*n30*n31) - n138*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n3*n79/n88 + n78)*(pow(alpha, NP0*n2 - n12*n92)*n12*n30*n79/n88 + n30*n73) - n139*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n61*n79/n88 + pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n84) + n140*n42*(pow(alpha, NP0*n2 - n8*n92)*n61*n79*n8/n88 - pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n85) + n143 + n144 + n145 + n146 + n147 + n148 + n149 + n150 + n187 + n188 + n189 + n190 + n191 + n192 + n193 + n194 - n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n3*n79/n88 + n3*n69)*(pow(alpha, NP0*n2 - n11*n92)*n11*n30*n79/n88 + n30*n69)/n123 + n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n3*n79/n88 + n3*n65)*(pow(alpha, NP0*n2 - n10*n92)*n10*n30*n79/n88 + n30*n65)/n122 - n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n3*n79*n9/n88 + n3*n72)*(pow(alpha, NP0*n2 - n9*n92)*n30*n79*n9/n88 + n30*n72)/n121 - n42*n48*xF[3]*(pow(alpha, NP0*n2 - n8*n92)*n3*n79*n8/n88 + n3*n70)*(pow(alpha, NP0*n2 - n8*n92)*n30*n79*n8/n88 + n30*n70)/n120 - n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n3*n7*n79/n88 + n3*n64)*(pow(alpha, NP0*n2 - n7*n92)*n30*n7*n79/n88 + n30*n64)/n119 - n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n3*n6*n79/n88 + n3*n71)*(pow(alpha, NP0*n2 - n6*n92)*n30*n6*n79/n88 + n30*n71)/n118) - n1*n196 + 4.0*n133*n154*n42*n77 - 4.0*n137*n162*n42) + pow(-n18*(n0*n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n0*n137*n42*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77)*(pow(alpha, NP0*n2 - n2*n92)*n2*n30*n79/n88 + n2*n30*n31) + n0*xTj*(-pow(n111, n14)*n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n61*n7*n79/n88 - pow(alpha, n18*n2 - n7*n92)*n21*n23*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n7*n92)*pow(n32, n14)*n46*n61*n7*pow(n88, n14) + n80) - pow(n113, n14)*n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n61*n79*n9/n88 - pow(alpha, n18*n2 - n9*n92)*n21*n25*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n9*n92)*pow(n32, n14)*n46*n61*pow(n88, n14)*n9 + n81) + pow(n114, n14)*n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n61*n79/n88 + pow(alpha, -n10*n92 + n18*n2)*n10*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n10*n92 + n18*n2)*n21*n26*pow(n32, n14)*n46*pow(n88, n14) + n82) - pow(n115, n14)*n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n61*n79/n88 + pow(alpha, -n11*n92 + n18*n2)*n11*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n11*n92 + n18*n2)*n21*n27*pow(n32, n14)*n46*pow(n88, n14) + n86) - n133*n42*n43*(pow(alpha, NP0*n2 - n2*n92)*n74*n79/n88 + n83) + n135*n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n6*n61*n79/n88 - pow(alpha, n18*n2 - n6*n92)*n21*n22*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n6*n92)*pow(n32, n14)*n46*n6*n61*pow(n88, n14) + n87) - n137*n42*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77)*(pow(alpha, NP0*n2 - n2*n92)*n2*n30*n79/n88 + n2*n30*n31) - n138*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n3*n79/n88 + n78)*(pow(alpha, NP0*n2 - n12*n92)*n12*n30*n79/n88 + n30*n73) - n139*n42*(pow(alpha, NP0*n2 - n12*n92)*n12*n61*n79/n88 + pow(alpha, -n12*n92 + n18*n2)*n12*pow(n32, n14)*n46*n61*pow(n88, n14) - pow(alpha, -n12*n92 + n18*n2)*n21*n28*pow(n32, n14)*n46*pow(n88, n14) + n84) + n140*n42*(pow(alpha, NP0*n2 - n8*n92)*n61*n79*n8/n88 - pow(alpha, n18*n2 - n8*n92)*n21*n24*pow(n32, n14)*n46*pow(n88, n14) + pow(alpha, n18*n2 - n8*n92)*pow(n32, n14)*n46*n61*n8*pow(n88, n14) + n85) + n143 + n144 + n145 + n146 + n147 + n148 + n149 + n150 + n187 + n188 + n189 + n190 + n191 + n192 + n193 + n194 - n42*n68*(pow(alpha, NP0*n2 - n11*n92)*n11*n3*n79/n88 + n3*n69)*(pow(alpha, NP0*n2 - n11*n92)*n11*n30*n79/n88 + n30*n69)/n123 + n42*n76*(pow(alpha, NP0*n2 - n10*n92)*n10*n3*n79/n88 + n3*n65)*(pow(alpha, NP0*n2 - n10*n92)*n10*n30*n79/n88 + n30*n65)/n122 - n42*n67*(pow(alpha, NP0*n2 - n9*n92)*n3*n79*n9/n88 + n3*n72)*(pow(alpha, NP0*n2 - n9*n92)*n30*n79*n9/n88 + n30*n72)/n121 - n42*n48*xF[3]*(pow(alpha, NP0*n2 - n8*n92)*n3*n79*n8/n88 + n3*n70)*(pow(alpha, NP0*n2 - n8*n92)*n30*n79*n8/n88 + n30*n70)/n120 - n42*n63*(pow(alpha, NP0*n2 - n7*n92)*n3*n7*n79/n88 + n3*n64)*(pow(alpha, NP0*n2 - n7*n92)*n30*n7*n79/n88 + n30*n64)/n119 - n42*n66*(pow(alpha, NP0*n2 - n6*n92)*n3*n6*n79/n88 + n3*n71)*(pow(alpha, NP0*n2 - n6*n92)*n30*n6*n79/n88 + n30*n71)/n118) + 1.0*n133*n42*n77*(pow(alpha, NP0*n2 - n2*n92)*n2*n3*n79/n88 + n77) + n151) - n212, -n1);
21869  NP_sqrt_base = fabs(NP_sqrt_base);
21870  NP1 = (-NP_b - pow(NP_sqrt_base, -n0))/NP_2a;
21871  NT1 = n62*(n89 - log(-pow(alpha, NP1*n2)*n79 + 1));
21872  g0 = MW[1] - Mstar;
21873  g1 = MW[0] - Mstar;
21874  g2 = NT1 + 1;
21875  g3 = xPj - xTj;
21876  g4 = MW[2] - Mstar;
21877  g5 = MW[3] - Mstar;
21878  g6 = MW[4] - Mstar;
21879  g7 = MW[5] - Mstar;
21880  g8 = MW[6] - Mstar;
21881  g9 = MW[7] - Mstar;
21882  g10 = xF[0] - xTj;
21883  g11 = xF[0] - xPj;
21884  g12 = -xTj;
21885  g13 = xPj/xF[1];
21886  g14 = pow(alpha, -g1);
21887  g15 = pow(alpha, -g0);
21888  g16 = pow(alpha, -g4);
21889  g17 = pow(alpha, -g5);
21890  g18 = pow(alpha, -g6);
21891  g19 = pow(alpha, -g7);
21892  g20 = pow(alpha, -g8);
21893  g21 = pow(alpha, -g9);
21894  g22 = log(xF[0]/xF[1]);
21895  g23 = -g2;
21896  g24 = pow(alpha, NP1*g0);
21897  g25 = pow(alpha, NP1*g1);
21898  g26 = log(g14);
21899  g27 = pow(alpha, NP1*g4);
21900  g28 = pow(alpha, NP1*g5);
21901  g29 = pow(alpha, NP1*g6);
21902  g30 = pow(alpha, NP1*g7);
21903  g31 = pow(alpha, NP1*g8);
21904  g32 = pow(alpha, NP1*g9);
21905  g33 = -g22;
21906  g34 = g10/g3;
21907  g35 = g3/g10;
21908  g36 = -g24 + 1;
21909  g37 = -g24 + 1;
21910  g38 = -g25 + 1;
21911  g39 = -g27 + 1;
21912  g40 = -g28 + 1;
21913  g41 = -g29 + 1;
21914  g42 = -g30 + 1;
21915  g43 = -g31 + 1;
21916  g44 = -g32 + 1;
21917  g45 = -g25;
21918  g46 = -g27;
21919  g47 = -g28;
21920  g48 = -g29;
21921  g49 = -g30;
21922  g50 = -g31;
21923  g51 = -g32;
21924  g52 = -1.0*g22;
21925  g53 = -g3/g11;
21926  g54 = g11/(g3*xF[1]);
21927  g55 = pow(alpha, g0*g23) - 1;
21928  g56 = pow(alpha, g0*g23) - 1;
21929  g57 = pow(alpha, g1*g23) - 1;
21930  g58 = pow(alpha, g23*g4) - 1;
21931  g59 = pow(alpha, g23*g5) - 1;
21932  g60 = pow(alpha, g23*g6) - 1;
21933  g61 = pow(alpha, g23*g7) - 1;
21934  g62 = pow(alpha, g23*g8) - 1;
21935  g63 = pow(alpha, g23*g9) - 1;
21936  g64 = -pow(alpha, g1*g23);
21937  g65 = -pow(alpha, g23*g4);
21938  g66 = -pow(alpha, g23*g5);
21939  g67 = -pow(alpha, g23*g6);
21940  g68 = -pow(alpha, g23*g7);
21941  g69 = -pow(alpha, g23*g8);
21942  g70 = -pow(alpha, g23*g9);
21943  g71 = g37 + g56;
21944  g72 = -g25 - g64;
21945  g73 = -g27 - g65;
21946  g74 = -g28 - g66;
21947  g75 = -g29 - g67;
21948  g76 = -g30 - g68;
21949  g77 = -g31 - g69;
21950  g78 = -g32 - g70;
21951  g79 = pow(alpha, g1*g23) + g45;
21952  g80 = g37 + g56;
21953  g81 = pow(alpha, g23*g4) + g46;
21954  g82 = pow(alpha, g23*g5) + g47;
21955  g83 = pow(alpha, g23*g6) + g48;
21956  g84 = pow(alpha, g23*g7) + g49;
21957  g85 = pow(alpha, g23*g8) + g50;
21958  g86 = pow(alpha, g23*g9) + g51;
21959  g87 = xF[0]/g79;
21960  g88 = xF[1]/g80;
21961  g89 = xF[2]/g81;
21962  g90 = xF[3]/g82;
21963  g91 = xF[6]/g85;
21964  g92 = xF[7]/g86;
21965  g93 = xF[4]/g83;
21966  g94 = xF[5]/g84;
21967  g95 = xF[1]/g71;
21968  g96 = xF[0]/g72;
21969  g97 = xF[4]/g75;
21970  g98 = xF[5]/g76;
21971  g99 = xF[7]/g78;
21972  g100 = xF[2]/g73;
21973  g101 = xF[6]/g77;
21974  g102 = xF[3]/g74;
21975  g103 = g43/g77;
21976  g104 = g41/g75;
21977  g105 = g44/g78;
21978  g106 = g38/g72;
21979  g107 = g42/g76;
21980  g108 = g40/g74;
21981  g109 = g36/g71;
21982  g110 = g39/g73;
21983  g111 = g55/g71;
21984  g112 = g57/g72;
21985  g113 = g61/g76;
21986  g114 = g58/g73;
21987  g115 = g59/g74;
21988  g116 = g60/g75;
21989  g117 = g62/g77;
21990  g118 = g63/g78;
21991  g119 = log(g12*g54*g80/g37);
21992  g120 = log(g12*g54*g71/g36);
21993  g121 = log(g13*g34*g80/g56);
21994  g122 = 1.0*g119;
21995  g123 = log(g13*g34*g71/g55);
21996  g124 = 1.0*g121;
21997  g125 = -g122*g37*g88 - g122*g87*(g45 + 1) - g122*g89*(g46 + 1) - g122*g90*(g47 + 1) - g122*g91*(g50 + 1) - g122*g92*(g51 + 1) - g122*g93*(g48 + 1) - g122*g94*(g49 + 1) - g124*g56*g88 - g124*g87*(pow(alpha, g1*g23) - 1) - g124*g89*(pow(alpha, g23*g4) - 1) - g124*g90*(pow(alpha, g23*g5) - 1) - g124*g91*(pow(alpha, g23*g8) - 1) - g124*g92*(pow(alpha, g23*g9) - 1) - g124*g93*(pow(alpha, g23*g6) - 1) - g124*g94*(pow(alpha, g23*g7) - 1) - g52*xF[0] - g52*xF[1] - g52*xF[2] - g52*xF[3] - g52*xF[4] - g52*xF[5] - g52*xF[6] - g52*xF[7];
21998  LpF = xF[0]*(g14 + 1.0)*(g106*g120 + g112*g123 + g33)/(g26*(g14 - 1.0)) + xF[1]*(g15 + 1.0)*(g109*g120 + g111*g123 + g33)/(g26*(g15 - 1.0)) + xF[2]*(g16 + 1.0)*(g110*g120 + g114*g123 + g33)/(g26*(g16 - 1.0)) + xF[3]*(g17 + 1.0)*(g108*g120 + g115*g123 + g33)/(g26*(g17 - 1.0)) + xF[4]*(g18 + 1.0)*(g104*g120 + g116*g123 + g33)/(g26*(g18 - 1.0)) + xF[5]*(g19 + 1.0)*(g107*g120 + g113*g123 + g33)/(g26*(g19 - 1.0)) + xF[6]*(g20 + 1.0)*(g103*g120 + g117*g123 + g33)/(g26*(g20 - 1.0)) + xF[7]*(g21 + 1.0)*(g105*g120 + g118*g123 + g33)/(g26*(g21 - 1.0));
21999  PpF = g34;
22000  TpF = -g11/g3;
22001  SWUpF = g125;
22002  SWUpP = g125*g35;
22003  xP[0] = g35*g57*g96;
22004  xP[1] = g35*g55*g95;
22005  xP[2] = g100*g35*g58;
22006  xP[3] = g102*g35*g59;
22007  xP[4] = g35*g60*g97;
22008  xP[5] = g35*g61*g98;
22009  xP[6] = g101*g35*g62;
22010  xP[7] = g35*g63*g99;
22011  xT[0] = g38*g53*g96;
22012  xT[1] = g36*g53*g95;
22013  xT[2] = g100*g39*g53;
22014  xT[3] = g102*g40*g53;
22015  xT[4] = g41*g53*g97;
22016  xT[5] = g42*g53*g98;
22017  xT[6] = g101*g43*g53;
22018  xT[7] = g44*g53*g99;
22019  break;
22020  case 9:
22021  n0 = MW[0] - Mstar;
22022  n1 = log(alpha);
22023  n2 = xPj - xTj;
22024  n3 = xF[0] - xPj;
22025  n4 = MW[1] - Mstar;
22026  n5 = MW[2] - Mstar;
22027  n6 = MW[3] - Mstar;
22028  n7 = MW[4] - Mstar;
22029  n8 = MW[5] - Mstar;
22030  n9 = MW[6] - Mstar;
22031  n10 = MW[7] - Mstar;
22032  n11 = MW[8] - Mstar;
22033  n12 = log(xTj);
22034  n13 = -2;
22035  n14 = xF[0]*xPj;
22036  n15 = -Mstar;
22037  n16 = -xPj;
22038  n17 = -NP0*n13;
22039  n18 = -xF[0];
22040  n19 = -xTj;
22041  n20 = pow(n0, -n13);
22042  n21 = pow(n1, -n13);
22043  n22 = pow(n4, -n13);
22044  n23 = pow(n5, -n13);
22045  n24 = pow(n6, -n13);
22046  n25 = pow(n7, -n13);
22047  n26 = pow(n8, -n13);
22048  n27 = pow(n9, -n13);
22049  n28 = pow(n10, -n13);
22050  n29 = pow(n11, -n13);
22051  n30 = Mstar*n1;
22052  n31 = -n1*n13;
22053  n32 = pow(alpha, NP0*n0);
22054  n33 = n14 + n18*xTj;
22055  n34 = n14 + n16*xTj;
22056  n35 = pow(alpha, NP0*n4);
22057  n36 = pow(alpha, NP0*n5);
22058  n37 = pow(alpha, NP0*n6);
22059  n38 = pow(alpha, NP0*n7);
22060  n39 = pow(alpha, NP0*n8);
22061  n40 = pow(alpha, NP0*n9);
22062  n41 = pow(alpha, NP0*n10);
22063  n42 = pow(alpha, NP0*n11);
22064  n43 = -MW[0]*n1;
22065  n44 = n2/n3;
22066  n45 = n0*n1;
22067  n46 = -n32 + 1;
22068  n47 = -n35 + 1;
22069  n48 = pow(alpha, n0*n17);
22070  n49 = pow(n33, -n13);
22071  n50 = pow(n34, -n13);
22072  n51 = -n36 + 1;
22073  n52 = -n37 + 1;
22074  n53 = -n38 + 1;
22075  n54 = -n39 + 1;
22076  n55 = -n40 + 1;
22077  n56 = -n41 + 1;
22078  n57 = -n42 + 1;
22079  n58 = -n55;
22080  n59 = -n51;
22081  n60 = -n53;
22082  n61 = -n52;
22083  n62 = -n32;
22084  n63 = -n41;
22085  n64 = 1.0/n45;
22086  n65 = n0*n21;
22087  n66 = n20*n21;
22088  n67 = n36*n5;
22089  n68 = n39*n8;
22090  n69 = n57*xF[8];
22091  n70 = n40*n9;
22092  n71 = n37*n6;
22093  n72 = n35*n4;
22094  n73 = n38*n7;
22095  n74 = n11*n42;
22096  n75 = n10*n41;
22097  n76 = log((-1.0 + xPj/xF[0])/n2);
22098  n77 = -n54*xF[5];
22099  n78 = -n47*xF[1];
22100  n79 = n1*n74;
22101  n80 = n1*n75;
22102  n81 = n34/n33;
22103  n82 = n21*n23*n36;
22104  n83 = n21*n25*n38;
22105  n84 = n21*n29*n42;
22106  n85 = n21*n28*n41;
22107  n86 = n21*n24*n37;
22108  n87 = n21*n27*n40;
22109  n88 = n21*n22*n35;
22110  n89 = n44*n77;
22111  n90 = n62*n81 + 1;
22112  n91 = pow(n90, -n13);
22113  n92 = n12 + n30 + n43 + n76;
22114  n93 = n32*n81/n90;
22115  n94 = n21*n48*n50/(n49*n91);
22116  n95 = n64*(n92 - log(n90)) + 1;
22117  n96 = pow(alpha, n0*n95);
22118  n97 = pow(alpha, n4*n95);
22119  n98 = pow(alpha, n5*n95);
22120  n99 = pow(alpha, n6*n95);
22121  n100 = pow(alpha, n7*n95);
22122  n101 = pow(alpha, n8*n95);
22123  n102 = pow(alpha, n9*n95);
22124  n103 = pow(alpha, n10*n95);
22125  n104 = pow(alpha, n11*n95);
22126  n105 = n4/n97;
22127  n106 = n11/n104;
22128  n107 = n7/n100;
22129  n108 = n6/n99;
22130  n109 = n10/n103;
22131  n110 = n9/n102;
22132  n111 = n8/n101;
22133  n112 = n5/n98;
22134  n113 = n46 - 1 + 1.0/n96;
22135  n114 = n47 - 1 + 1.0/n97;
22136  n115 = n51 - 1 + 1.0/n98;
22137  n116 = n52 - 1 + 1.0/n99;
22138  n117 = n53 - 1 + 1.0/n100;
22139  n118 = n54 - 1 + 1.0/n101;
22140  n119 = n55 - 1 + 1.0/n102;
22141  n120 = n56 - 1 + 1.0/n103;
22142  n121 = n57 - 1 + 1.0/n104;
22143  n122 = pow(n113, -n13);
22144  n123 = pow(n114, -n13);
22145  n124 = pow(n115, -n13);
22146  n125 = pow(n116, -n13);
22147  n126 = pow(n117, -n13);
22148  n127 = pow(n118, -n13);
22149  n128 = pow(n119, -n13);
22150  n129 = pow(n120, -n13);
22151  n130 = pow(n121, -n13);
22152  n131 = pow(n113, 3);
22153  n132 = pow(n114, 3);
22154  n133 = pow(n115, 3);
22155  n134 = pow(n116, 3);
22156  n135 = pow(n117, 3);
22157  n136 = pow(n118, 3);
22158  n137 = pow(n119, 3);
22159  n138 = pow(n120, 3);
22160  n139 = pow(n121, 3);
22161  n140 = xF[8]/n121;
22162  n141 = xF[6]/n119;
22163  n142 = xF[7]/n120;
22164  n143 = xF[1]/n114;
22165  n144 = xF[2]/n115;
22166  n145 = xF[4]/n117;
22167  n146 = xF[3]/n116;
22168  n147 = xF[6]/n137;
22169  n148 = n1*xF[5]/n118;
22170  n149 = -1/n130;
22171  n150 = n1*n146;
22172  n151 = n32*xF[0]/n113;
22173  n152 = n46/n113;
22174  n153 = n32*xF[0]/n122;
22175  n154 = n56*xF[7]/n138;
22176  n155 = n56*xF[7]/n129;
22177  n156 = n61*xF[3]/n125;
22178  n157 = n21*n26*n39*xF[5]/n118;
22179  n158 = n151*n44/n64;
22180  n159 = n18*n32*n44/(n113*n64);
22181  n160 = n151*n44*n66;
22182  n161 = n143*n44*n88;
22183  n162 = n144*n44*n82;
22184  n163 = n146*n44*n86;
22185  n164 = n145*n44*n83;
22186  n165 = n157*n44;
22187  n166 = n141*n44*n87;
22188  n167 = n142*n44*n85;
22189  n168 = n140*n44*n84;
22190  n169 = 0.5*n160;
22191  n170 = n81/(n90*n96) + 1;
22192  n171 = n170*n46;
22193  n172 = n32/n64 + n93/(n64*n96);
22194  n173 = n1*n105*n93 + n1*n72;
22195  n174 = n1*n112*n93 + n1*n67;
22196  n175 = n1*n108*n93 + n1*n71;
22197  n176 = n1*n107*n93 + n1*n73;
22198  n177 = n1*n111*n93 + n1*n68;
22199  n178 = n1*n110*n93 + n1*n70;
22200  n179 = n1*n109*n93 + n80;
22201  n180 = n1*n106*n93 + n79;
22202  n181 = pow(n172, -n13);
22203  n182 = pow(n173, -n13);
22204  n183 = pow(n174, -n13);
22205  n184 = pow(n175, -n13);
22206  n185 = pow(n176, -n13);
22207  n186 = pow(n177, -n13);
22208  n187 = pow(n178, -n13);
22209  n188 = pow(n179, -n13);
22210  n189 = pow(n180, -n13);
22211  n190 = n174*xF[2];
22212  n191 = n175*xF[3];
22213  n192 = n0*n31*n32 + n0*n31*n93/n96;
22214  n193 = n32*n66 + n66*n93/n96;
22215  n194 = n172*n46;
22216  n195 = n187*n55;
22217  n196 = n176*n60*xF[4];
22218  n197 = n177/n127;
22219  n198 = n173/n123;
22220  n199 = n178*xF[6]/n128;
22221  n200 = n189/n139;
22222  n201 = n192/n131;
22223  n202 = n181*n46*xF[0]/n131;
22224  n203 = n184*n52*xF[3]/n134;
22225  n204 = n185*n53*xF[4]/n135;
22226  n205 = n183*n51*xF[2]/n133;
22227  n206 = n182*n47*xF[1]/n132;
22228  n207 = n193*n46/n122;
22229  n208 = n18*n44*n46*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/n122;
22230  n209 = n13*n18*n32*n44*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/(n122*n64);
22231  n210 = n31*n44*n72*xF[1]*(pow(alpha, NP0*n0 - n4*n95)*n1*n4*n81/n90 + n1*n72)/n123;
22232  n211 = n31*n44*n67*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n1*n5*n81/n90 + n1*n67)/n124;
22233  n212 = n31*n44*n71*xF[3]*(pow(alpha, NP0*n0 - n6*n95)*n1*n6*n81/n90 + n1*n71)/n125;
22234  n213 = n31*n44*n73*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n1*n7*n81/n90 + n1*n73)/n126;
22235  n214 = n31*n44*n68*xF[5]*(pow(alpha, NP0*n0 - n8*n95)*n1*n8*n81/n90 + n1*n68)/n127;
22236  n215 = n31*n44*n70*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n1*n81*n9/n90 + n1*n70)/n128;
22237  n216 = n31*n44*n75*xF[7]*(pow(alpha, NP0*n0 - n10*n95)*n1*n10*n81/n90 + n80)/n129;
22238  n217 = n31*n44*n74*xF[8]*(pow(alpha, NP0*n0 - n11*n95)*n1*n11*n81/n90 + n79)/n130;
22239  n218 = 1.0*n153*n172*n44/n64;
22240  n219 = n18*n44*n46*(pow(alpha, NP0*n0 - n0*n95)*n66*n81/n90 + n32*n66)/n122;
22241  n220 = -0.5*n207*n44*xF[0];
22242  n221 = n158 + n208;
22243  n222 = n105*n48*n50*n65/(n49*n91) + n105*n65*n93 - n22*n94/n97 + n88;
22244  n223 = n112*n48*n50*n65/(n49*n91) + n112*n65*n93 - n23*n94/n98 + n82;
22245  n224 = n107*n48*n50*n65/(n49*n91) + n107*n65*n93 + n83 - n25*n94/n100;
22246  n225 = n111*n48*n50*n65/(n49*n91) + n111*n65*n93 + n21*n26*n39 - n26*n94/n101;
22247  n226 = n110*n48*n50*n65/(n49*n91) + n110*n65*n93 + n87 - n27*n94/n102;
22248  n227 = n44*n78*(-pow(alpha, n0*n17 - n4*n95)*n21*n22*n50/(n49*n91) + pow(alpha, n0*n17 - n4*n95)*n4*n50*n65/(n49*n91) + n105*n65*n93 + n88)/n123;
22249  n228 = n44*n59*xF[2]*(-pow(alpha, n0*n17 - n5*n95)*n21*n23*n50/(n49*n91) + pow(alpha, n0*n17 - n5*n95)*n5*n50*n65/(n49*n91) + n112*n65*n93 + n82)/n124;
22250  n229 = n156*n44*(-pow(alpha, n0*n17 - n6*n95)*n21*n24*n50/(n49*n91) + pow(alpha, n0*n17 - n6*n95)*n50*n6*n65/(n49*n91) + n108*n65*n93 + n86);
22251  n230 = n44*n60*xF[4]*(-pow(alpha, n0*n17 - n7*n95)*n21*n25*n50/(n49*n91) + pow(alpha, n0*n17 - n7*n95)*n50*n65*n7/(n49*n91) + n107*n65*n93 + n83)/n126;
22252  n231 = n89*(-pow(alpha, n0*n17 - n8*n95)*n21*n26*n50/(n49*n91) + pow(alpha, n0*n17 - n8*n95)*n50*n65*n8/(n49*n91) + n111*n65*n93 + n21*n26*n39)/n127;
22253  n232 = n44*n58*xF[6]*(-pow(alpha, n0*n17 - n9*n95)*n21*n27*n50/(n49*n91) + pow(alpha, n0*n17 - n9*n95)*n50*n65*n9/(n49*n91) + n110*n65*n93 + n87)/n128;
22254  n233 = -n155*n44*(pow(alpha, n0*n17 - n10*n95)*n10*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n10*n95)*n21*n28*n50/(n49*n91) + n109*n65*n93 + n85);
22255  n234 = n149*n44*n69*(pow(alpha, n0*n17 - n11*n95)*n11*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n11*n95)*n21*n29*n50/(n49*n91) + n106*n65*n93 + n84);
22256  n235 = n169 + n218 + n220;
22257  n236 = n1*n141*n44*n70 + n1*n143*n44*n72 + n1*n144*n44*n67 + n1*n145*n44*n73 + n140*n44*n79 + n142*n44*n80 + n148*n44*n68 + n149*n180*n44*n69 + n150*n44*n71 - n155*n179*n44 + n156*n175*n44 + n197*n89 + n198*n44*n78 + n199*n44*n58 + n221 + n196*n44/n126 + n190*n44*n59/n124;
22258  n237 = n236*xTj;
22259  n238 = n160 + n161 + n162 + n163 + n164 + n165 + n166 + n167 + n168 + n209 + n210 + n211 + n212 + n213 + n214 + n215 + n216 + n217 + n219 + n227 + n228 + n229 + n230 + n231 + n232 + n233 + n234;
22260  n239 = n147*n178*n44*n58*(n110*n31*n93 + n31*n70) - n154*n179*n44*(n109*n31*n93 + n31*n75) + n238 - n180*n44*n69*(n106*n31*n93 + n31*n74)/n139 + n177*n89*(n111*n31*n93 + n31*n68)/n136 + n196*n44*(n107*n31*n93 + n31*n73)/n135 + n191*n44*n61*(n108*n31*n93 + n31*n71)/n134 + n190*n44*n59*(n112*n31*n93 + n31*n67)/n133 + n173*n44*n78*(n105*n31*n93 + n31*n72)/n132 + n18*n44*n46*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)*(pow(alpha, NP0*n0 - n0*n95)*n0*n31*n81/n90 + n0*n31*n32)/n131;
22261  NP_b = -n153*n171*n44/n64 - n159 - n17*(1.0*n153*n44*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/n64 + n169 - 1.0*n202*n44 - 0.5*xTj*(n13*n147*n195*n44 + n13*n154*n188*n44 + n13*n200*n44*n69 + n13*n202*n44 + n13*n203*n44 + n13*n204*n44 + n13*n205*n44 + n13*n206*n44 + n13*n186*n44*n54*xF[5]/n136 + n149*n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n11*n65*n81/n90 + pow(alpha, n0*n17 - n11*n95)*n11*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n11*n95)*n21*n29*n50/(n49*n91) + n84) - n155*n44*(pow(alpha, NP0*n0 - n10*n95)*n10*n65*n81/n90 + pow(alpha, n0*n17 - n10*n95)*n10*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n10*n95)*n21*n28*n50/(n49*n91) + n85) + n156*n44*(pow(alpha, NP0*n0 - n6*n95)*n6*n65*n81/n90 - pow(alpha, n0*n17 - n6*n95)*n21*n24*n50/(n49*n91) + pow(alpha, n0*n17 - n6*n95)*n50*n6*n65/(n49*n91) + n86) + n160 + n161 + n162 + n163 + n164 + n165 + n166 + n167 + n168 + n209 + n210 + n211 + n212 + n213 + n214 + n215 + n216 + n217 + n219 + n44*n58*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n65*n81*n9/n90 - pow(alpha, n0*n17 - n9*n95)*n21*n27*n50/(n49*n91) + pow(alpha, n0*n17 - n9*n95)*n50*n65*n9/(n49*n91) + n87)/n128 + n89*(pow(alpha, NP0*n0 - n8*n95)*n65*n8*n81/n90 - pow(alpha, n0*n17 - n8*n95)*n21*n26*n50/(n49*n91) + pow(alpha, n0*n17 - n8*n95)*n50*n65*n8/(n49*n91) + n21*n26*n39)/n127 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n65*n7*n81/n90 - pow(alpha, n0*n17 - n7*n95)*n21*n25*n50/(n49*n91) + pow(alpha, n0*n17 - n7*n95)*n50*n65*n7/(n49*n91) + n83)/n126 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n5*n65*n81/n90 - pow(alpha, n0*n17 - n5*n95)*n21*n23*n50/(n49*n91) + pow(alpha, n0*n17 - n5*n95)*n5*n50*n65/(n49*n91) + n82)/n124 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n4*n65*n81/n90 - pow(alpha, n0*n17 - n4*n95)*n21*n22*n50/(n49*n91) + pow(alpha, n0*n17 - n4*n95)*n4*n50*n65/(n49*n91) + n88)/n123) - 0.5*n44*n46*xF[0]*(pow(alpha, NP0*n0 - n0*n95)*n66*n81/n90 + n32*n66)/n122) - n44*xTj*(n1*n141*n70 + n1*n143*n72 + n1*n144*n67 + n1*n145*n73 + n140*n79 + n142*n80 + n148*n68 + n149*n180*n69 + n150*n71 + n151/n64 - n155*n179 + n156*n175 + n197*n77 + n198*n78 + n199*n58 + n196/n126 + n190*n59/n124 + n18*n46*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/n122);
22262  NP_2a = -n44*(n13*pow(n170, -n13)*n18*n46*n48*n66/n131 - 1.0*n151*n66 + n153*n171*n66 + 1.0*xTj*(n13*n147*n195 + n13*n154*n188 + n13*n200*n69 + n13*n202 + n13*n203 + n13*n204 + n13*n205 + n13*n206 + n13*n186*n54*xF[5]/n136 + n140*n84 + n141*n87 + n142*n85 + n143*n88 + n144*n82 + n145*n83 + n146*n86 + n149*n69*(pow(alpha, n0*n17 - n11*n95)*n11*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n11*n95)*n21*n29*n50/(n49*n91) + n106*n65*n93 + n84) + n151*n66 - n155*(pow(alpha, n0*n17 - n10*n95)*n10*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n10*n95)*n21*n28*n50/(n49*n91) + n109*n65*n93 + n85) + n156*(-pow(alpha, n0*n17 - n6*n95)*n21*n24*n50/(n49*n91) + pow(alpha, n0*n17 - n6*n95)*n50*n6*n65/(n49*n91) + n108*n65*n93 + n86) + n157 + n31*n74*xF[8]*(pow(alpha, NP0*n0 - n11*n95)*n1*n11*n81/n90 + n79)/n130 + n31*n75*xF[7]*(pow(alpha, NP0*n0 - n10*n95)*n1*n10*n81/n90 + n80)/n129 + n31*n70*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n1*n81*n9/n90 + n1*n70)/n128 + n58*xF[6]*(-pow(alpha, n0*n17 - n9*n95)*n21*n27*n50/(n49*n91) + pow(alpha, n0*n17 - n9*n95)*n50*n65*n9/(n49*n91) + n110*n65*n93 + n87)/n128 + n31*n68*xF[5]*(pow(alpha, NP0*n0 - n8*n95)*n1*n8*n81/n90 + n1*n68)/n127 + n77*(-pow(alpha, n0*n17 - n8*n95)*n21*n26*n50/(n49*n91) + pow(alpha, n0*n17 - n8*n95)*n50*n65*n8/(n49*n91) + n111*n65*n93 + n21*n26*n39)/n127 + n31*n73*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n1*n7*n81/n90 + n1*n73)/n126 + n60*xF[4]*(-pow(alpha, n0*n17 - n7*n95)*n21*n25*n50/(n49*n91) + pow(alpha, n0*n17 - n7*n95)*n50*n65*n7/(n49*n91) + n107*n65*n93 + n83)/n126 + n31*n71*xF[3]*(pow(alpha, NP0*n0 - n6*n95)*n1*n6*n81/n90 + n1*n71)/n125 + n31*n67*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n1*n5*n81/n90 + n1*n67)/n124 + n59*xF[2]*(-pow(alpha, n0*n17 - n5*n95)*n21*n23*n50/(n49*n91) + pow(alpha, n0*n17 - n5*n95)*n5*n50*n65/(n49*n91) + n112*n65*n93 + n82)/n124 + n31*n72*xF[1]*(pow(alpha, NP0*n0 - n4*n95)*n1*n4*n81/n90 + n1*n72)/n123 + n78*(-pow(alpha, n0*n17 - n4*n95)*n21*n22*n50/(n49*n91) + pow(alpha, n0*n17 - n4*n95)*n4*n50*n65/(n49*n91) + n105*n65*n93 + n88)/n123 + n13*n18*n32*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/(n122*n64) + n18*n46*(pow(alpha, NP0*n0 - n0*n95)*n66*n81/n90 + n32*n66)/n122) - 2.0*n170*n48*n66*xF[0]/n122);
22263  NP_sqrt_base = (NP0*(n19*(n1*n141*n44*n70 + n1*n143*n44*n72 + n1*n144*n44*n67 + n1*n145*n44*n73 + n140*n44*n79 + n142*n44*n80 + n148*n44*n68 + n149*n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n1*n11*n81/n90 + n79) + n150*n44*n71 - n155*n44*(pow(alpha, NP0*n0 - n10*n95)*n1*n10*n81/n90 + n80) + n156*n44*(pow(alpha, NP0*n0 - n6*n95)*n1*n6*n81/n90 + n1*n71) + n221 + n44*n58*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n1*n81*n9/n90 + n1*n70)/n128 + n89*(pow(alpha, NP0*n0 - n8*n95)*n1*n8*n81/n90 + n1*n68)/n127 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n1*n7*n81/n90 + n1*n73)/n126 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n1*n5*n81/n90 + n1*n67)/n124 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n1*n4*n81/n90 + n1*n72)/n123) + n221) + n152*n44*xF[0] + xTj*(n141*n44*n58 - n142*n44*n56 + n144*n44*n59 + n145*n44*n60 + n146*n44*n61 + n152*n18*n44 - n44*n69/n121 + n89/n118 + n44*n78/n114) + pow(NP0, -n13)*(-1.0*n153*n172*n44/n64 - 0.5*n160 + 0.5*n194*n201*n44*xF[0] + 0.5*n207*n44*xF[0] + 0.5*n239*xTj))*(-n13*n19*(n147*n44*n58*(pow(alpha, NP0*n0 - n9*n95)*n1*n81*n9/n90 + n1*n70)*(pow(alpha, NP0*n0 - n9*n95)*n31*n81*n9/n90 + n31*n70) + n149*n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n11*n65*n81/n90 + pow(alpha, n0*n17 - n11*n95)*n11*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n11*n95)*n21*n29*n50/(n49*n91) + n84) - n154*n44*(pow(alpha, NP0*n0 - n10*n95)*n1*n10*n81/n90 + n80)*(pow(alpha, NP0*n0 - n10*n95)*n10*n31*n81/n90 + n31*n75) - n155*n44*(pow(alpha, NP0*n0 - n10*n95)*n10*n65*n81/n90 + pow(alpha, n0*n17 - n10*n95)*n10*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n10*n95)*n21*n28*n50/(n49*n91) + n85) + n156*n44*(pow(alpha, NP0*n0 - n6*n95)*n6*n65*n81/n90 - pow(alpha, n0*n17 - n6*n95)*n21*n24*n50/(n49*n91) + pow(alpha, n0*n17 - n6*n95)*n50*n6*n65/(n49*n91) + n86) + n160 + n161 + n162 + n163 + n164 + n165 + n166 + n167 + n168 + n209 + n210 + n211 + n212 + n213 + n214 + n215 + n216 + n217 + n219 - n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n1*n11*n81/n90 + n79)*(pow(alpha, NP0*n0 - n11*n95)*n11*n31*n81/n90 + n31*n74)/n139 + n89*(pow(alpha, NP0*n0 - n8*n95)*n1*n8*n81/n90 + n1*n68)*(pow(alpha, NP0*n0 - n8*n95)*n31*n8*n81/n90 + n31*n68)/n136 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n1*n7*n81/n90 + n1*n73)*(pow(alpha, NP0*n0 - n7*n95)*n31*n7*n81/n90 + n31*n73)/n135 + n44*n61*xF[3]*(pow(alpha, NP0*n0 - n6*n95)*n1*n6*n81/n90 + n1*n71)*(pow(alpha, NP0*n0 - n6*n95)*n31*n6*n81/n90 + n31*n71)/n134 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n1*n5*n81/n90 + n1*n67)*(pow(alpha, NP0*n0 - n5*n95)*n31*n5*n81/n90 + n31*n67)/n133 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n1*n4*n81/n90 + n1*n72)*(pow(alpha, NP0*n0 - n4*n95)*n31*n4*n81/n90 + n31*n72)/n132 + n18*n44*n46*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)*(pow(alpha, NP0*n0 - n0*n95)*n0*n31*n81/n90 + n0*n31*n32)/n131 + n44*n58*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n65*n81*n9/n90 - pow(alpha, n0*n17 - n9*n95)*n21*n27*n50/(n49*n91) + pow(alpha, n0*n17 - n9*n95)*n50*n65*n9/(n49*n91) + n87)/n128 + n89*(pow(alpha, NP0*n0 - n8*n95)*n65*n8*n81/n90 - pow(alpha, n0*n17 - n8*n95)*n21*n26*n50/(n49*n91) + pow(alpha, n0*n17 - n8*n95)*n50*n65*n8/(n49*n91) + n21*n26*n39)/n127 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n65*n7*n81/n90 - pow(alpha, n0*n17 - n7*n95)*n21*n25*n50/(n49*n91) + pow(alpha, n0*n17 - n7*n95)*n50*n65*n7/(n49*n91) + n83)/n126 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n5*n65*n81/n90 - pow(alpha, n0*n17 - n5*n95)*n21*n23*n50/(n49*n91) + pow(alpha, n0*n17 - n5*n95)*n5*n50*n65/(n49*n91) + n82)/n124 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n4*n65*n81/n90 - pow(alpha, n0*n17 - n4*n95)*n21*n22*n50/(n49*n91) + pow(alpha, n0*n17 - n4*n95)*n4*n50*n65/(n49*n91) + n88)/n123) - n13*n219 + 4.0*n153*n172*n44/n64 + 2.0*n160 - 4.0*n202*n44) + pow(-n159 - n17*(1.0*n153*n44*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)/n64 + n169 - 0.5*xTj*(n147*n44*n58*(pow(alpha, NP0*n0 - n9*n95)*n1*n81*n9/n90 + n1*n70)*(pow(alpha, NP0*n0 - n9*n95)*n31*n81*n9/n90 + n31*n70) + n149*n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n11*n65*n81/n90 + pow(alpha, n0*n17 - n11*n95)*n11*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n11*n95)*n21*n29*n50/(n49*n91) + n84) - n154*n44*(pow(alpha, NP0*n0 - n10*n95)*n1*n10*n81/n90 + n80)*(pow(alpha, NP0*n0 - n10*n95)*n10*n31*n81/n90 + n31*n75) - n155*n44*(pow(alpha, NP0*n0 - n10*n95)*n10*n65*n81/n90 + pow(alpha, n0*n17 - n10*n95)*n10*n50*n65/(n49*n91) - pow(alpha, n0*n17 - n10*n95)*n21*n28*n50/(n49*n91) + n85) + n156*n44*(pow(alpha, NP0*n0 - n6*n95)*n6*n65*n81/n90 - pow(alpha, n0*n17 - n6*n95)*n21*n24*n50/(n49*n91) + pow(alpha, n0*n17 - n6*n95)*n50*n6*n65/(n49*n91) + n86) + n160 + n161 + n162 + n163 + n164 + n165 + n166 + n167 + n168 + n209 + n210 + n211 + n212 + n213 + n214 + n215 + n216 + n217 + n219 - n44*n69*(pow(alpha, NP0*n0 - n11*n95)*n1*n11*n81/n90 + n79)*(pow(alpha, NP0*n0 - n11*n95)*n11*n31*n81/n90 + n31*n74)/n139 + n89*(pow(alpha, NP0*n0 - n8*n95)*n1*n8*n81/n90 + n1*n68)*(pow(alpha, NP0*n0 - n8*n95)*n31*n8*n81/n90 + n31*n68)/n136 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n1*n7*n81/n90 + n1*n73)*(pow(alpha, NP0*n0 - n7*n95)*n31*n7*n81/n90 + n31*n73)/n135 + n44*n61*xF[3]*(pow(alpha, NP0*n0 - n6*n95)*n1*n6*n81/n90 + n1*n71)*(pow(alpha, NP0*n0 - n6*n95)*n31*n6*n81/n90 + n31*n71)/n134 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n1*n5*n81/n90 + n1*n67)*(pow(alpha, NP0*n0 - n5*n95)*n31*n5*n81/n90 + n31*n67)/n133 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n1*n4*n81/n90 + n1*n72)*(pow(alpha, NP0*n0 - n4*n95)*n31*n4*n81/n90 + n31*n72)/n132 + n18*n44*n46*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)*(pow(alpha, NP0*n0 - n0*n95)*n0*n31*n81/n90 + n0*n31*n32)/n131 + n44*n58*xF[6]*(pow(alpha, NP0*n0 - n9*n95)*n65*n81*n9/n90 - pow(alpha, n0*n17 - n9*n95)*n21*n27*n50/(n49*n91) + pow(alpha, n0*n17 - n9*n95)*n50*n65*n9/(n49*n91) + n87)/n128 + n89*(pow(alpha, NP0*n0 - n8*n95)*n65*n8*n81/n90 - pow(alpha, n0*n17 - n8*n95)*n21*n26*n50/(n49*n91) + pow(alpha, n0*n17 - n8*n95)*n50*n65*n8/(n49*n91) + n21*n26*n39)/n127 + n44*n60*xF[4]*(pow(alpha, NP0*n0 - n7*n95)*n65*n7*n81/n90 - pow(alpha, n0*n17 - n7*n95)*n21*n25*n50/(n49*n91) + pow(alpha, n0*n17 - n7*n95)*n50*n65*n7/(n49*n91) + n83)/n126 + n44*n59*xF[2]*(pow(alpha, NP0*n0 - n5*n95)*n5*n65*n81/n90 - pow(alpha, n0*n17 - n5*n95)*n21*n23*n50/(n49*n91) + pow(alpha, n0*n17 - n5*n95)*n5*n50*n65/(n49*n91) + n82)/n124 + n44*n78*(pow(alpha, NP0*n0 - n4*n95)*n4*n65*n81/n90 - pow(alpha, n0*n17 - n4*n95)*n21*n22*n50/(n49*n91) + pow(alpha, n0*n17 - n4*n95)*n4*n50*n65/(n49*n91) + n88)/n123) - 0.5*n44*n46*xF[0]*(pow(alpha, NP0*n0 - n0*n95)*n81/(n64*n90) + n32/n64)*(pow(alpha, NP0*n0 - n0*n95)*n0*n31*n81/n90 + n0*n31*n32)/n131 - 0.5*n44*n46*xF[0]*(pow(alpha, NP0*n0 - n0*n95)*n66*n81/n90 + n32*n66)/n122) - n237 - n194*n44*xF[0]/n122, -n13);
22264  NP_sqrt_base = fabs(NP_sqrt_base);
22265  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
22266  NT1 = n64*(n92 - log(-pow(alpha, NP1*n0)*n81 + 1));
22267  g0 = MW[1] - Mstar;
22268  g1 = MW[0] - Mstar;
22269  g2 = NT1 + 1;
22270  g3 = xPj - xTj;
22271  g4 = MW[2] - Mstar;
22272  g5 = MW[3] - Mstar;
22273  g6 = MW[4] - Mstar;
22274  g7 = MW[5] - Mstar;
22275  g8 = MW[6] - Mstar;
22276  g9 = MW[7] - Mstar;
22277  g10 = MW[8] - Mstar;
22278  g11 = xF[0] - xTj;
22279  g12 = xF[0] - xPj;
22280  g13 = -xTj;
22281  g14 = xPj/xF[1];
22282  g15 = pow(alpha, -g1);
22283  g16 = pow(alpha, -g0);
22284  g17 = pow(alpha, -g4);
22285  g18 = pow(alpha, -g5);
22286  g19 = pow(alpha, -g6);
22287  g20 = pow(alpha, -g7);
22288  g21 = pow(alpha, -g8);
22289  g22 = pow(alpha, -g9);
22290  g23 = pow(alpha, -g10);
22291  g24 = log(xF[0]/xF[1]);
22292  g25 = -g2;
22293  g26 = pow(alpha, NP1*g0);
22294  g27 = pow(alpha, NP1*g1);
22295  g28 = log(g15);
22296  g29 = pow(alpha, NP1*g4);
22297  g30 = pow(alpha, NP1*g5);
22298  g31 = pow(alpha, NP1*g6);
22299  g32 = pow(alpha, NP1*g7);
22300  g33 = pow(alpha, NP1*g8);
22301  g34 = pow(alpha, NP1*g9);
22302  g35 = pow(alpha, NP1*g10);
22303  g36 = -g24;
22304  g37 = g11/g3;
22305  g38 = g3/g11;
22306  g39 = -g26 + 1;
22307  g40 = -g26 + 1;
22308  g41 = -g27 + 1;
22309  g42 = -g29 + 1;
22310  g43 = -g30 + 1;
22311  g44 = -g31 + 1;
22312  g45 = -g32 + 1;
22313  g46 = -g33 + 1;
22314  g47 = -g34 + 1;
22315  g48 = -g35 + 1;
22316  g49 = -g27;
22317  g50 = -g29;
22318  g51 = -g30;
22319  g52 = -g31;
22320  g53 = -g32;
22321  g54 = -g33;
22322  g55 = -g34;
22323  g56 = -g35;
22324  g57 = -1.0*g24;
22325  g58 = -g3/g12;
22326  g59 = g12/(g3*xF[1]);
22327  g60 = pow(alpha, g0*g25) - 1;
22328  g61 = pow(alpha, g0*g25) - 1;
22329  g62 = pow(alpha, g1*g25) - 1;
22330  g63 = pow(alpha, g25*g4) - 1;
22331  g64 = pow(alpha, g25*g5) - 1;
22332  g65 = pow(alpha, g25*g6) - 1;
22333  g66 = pow(alpha, g25*g7) - 1;
22334  g67 = pow(alpha, g25*g8) - 1;
22335  g68 = pow(alpha, g25*g9) - 1;
22336  g69 = pow(alpha, g10*g25) - 1;
22337  g70 = -pow(alpha, g1*g25);
22338  g71 = -pow(alpha, g25*g4);
22339  g72 = -pow(alpha, g25*g5);
22340  g73 = -pow(alpha, g25*g6);
22341  g74 = -pow(alpha, g25*g7);
22342  g75 = -pow(alpha, g25*g8);
22343  g76 = -pow(alpha, g25*g9);
22344  g77 = -pow(alpha, g10*g25);
22345  g78 = g40 + g61;
22346  g79 = -g27 - g70;
22347  g80 = -g29 - g71;
22348  g81 = -g30 - g72;
22349  g82 = -g31 - g73;
22350  g83 = -g32 - g74;
22351  g84 = -g33 - g75;
22352  g85 = -g34 - g76;
22353  g86 = -g35 - g77;
22354  g87 = pow(alpha, g1*g25) + g49;
22355  g88 = g40 + g61;
22356  g89 = pow(alpha, g25*g4) + g50;
22357  g90 = pow(alpha, g25*g5) + g51;
22358  g91 = pow(alpha, g25*g6) + g52;
22359  g92 = pow(alpha, g25*g7) + g53;
22360  g93 = pow(alpha, g25*g8) + g54;
22361  g94 = pow(alpha, g25*g9) + g55;
22362  g95 = pow(alpha, g10*g25) + g56;
22363  g96 = xF[8]/g95;
22364  g97 = xF[0]/g87;
22365  g98 = xF[1]/g88;
22366  g99 = xF[2]/g89;
22367  g100 = xF[3]/g90;
22368  g101 = xF[6]/g93;
22369  g102 = xF[7]/g94;
22370  g103 = xF[4]/g91;
22371  g104 = xF[5]/g92;
22372  g105 = xF[1]/g78;
22373  g106 = xF[0]/g79;
22374  g107 = xF[4]/g82;
22375  g108 = xF[5]/g83;
22376  g109 = xF[7]/g85;
22377  g110 = xF[2]/g80;
22378  g111 = xF[3]/g81;
22379  g112 = xF[6]/g84;
22380  g113 = xF[8]/g86;
22381  g114 = g46/g84;
22382  g115 = g44/g82;
22383  g116 = g47/g85;
22384  g117 = g41/g79;
22385  g118 = g45/g83;
22386  g119 = g43/g81;
22387  g120 = g39/g78;
22388  g121 = g42/g80;
22389  g122 = g48/g86;
22390  g123 = g60/g78;
22391  g124 = g62/g79;
22392  g125 = g66/g83;
22393  g126 = g63/g80;
22394  g127 = g64/g81;
22395  g128 = g65/g82;
22396  g129 = g69/g86;
22397  g130 = g67/g84;
22398  g131 = g68/g85;
22399  g132 = log(g13*g59*g88/g40);
22400  g133 = log(g13*g59*g78/g39);
22401  g134 = log(g14*g37*g88/g61);
22402  g135 = 1.0*g132;
22403  g136 = log(g14*g37*g78/g60);
22404  g137 = 1.0*g134;
22405  g138 = -g100*g135*(g51 + 1) - g100*g137*(pow(alpha, g25*g5) - 1) - g101*g135*(g54 + 1) - g101*g137*(pow(alpha, g25*g8) - 1) - g102*g135*(g55 + 1) - g102*g137*(pow(alpha, g25*g9) - 1) - g103*g135*(g52 + 1) - g103*g137*(pow(alpha, g25*g6) - 1) - g104*g135*(g53 + 1) - g104*g137*(pow(alpha, g25*g7) - 1) - g135*g40*g98 - g135*g96*(g56 + 1) - g135*g97*(g49 + 1) - g135*g99*(g50 + 1) - g137*g61*g98 - g137*g96*(pow(alpha, g10*g25) - 1) - g137*g97*(pow(alpha, g1*g25) - 1) - g137*g99*(pow(alpha, g25*g4) - 1) - g57*xF[0] - g57*xF[1] - g57*xF[2] - g57*xF[3] - g57*xF[4] - g57*xF[5] - g57*xF[6] - g57*xF[7] - g57*xF[8];
22406  LpF = xF[0]*(g15 + 1.0)*(g117*g133 + g124*g136 + g36)/(g28*(g15 - 1.0)) + xF[1]*(g16 + 1.0)*(g120*g133 + g123*g136 + g36)/(g28*(g16 - 1.0)) + xF[2]*(g17 + 1.0)*(g121*g133 + g126*g136 + g36)/(g28*(g17 - 1.0)) + xF[3]*(g18 + 1.0)*(g119*g133 + g127*g136 + g36)/(g28*(g18 - 1.0)) + xF[4]*(g19 + 1.0)*(g115*g133 + g128*g136 + g36)/(g28*(g19 - 1.0)) + xF[5]*(g20 + 1.0)*(g118*g133 + g125*g136 + g36)/(g28*(g20 - 1.0)) + xF[6]*(g21 + 1.0)*(g114*g133 + g130*g136 + g36)/(g28*(g21 - 1.0)) + xF[7]*(g22 + 1.0)*(g116*g133 + g131*g136 + g36)/(g28*(g22 - 1.0)) + xF[8]*(g23 + 1.0)*(g122*g133 + g129*g136 + g36)/(g28*(g23 - 1.0));
22407  PpF = g37;
22408  TpF = -g12/g3;
22409  SWUpF = g138;
22410  SWUpP = g138*g38;
22411  xP[0] = g106*g38*g62;
22412  xP[1] = g105*g38*g60;
22413  xP[2] = g110*g38*g63;
22414  xP[3] = g111*g38*g64;
22415  xP[4] = g107*g38*g65;
22416  xP[5] = g108*g38*g66;
22417  xP[6] = g112*g38*g67;
22418  xP[7] = g109*g38*g68;
22419  xP[8] = g113*g38*g69;
22420  xT[0] = g106*g41*g58;
22421  xT[1] = g105*g39*g58;
22422  xT[2] = g110*g42*g58;
22423  xT[3] = g111*g43*g58;
22424  xT[4] = g107*g44*g58;
22425  xT[5] = g108*g45*g58;
22426  xT[6] = g112*g46*g58;
22427  xT[7] = g109*g47*g58;
22428  xT[8] = g113*g48*g58;
22429  break;
22430  case 10:
22431  n0 = MW[0] - Mstar;
22432  n1 = log(alpha);
22433  n2 = xPj - xTj;
22434  n3 = xF[0] - xPj;
22435  n4 = MW[1] - Mstar;
22436  n5 = MW[2] - Mstar;
22437  n6 = MW[3] - Mstar;
22438  n7 = MW[4] - Mstar;
22439  n8 = MW[5] - Mstar;
22440  n9 = MW[6] - Mstar;
22441  n10 = MW[7] - Mstar;
22442  n11 = MW[8] - Mstar;
22443  n12 = MW[9] - Mstar;
22444  n13 = log(xTj);
22445  n14 = -2;
22446  n15 = xF[0]*xPj;
22447  n16 = -Mstar;
22448  n17 = -xPj;
22449  n18 = -NP0*n14;
22450  n19 = -xTj;
22451  n20 = -n14*xF[9];
22452  n21 = pow(n0, -n14);
22453  n22 = pow(n1, -n14);
22454  n23 = pow(n4, -n14);
22455  n24 = pow(n5, -n14);
22456  n25 = pow(n6, -n14);
22457  n26 = pow(n7, -n14);
22458  n27 = pow(n8, -n14);
22459  n28 = pow(n9, -n14);
22460  n29 = pow(n10, -n14);
22461  n30 = pow(n11, -n14);
22462  n31 = pow(n12, -n14);
22463  n32 = Mstar*n1;
22464  n33 = -n1*n14;
22465  n34 = pow(alpha, NP0*n0);
22466  n35 = n15 + n19*xF[0];
22467  n36 = n15 + n17*xTj;
22468  n37 = pow(alpha, NP0*n4);
22469  n38 = pow(alpha, NP0*n5);
22470  n39 = pow(alpha, NP0*n6);
22471  n40 = pow(alpha, NP0*n7);
22472  n41 = pow(alpha, NP0*n8);
22473  n42 = pow(alpha, NP0*n9);
22474  n43 = pow(alpha, NP0*n10);
22475  n44 = pow(alpha, NP0*n11);
22476  n45 = pow(alpha, NP0*n12);
22477  n46 = -MW[0]*n1;
22478  n47 = n2/n3;
22479  n48 = -n22;
22480  n49 = -n34 + 1;
22481  n50 = -n37 + 1;
22482  n51 = pow(alpha, n0*n18);
22483  n52 = pow(n35, -n14);
22484  n53 = pow(n36, -n14);
22485  n54 = -n38 + 1;
22486  n55 = -n39 + 1;
22487  n56 = -n40 + 1;
22488  n57 = -n41 + 1;
22489  n58 = -n42 + 1;
22490  n59 = -n43 + 1;
22491  n60 = -n44 + 1;
22492  n61 = -n45 + 1;
22493  n62 = -n34;
22494  n63 = -n47;
22495  n64 = 1/(n0*n1);
22496  n65 = n0*n22;
22497  n66 = n57*xF[5];
22498  n67 = n61*xF[9];
22499  n68 = n55*xF[3];
22500  n69 = n38*n5;
22501  n70 = n41*n8;
22502  n71 = n59*xF[7];
22503  n72 = n50*xF[1];
22504  n73 = n60*xF[8];
22505  n74 = n42*n9;
22506  n75 = n39*n6;
22507  n76 = n37*n4;
22508  n77 = n40*n7;
22509  n78 = n58*xF[6];
22510  n79 = n10*n43;
22511  n80 = n11*n44;
22512  n81 = log((-1.0 + xPj/xF[0])/n2);
22513  n82 = n1*n12*n45;
22514  n83 = n1*n80;
22515  n84 = n0*n1*n34;
22516  n85 = n1*n79;
22517  n86 = n36/n35;
22518  n87 = n21*n51;
22519  n88 = n22*n24*n38;
22520  n89 = n22*n26*n40;
22521  n90 = n21*n22*n34;
22522  n91 = n22*n30*n44;
22523  n92 = n22*n31*n45;
22524  n93 = n22*n29*n43;
22525  n94 = n22*n25*n39;
22526  n95 = n22*n28*n42;
22527  n96 = n22*n23*n37;
22528  n97 = n62*n86 + 1;
22529  n98 = pow(n97, -n14);
22530  n99 = n13 + n32 + n46 + n81;
22531  n100 = n34*n86/n97;
22532  n101 = n64*(n99 - log(n97)) + 1;
22533  n102 = pow(alpha, n0*n101);
22534  n103 = pow(alpha, n101*n4);
22535  n104 = pow(alpha, n101*n5);
22536  n105 = pow(alpha, n101*n6);
22537  n106 = pow(alpha, n101*n7);
22538  n107 = pow(alpha, n101*n8);
22539  n108 = pow(alpha, n101*n9);
22540  n109 = pow(alpha, n10*n101);
22541  n110 = pow(alpha, n101*n11);
22542  n111 = pow(alpha, n101*n12);
22543  n112 = n4/n103;
22544  n113 = n12/n111;
22545  n114 = n11/n110;
22546  n115 = n7/n106;
22547  n116 = n6/n105;
22548  n117 = n10/n109;
22549  n118 = n9/n108;
22550  n119 = n8/n107;
22551  n120 = n0/n102;
22552  n121 = n5/n104;
22553  n122 = n28/n108;
22554  n123 = n21/n102;
22555  n124 = n24/n104;
22556  n125 = n0*n121;
22557  n126 = n49 - 1 + 1.0/n102;
22558  n127 = n50 - 1 + 1.0/n103;
22559  n128 = n54 - 1 + 1.0/n104;
22560  n129 = n55 - 1 + 1.0/n105;
22561  n130 = n56 - 1 + 1.0/n106;
22562  n131 = n57 - 1 + 1.0/n107;
22563  n132 = n58 - 1 + 1.0/n108;
22564  n133 = n59 - 1 + 1.0/n109;
22565  n134 = n60 - 1 + 1.0/n110;
22566  n135 = n61 - 1 + 1.0/n111;
22567  n136 = pow(n126, -n14);
22568  n137 = pow(n127, -n14);
22569  n138 = pow(n128, -n14);
22570  n139 = pow(n129, -n14);
22571  n140 = pow(n130, -n14);
22572  n141 = pow(n131, -n14);
22573  n142 = pow(n132, -n14);
22574  n143 = pow(n133, -n14);
22575  n144 = pow(n134, -n14);
22576  n145 = pow(n135, -n14);
22577  n146 = pow(n126, 3);
22578  n147 = pow(n127, 3);
22579  n148 = pow(n128, 3);
22580  n149 = pow(n129, 3);
22581  n150 = pow(n130, 3);
22582  n151 = pow(n131, 3);
22583  n152 = pow(n132, 3);
22584  n153 = pow(n133, 3);
22585  n154 = pow(n134, 3);
22586  n155 = pow(n135, 3);
22587  n156 = xF[2]/n128;
22588  n157 = xF[9]/n135;
22589  n158 = xF[0]/n126;
22590  n159 = xF[8]/n134;
22591  n160 = xF[6]/n132;
22592  n161 = xF[7]/n133;
22593  n162 = xF[1]/n127;
22594  n163 = xF[4]/n130;
22595  n164 = xF[3]/n129;
22596  n165 = xF[0]/n136;
22597  n166 = -1/n140;
22598  n167 = n1*xF[5]/n131;
22599  n168 = n1*n164;
22600  n169 = n54/n148;
22601  n170 = n54/n138;
22602  n171 = n49*xF[0]/n146;
22603  n172 = n22*n27*n41*xF[5]/n131;
22604  n173 = n0*n1*n158*n47*n62;
22605  n174 = n158*n47*n90;
22606  n175 = n162*n47*n96;
22607  n176 = n156*n47*n88;
22608  n177 = n164*n47*n94;
22609  n178 = n163*n47*n89;
22610  n179 = n172*n47;
22611  n180 = n160*n47*n95;
22612  n181 = n161*n47*n93;
22613  n182 = n159*n47*n91;
22614  n183 = n157*n47*n92;
22615  n184 = 0.5*n174;
22616  n185 = 1 + n86/(n102*n97);
22617  n186 = n185*n49;
22618  n187 = n84 + n84*n86/(n102*n97);
22619  n188 = n1*n100*n112 + n1*n76;
22620  n189 = n1*n100*n121 + n1*n69;
22621  n190 = n1*n100*n116 + n1*n75;
22622  n191 = n1*n100*n115 + n1*n77;
22623  n192 = n1*n100*n119 + n1*n70;
22624  n193 = n1*n100*n118 + n1*n74;
22625  n194 = n1*n100*n117 + n85;
22626  n195 = n1*n100*n114 + n83;
22627  n196 = n1*n100*n113 + n82;
22628  n197 = pow(n187, -n14);
22629  n198 = pow(n188, -n14);
22630  n199 = pow(n189, -n14);
22631  n200 = pow(n190, -n14);
22632  n201 = pow(n191, -n14);
22633  n202 = pow(n192, -n14);
22634  n203 = pow(n193, -n14);
22635  n204 = pow(n194, -n14);
22636  n205 = pow(n195, -n14);
22637  n206 = pow(n196, -n14);
22638  n207 = n189*xF[2];
22639  n208 = n0*n33*n34 + n100*n120*n33;
22640  n209 = n199*xF[2];
22641  n210 = n90 + n86*n90/(n102*n97);
22642  n211 = n100*n123*n48 + n21*n34*n48;
22643  n212 = n187*n49;
22644  n213 = n191*n56*xF[4];
22645  n214 = n210*n49;
22646  n215 = n211*n49;
22647  n216 = n192/n141;
22648  n217 = n188/n137;
22649  n218 = n190/n139;
22650  n219 = n194/n143;
22651  n220 = n195/n144;
22652  n221 = n196/n145;
22653  n222 = n204/n153;
22654  n223 = n200/n149;
22655  n224 = n205/n154;
22656  n225 = n193*xF[6]/n142;
22657  n226 = n206/n155;
22658  n227 = n191*xF[4]/n140;
22659  n228 = n198/n147;
22660  n229 = n203/n152;
22661  n230 = n201*n56*xF[4]/n150;
22662  n231 = n165*n212*n47;
22663  n232 = n0*n165*n33*n34*n47*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84);
22664  n233 = n33*n47*n76*xF[1]*(pow(alpha, NP0*n0 - n101*n4)*n1*n4*n86/n97 + n1*n76)/n137;
22665  n234 = n33*n47*n69*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n1*n5*n86/n97 + n1*n69)/n138;
22666  n235 = n33*n47*n75*xF[3]*(pow(alpha, NP0*n0 - n101*n6)*n1*n6*n86/n97 + n1*n75)/n139;
22667  n236 = n33*n47*n77*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n1*n7*n86/n97 + n1*n77)/n140;
22668  n237 = n33*n47*n70*xF[5]*(pow(alpha, NP0*n0 - n101*n8)*n1*n8*n86/n97 + n1*n70)/n141;
22669  n238 = n33*n47*n74*xF[6]*(pow(alpha, NP0*n0 - n101*n9)*n1*n86*n9/n97 + n1*n74)/n142;
22670  n239 = n33*n47*n79*xF[7]*(pow(alpha, NP0*n0 - n10*n101)*n1*n10*n86/n97 + n85)/n143;
22671  n240 = n33*n47*n80*xF[8]*(pow(alpha, NP0*n0 - n101*n11)*n1*n11*n86/n97 + n83)/n144;
22672  n241 = n20*n47*n82*(pow(alpha, NP0*n0 - n101*n12)*n1*n12*n86/n97 + n82)/n145;
22673  n242 = 1.0*n165*n187*n47*n84;
22674  n243 = 0.5*n187*n208;
22675  n244 = n184 + n242;
22676  n245 = n100*n112*n65 + n112*n51*n53*n65/(n52*n98) + n96 + n23*n48*n51*n53/(n103*n52*n98);
22677  n246 = n100*n121*n65 + n121*n51*n53*n65/(n52*n98) + n124*n48*n51*n53/(n52*n98) + n88;
22678  n247 = n100*n116*n65 + n116*n51*n53*n65/(n52*n98) + n94 + n25*n48*n51*n53/(n105*n52*n98);
22679  n248 = n100*n115*n65 + n115*n51*n53*n65/(n52*n98) + n89 + n26*n48*n51*n53/(n106*n52*n98);
22680  n249 = n100*n119*n65 + n119*n51*n53*n65/(n52*n98) + n22*n27*n41 + n27*n48*n51*n53/(n107*n52*n98);
22681  n250 = n100*n118*n65 + n118*n51*n53*n65/(n52*n98) + n122*n48*n51*n53/(n52*n98) + n95;
22682  n251 = n100*n117*n65 + n117*n51*n53*n65/(n52*n98) + n93 + n29*n48*n51*n53/(n109*n52*n98);
22683  n252 = n100*n114*n65 + n114*n51*n53*n65/(n52*n98) + n91 + n30*n48*n51*n53/(n110*n52*n98);
22684  n253 = n100*n113*n65 + n113*n51*n53*n65/(n52*n98) + n92 + n31*n48*n51*n53/(n111*n52*n98);
22685  n254 = n63*n72*(pow(alpha, n0*n18 - n101*n4)*n23*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n4)*n4*n53*n65/(n52*n98) + n100*n112*n65 + n96)/n137;
22686  n255 = n63*n68*(pow(alpha, n0*n18 - n101*n6)*n25*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n6)*n53*n6*n65/(n52*n98) + n100*n116*n65 + n94)/n139;
22687  n256 = n56*n63*xF[4]*(pow(alpha, n0*n18 - n101*n7)*n26*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n7)*n53*n65*n7/(n52*n98) + n100*n115*n65 + n89)/n140;
22688  n257 = n63*n66*(pow(alpha, n0*n18 - n101*n8)*n27*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n8)*n53*n65*n8/(n52*n98) + n100*n119*n65 + n22*n27*n41)/n141;
22689  n258 = n63*n71*(pow(alpha, n0*n18 - n10*n101)*n10*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n10*n101)*n29*n48*n53/(n52*n98) + n100*n117*n65 + n93)/n143;
22690  n259 = n63*n73*(pow(alpha, n0*n18 - n101*n11)*n11*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n11)*n30*n48*n53/(n52*n98) + n100*n114*n65 + n91)/n144;
22691  n260 = n63*n67*(pow(alpha, n0*n18 - n101*n12)*n12*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n12)*n31*n48*n53/(n52*n98) + n100*n113*n65 + n92)/n145;
22692  n261 = xTj*(n1*n156*n47*n69 + n1*n160*n47*n74 + n1*n162*n47*n76 + n1*n163*n47*n77 + n157*n47*n82 + n158*n47*n84 + n159*n47*n83 + n161*n47*n85 + n165*n212*n63 + n167*n47*n70 + n168*n47*n75 + n170*n207*n63 + n216*n63*n66 + n217*n63*n72 + n218*n63*n68 + n219*n63*n71 + n220*n63*n73 + n221*n63*n67 + n193*n63*n78/n142 + n213*n63/n140);
22693  n262 = n173 + n231 + n261;
22694  n263 = n174 + n175 + n176 + n177 + n178 + n179 + n180 + n181 + n182 + n183 + n232 + n233 + n234 + n235 + n236 + n237 + n238 + n239 + n240 + n241 + n254 + n255 + n256 + n257 + n258 + n259 + n260;
22695  n264 = n165*n215*n47 + n169*n207*n63*(n100*n121*n33 + n33*n69) + n170*n47*xF[2]*(pow(alpha, n0*n18 - n101*n5)*n0*n48*n5*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n5)*n22*n24*n53/(n52*n98) + n100*n125*n48 + n24*n38*n48) + n171*n187*n208*n63 + n263 + n196*n63*n67*(n100*n113*n33 + n12*n33*n45)/n155 + n195*n63*n73*(n100*n114*n33 + n33*n80)/n154 + n194*n63*n71*(n100*n117*n33 + n33*n79)/n153 + n193*n63*n78*(n100*n118*n33 + n33*n74)/n152 + n192*n63*n66*(n100*n119*n33 + n33*n70)/n151 + n213*n63*(n100*n115*n33 + n33*n77)/n150 + n190*n63*n68*(n100*n116*n33 + n33*n75)/n149 + n188*n63*n72*(n100*n112*n33 + n33*n76)/n147 + n47*n78*(pow(alpha, n0*n18 - n101*n9)*n0*n48*n53*n9/(n52*n98) + pow(alpha, n0*n18 - n101*n9)*n22*n28*n53/(n52*n98) + n0*n100*n118*n48 + n28*n42*n48)/n142;
22696  NP_b = -n165*n186*n47*n84 - n173 - n18*(-0.5*n165*n47*n49*(pow(alpha, NP0*n0 - n0*n101)*n21*n22*n86/n97 + n90) + 1.0*n165*n47*n84*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84) - 1.0*n171*n197*n47 + n184 - 0.5*xTj*(n14*n169*n209*n47 + n14*n171*n197*n47 + n14*n222*n47*n71 + n14*n223*n47*n68 + n14*n224*n47*n73 + n14*n226*n47*n67 + n14*n228*n47*n72 + n14*n229*n47*n78 + n14*n230*n47 + n14*n202*n47*n66/n151 + n165*n49*n63*(pow(alpha, NP0*n0 - n0*n101)*n21*n22*n86/n97 + n90) + n170*n63*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n5*n65*n86/n97 + pow(alpha, n0*n18 - n101*n5)*n24*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n5)*n5*n53*n65/(n52*n98) + n88) + n174 + n175 + n176 + n177 + n178 + n179 + n180 + n181 + n182 + n183 + n232 + n233 + n234 + n235 + n236 + n237 + n238 + n239 + n240 + n241 + n63*n67*(pow(alpha, NP0*n0 - n101*n12)*n12*n65*n86/n97 + pow(alpha, n0*n18 - n101*n12)*n12*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n12)*n31*n48*n53/(n52*n98) + n92)/n145 + n63*n73*(pow(alpha, NP0*n0 - n101*n11)*n11*n65*n86/n97 + pow(alpha, n0*n18 - n101*n11)*n11*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n11)*n30*n48*n53/(n52*n98) + n91)/n144 + n63*n71*(pow(alpha, NP0*n0 - n10*n101)*n10*n65*n86/n97 + pow(alpha, n0*n18 - n10*n101)*n10*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n10*n101)*n29*n48*n53/(n52*n98) + n93)/n143 + n63*n78*(pow(alpha, NP0*n0 - n101*n9)*n65*n86*n9/n97 + pow(alpha, n0*n18 - n101*n9)*n28*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n9)*n53*n65*n9/(n52*n98) + n95)/n142 + n63*n66*(pow(alpha, NP0*n0 - n101*n8)*n65*n8*n86/n97 + pow(alpha, n0*n18 - n101*n8)*n27*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n8)*n53*n65*n8/(n52*n98) + n22*n27*n41)/n141 + n56*n63*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n65*n7*n86/n97 + pow(alpha, n0*n18 - n101*n7)*n26*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n7)*n53*n65*n7/(n52*n98) + n89)/n140 + n63*n68*(pow(alpha, NP0*n0 - n101*n6)*n6*n65*n86/n97 + pow(alpha, n0*n18 - n101*n6)*n25*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n6)*n53*n6*n65/(n52*n98) + n94)/n139 + n63*n72*(pow(alpha, NP0*n0 - n101*n4)*n4*n65*n86/n97 + pow(alpha, n0*n18 - n101*n4)*n23*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n4)*n4*n53*n65/(n52*n98) + n96)/n137)) - n47*xTj*(n1*n156*n69 + n1*n160*n74 + n1*n162*n76 + n1*n163*n77 + n157*n82 + n158*n84 + n159*n83 + n161*n85 - n165*n212 + n166*n213 + n167*n70 + n168*n75 - n170*n207 - n216*n66 - n217*n72 - n218*n68 - n219*n71 - n220*n73 - n221*n67 - n193*n78/n142);
22697  NP_2a = -n47*(n14*n171*pow(n185, -n14)*n48*n87 - 1.0*n158*n90 - 2.0*n165*n185*n22*n87 + n165*n186*n90 + 1.0*xTj*(n0*n165*n33*n34*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84) + n14*n169*n209 + n14*n171*n197 + n14*n222*n71 + n14*n223*n68 + n14*n224*n73 + n14*n226*n67 + n14*n228*n72 + n14*n229*n78 + n14*n230 + n14*n202*n66/n151 + n156*n88 + n157*n92 + n158*n90 + n159*n91 + n160*n95 + n161*n93 + n162*n96 + n163*n89 + n164*n94 - n165*n214 + n166*n56*xF[4]*(pow(alpha, n0*n18 - n101*n7)*n26*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n7)*n53*n65*n7/(n52*n98) + n100*n115*n65 + n89) - n170*xF[2]*(pow(alpha, n0*n18 - n101*n5)*n24*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n5)*n5*n53*n65/(n52*n98) + n100*n121*n65 + n88) + n172 + n20*n82*(pow(alpha, NP0*n0 - n101*n12)*n1*n12*n86/n97 + n82)/n145 - n67*(pow(alpha, n0*n18 - n101*n12)*n12*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n12)*n31*n48*n53/(n52*n98) + n100*n113*n65 + n92)/n145 + n33*n80*xF[8]*(pow(alpha, NP0*n0 - n101*n11)*n1*n11*n86/n97 + n83)/n144 - n73*(pow(alpha, n0*n18 - n101*n11)*n11*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n11)*n30*n48*n53/(n52*n98) + n100*n114*n65 + n91)/n144 + n33*n79*xF[7]*(pow(alpha, NP0*n0 - n10*n101)*n1*n10*n86/n97 + n85)/n143 - n71*(pow(alpha, n0*n18 - n10*n101)*n10*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n10*n101)*n29*n48*n53/(n52*n98) + n100*n117*n65 + n93)/n143 + n33*n74*xF[6]*(pow(alpha, NP0*n0 - n101*n9)*n1*n86*n9/n97 + n1*n74)/n142 - n78*(pow(alpha, n0*n18 - n101*n9)*n28*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n9)*n53*n65*n9/(n52*n98) + n100*n118*n65 + n95)/n142 + n33*n70*xF[5]*(pow(alpha, NP0*n0 - n101*n8)*n1*n8*n86/n97 + n1*n70)/n141 - n66*(pow(alpha, n0*n18 - n101*n8)*n27*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n8)*n53*n65*n8/(n52*n98) + n100*n119*n65 + n22*n27*n41)/n141 + n33*n77*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n1*n7*n86/n97 + n1*n77)/n140 + n33*n75*xF[3]*(pow(alpha, NP0*n0 - n101*n6)*n1*n6*n86/n97 + n1*n75)/n139 - n68*(pow(alpha, n0*n18 - n101*n6)*n25*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n6)*n53*n6*n65/(n52*n98) + n100*n116*n65 + n94)/n139 + n33*n69*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n1*n5*n86/n97 + n1*n69)/n138 + n33*n76*xF[1]*(pow(alpha, NP0*n0 - n101*n4)*n1*n4*n86/n97 + n1*n76)/n137 - n72*(pow(alpha, n0*n18 - n101*n4)*n23*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n4)*n4*n53*n65/(n52*n98) + n100*n112*n65 + n96)/n137));
22698  NP_sqrt_base = (-NP0*n262 - n19*(-n47*n49*xF[0]/(n49 - 1 + pow(alpha, -n0*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n54*xF[2]/(n54 - 1 + pow(alpha, -n5*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n56*xF[4]/(n56 - 1 + pow(alpha, -n7*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n66/(n57 - 1 + pow(alpha, -n8*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n67/(n61 - 1 + pow(alpha, -n12*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n68/(n55 - 1 + pow(alpha, -n6*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n71/(n59 - 1 + pow(alpha, -n10*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n72/(n50 - 1 + pow(alpha, -n4*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n73/(n60 - 1 + pow(alpha, -n11*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1))) - n47*n78/(n58 - 1 + pow(alpha, -n9*(n64*(n99 - log(n36*n62/(n15 - xF[0]*xTj) + 1)) + 1)))) - n49*n63*xF[0]/n126 - pow(NP0, -n14)*(1.0*n165*n187*n47*n84 + 0.5*n165*n215*n47 - n171*n243*n47 + 0.5*n174 - 0.5*n264*xTj))*(-n14*n19*(n165*n47*n49*(pow(alpha, NP0*n0 - n0*n101)*n21*n22*(-n15 + n17*n19)/(n35*n97) + n21*n34*n48) + n169*n63*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n1*n5*n86/n97 + n1*n69)*(pow(alpha, NP0*n0 - n101*n5)*n33*n5*n86/n97 + n33*n69) + n170*n47*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n0*n48*n5*n86/n97 + pow(alpha, n0*n18 - n101*n5)*n0*n48*n5*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n5)*n22*n24*n53/(n52*n98) + n24*n38*n48) + n171*n63*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84)*(pow(alpha, NP0*n0 - n0*n101)*n0*n33*n86/n97 + n0*n33*n34) + n174 + n175 + n176 + n177 + n178 + n179 + n180 + n181 + n182 + n183 + n232 + n233 + n234 + n235 + n236 + n237 + n238 + n239 + n240 + n241 + n63*n67*(pow(alpha, NP0*n0 - n101*n12)*n1*n12*n86/n97 + n82)*(pow(alpha, NP0*n0 - n101*n12)*n12*n33*n86/n97 + n12*n33*n45)/n155 + n63*n73*(pow(alpha, NP0*n0 - n101*n11)*n1*n11*n86/n97 + n83)*(pow(alpha, NP0*n0 - n101*n11)*n11*n33*n86/n97 + n33*n80)/n154 + n63*n71*(pow(alpha, NP0*n0 - n10*n101)*n1*n10*n86/n97 + n85)*(pow(alpha, NP0*n0 - n10*n101)*n10*n33*n86/n97 + n33*n79)/n153 + n63*n78*(pow(alpha, NP0*n0 - n101*n9)*n1*n86*n9/n97 + n1*n74)*(pow(alpha, NP0*n0 - n101*n9)*n33*n86*n9/n97 + n33*n74)/n152 + n63*n66*(pow(alpha, NP0*n0 - n101*n8)*n1*n8*n86/n97 + n1*n70)*(pow(alpha, NP0*n0 - n101*n8)*n33*n8*n86/n97 + n33*n70)/n151 + n56*n63*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n1*n7*n86/n97 + n1*n77)*(pow(alpha, NP0*n0 - n101*n7)*n33*n7*n86/n97 + n33*n77)/n150 + n63*n68*(pow(alpha, NP0*n0 - n101*n6)*n1*n6*n86/n97 + n1*n75)*(pow(alpha, NP0*n0 - n101*n6)*n33*n6*n86/n97 + n33*n75)/n149 + n63*n72*(pow(alpha, NP0*n0 - n101*n4)*n1*n4*n86/n97 + n1*n76)*(pow(alpha, NP0*n0 - n101*n4)*n33*n4*n86/n97 + n33*n76)/n147 + n63*n67*(pow(alpha, NP0*n0 - n101*n12)*n12*n65*n86/n97 + pow(alpha, n0*n18 - n101*n12)*n12*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n12)*n31*n48*n53/(n52*n98) + n92)/n145 + n63*n73*(pow(alpha, NP0*n0 - n101*n11)*n11*n65*n86/n97 + pow(alpha, n0*n18 - n101*n11)*n11*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n11)*n30*n48*n53/(n52*n98) + n91)/n144 + n63*n71*(pow(alpha, NP0*n0 - n10*n101)*n10*n65*n86/n97 + pow(alpha, n0*n18 - n10*n101)*n10*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n10*n101)*n29*n48*n53/(n52*n98) + n93)/n143 + n47*n78*(pow(alpha, NP0*n0 - n101*n9)*n0*n48*n86*n9/n97 + pow(alpha, n0*n18 - n101*n9)*n0*n48*n53*n9/(n52*n98) + pow(alpha, n0*n18 - n101*n9)*n22*n28*n53/(n52*n98) + n28*n42*n48)/n142 + n63*n66*(pow(alpha, NP0*n0 - n101*n8)*n65*n8*n86/n97 + pow(alpha, n0*n18 - n101*n8)*n27*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n8)*n53*n65*n8/(n52*n98) + n22*n27*n41)/n141 + n56*n63*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n65*n7*n86/n97 + pow(alpha, n0*n18 - n101*n7)*n26*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n7)*n53*n65*n7/(n52*n98) + n89)/n140 + n63*n68*(pow(alpha, NP0*n0 - n101*n6)*n6*n65*n86/n97 + pow(alpha, n0*n18 - n101*n6)*n25*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n6)*n53*n6*n65/(n52*n98) + n94)/n139 + n63*n72*(pow(alpha, NP0*n0 - n101*n4)*n4*n65*n86/n97 + pow(alpha, n0*n18 - n101*n4)*n23*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n4)*n4*n53*n65/(n52*n98) + n96)/n137) + 4.0*n165*n187*n47*n84 + 2.0*n165*n215*n47 - 4.0*n171*n197*n47 + 2.0*n174) + pow(-n18*(0.5*n165*n47*n49*(pow(alpha, NP0*n0 - n0*n101)*n21*n22*(-n15 + n17*n19)/(n35*n97) + n21*n34*n48) + 1.0*n165*n47*n84*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84) - 0.5*n171*n47*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84)*(pow(alpha, NP0*n0 - n0*n101)*n0*n33*n86/n97 + n0*n33*n34) + n184 - 0.5*xTj*(n165*n47*n49*(pow(alpha, NP0*n0 - n0*n101)*n21*n22*(-n15 + n17*n19)/(n35*n97) + n21*n34*n48) + n169*n63*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n1*n5*n86/n97 + n1*n69)*(pow(alpha, NP0*n0 - n101*n5)*n33*n5*n86/n97 + n33*n69) + n170*n47*xF[2]*(pow(alpha, NP0*n0 - n101*n5)*n0*n48*n5*n86/n97 + pow(alpha, n0*n18 - n101*n5)*n0*n48*n5*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n5)*n22*n24*n53/(n52*n98) + n24*n38*n48) + n171*n63*(pow(alpha, NP0*n0 - n0*n101)*n0*n1*n86/n97 + n84)*(pow(alpha, NP0*n0 - n0*n101)*n0*n33*n86/n97 + n0*n33*n34) + n174 + n175 + n176 + n177 + n178 + n179 + n180 + n181 + n182 + n183 + n232 + n233 + n234 + n235 + n236 + n237 + n238 + n239 + n240 + n241 + n63*n67*(pow(alpha, NP0*n0 - n101*n12)*n1*n12*n86/n97 + n82)*(pow(alpha, NP0*n0 - n101*n12)*n12*n33*n86/n97 + n12*n33*n45)/n155 + n63*n73*(pow(alpha, NP0*n0 - n101*n11)*n1*n11*n86/n97 + n83)*(pow(alpha, NP0*n0 - n101*n11)*n11*n33*n86/n97 + n33*n80)/n154 + n63*n71*(pow(alpha, NP0*n0 - n10*n101)*n1*n10*n86/n97 + n85)*(pow(alpha, NP0*n0 - n10*n101)*n10*n33*n86/n97 + n33*n79)/n153 + n63*n78*(pow(alpha, NP0*n0 - n101*n9)*n1*n86*n9/n97 + n1*n74)*(pow(alpha, NP0*n0 - n101*n9)*n33*n86*n9/n97 + n33*n74)/n152 + n63*n66*(pow(alpha, NP0*n0 - n101*n8)*n1*n8*n86/n97 + n1*n70)*(pow(alpha, NP0*n0 - n101*n8)*n33*n8*n86/n97 + n33*n70)/n151 + n56*n63*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n1*n7*n86/n97 + n1*n77)*(pow(alpha, NP0*n0 - n101*n7)*n33*n7*n86/n97 + n33*n77)/n150 + n63*n68*(pow(alpha, NP0*n0 - n101*n6)*n1*n6*n86/n97 + n1*n75)*(pow(alpha, NP0*n0 - n101*n6)*n33*n6*n86/n97 + n33*n75)/n149 + n63*n72*(pow(alpha, NP0*n0 - n101*n4)*n1*n4*n86/n97 + n1*n76)*(pow(alpha, NP0*n0 - n101*n4)*n33*n4*n86/n97 + n33*n76)/n147 + n63*n67*(pow(alpha, NP0*n0 - n101*n12)*n12*n65*n86/n97 + pow(alpha, n0*n18 - n101*n12)*n12*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n12)*n31*n48*n53/(n52*n98) + n92)/n145 + n63*n73*(pow(alpha, NP0*n0 - n101*n11)*n11*n65*n86/n97 + pow(alpha, n0*n18 - n101*n11)*n11*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n101*n11)*n30*n48*n53/(n52*n98) + n91)/n144 + n63*n71*(pow(alpha, NP0*n0 - n10*n101)*n10*n65*n86/n97 + pow(alpha, n0*n18 - n10*n101)*n10*n53*n65/(n52*n98) + pow(alpha, n0*n18 - n10*n101)*n29*n48*n53/(n52*n98) + n93)/n143 + n47*n78*(pow(alpha, NP0*n0 - n101*n9)*n0*n48*n86*n9/n97 + pow(alpha, n0*n18 - n101*n9)*n0*n48*n53*n9/(n52*n98) + pow(alpha, n0*n18 - n101*n9)*n22*n28*n53/(n52*n98) + n28*n42*n48)/n142 + n63*n66*(pow(alpha, NP0*n0 - n101*n8)*n65*n8*n86/n97 + pow(alpha, n0*n18 - n101*n8)*n27*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n8)*n53*n65*n8/(n52*n98) + n22*n27*n41)/n141 + n56*n63*xF[4]*(pow(alpha, NP0*n0 - n101*n7)*n65*n7*n86/n97 + pow(alpha, n0*n18 - n101*n7)*n26*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n7)*n53*n65*n7/(n52*n98) + n89)/n140 + n63*n68*(pow(alpha, NP0*n0 - n101*n6)*n6*n65*n86/n97 + pow(alpha, n0*n18 - n101*n6)*n25*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n6)*n53*n6*n65/(n52*n98) + n94)/n139 + n63*n72*(pow(alpha, NP0*n0 - n101*n4)*n4*n65*n86/n97 + pow(alpha, n0*n18 - n101*n4)*n23*n48*n53/(n52*n98) + pow(alpha, n0*n18 - n101*n4)*n4*n53*n65/(n52*n98) + n96)/n137)) - n262, -n14);
22699  NP_sqrt_base = fabs(NP_sqrt_base);
22700  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
22701  NT1 = n64*(n99 - log(-pow(alpha, NP1*n0)*n86 + 1));
22702  g0 = MW[1] - Mstar;
22703  g1 = MW[0] - Mstar;
22704  g2 = NT1 + 1;
22705  g3 = xPj - xTj;
22706  g4 = MW[2] - Mstar;
22707  g5 = MW[3] - Mstar;
22708  g6 = MW[4] - Mstar;
22709  g7 = MW[5] - Mstar;
22710  g8 = MW[6] - Mstar;
22711  g9 = MW[7] - Mstar;
22712  g10 = MW[8] - Mstar;
22713  g11 = MW[9] - Mstar;
22714  g12 = xF[0] - xTj;
22715  g13 = xF[0] - xPj;
22716  g14 = -xTj;
22717  g15 = xPj/xF[1];
22718  g16 = pow(alpha, -g1);
22719  g17 = pow(alpha, -g0);
22720  g18 = pow(alpha, -g4);
22721  g19 = pow(alpha, -g5);
22722  g20 = pow(alpha, -g6);
22723  g21 = pow(alpha, -g7);
22724  g22 = pow(alpha, -g8);
22725  g23 = pow(alpha, -g9);
22726  g24 = pow(alpha, -g10);
22727  g25 = pow(alpha, -g11);
22728  g26 = log(xF[0]/xF[1]);
22729  g27 = -g2;
22730  g28 = pow(alpha, NP1*g0);
22731  g29 = pow(alpha, NP1*g1);
22732  g30 = log(g16);
22733  g31 = pow(alpha, NP1*g4);
22734  g32 = pow(alpha, NP1*g5);
22735  g33 = pow(alpha, NP1*g6);
22736  g34 = pow(alpha, NP1*g7);
22737  g35 = pow(alpha, NP1*g8);
22738  g36 = pow(alpha, NP1*g9);
22739  g37 = pow(alpha, NP1*g10);
22740  g38 = pow(alpha, NP1*g11);
22741  g39 = -g26;
22742  g40 = g12/g3;
22743  g41 = g3/g12;
22744  g42 = -g28 + 1;
22745  g43 = -g28 + 1;
22746  g44 = -g29 + 1;
22747  g45 = -g31 + 1;
22748  g46 = -g32 + 1;
22749  g47 = -g33 + 1;
22750  g48 = -g34 + 1;
22751  g49 = -g35 + 1;
22752  g50 = -g36 + 1;
22753  g51 = -g37 + 1;
22754  g52 = -g38 + 1;
22755  g53 = -g29;
22756  g54 = -g31;
22757  g55 = -g32;
22758  g56 = -g33;
22759  g57 = -g34;
22760  g58 = -g35;
22761  g59 = -g36;
22762  g60 = -g37;
22763  g61 = -g38;
22764  g62 = -1.0*g26;
22765  g63 = -g3/g13;
22766  g64 = g13/(g3*xF[1]);
22767  g65 = pow(alpha, g0*g27) - 1;
22768  g66 = pow(alpha, g0*g27) - 1;
22769  g67 = pow(alpha, g1*g27) - 1;
22770  g68 = pow(alpha, g27*g4) - 1;
22771  g69 = pow(alpha, g27*g5) - 1;
22772  g70 = pow(alpha, g27*g6) - 1;
22773  g71 = pow(alpha, g27*g7) - 1;
22774  g72 = pow(alpha, g27*g8) - 1;
22775  g73 = pow(alpha, g27*g9) - 1;
22776  g74 = pow(alpha, g10*g27) - 1;
22777  g75 = pow(alpha, g11*g27) - 1;
22778  g76 = -pow(alpha, g1*g27);
22779  g77 = -pow(alpha, g27*g4);
22780  g78 = -pow(alpha, g27*g5);
22781  g79 = -pow(alpha, g27*g6);
22782  g80 = -pow(alpha, g27*g7);
22783  g81 = -pow(alpha, g27*g8);
22784  g82 = -pow(alpha, g27*g9);
22785  g83 = -pow(alpha, g10*g27);
22786  g84 = -pow(alpha, g11*g27);
22787  g85 = g43 + g66;
22788  g86 = -g29 - g76;
22789  g87 = -g31 - g77;
22790  g88 = -g32 - g78;
22791  g89 = -g33 - g79;
22792  g90 = -g34 - g80;
22793  g91 = -g35 - g81;
22794  g92 = -g36 - g82;
22795  g93 = -g37 - g83;
22796  g94 = -g38 - g84;
22797  g95 = pow(alpha, g1*g27) + g53;
22798  g96 = g43 + g66;
22799  g97 = pow(alpha, g27*g4) + g54;
22800  g98 = pow(alpha, g27*g5) + g55;
22801  g99 = pow(alpha, g27*g6) + g56;
22802  g100 = pow(alpha, g27*g7) + g57;
22803  g101 = pow(alpha, g27*g8) + g58;
22804  g102 = pow(alpha, g27*g9) + g59;
22805  g103 = pow(alpha, g10*g27) + g60;
22806  g104 = pow(alpha, g11*g27) + g61;
22807  g105 = xF[9]/g104;
22808  g106 = xF[8]/g103;
22809  g107 = xF[1]/g96;
22810  g108 = xF[2]/g97;
22811  g109 = xF[3]/g98;
22812  g110 = xF[6]/g101;
22813  g111 = xF[7]/g102;
22814  g112 = xF[4]/g99;
22815  g113 = xF[5]/g100;
22816  g114 = xF[0]/g95;
22817  g115 = xF[1]/g85;
22818  g116 = xF[0]/g86;
22819  g117 = xF[9]/g94;
22820  g118 = xF[4]/g89;
22821  g119 = xF[5]/g90;
22822  g120 = xF[7]/g92;
22823  g121 = xF[2]/g87;
22824  g122 = xF[3]/g88;
22825  g123 = xF[6]/g91;
22826  g124 = xF[8]/g93;
22827  g125 = g49/g91;
22828  g126 = g52/g94;
22829  g127 = g47/g89;
22830  g128 = g50/g92;
22831  g129 = g44/g86;
22832  g130 = g48/g90;
22833  g131 = g46/g88;
22834  g132 = g42/g85;
22835  g133 = g45/g87;
22836  g134 = g51/g93;
22837  g135 = g65/g85;
22838  g136 = g67/g86;
22839  g137 = g71/g90;
22840  g138 = g68/g87;
22841  g139 = g69/g88;
22842  g140 = g70/g89;
22843  g141 = g74/g93;
22844  g142 = g75/g94;
22845  g143 = g72/g91;
22846  g144 = g73/g92;
22847  g145 = log(g14*g64*g96/g43);
22848  g146 = log(g14*g64*g85/g42);
22849  g147 = log(g15*g40*g96/g66);
22850  g148 = 1.0*g145;
22851  g149 = log(g15*g40*g85/g65);
22852  g150 = 1.0*g147;
22853  g151 = -g105*g148*(g61 + 1) - g105*g150*(pow(alpha, g11*g27) - 1) - g106*g148*(g60 + 1) - g106*g150*(pow(alpha, g10*g27) - 1) - g107*g148*g43 - g107*g150*g66 - g108*g148*(g54 + 1) - g108*g150*(pow(alpha, g27*g4) - 1) - g109*g148*(g55 + 1) - g109*g150*(pow(alpha, g27*g5) - 1) - g110*g148*(g58 + 1) - g110*g150*(pow(alpha, g27*g8) - 1) - g111*g148*(g59 + 1) - g111*g150*(pow(alpha, g27*g9) - 1) - g112*g148*(g56 + 1) - g112*g150*(pow(alpha, g27*g6) - 1) - g113*g148*(g57 + 1) - g113*g150*(pow(alpha, g27*g7) - 1) - g114*g148*(g53 + 1) - g114*g150*(pow(alpha, g1*g27) - 1) - g62*xF[0] - g62*xF[1] - g62*xF[2] - g62*xF[3] - g62*xF[4] - g62*xF[5] - g62*xF[6] - g62*xF[7] - g62*xF[8] - g62*xF[9];
22854  LpF = xF[0]*(g16 + 1.0)*(g129*g146 + g136*g149 + g39)/(g30*(g16 - 1.0)) + xF[1]*(g17 + 1.0)*(g132*g146 + g135*g149 + g39)/(g30*(g17 - 1.0)) + xF[2]*(g18 + 1.0)*(g133*g146 + g138*g149 + g39)/(g30*(g18 - 1.0)) + xF[3]*(g19 + 1.0)*(g131*g146 + g139*g149 + g39)/(g30*(g19 - 1.0)) + xF[4]*(g20 + 1.0)*(g127*g146 + g140*g149 + g39)/(g30*(g20 - 1.0)) + xF[5]*(g21 + 1.0)*(g130*g146 + g137*g149 + g39)/(g30*(g21 - 1.0)) + xF[6]*(g22 + 1.0)*(g125*g146 + g143*g149 + g39)/(g30*(g22 - 1.0)) + xF[7]*(g23 + 1.0)*(g128*g146 + g144*g149 + g39)/(g30*(g23 - 1.0)) + xF[8]*(g24 + 1.0)*(g134*g146 + g141*g149 + g39)/(g30*(g24 - 1.0)) + xF[9]*(g25 + 1.0)*(g126*g146 + g142*g149 + g39)/(g30*(g25 - 1.0));
22855  PpF = g40;
22856  TpF = -g13/g3;
22857  SWUpF = g151;
22858  SWUpP = g151*g41;
22859  xP[0] = g116*g41*g67;
22860  xP[1] = g115*g41*g65;
22861  xP[2] = g121*g41*g68;
22862  xP[3] = g122*g41*g69;
22863  xP[4] = g118*g41*g70;
22864  xP[5] = g119*g41*g71;
22865  xP[6] = g123*g41*g72;
22866  xP[7] = g120*g41*g73;
22867  xP[8] = g124*g41*g74;
22868  xP[9] = g117*g41*g75;
22869  xT[0] = g116*g44*g63;
22870  xT[1] = g115*g42*g63;
22871  xT[2] = g121*g45*g63;
22872  xT[3] = g122*g46*g63;
22873  xT[4] = g118*g47*g63;
22874  xT[5] = g119*g48*g63;
22875  xT[6] = g123*g49*g63;
22876  xT[7] = g120*g50*g63;
22877  xT[8] = g124*g51*g63;
22878  xT[9] = g117*g52*g63;
22879  break;
22880  case 11:
22881  n0 = MW[0] - Mstar;
22882  n1 = log(alpha);
22883  n2 = xPj - xTj;
22884  n3 = xF[0] - xPj;
22885  n4 = MW[10] - Mstar;
22886  n5 = MW[1] - Mstar;
22887  n6 = MW[2] - Mstar;
22888  n7 = MW[3] - Mstar;
22889  n8 = MW[4] - Mstar;
22890  n9 = MW[5] - Mstar;
22891  n10 = MW[6] - Mstar;
22892  n11 = MW[7] - Mstar;
22893  n12 = MW[8] - Mstar;
22894  n13 = MW[9] - Mstar;
22895  n14 = log(xTj);
22896  n15 = -2;
22897  n16 = xF[0]*xPj;
22898  n17 = -Mstar;
22899  n18 = -xPj;
22900  n19 = -NP0*n15;
22901  n20 = -xTj;
22902  n21 = pow(n0, -n15);
22903  n22 = pow(n1, -n15);
22904  n23 = pow(n4, -n15);
22905  n24 = pow(n5, -n15);
22906  n25 = pow(n6, -n15);
22907  n26 = pow(n7, -n15);
22908  n27 = pow(n8, -n15);
22909  n28 = pow(n9, -n15);
22910  n29 = pow(n10, -n15);
22911  n30 = pow(n11, -n15);
22912  n31 = pow(n12, -n15);
22913  n32 = pow(n13, -n15);
22914  n33 = Mstar*n1;
22915  n34 = -n1*n15;
22916  n35 = n1*xF[0];
22917  n36 = pow(alpha, NP0*n0);
22918  n37 = n16 + n20*xF[0];
22919  n38 = n16 + n18*xTj;
22920  n39 = pow(alpha, NP0*n4);
22921  n40 = pow(alpha, NP0*n5);
22922  n41 = pow(alpha, NP0*n6);
22923  n42 = pow(alpha, NP0*n7);
22924  n43 = pow(alpha, NP0*n8);
22925  n44 = pow(alpha, NP0*n9);
22926  n45 = pow(alpha, NP0*n10);
22927  n46 = pow(alpha, NP0*n11);
22928  n47 = pow(alpha, NP0*n12);
22929  n48 = pow(alpha, NP0*n13);
22930  n49 = -MW[0]*n1;
22931  n50 = n2/n3;
22932  n51 = -n22;
22933  n52 = n1*n11;
22934  n53 = n1*n9;
22935  n54 = n1*n8;
22936  n55 = -n36 + 1;
22937  n56 = -n39 + 1;
22938  n57 = pow(alpha, n0*n19);
22939  n58 = pow(n37, -n15);
22940  n59 = pow(n38, -n15);
22941  n60 = -n40 + 1;
22942  n61 = -n41 + 1;
22943  n62 = -n42 + 1;
22944  n63 = -n43 + 1;
22945  n64 = -n44 + 1;
22946  n65 = -n45 + 1;
22947  n66 = -n46 + 1;
22948  n67 = -n47 + 1;
22949  n68 = -n48 + 1;
22950  n69 = -n56;
22951  n70 = -n36;
22952  n71 = -n50;
22953  n72 = n0*n22;
22954  n73 = 1/(n0*n1);
22955  n74 = n64*xF[5];
22956  n75 = n55*xF[0];
22957  n76 = n41*n6;
22958  n77 = n65*xF[6];
22959  n78 = n12*n47;
22960  n79 = n67*xF[8];
22961  n80 = n39*n4;
22962  n81 = n10*n45;
22963  n82 = n42*n7;
22964  n83 = n61*xF[2];
22965  n84 = n40*n5;
22966  n85 = n0*n36;
22967  n86 = n11*n46;
22968  n87 = n60*xF[1];
22969  n88 = n22*n30;
22970  n89 = n56*xF[10];
22971  n90 = n44*n9;
22972  n91 = log((-1.0 + xPj/xF[0])/n2);
22973  n92 = n23*n39;
22974  n93 = n1*n13*n48;
22975  n94 = n38/n37;
22976  n95 = n21*n57;
22977  n96 = n22*n27*n43;
22978  n97 = n21*n22*n36;
22979  n98 = n22*n25*n41;
22980  n99 = n22*n32*n48;
22981  n100 = n22*n26*n42;
22982  n101 = n22*n29*n45;
22983  n102 = n22*n24*n40;
22984  n103 = n50*n78*xF[8];
22985  n104 = n70*n94 + 1;
22986  n105 = pow(n104, -n15);
22987  n106 = n14 + n33 + n49 + n91;
22988  n107 = n36*n94/n104;
22989  n108 = n57*n59/(n105*n58);
22990  n109 = n108*n22;
22991  n110 = n73*(n106 - log(n104)) + 1;
22992  n111 = pow(alpha, n0*n110);
22993  n112 = pow(alpha, n110*n4);
22994  n113 = pow(alpha, n110*n5);
22995  n114 = pow(alpha, n110*n6);
22996  n115 = pow(alpha, n110*n7);
22997  n116 = pow(alpha, n110*n8);
22998  n117 = pow(alpha, n110*n9);
22999  n118 = pow(alpha, n10*n110);
23000  n119 = pow(alpha, n11*n110);
23001  n120 = pow(alpha, n110*n12);
23002  n121 = pow(alpha, n110*n13);
23003  n122 = n5/n113;
23004  n123 = n13/n121;
23005  n124 = n12/n120;
23006  n125 = n7/n115;
23007  n126 = n4/n112;
23008  n127 = n11/n119;
23009  n128 = n10/n118;
23010  n129 = n8/n116;
23011  n130 = n9/n117;
23012  n131 = n6/n114;
23013  n132 = n23/n112;
23014  n133 = n32/n121;
23015  n134 = n0*n131;
23016  n135 = n55 - 1 + 1.0/n111;
23017  n136 = n56 - 1 + 1.0/n112;
23018  n137 = n60 - 1 + 1.0/n113;
23019  n138 = n61 - 1 + 1.0/n114;
23020  n139 = n62 - 1 + 1.0/n115;
23021  n140 = n63 - 1 + 1.0/n116;
23022  n141 = n64 - 1 + 1.0/n117;
23023  n142 = n65 - 1 + 1.0/n118;
23024  n143 = n66 - 1 + 1.0/n119;
23025  n144 = n67 - 1 + 1.0/n120;
23026  n145 = n68 - 1 + 1.0/n121;
23027  n146 = pow(n135, -n15);
23028  n147 = pow(n136, -n15);
23029  n148 = pow(n137, -n15);
23030  n149 = pow(n138, -n15);
23031  n150 = pow(n139, -n15);
23032  n151 = pow(n140, -n15);
23033  n152 = pow(n141, -n15);
23034  n153 = pow(n142, -n15);
23035  n154 = pow(n143, -n15);
23036  n155 = pow(n144, -n15);
23037  n156 = pow(n145, -n15);
23038  n157 = pow(n135, 3);
23039  n158 = pow(n136, 3);
23040  n159 = pow(n137, 3);
23041  n160 = pow(n138, 3);
23042  n161 = pow(n139, 3);
23043  n162 = pow(n140, 3);
23044  n163 = pow(n141, 3);
23045  n164 = pow(n142, 3);
23046  n165 = pow(n143, 3);
23047  n166 = pow(n144, 3);
23048  n167 = pow(n145, 3);
23049  n168 = xF[9]/n145;
23050  n169 = xF[0]/n135;
23051  n170 = xF[2]/n138;
23052  n171 = xF[6]/n142;
23053  n172 = xF[1]/n137;
23054  n173 = xF[4]/n140;
23055  n174 = xF[10]/n136;
23056  n175 = xF[3]/n139;
23057  n176 = n1/n144;
23058  n177 = -1/n151;
23059  n178 = n1*n175;
23060  n179 = n46*xF[7]/n143;
23061  n180 = n68*xF[9]/n167;
23062  n181 = n62*xF[3]/n150;
23063  n182 = n66*xF[7]/n165;
23064  n183 = n66*xF[7]/n154;
23065  n184 = n68*xF[9]/n156;
23066  n185 = n44*n53*xF[5]/n141;
23067  n186 = 1/(n104*n111);
23068  n187 = n22*n31*n47*xF[8]/n144;
23069  n188 = n22*n28*n44*xF[5]/n141;
23070  n189 = n35*n50*n85/n135;
23071  n190 = n0*n35*n50*n70/n135;
23072  n191 = n169*n50*n97;
23073  n192 = n174*n22*n50*n92;
23074  n193 = n102*n172*n50;
23075  n194 = n170*n50*n98;
23076  n195 = n100*n175*n50;
23077  n196 = n173*n50*n96;
23078  n197 = n188*n50;
23079  n198 = n101*n171*n50;
23080  n199 = n179*n50*n88;
23081  n200 = n187*n50;
23082  n201 = n168*n50*n99;
23083  n202 = 0.5*n191;
23084  n203 = n186*n94 + 1;
23085  n204 = n1*n186*n85*n94 + n1*n85;
23086  n205 = n1*n107*n126 + n1*n80;
23087  n206 = n1*n107*n122 + n1*n84;
23088  n207 = n1*n107*n131 + n1*n76;
23089  n208 = n1*n107*n125 + n1*n82;
23090  n209 = n107*n54/n116 + n43*n54;
23091  n210 = n107*n53/n117 + n44*n53;
23092  n211 = n1*n107*n128 + n1*n81;
23093  n212 = n107*n52/n119 + n46*n52;
23094  n213 = n1*n107*n124 + n1*n78;
23095  n214 = n1*n107*n123 + n93;
23096  n215 = pow(n204, -n15);
23097  n216 = pow(n205, -n15);
23098  n217 = pow(n206, -n15);
23099  n218 = pow(n207, -n15);
23100  n219 = pow(n208, -n15);
23101  n220 = pow(n209, -n15);
23102  n221 = pow(n210, -n15);
23103  n222 = pow(n211, -n15);
23104  n223 = pow(n212, -n15);
23105  n224 = pow(n213, -n15);
23106  n225 = pow(n214, -n15);
23107  n226 = n186*n34*n85*n94 + n34*n85;
23108  n227 = n107*n21*n51/n111 + n21*n36*n51;
23109  n228 = n209*n63*xF[4];
23110  n229 = n203/n146;
23111  n230 = n210/n152;
23112  n231 = n213/n155;
23113  n232 = n204/n146;
23114  n233 = n211/n153;
23115  n234 = n206/n148;
23116  n235 = n207/n149;
23117  n236 = n215/n157;
23118  n237 = n205*xF[10]/n147;
23119  n238 = n224/n166;
23120  n239 = n218/n160;
23121  n240 = n217/n159;
23122  n241 = n227/n146;
23123  n242 = n219*n62*xF[3]/n161;
23124  n243 = n220*n63*xF[4]/n162;
23125  n244 = n232*n71*n75;
23126  n245 = n34*n50*n85*xF[0]*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146;
23127  n246 = n34*n50*n80*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n1*n4*n94/n104 + n1*n80)/n147;
23128  n247 = n34*n50*n84*xF[1]*(pow(alpha, NP0*n0 - n110*n5)*n1*n5*n94/n104 + n1*n84)/n148;
23129  n248 = n34*n50*n76*xF[2]*(pow(alpha, NP0*n0 - n110*n6)*n1*n6*n94/n104 + n1*n76)/n149;
23130  n249 = n34*n50*n82*xF[3]*(pow(alpha, NP0*n0 - n110*n7)*n1*n7*n94/n104 + n1*n82)/n150;
23131  n250 = n34*n43*n50*n8*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n54*n94/n104 + n43*n54)/n151;
23132  n251 = n34*n50*n90*xF[5]*(pow(alpha, NP0*n0 - n110*n9)*n53*n94/n104 + n44*n53)/n152;
23133  n252 = n34*n50*n81*xF[6]*(pow(alpha, NP0*n0 - n10*n110)*n1*n10*n94/n104 + n1*n81)/n153;
23134  n253 = n34*n50*n86*xF[7]*(pow(alpha, NP0*n0 - n11*n110)*n52*n94/n104 + n46*n52)/n154;
23135  n254 = n103*n34*(pow(alpha, NP0*n0 - n110*n12)*n1*n12*n94/n104 + n1*n78)/n155;
23136  n255 = n13*n34*n48*n50*xF[9]*(pow(alpha, NP0*n0 - n110*n13)*n1*n13*n94/n104 + n93)/n156;
23137  n256 = 1.0*n35*n50*n85*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146;
23138  n257 = n241*n50*n75;
23139  n258 = 0.5*n257;
23140  n259 = n189 + n244;
23141  n260 = n204*n226/n157;
23142  n261 = n107*n126*n72 + n108*n126*n72 + n108*n132*n51 + n22*n92;
23143  n262 = n102 + n107*n122*n72 + n108*n122*n72 + n108*n24*n51/n113;
23144  n263 = n108*n134*n51 + n109*n25/n114 + n25*n41*n51 + n131*n51*n85*n94/n104;
23145  n264 = n107*n129*n72 + n108*n129*n72 + n108*n27*n51/n116 + n96;
23146  n265 = n107*n130*n72 + n108*n130*n72 + n108*n28*n51/n117 + n22*n28*n44;
23147  n266 = n0*n108*n128*n51 + n109*n29/n118 + n29*n45*n51 + n128*n51*n85*n94/n104;
23148  n267 = n107*n124*n72 + n108*n124*n72 + n108*n31*n51/n120 + n22*n31*n47;
23149  n268 = n50*n83*(pow(alpha, n0*n19 - n110*n6)*n0*n51*n59*n6/(n105*n58) + pow(alpha, n0*n19 - n110*n6)*n22*n25*n59/(n105*n58) + n25*n41*n51 + n131*n51*n85*n94/n104)/n149;
23150  n269 = n50*n77*(pow(alpha, n0*n19 - n10*n110)*n0*n10*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n10*n110)*n22*n29*n59/(n105*n58) + n29*n45*n51 + n128*n51*n85*n94/n104)/n153;
23151  n270 = n71*n87*(pow(alpha, n0*n19 - n110*n5)*n24*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n5)*n5*n59*n72/(n105*n58) + n102 + n107*n122*n72)/n148;
23152  n271 = n181*n71*(pow(alpha, n0*n19 - n110*n7)*n26*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n7)*n59*n7*n72/(n105*n58) + n100 + n107*n125*n72);
23153  n272 = n63*n71*xF[4]*(pow(alpha, n0*n19 - n110*n8)*n27*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n8)*n59*n72*n8/(n105*n58) + n107*n129*n72 + n96)/n151;
23154  n273 = n71*n74*(pow(alpha, n0*n19 - n110*n9)*n28*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n9)*n59*n72*n9/(n105*n58) + n107*n130*n72 + n22*n28*n44)/n152;
23155  n274 = n183*n71*(pow(alpha, n0*n19 - n11*n110)*n11*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n11*n110)*n30*n51*n59/(n105*n58) + n107*n127*n72 + n46*n88);
23156  n275 = n71*n79*(pow(alpha, n0*n19 - n110*n12)*n12*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n12)*n31*n51*n59/(n105*n58) + n107*n124*n72 + n22*n31*n47)/n155;
23157  n276 = n202 + n256 + n258;
23158  n277 = n1*n170*n50*n76 + n1*n171*n50*n81 + n1*n172*n50*n84 + n1*n174*n50*n80 + n103*n176 + n168*n50*n93 + n173*n43*n50*n54 + n178*n50*n82 + n179*n50*n52 + n181*n208*n71 + n183*n212*n71 + n184*n214*n71 + n185*n50 + n230*n71*n74 + n231*n71*n79 + n233*n71*n77 + n234*n71*n87 + n235*n71*n83 + n237*n50*n69 + n259 + n228*n71/n151;
23159  n278 = n191 + n192 + n193 + n194 + n195 + n196 + n197 + n198 + n199 + n200 + n201 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n255 + n257 + n268 + n269 + n270 + n271 + n272 + n273 + n274 + n275;
23160  n279 = n180*n214*n71*(n107*n123*n34 + n13*n34*n48) + n182*n212*n71*(n107*n127*n34 + n34*n86) + n184*n50*(pow(alpha, n0*n19 - n110*n13)*n0*n13*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n13)*n22*n32*n59/(n105*n58) + n32*n48*n51 + n123*n51*n85*n94/n104) + n260*n71*n75 + n278 + n213*n71*n79*(n107*n124*n34 + n34*n78)/n166 + n211*n71*n77*(n107*n128*n34 + n34*n81)/n164 + n210*n71*n74*(n107*n130*n34 + n34*n90)/n163 + n228*n71*(n107*n129*n34 + n34*n43*n8)/n162 + n208*n62*n71*xF[3]*(n107*n125*n34 + n34*n82)/n161 + n207*n71*n83*(n107*n131*n34 + n34*n76)/n160 + n206*n71*n87*(n107*n122*n34 + n34*n84)/n159 + n205*n50*n69*xF[10]*(n107*n126*n34 + n34*n80)/n158 + n50*n89*(pow(alpha, n0*n19 - n110*n4)*n0*n4*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n4)*n22*n23*n59/(n105*n58) + n51*n92 + n126*n51*n85*n94/n104)/n147;
23161  NP_b = -n19*(n202 - 1.0*n236*n50*n75 + n256 - 0.5*xTj*(n15*n180*n225*n50 + n15*n182*n223*n50 + n15*n236*n50*n75 + n15*n238*n50*n79 + n15*n239*n50*n83 + n15*n240*n50*n87 + n15*n242*n50 + n15*n243*n50 + n15*n222*n50*n77/n164 + n15*n221*n50*n74/n163 + n15*n216*n50*n89/n158 + n181*n71*(pow(alpha, NP0*n0 - n110*n7)*n7*n72*n94/n104 + pow(alpha, n0*n19 - n110*n7)*n26*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n7)*n59*n7*n72/(n105*n58) + n100) + n183*n71*(pow(alpha, NP0*n0 - n11*n110)*n11*n72*n94/n104 + pow(alpha, n0*n19 - n11*n110)*n11*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n11*n110)*n30*n51*n59/(n105*n58) + n46*n88) + n184*n71*(pow(alpha, NP0*n0 - n110*n13)*n13*n72*n94/n104 + pow(alpha, n0*n19 - n110*n13)*n13*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n13)*n32*n51*n59/(n105*n58) + n99) + n191 + n192 + n193 + n194 + n195 + n196 + n197 + n198 + n199 + n200 + n201 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n255 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n12*n72*n94/n104 + pow(alpha, n0*n19 - n110*n12)*n12*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n12)*n31*n51*n59/(n105*n58) + n22*n31*n47)/n155 + n50*n77*(pow(alpha, NP0*n0 - n10*n110)*n0*n10*n51*n94/n104 + pow(alpha, n0*n19 - n10*n110)*n0*n10*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n10*n110)*n22*n29*n59/(n105*n58) + n29*n45*n51)/n153 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n72*n9*n94/n104 + pow(alpha, n0*n19 - n110*n9)*n28*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n9)*n59*n72*n9/(n105*n58) + n22*n28*n44)/n152 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n72*n8*n94/n104 + pow(alpha, n0*n19 - n110*n8)*n27*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n8)*n59*n72*n8/(n105*n58) + n96)/n151 + n50*n83*(pow(alpha, NP0*n0 - n110*n6)*n0*n51*n6*n94/n104 + pow(alpha, n0*n19 - n110*n6)*n0*n51*n59*n6/(n105*n58) + pow(alpha, n0*n19 - n110*n6)*n22*n25*n59/(n105*n58) + n25*n41*n51)/n149 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n5*n72*n94/n104 + pow(alpha, n0*n19 - n110*n5)*n24*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n5)*n5*n59*n72/(n105*n58) + n102)/n148 + n50*n69*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n4*n72*n94/n104 + pow(alpha, n0*n19 - n110*n4)*n23*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n4)*n4*n59*n72/(n105*n58) + n22*n92)/n147 + n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n21*n22*(-n16 + n18*n20)/(n104*n37) + n21*n36*n51)/n146) + 0.5*n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n21*n22*(-n16 + n18*n20)/(n104*n37) + n21*n36*n51)/n146) - n190 - n229*n35*n50*n55*n85 - n50*xTj*(n1*n170*n76 + n1*n171*n81 + n1*n172*n84 + n1*n174*n80 + n168*n93 + n173*n43*n54 + n176*n78*xF[8] + n177*n228 + n178*n82 + n179*n52 - n181*n208 - n183*n212 - n184*n214 + n185 - n230*n74 - n231*n79 - n232*n75 - n233*n77 - n234*n87 - n235*n83 + n237*n69 + n35*n85/n135);
23162  NP_2a = -n50*(n15*pow(n203, -n15)*n51*n75*n95/n157 - 1.0*n169*n97 - 2.0*n22*n229*n95*xF[0] + 1.0*xTj*(n100*n175 + n101*n171 + n102*n172 + n13*n34*n48*xF[9]*(pow(alpha, NP0*n0 - n110*n13)*n1*n13*n94/n104 + n93)/n156 + n15*n180*n225 + n15*n182*n223 + n15*n236*n75 + n15*n238*n79 + n15*n239*n83 + n15*n240*n87 + n15*n242 + n15*n243 + n15*n222*n77/n164 + n15*n221*n74/n163 + n15*n216*n89/n158 + n168*n99 + n169*n97 + n170*n98 + n173*n96 + n174*n22*n92 + n177*n63*xF[4]*(pow(alpha, n0*n19 - n110*n8)*n27*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n8)*n59*n72*n8/(n105*n58) + n107*n129*n72 + n96) + n179*n88 - n181*(pow(alpha, n0*n19 - n110*n7)*n26*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n7)*n59*n7*n72/(n105*n58) + n100 + n107*n125*n72) - n183*(pow(alpha, n0*n19 - n11*n110)*n11*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n11*n110)*n30*n51*n59/(n105*n58) + n107*n127*n72 + n46*n88) - n184*(pow(alpha, n0*n19 - n110*n13)*n13*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n13)*n32*n51*n59/(n105*n58) + n107*n123*n72 + n99) + n187 + n188 + n241*n75 + n34*n78*xF[8]*(pow(alpha, NP0*n0 - n110*n12)*n1*n12*n94/n104 + n1*n78)/n155 - n79*(pow(alpha, n0*n19 - n110*n12)*n12*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n12)*n31*n51*n59/(n105*n58) + n107*n124*n72 + n22*n31*n47)/n155 + n34*n86*xF[7]*(pow(alpha, NP0*n0 - n11*n110)*n52*n94/n104 + n46*n52)/n154 + n34*n81*xF[6]*(pow(alpha, NP0*n0 - n10*n110)*n1*n10*n94/n104 + n1*n81)/n153 + n77*(pow(alpha, n0*n19 - n10*n110)*n0*n10*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n10*n110)*n22*n29*n59/(n105*n58) + n29*n45*n51 + n128*n51*n85*n94/n104)/n153 + n34*n90*xF[5]*(pow(alpha, NP0*n0 - n110*n9)*n53*n94/n104 + n44*n53)/n152 - n74*(pow(alpha, n0*n19 - n110*n9)*n28*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n9)*n59*n72*n9/(n105*n58) + n107*n130*n72 + n22*n28*n44)/n152 + n34*n43*n8*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n54*n94/n104 + n43*n54)/n151 + n34*n82*xF[3]*(pow(alpha, NP0*n0 - n110*n7)*n1*n7*n94/n104 + n1*n82)/n150 + n34*n76*xF[2]*(pow(alpha, NP0*n0 - n110*n6)*n1*n6*n94/n104 + n1*n76)/n149 + n83*(pow(alpha, n0*n19 - n110*n6)*n0*n51*n59*n6/(n105*n58) + pow(alpha, n0*n19 - n110*n6)*n22*n25*n59/(n105*n58) + n25*n41*n51 + n131*n51*n85*n94/n104)/n149 + n34*n84*xF[1]*(pow(alpha, NP0*n0 - n110*n5)*n1*n5*n94/n104 + n1*n84)/n148 - n87*(pow(alpha, n0*n19 - n110*n5)*n24*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n5)*n5*n59*n72/(n105*n58) + n102 + n107*n122*n72)/n148 + n34*n80*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n1*n4*n94/n104 + n1*n80)/n147 + n69*xF[10]*(pow(alpha, n0*n19 - n110*n4)*n23*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n4)*n4*n59*n72/(n105*n58) + n107*n126*n72 + n22*n92)/n147 + n34*n85*xF[0]*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146) + n21*n36*n51*n75*(n186*(-n16 + xPj*xTj)/n37 - 1)/n146);
23163  NP_sqrt_base = (NP0*(n20*(n1*n170*n50*n76 + n1*n171*n50*n81 + n1*n172*n50*n84 + n1*n174*n50*n80 + n103*n176 + n168*n50*n93 + n173*n43*n50*n54 + n178*n50*n82 + n179*n50*n52 + n181*n71*(pow(alpha, NP0*n0 - n110*n7)*n1*n7*n94/n104 + n1*n82) + n183*n71*(pow(alpha, NP0*n0 - n11*n110)*n52*n94/n104 + n46*n52) + n184*n71*(pow(alpha, NP0*n0 - n110*n13)*n1*n13*n94/n104 + n93) + n185*n50 + n189 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n1*n12*n94/n104 + n1*n78)/n155 + n71*n77*(pow(alpha, NP0*n0 - n10*n110)*n1*n10*n94/n104 + n1*n81)/n153 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n53*n94/n104 + n44*n53)/n152 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n54*n94/n104 + n43*n54)/n151 + n71*n83*(pow(alpha, NP0*n0 - n110*n6)*n1*n6*n94/n104 + n1*n76)/n149 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n1*n5*n94/n104 + n1*n84)/n148 + n50*n69*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n1*n4*n94/n104 + n1*n80)/n147 + n71*n75*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146) + n259) + xTj*(n168*n68*n71 + n173*n63*n71 + n174*n50*n69 + n175*n62*n71 + n71*n79/n144 + n66*n71*xF[7]/n143 + n71*n77/n142 + n71*n74/n141 + n71*n83/n138 + n71*n87/n137 + n71*n75/n135) + n50*n75/n135 + pow(NP0, -n15)*(-0.5*n191 - 0.5*n257 + 0.5*n260*n50*n75 + 0.5*n279*xTj - 1.0*n35*n50*n85*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146))*(-n15*n20*(n180*n71*(pow(alpha, NP0*n0 - n110*n13)*n1*n13*n94/n104 + n93)*(pow(alpha, NP0*n0 - n110*n13)*n13*n34*n94/n104 + n13*n34*n48) + n181*n71*(pow(alpha, NP0*n0 - n110*n7)*n7*n72*n94/n104 + pow(alpha, n0*n19 - n110*n7)*n26*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n7)*n59*n7*n72/(n105*n58) + n100) + n182*n71*(pow(alpha, NP0*n0 - n11*n110)*n52*n94/n104 + n46*n52)*(pow(alpha, NP0*n0 - n11*n110)*n11*n34*n94/n104 + n34*n86) + n183*n71*(pow(alpha, NP0*n0 - n11*n110)*n11*n72*n94/n104 + pow(alpha, n0*n19 - n11*n110)*n11*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n11*n110)*n30*n51*n59/(n105*n58) + n46*n88) + n184*n50*(pow(alpha, NP0*n0 - n110*n13)*n0*n13*n51*n94/n104 + pow(alpha, n0*n19 - n110*n13)*n0*n13*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n13)*n22*n32*n59/(n105*n58) + n32*n48*n51) + n191 + n192 + n193 + n194 + n195 + n196 + n197 + n198 + n199 + n200 + n201 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n255 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n1*n12*n94/n104 + n1*n78)*(pow(alpha, NP0*n0 - n110*n12)*n12*n34*n94/n104 + n34*n78)/n166 + n71*n77*(pow(alpha, NP0*n0 - n10*n110)*n1*n10*n94/n104 + n1*n81)*(pow(alpha, NP0*n0 - n10*n110)*n10*n34*n94/n104 + n34*n81)/n164 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n53*n94/n104 + n44*n53)*(pow(alpha, NP0*n0 - n110*n9)*n34*n9*n94/n104 + n34*n90)/n163 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n54*n94/n104 + n43*n54)*(pow(alpha, NP0*n0 - n110*n8)*n34*n8*n94/n104 + n34*n43*n8)/n162 + n62*n71*xF[3]*(pow(alpha, NP0*n0 - n110*n7)*n1*n7*n94/n104 + n1*n82)*(pow(alpha, NP0*n0 - n110*n7)*n34*n7*n94/n104 + n34*n82)/n161 + n71*n83*(pow(alpha, NP0*n0 - n110*n6)*n1*n6*n94/n104 + n1*n76)*(pow(alpha, NP0*n0 - n110*n6)*n34*n6*n94/n104 + n34*n76)/n160 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n1*n5*n94/n104 + n1*n84)*(pow(alpha, NP0*n0 - n110*n5)*n34*n5*n94/n104 + n34*n84)/n159 + n50*n69*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n1*n4*n94/n104 + n1*n80)*(pow(alpha, NP0*n0 - n110*n4)*n34*n4*n94/n104 + n34*n80)/n158 + n71*n75*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)*(pow(alpha, NP0*n0 - n0*n110)*n0*n34*n94/n104 + n34*n85)/n157 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n12*n72*n94/n104 + pow(alpha, n0*n19 - n110*n12)*n12*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n12)*n31*n51*n59/(n105*n58) + n22*n31*n47)/n155 + n50*n77*(pow(alpha, NP0*n0 - n10*n110)*n0*n10*n51*n94/n104 + pow(alpha, n0*n19 - n10*n110)*n0*n10*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n10*n110)*n22*n29*n59/(n105*n58) + n29*n45*n51)/n153 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n72*n9*n94/n104 + pow(alpha, n0*n19 - n110*n9)*n28*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n9)*n59*n72*n9/(n105*n58) + n22*n28*n44)/n152 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n72*n8*n94/n104 + pow(alpha, n0*n19 - n110*n8)*n27*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n8)*n59*n72*n8/(n105*n58) + n96)/n151 + n50*n83*(pow(alpha, NP0*n0 - n110*n6)*n0*n51*n6*n94/n104 + pow(alpha, n0*n19 - n110*n6)*n0*n51*n59*n6/(n105*n58) + pow(alpha, n0*n19 - n110*n6)*n22*n25*n59/(n105*n58) + n25*n41*n51)/n149 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n5*n72*n94/n104 + pow(alpha, n0*n19 - n110*n5)*n24*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n5)*n5*n59*n72/(n105*n58) + n102)/n148 + n50*n89*(pow(alpha, NP0*n0 - n110*n4)*n0*n4*n51*n94/n104 + pow(alpha, n0*n19 - n110*n4)*n0*n4*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n4)*n22*n23*n59/(n105*n58) + n51*n92)/n147 + n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n21*n22*(-n16 + n18*n20)/(n104*n37) + n21*n36*n51)/n146) + 2.0*n191 - 4.0*n236*n50*n75 + 2.0*n257 + 4.0*n35*n50*n85*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)/n146) + pow(-n19*(n202 + n256 - 0.5*xTj*(n180*n71*(pow(alpha, NP0*n0 - n110*n13)*n1*n13*n94/n104 + n93)*(pow(alpha, NP0*n0 - n110*n13)*n13*n34*n94/n104 + n13*n34*n48) + n181*n71*(pow(alpha, NP0*n0 - n110*n7)*n7*n72*n94/n104 + pow(alpha, n0*n19 - n110*n7)*n26*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n7)*n59*n7*n72/(n105*n58) + n100) + n182*n71*(pow(alpha, NP0*n0 - n11*n110)*n52*n94/n104 + n46*n52)*(pow(alpha, NP0*n0 - n11*n110)*n11*n34*n94/n104 + n34*n86) + n183*n71*(pow(alpha, NP0*n0 - n11*n110)*n11*n72*n94/n104 + pow(alpha, n0*n19 - n11*n110)*n11*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n11*n110)*n30*n51*n59/(n105*n58) + n46*n88) + n184*n50*(pow(alpha, NP0*n0 - n110*n13)*n0*n13*n51*n94/n104 + pow(alpha, n0*n19 - n110*n13)*n0*n13*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n13)*n22*n32*n59/(n105*n58) + n32*n48*n51) + n191 + n192 + n193 + n194 + n195 + n196 + n197 + n198 + n199 + n200 + n201 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n255 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n1*n12*n94/n104 + n1*n78)*(pow(alpha, NP0*n0 - n110*n12)*n12*n34*n94/n104 + n34*n78)/n166 + n71*n77*(pow(alpha, NP0*n0 - n10*n110)*n1*n10*n94/n104 + n1*n81)*(pow(alpha, NP0*n0 - n10*n110)*n10*n34*n94/n104 + n34*n81)/n164 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n53*n94/n104 + n44*n53)*(pow(alpha, NP0*n0 - n110*n9)*n34*n9*n94/n104 + n34*n90)/n163 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n54*n94/n104 + n43*n54)*(pow(alpha, NP0*n0 - n110*n8)*n34*n8*n94/n104 + n34*n43*n8)/n162 + n62*n71*xF[3]*(pow(alpha, NP0*n0 - n110*n7)*n1*n7*n94/n104 + n1*n82)*(pow(alpha, NP0*n0 - n110*n7)*n34*n7*n94/n104 + n34*n82)/n161 + n71*n83*(pow(alpha, NP0*n0 - n110*n6)*n1*n6*n94/n104 + n1*n76)*(pow(alpha, NP0*n0 - n110*n6)*n34*n6*n94/n104 + n34*n76)/n160 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n1*n5*n94/n104 + n1*n84)*(pow(alpha, NP0*n0 - n110*n5)*n34*n5*n94/n104 + n34*n84)/n159 + n50*n69*xF[10]*(pow(alpha, NP0*n0 - n110*n4)*n1*n4*n94/n104 + n1*n80)*(pow(alpha, NP0*n0 - n110*n4)*n34*n4*n94/n104 + n34*n80)/n158 + n71*n75*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)*(pow(alpha, NP0*n0 - n0*n110)*n0*n34*n94/n104 + n34*n85)/n157 + n71*n79*(pow(alpha, NP0*n0 - n110*n12)*n12*n72*n94/n104 + pow(alpha, n0*n19 - n110*n12)*n12*n59*n72/(n105*n58) + pow(alpha, n0*n19 - n110*n12)*n31*n51*n59/(n105*n58) + n22*n31*n47)/n155 + n50*n77*(pow(alpha, NP0*n0 - n10*n110)*n0*n10*n51*n94/n104 + pow(alpha, n0*n19 - n10*n110)*n0*n10*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n10*n110)*n22*n29*n59/(n105*n58) + n29*n45*n51)/n153 + n71*n74*(pow(alpha, NP0*n0 - n110*n9)*n72*n9*n94/n104 + pow(alpha, n0*n19 - n110*n9)*n28*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n9)*n59*n72*n9/(n105*n58) + n22*n28*n44)/n152 + n63*n71*xF[4]*(pow(alpha, NP0*n0 - n110*n8)*n72*n8*n94/n104 + pow(alpha, n0*n19 - n110*n8)*n27*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n8)*n59*n72*n8/(n105*n58) + n96)/n151 + n50*n83*(pow(alpha, NP0*n0 - n110*n6)*n0*n51*n6*n94/n104 + pow(alpha, n0*n19 - n110*n6)*n0*n51*n59*n6/(n105*n58) + pow(alpha, n0*n19 - n110*n6)*n22*n25*n59/(n105*n58) + n25*n41*n51)/n149 + n71*n87*(pow(alpha, NP0*n0 - n110*n5)*n5*n72*n94/n104 + pow(alpha, n0*n19 - n110*n5)*n24*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n5)*n5*n59*n72/(n105*n58) + n102)/n148 + n50*n89*(pow(alpha, NP0*n0 - n110*n4)*n0*n4*n51*n94/n104 + pow(alpha, n0*n19 - n110*n4)*n0*n4*n51*n59/(n105*n58) + pow(alpha, n0*n19 - n110*n4)*n22*n23*n59/(n105*n58) + n51*n92)/n147 + n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n21*n22*(-n16 + n18*n20)/(n104*n37) + n21*n36*n51)/n146) - 0.5*n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n0*n1*n94/n104 + n1*n85)*(pow(alpha, NP0*n0 - n0*n110)*n0*n34*n94/n104 + n34*n85)/n157 + 0.5*n50*n75*(pow(alpha, NP0*n0 - n0*n110)*n21*n22*(-n16 + n18*n20)/(n104*n37) + n21*n36*n51)/n146) - n190 - n232*n50*n75 - n277*xTj, -n15);
23164  NP_sqrt_base = fabs(NP_sqrt_base);
23165  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
23166  NT1 = n73*(n106 - log(-pow(alpha, NP1*n0)*n94 + 1));
23167  g0 = MW[1] - Mstar;
23168  g1 = MW[0] - Mstar;
23169  g2 = NT1 + 1;
23170  g3 = xPj - xTj;
23171  g4 = MW[10] - Mstar;
23172  g5 = MW[2] - Mstar;
23173  g6 = MW[3] - Mstar;
23174  g7 = MW[4] - Mstar;
23175  g8 = MW[5] - Mstar;
23176  g9 = MW[6] - Mstar;
23177  g10 = MW[7] - Mstar;
23178  g11 = MW[8] - Mstar;
23179  g12 = MW[9] - Mstar;
23180  g13 = xF[0] - xTj;
23181  g14 = xF[0] - xPj;
23182  g15 = -xTj;
23183  g16 = xPj/xF[1];
23184  g17 = pow(alpha, -g1);
23185  g18 = pow(alpha, -g4);
23186  g19 = pow(alpha, -g0);
23187  g20 = pow(alpha, -g5);
23188  g21 = pow(alpha, -g6);
23189  g22 = pow(alpha, -g7);
23190  g23 = pow(alpha, -g8);
23191  g24 = pow(alpha, -g9);
23192  g25 = pow(alpha, -g10);
23193  g26 = pow(alpha, -g11);
23194  g27 = pow(alpha, -g12);
23195  g28 = log(xF[0]/xF[1]);
23196  g29 = -g2;
23197  g30 = pow(alpha, NP1*g0);
23198  g31 = pow(alpha, NP1*g1);
23199  g32 = pow(alpha, NP1*g4);
23200  g33 = log(g17);
23201  g34 = pow(alpha, NP1*g5);
23202  g35 = pow(alpha, NP1*g6);
23203  g36 = pow(alpha, NP1*g7);
23204  g37 = pow(alpha, NP1*g8);
23205  g38 = pow(alpha, NP1*g9);
23206  g39 = pow(alpha, NP1*g10);
23207  g40 = pow(alpha, NP1*g11);
23208  g41 = pow(alpha, NP1*g12);
23209  g42 = -g28;
23210  g43 = g13/g3;
23211  g44 = g3/g13;
23212  g45 = -g30 + 1;
23213  g46 = -g30 + 1;
23214  g47 = -g31 + 1;
23215  g48 = -g34 + 1;
23216  g49 = -g35 + 1;
23217  g50 = -g36 + 1;
23218  g51 = -g37 + 1;
23219  g52 = -g38 + 1;
23220  g53 = -g39 + 1;
23221  g54 = -g40 + 1;
23222  g55 = -g41 + 1;
23223  g56 = -g32 + 1;
23224  g57 = -g31;
23225  g58 = -g32;
23226  g59 = -g34;
23227  g60 = -g35;
23228  g61 = -g36;
23229  g62 = -g37;
23230  g63 = -g38;
23231  g64 = -g39;
23232  g65 = -g40;
23233  g66 = -g41;
23234  g67 = -1.0*g28;
23235  g68 = -g3/g14;
23236  g69 = g14/(g3*xF[1]);
23237  g70 = pow(alpha, g0*g29) - 1;
23238  g71 = pow(alpha, g0*g29) - 1;
23239  g72 = pow(alpha, g1*g29) - 1;
23240  g73 = pow(alpha, g29*g5) - 1;
23241  g74 = pow(alpha, g29*g6) - 1;
23242  g75 = pow(alpha, g29*g7) - 1;
23243  g76 = pow(alpha, g29*g8) - 1;
23244  g77 = pow(alpha, g29*g9) - 1;
23245  g78 = pow(alpha, g10*g29) - 1;
23246  g79 = pow(alpha, g11*g29) - 1;
23247  g80 = pow(alpha, g12*g29) - 1;
23248  g81 = pow(alpha, g29*g4) - 1;
23249  g82 = -pow(alpha, g1*g29);
23250  g83 = -pow(alpha, g29*g4);
23251  g84 = -pow(alpha, g29*g5);
23252  g85 = -pow(alpha, g29*g6);
23253  g86 = -pow(alpha, g29*g7);
23254  g87 = -pow(alpha, g29*g8);
23255  g88 = -pow(alpha, g29*g9);
23256  g89 = -pow(alpha, g10*g29);
23257  g90 = -pow(alpha, g11*g29);
23258  g91 = -pow(alpha, g12*g29);
23259  g92 = g46 + g71;
23260  g93 = -g31 - g82;
23261  g94 = -g32 - g83;
23262  g95 = -g34 - g84;
23263  g96 = -g35 - g85;
23264  g97 = -g36 - g86;
23265  g98 = -g37 - g87;
23266  g99 = -g38 - g88;
23267  g100 = -g39 - g89;
23268  g101 = -g40 - g90;
23269  g102 = -g41 - g91;
23270  g103 = pow(alpha, g1*g29) + g57;
23271  g104 = g46 + g71;
23272  g105 = pow(alpha, g29*g4) + g58;
23273  g106 = pow(alpha, g29*g5) + g59;
23274  g107 = pow(alpha, g29*g6) + g60;
23275  g108 = pow(alpha, g29*g7) + g61;
23276  g109 = pow(alpha, g29*g8) + g62;
23277  g110 = pow(alpha, g29*g9) + g63;
23278  g111 = pow(alpha, g10*g29) + g64;
23279  g112 = pow(alpha, g11*g29) + g65;
23280  g113 = pow(alpha, g12*g29) + g66;
23281  g114 = xF[9]/g113;
23282  g115 = xF[8]/g112;
23283  g116 = xF[1]/g104;
23284  g117 = xF[10]/g105;
23285  g118 = xF[3]/g107;
23286  g119 = xF[6]/g110;
23287  g120 = xF[7]/g111;
23288  g121 = xF[4]/g108;
23289  g122 = xF[5]/g109;
23290  g123 = xF[2]/g106;
23291  g124 = xF[0]/g103;
23292  g125 = xF[1]/g92;
23293  g126 = xF[0]/g93;
23294  g127 = xF[9]/g102;
23295  g128 = xF[4]/g97;
23296  g129 = xF[5]/g98;
23297  g130 = xF[7]/g100;
23298  g131 = xF[2]/g95;
23299  g132 = xF[3]/g96;
23300  g133 = xF[6]/g99;
23301  g134 = xF[8]/g101;
23302  g135 = xF[10]/g94;
23303  g136 = g52/g99;
23304  g137 = g55/g102;
23305  g138 = g50/g97;
23306  g139 = g53/g100;
23307  g140 = g47/g93;
23308  g141 = g51/g98;
23309  g142 = g49/g96;
23310  g143 = g45/g92;
23311  g144 = g48/g95;
23312  g145 = g56/g94;
23313  g146 = g54/g101;
23314  g147 = g70/g92;
23315  g148 = g72/g93;
23316  g149 = g76/g98;
23317  g150 = g73/g95;
23318  g151 = g74/g96;
23319  g152 = g75/g97;
23320  g153 = g79/g101;
23321  g154 = g80/g102;
23322  g155 = g77/g99;
23323  g156 = g78/g100;
23324  g157 = g81/g94;
23325  g158 = log(g104*g15*g69/g46);
23326  g159 = log(g15*g69*g92/g45);
23327  g160 = log(g104*g16*g43/g71);
23328  g161 = 1.0*g158;
23329  g162 = log(g16*g43*g92/g70);
23330  g163 = 1.0*g160;
23331  g164 = -g114*g161*(g66 + 1) - g114*g163*(pow(alpha, g12*g29) - 1) - g115*g161*(g65 + 1) - g115*g163*(pow(alpha, g11*g29) - 1) - g116*g161*g46 - g116*g163*g71 - g117*g161*(g58 + 1) - g117*g163*(pow(alpha, g29*g4) - 1) - g118*g161*(g60 + 1) - g118*g163*(pow(alpha, g29*g6) - 1) - g119*g161*(g63 + 1) - g119*g163*(pow(alpha, g29*g9) - 1) - g120*g161*(g64 + 1) - g120*g163*(pow(alpha, g10*g29) - 1) - g121*g161*(g61 + 1) - g121*g163*(pow(alpha, g29*g7) - 1) - g122*g161*(g62 + 1) - g122*g163*(pow(alpha, g29*g8) - 1) - g123*g161*(g59 + 1) - g123*g163*(pow(alpha, g29*g5) - 1) - g124*g161*(g57 + 1) - g124*g163*(pow(alpha, g1*g29) - 1) - g67*xF[0] - g67*xF[10] - g67*xF[1] - g67*xF[2] - g67*xF[3] - g67*xF[4] - g67*xF[5] - g67*xF[6] - g67*xF[7] - g67*xF[8] - g67*xF[9];
23332  LpF = xF[0]*(g17 + 1.0)*(g140*g159 + g148*g162 + g42)/(g33*(g17 - 1.0)) + xF[10]*(g18 + 1.0)*(g145*g159 + g157*g162 + g42)/(g33*(g18 - 1.0)) + xF[1]*(g19 + 1.0)*(g143*g159 + g147*g162 + g42)/(g33*(g19 - 1.0)) + xF[2]*(g20 + 1.0)*(g144*g159 + g150*g162 + g42)/(g33*(g20 - 1.0)) + xF[3]*(g21 + 1.0)*(g142*g159 + g151*g162 + g42)/(g33*(g21 - 1.0)) + xF[4]*(g22 + 1.0)*(g138*g159 + g152*g162 + g42)/(g33*(g22 - 1.0)) + xF[5]*(g23 + 1.0)*(g141*g159 + g149*g162 + g42)/(g33*(g23 - 1.0)) + xF[6]*(g24 + 1.0)*(g136*g159 + g155*g162 + g42)/(g33*(g24 - 1.0)) + xF[7]*(g25 + 1.0)*(g139*g159 + g156*g162 + g42)/(g33*(g25 - 1.0)) + xF[8]*(g26 + 1.0)*(g146*g159 + g153*g162 + g42)/(g33*(g26 - 1.0)) + xF[9]*(g27 + 1.0)*(g137*g159 + g154*g162 + g42)/(g33*(g27 - 1.0));
23333  PpF = g43;
23334  TpF = -g14/g3;
23335  SWUpF = g164;
23336  SWUpP = g164*g44;
23337  xP[0] = g126*g44*g72;
23338  xP[1] = g125*g44*g70;
23339  xP[2] = g131*g44*g73;
23340  xP[3] = g132*g44*g74;
23341  xP[4] = g128*g44*g75;
23342  xP[5] = g129*g44*g76;
23343  xP[6] = g133*g44*g77;
23344  xP[7] = g130*g44*g78;
23345  xP[8] = g134*g44*g79;
23346  xP[9] = g127*g44*g80;
23347  xP[10] = g135*g44*g81;
23348  xT[0] = g126*g47*g68;
23349  xT[1] = g125*g45*g68;
23350  xT[2] = g131*g48*g68;
23351  xT[3] = g132*g49*g68;
23352  xT[4] = g128*g50*g68;
23353  xT[5] = g129*g51*g68;
23354  xT[6] = g133*g52*g68;
23355  xT[7] = g130*g53*g68;
23356  xT[8] = g134*g54*g68;
23357  xT[9] = g127*g55*g68;
23358  xT[10] = g135*g56*g68;
23359  break;
23360  case 12:
23361  n0 = -2.00000000000000;
23362  n1 = MW[0] - Mstar;
23363  n2 = log(alpha);
23364  n3 = xPj - xTj;
23365  n4 = xF[0] - xPj;
23366  n5 = MW[10] - Mstar;
23367  n6 = MW[11] - Mstar;
23368  n7 = MW[1] - Mstar;
23369  n8 = MW[2] - Mstar;
23370  n9 = MW[3] - Mstar;
23371  n10 = MW[4] - Mstar;
23372  n11 = MW[5] - Mstar;
23373  n12 = MW[6] - Mstar;
23374  n13 = MW[7] - Mstar;
23375  n14 = MW[8] - Mstar;
23376  n15 = MW[9] - Mstar;
23377  n16 = log(xTj);
23378  n17 = -n1;
23379  n18 = -2;
23380  n19 = xF[0]*xPj;
23381  n20 = -Mstar;
23382  n21 = -xTj;
23383  n22 = -n0*xF[11];
23384  n23 = -xPj;
23385  n24 = -NP0*n0;
23386  n25 = -xF[0];
23387  n26 = pow(n1, -n0);
23388  n27 = pow(n2, -n0);
23389  n28 = pow(n5, -n0);
23390  n29 = pow(n6, -n0);
23391  n30 = pow(n7, -n0);
23392  n31 = pow(n8, -n0);
23393  n32 = pow(n9, -n0);
23394  n33 = pow(n10, -n0);
23395  n34 = pow(n11, -n0);
23396  n35 = pow(n12, -n0);
23397  n36 = pow(n13, -n0);
23398  n37 = pow(n14, -n0);
23399  n38 = pow(n15, -n0);
23400  n39 = Mstar*n2;
23401  n40 = -n0*n2;
23402  n41 = -n2;
23403  n42 = pow(alpha, NP0*n1);
23404  n43 = n19 + n21*xF[0];
23405  n44 = n19 + n21*xPj;
23406  n45 = pow(alpha, NP0*n5);
23407  n46 = pow(alpha, NP0*n6);
23408  n47 = pow(alpha, NP0*n7);
23409  n48 = pow(alpha, NP0*n8);
23410  n49 = pow(alpha, NP0*n9);
23411  n50 = pow(alpha, NP0*n10);
23412  n51 = pow(alpha, NP0*n11);
23413  n52 = pow(alpha, NP0*n12);
23414  n53 = pow(alpha, NP0*n13);
23415  n54 = pow(alpha, NP0*n14);
23416  n55 = pow(alpha, NP0*n15);
23417  n56 = MW[0]*n41;
23418  n57 = n3/n4;
23419  n58 = n11*n2;
23420  n59 = n2*n7;
23421  n60 = n13*n2;
23422  n61 = -n42 + 1;
23423  n62 = -n45 + 1;
23424  n63 = pow(alpha, NP0*n0*n17);
23425  n64 = pow(n44, -n0);
23426  n65 = -n46 + 1;
23427  n66 = -n47 + 1;
23428  n67 = -n48 + 1;
23429  n68 = -n49 + 1;
23430  n69 = -n50 + 1;
23431  n70 = -n51 + 1;
23432  n71 = -n52 + 1;
23433  n72 = -n53 + 1;
23434  n73 = -n54 + 1;
23435  n74 = -n55 + 1;
23436  n75 = -n71;
23437  n76 = -n62;
23438  n77 = -n69;
23439  n78 = -n42;
23440  n79 = -n46;
23441  n80 = -n48;
23442  n81 = -n51;
23443  n82 = -n52;
23444  n83 = -n55;
23445  n84 = n1*n27;
23446  n85 = 1/(n1*n2);
23447  n86 = n65*xF[11];
23448  n87 = n15*n55;
23449  n88 = n12*n52;
23450  n89 = n1*n42;
23451  n90 = n14*n54;
23452  n91 = n27*n34;
23453  n92 = n10*n50;
23454  n93 = n45*n5;
23455  n94 = n71*xF[6];
23456  n95 = n27*n36;
23457  n96 = n67*xF[2];
23458  n97 = n48*n8;
23459  n98 = n70*xF[5];
23460  n99 = n27*n30;
23461  n100 = n47*n7;
23462  n101 = n26*n27;
23463  n102 = n13*n53;
23464  n103 = n27*n38;
23465  n104 = n49*n9;
23466  n105 = log((-1.0 + xPj/xF[0])/n3);
23467  n106 = -n68*xF[3];
23468  n107 = -n74*xF[9];
23469  n108 = n104*xF[3];
23470  n109 = -n73*xF[8];
23471  n110 = n2*n46*n6;
23472  n111 = n44/n43;
23473  n112 = n101*n42;
23474  n113 = n27*n29*n46;
23475  n114 = n27*n31*n48;
23476  n115 = n27*n37*n54;
23477  n116 = n27*n28*n45;
23478  n117 = n27*n32*n49;
23479  n118 = n111*n78 + 1;
23480  n119 = n105 + n16 + n39 + n56;
23481  n120 = n111*n42/n118;
23482  n121 = n85*(n119 - log(n118)) + 1;
23483  n122 = pow(alpha, n1*n121);
23484  n123 = pow(alpha, n121*n5);
23485  n124 = pow(alpha, n121*n6);
23486  n125 = pow(alpha, n121*n7);
23487  n126 = pow(alpha, n121*n8);
23488  n127 = pow(alpha, n121*n9);
23489  n128 = pow(alpha, n10*n121);
23490  n129 = pow(alpha, n11*n121);
23491  n130 = pow(alpha, n12*n121);
23492  n131 = pow(alpha, n121*n13);
23493  n132 = pow(alpha, n121*n14);
23494  n133 = pow(alpha, n121*n15);
23495  n134 = n10/n128;
23496  n135 = n13/n131;
23497  n136 = n15/n133;
23498  n137 = n9/n127;
23499  n138 = n12/n130;
23500  n139 = n14/n132;
23501  n140 = n6/n124;
23502  n141 = n7/n125;
23503  n142 = n8/n126;
23504  n143 = -1/n122;
23505  n144 = n5/n123;
23506  n145 = n11/n129;
23507  n146 = n29/n124;
23508  n147 = pow(alpha, n121*n17) + n61 - 1;
23509  n148 = n62 - 1 + 1.0/n123;
23510  n149 = n65 - 1 + 1.0/n124;
23511  n150 = n66 - 1 + 1.0/n125;
23512  n151 = n67 - 1 + 1.0/n126;
23513  n152 = n68 - 1 + 1.0/n127;
23514  n153 = n69 - 1 + 1.0/n128;
23515  n154 = n70 - 1 + 1.0/n129;
23516  n155 = n71 - 1 + 1.0/n130;
23517  n156 = n72 - 1 + 1.0/n131;
23518  n157 = n73 - 1 + 1.0/n132;
23519  n158 = n74 - 1 + 1.0/n133;
23520  n159 = pow(n147, 3);
23521  n160 = pow(n148, 3);
23522  n161 = pow(n149, 3);
23523  n162 = pow(n150, 3);
23524  n163 = pow(n151, 3);
23525  n164 = pow(n152, 3);
23526  n165 = pow(n153, 3);
23527  n166 = pow(n154, 3);
23528  n167 = pow(n155, 3);
23529  n168 = pow(n156, 3);
23530  n169 = pow(n157, 3);
23531  n170 = pow(n158, 3);
23532  n171 = xF[0]/n147;
23533  n172 = xF[10]/n148;
23534  n173 = xF[9]/n158;
23535  n174 = xF[11]/n149;
23536  n175 = xF[2]/n151;
23537  n176 = xF[8]/n157;
23538  n177 = xF[3]/n152;
23539  n178 = xF[6]/n167;
23540  n179 = pow(n148, n18)*xF[10];
23541  n180 = n2/n152;
23542  n181 = n2*xF[4]/n153;
23543  n182 = -1/n161;
23544  n183 = pow(n147, n18)*n2;
23545  n184 = n2*xF[6]/n155;
23546  n185 = n51*xF[5]/n154;
23547  n186 = n47*xF[1]/n150;
23548  n187 = n53*xF[7]/n156;
23549  n188 = pow(n147, n18)*n61;
23550  n189 = -n66/n162;
23551  n190 = n61*xF[0]/n159;
23552  n191 = -pow(n154, n18)*n98;
23553  n192 = -n72*xF[7]/n168;
23554  n193 = -pow(n150, n18)*n66*xF[1];
23555  n194 = -pow(n156, n18)*n72*xF[7];
23556  n195 = n175*n2*n97;
23557  n196 = n103*n173*n55;
23558  n197 = n27*n33*n50*xF[4]/n153;
23559  n198 = n27*n35*n52*xF[6]/n155;
23560  n199 = n17*n171*n2*n42*n57;
23561  n200 = n112*n171*n57;
23562  n201 = n116*n172*n57;
23563  n202 = n113*n174*n57;
23564  n203 = n186*n57*n99;
23565  n204 = n114*n175*n57;
23566  n205 = n117*n177*n57;
23567  n206 = n197*n57;
23568  n207 = n185*n57*n91;
23569  n208 = n198*n57;
23570  n209 = n187*n57*n95;
23571  n210 = n115*n176*n57;
23572  n211 = n196*n57;
23573  n212 = 0.5*n200;
23574  n213 = n111/(n118*n122);
23575  n214 = n213 + 1;
23576  n215 = n214*xF[0];
23577  n216 = n2*n213*n89 + n2*n89;
23578  n217 = n120*n144*n2 + n2*n93;
23579  n218 = n110 + n120*n140*n2;
23580  n219 = n120*n59/n125 + n47*n59;
23581  n220 = n120*n142*n2 + n2*n97;
23582  n221 = n104*n2 + n120*n137*n2;
23583  n222 = n120*n134*n2 + n2*n92;
23584  n223 = n120*n58/n129 + n51*n58;
23585  n224 = n120*n138*n2 + n2*n88;
23586  n225 = n120*n60/n131 + n53*n60;
23587  n226 = n120*n139*n2 + n2*n90;
23588  n227 = n120*n136*n2 + n2*n87;
23589  n228 = pow(n216, -n0);
23590  n229 = pow(n217, -n0);
23591  n230 = pow(n218, -n0);
23592  n231 = pow(n219, -n0);
23593  n232 = pow(n220, -n0);
23594  n233 = pow(n221, -n0);
23595  n234 = pow(n222, -n0);
23596  n235 = pow(n223, -n0);
23597  n236 = pow(n224, -n0);
23598  n237 = pow(n225, -n0);
23599  n238 = pow(n226, -n0);
23600  n239 = pow(n227, -n0);
23601  n240 = n216*xF[0];
23602  n241 = n219*xF[1];
23603  n242 = n222*xF[4];
23604  n243 = n0*n120*n17*n2/n122 + n0*n17*n2*n42;
23605  n244 = n101*n213*n78 + n101*n78;
23606  n245 = n244*xF[0];
23607  n246 = pow(n152, n18)*n221;
23608  n247 = pow(n149, n18)*n218;
23609  n248 = pow(n158, n18)*n227;
23610  n249 = pow(n157, n18)*n226;
23611  n250 = pow(n155, n18)*n224*xF[6];
23612  n251 = n232/n163;
23613  n252 = n235/n166;
23614  n253 = pow(n156, n18)*n225*xF[7];
23615  n254 = pow(n151, n18)*n220*xF[2];
23616  n255 = pow(n153, n18)*n242*n77;
23617  n256 = n234*n69*xF[4]/n165;
23618  n257 = n188*n240*n57;
23619  n258 = n0*n17*n183*n42*n57*xF[0]*(pow(alpha, NP0*n1 + n121*n17)*n1*n111*n2/n118 + n2*n89);
23620  n259 = n179*n40*n57*n93*(pow(alpha, NP0*n1 - n121*n5)*n111*n2*n5/n118 + n2*n93);
23621  n260 = n110*pow(n149, n18)*n22*n57*(pow(alpha, NP0*n1 - n121*n6)*n111*n2*n6/n118 + n110);
23622  n261 = n100*pow(n150, n18)*n40*n57*xF[1]*(pow(alpha, NP0*n1 - n121*n7)*n111*n59/n118 + n47*n59);
23623  n262 = pow(n151, n18)*n40*n57*n97*xF[2]*(pow(alpha, NP0*n1 - n121*n8)*n111*n2*n8/n118 + n2*n97);
23624  n263 = n108*pow(n152, n18)*n40*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n2*n9/n118 + n104*n2);
23625  n264 = pow(n153, n18)*n40*n57*n92*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n2/n118 + n2*n92);
23626  n265 = n11*pow(n154, n18)*n40*n51*n57*xF[5]*(pow(alpha, NP0*n1 - n11*n121)*n111*n58/n118 + n51*n58);
23627  n266 = pow(n155, n18)*n40*n57*n88*xF[6]*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n2/n118 + n2*n88);
23628  n267 = n102*pow(n156, n18)*n40*n57*xF[7]*(pow(alpha, NP0*n1 - n121*n13)*n111*n60/n118 + n53*n60);
23629  n268 = pow(n157, n18)*n40*n57*n90*xF[8]*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n2/n118 + n2*n90);
23630  n269 = pow(n158, n18)*n40*n57*n87*xF[9]*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n2/n118 + n2*n87);
23631  n270 = 1.0*n183*n240*n57*n89;
23632  n271 = n188*n245*n57;
23633  n272 = 0.5*n271;
23634  n273 = pow(alpha, n1*n24)*pow(n118, n18)*n142*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64/n126 + n120*n142*n17*n27 + n27*n31*n80;
23635  n274 = pow(alpha, n1*n24)*pow(n118, n18)*n137*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64/n127 + n117 + n120*n137*n84;
23636  n275 = pow(alpha, n1*n24)*pow(n118, n18)*n134*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64/n128 + n120*n134*n84 + n27*n33*n50;
23637  n276 = pow(alpha, n1*n24)*pow(n118, n18)*n138*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64/n130 + n120*n138*n17*n27 + n27*n35*n82;
23638  n277 = pow(alpha, n1*n24)*pow(n118, n18)*n139*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64/n132 + n115 + n120*n139*n84;
23639  n278 = -pow(alpha, n1*n24)*n103*pow(n118, n18)*pow(n43, n18)*n64/n133 + pow(alpha, n1*n24)*pow(n118, n18)*n136*pow(n43, n18)*n64*n84 + n103*n55 + n120*n136*n84;
23640  n279 = pow(n151, n18)*n57*n96*(pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n17*n27*pow(n43, n18)*n64*n8 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64 + n120*n142*n17*n27 + n27*n31*n80);
23641  n280 = pow(n155, n18)*n57*n94*(pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n12*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64 + n120*n138*n17*n27 + n27*n35*n82);
23642  n281 = n179*n57*n76*(-pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*n27*n28*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*pow(n43, n18)*n5*n64*n84 + n116 + n120*n144*n84);
23643  n282 = n193*n57*(pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n7*n84 - pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n99 + n120*n141*n84 + n47*n99);
23644  n283 = n106*pow(n152, n18)*n57*(-pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*pow(n43, n18)*n64*n84*n9 + n117 + n120*n137*n84);
23645  n284 = pow(n153, n18)*n57*n77*xF[4]*(pow(alpha, n1*n24 - n10*n121)*n10*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n10*n121)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64 + n120*n134*n84 + n27*n33*n50);
23646  n285 = n191*n57*(pow(alpha, n1*n24 - n11*n121)*n11*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n11*n121)*pow(n118, n18)*pow(n43, n18)*n64*n91 + n120*n145*n84 + n51*n91);
23647  n286 = n194*n57*(pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*n13*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*pow(n43, n18)*n64*n95 + n120*n135*n84 + n53*n95);
23648  n287 = n109*pow(n157, n18)*n57*(pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n14*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64 + n115 + n120*n139*n84);
23649  n288 = n212 + n270 + n272;
23650  n289 = xTj*(n106*n246*n57 + n107*n248*n57 + n108*n180*n57 + n109*n249*n57 + n110*n174*n57 - pow(n151, n18)*n220*n57*n96 + n171*n2*n57*n89 + n172*n2*n57*n93 + n173*n2*n57*n87 + n176*n2*n57*n90 + n179*n217*n57*n76 + n181*n57*n92 + n184*n57*n88 + n185*n57*n58 + n186*n57*n59 + n187*n57*n60 + n188*n25*n57*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89) + n191*n223*n57 + n193*n219*n57 + n194*n225*n57 + n195*n57 - n247*n57*n86 + n250*n57*n75 + n255*n57);
23651  n290 = n199 + n257 + n289;
23652  n291 = n200 + n201 + n202 + n203 + n204 + n205 + n206 + n207 + n208 + n209 + n210 + n211 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n267 + n268 + n269 + n271 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n286 + n287;
23653  n292 = n106*n221*n57*(n104*n40 + n120*n137*n40)/n164 + n107*pow(n158, n18)*n57*(-pow(alpha, n1*n24 - n121*n15)*n103*pow(n118, n18)*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n15)*pow(n118, n18)*n15*pow(n43, n18)*n64*n84 + n103*n55 + n120*n136*n84) + n107*n227*n57*(n120*n136*n40 + n40*n87)/n170 + n109*n226*n57*(n120*n139*n40 + n40*n90)/n169 - pow(n149, n18)*n57*n86*(-pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n27*n29*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*pow(n43, n18)*n6*n64*n84 + n113 + n120*n140*n84) + n178*n224*n57*n75*(n120*n138*n40 + n40*n88) + n182*n218*n57*n86*(n120*n140*n40 + n40*n46*n6) + n189*n241*n57*(n100*n40 + n120*n141*n40) + n192*n225*n57*(n102*n40 + n120*n135*n40) + n291 - n223*n57*n98*(n11*n40*n51 + n120*n145*n40)/n166 + n242*n57*n77*(n120*n134*n40 + n40*n92)/n165 - n220*n57*n96*(n120*n142*n40 + n40*n97)/n163 + n217*n57*n76*xF[10]*(n120*n144*n40 + n40*n93)/n160 + n25*n57*n61*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89)*(pow(alpha, NP0*n1 - n1*n121)*n0*n111*n17*n2/n118 + n0*n17*n2*n42)/n159;
23654  NP_b = -n183*n215*n57*n61*n89 - n199 - n24*(1.0*n183*n57*n89*xF[0]*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89) + 0.5*n188*n57*xF[0]*(-pow(alpha, NP0*n1 - n1*n121)*n101*n111/n118 + n101*n78) - 1.0*n190*n228*n57 + n212 - 0.5*xTj*(n106*pow(n152, n18)*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n84*n9/n118 - pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*pow(n43, n18)*n64*n84*n9 + n117) + n109*pow(n157, n18)*n57*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n84/n118 + pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n14*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64 + n115) + pow(n149, n18)*n57*n86*(pow(alpha, NP0*n1 - n121*n6)*n111*n17*n27*n6/n118 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n17*n27*pow(n43, n18)*n6*n64 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n27*n29*pow(n43, n18)*n64 + n27*n29*n79) + pow(n151, n18)*n57*n96*(pow(alpha, NP0*n1 - n121*n8)*n111*n17*n27*n8/n118 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n17*n27*pow(n43, n18)*n64*n8 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64 + n27*n31*n80) + pow(n153, n18)*n57*n77*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n84/n118 + pow(alpha, n1*n24 - n10*n121)*n10*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n10*n121)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64 + n27*n33*n50) + pow(n155, n18)*n57*n94*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n17*n27/n118 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n12*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64 + n27*n35*n82) + pow(n158, n18)*n57*n74*xF[9]*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n17*n27/n118 + pow(alpha, n1*n24 - n121*n15)*n103*pow(n118, n18)*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n15)*pow(n118, n18)*n15*n17*n27*pow(n43, n18)*n64 + n103*n83) + n179*n57*n76*(pow(alpha, NP0*n1 - n121*n5)*n111*n5*n84/n118 - pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*n27*n28*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*pow(n43, n18)*n5*n64*n84 + n116) + n18*n190*n228*n57 + n18*n251*n57*n96 + n18*n252*n57*n98 + n18*n256*n57 + n188*n57*xF[0]*(-pow(alpha, NP0*n1 - n1*n121)*n101*n111/n118 + n101*n78) + n191*n57*(pow(alpha, NP0*n1 - n11*n121)*n11*n111*n84/n118 + pow(alpha, n1*n24 - n11*n121)*n11*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n11*n121)*pow(n118, n18)*pow(n43, n18)*n64*n91 + n51*n91) + n193*n57*(pow(alpha, NP0*n1 - n121*n7)*n111*n7*n84/n118 + pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n7*n84 - pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n99 + n47*n99) + n194*n57*(pow(alpha, NP0*n1 - n121*n13)*n111*n13*n84/n118 + pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*n13*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*pow(n43, n18)*n64*n95 + n53*n95) + n200 + n201 + n202 + n203 + n204 + n205 + n206 + n207 + n208 + n209 + n210 + n211 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n267 + n268 + n269 + n18*n239*n57*n74*xF[9]/n170 + n18*n238*n57*n73*xF[8]/n169 + n18*n237*n57*n72*xF[7]/n168 + n18*n236*n57*n94/n167 + n18*n233*n57*n68*xF[3]/n164 + n18*n231*n57*n66*xF[1]/n162 + n18*n230*n57*n86/n161 + n18*n229*n57*n62*xF[10]/n160)) - n57*xTj*(n106*n246 + n107*n248 + n108*n180 + n109*n249 + n110*n174 - pow(n151, n18)*n220*n96 + n171*n2*n89 + n172*n2*n93 + n173*n2*n87 + n176*n2*n90 + n179*n217*n76 + n181*n92 + n184*n88 + n185*n58 + n186*n59 + n187*n60 + n188*n25*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89) + n191*n223 + n193*n219 + n194*n225 + n195 - n247*n86 + n250*n75 + n255);
23655  NP_2a = -n57*(pow(alpha, n1*n24)*n0*n101*pow(n147, n18)*n215 + pow(alpha, n1*n24)*n0*n101*pow(n214, -n0)*n25*n61/n159 - 1.0*n112*n171 + n112*n188*n25*(-1 + (-n19 + xPj*xTj)/(n118*n122*n43)) + 1.0*xTj*(n0*n17*n183*n42*xF[0]*(pow(alpha, NP0*n1 + n121*n17)*n1*n111*n2/n118 + n2*n89) + n100*pow(n150, n18)*n40*xF[1]*(pow(alpha, NP0*n1 - n121*n7)*n111*n59/n118 + n47*n59) + n102*pow(n156, n18)*n40*xF[7]*(pow(alpha, NP0*n1 - n121*n13)*n111*n60/n118 + n53*n60) + n106*pow(n152, n18)*(-pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*pow(n43, n18)*n64*n84*n9 + n117 + n120*n137*n84) + n107*pow(n158, n18)*(-pow(alpha, n1*n24 - n121*n15)*n103*pow(n118, n18)*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n15)*pow(n118, n18)*n15*pow(n43, n18)*n64*n84 + n103*n55 + n120*n136*n84) + n108*pow(n152, n18)*n40*(pow(alpha, NP0*n1 - n121*n9)*n111*n2*n9/n118 + n104*n2) + n109*pow(n157, n18)*(pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n14*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64 + n115 + n120*n139*n84) + n11*pow(n154, n18)*n40*n51*xF[5]*(pow(alpha, NP0*n1 - n11*n121)*n111*n58/n118 + n51*n58) + n110*pow(n149, n18)*n22*(pow(alpha, NP0*n1 - n121*n6)*n111*n2*n6/n118 + n110) + n112*n171 + n113*n174 + n114*n175 + n115*n176 + n116*n172 + n117*n177 - pow(n149, n18)*n86*(-pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n27*n29*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*pow(n43, n18)*n6*n64*n84 + n113 + n120*n140*n84) + pow(n151, n18)*n40*n97*xF[2]*(pow(alpha, NP0*n1 - n121*n8)*n111*n2*n8/n118 + n2*n97) + pow(n151, n18)*n96*(pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n17*n27*pow(n43, n18)*n64*n8 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64 + n120*n142*n17*n27 + n27*n31*n80) + pow(n153, n18)*n40*n92*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n2/n118 + n2*n92) + pow(n153, n18)*n77*xF[4]*(pow(alpha, n1*n24 - n10*n121)*n10*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n10*n121)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64 + n120*n134*n84 + n27*n33*n50) + pow(n155, n18)*n40*n88*xF[6]*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n2/n118 + n2*n88) + pow(n155, n18)*n94*(pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n12*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64 + n120*n138*n17*n27 + n27*n35*n82) + pow(n157, n18)*n40*n90*xF[8]*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n2/n118 + n2*n90) + pow(n158, n18)*n40*n87*xF[9]*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n2/n118 + n2*n87) + n179*n40*n93*(pow(alpha, NP0*n1 - n121*n5)*n111*n2*n5/n118 + n2*n93) + n179*n76*(-pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*n27*n28*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*pow(n43, n18)*n5*n64*n84 + n116 + n120*n144*n84) + n18*n190*n228 + n18*n251*n96 + n18*n252*n98 + n18*n256 + n185*n91 + n186*n99 + n187*n95 + n188*n245 + n191*(pow(alpha, n1*n24 - n11*n121)*n11*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n11*n121)*pow(n118, n18)*pow(n43, n18)*n64*n91 + n120*n145*n84 + n51*n91) + n193*(pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n7*n84 - pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n99 + n120*n141*n84 + n47*n99) + n194*(pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*n13*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*pow(n43, n18)*n64*n95 + n120*n135*n84 + n53*n95) + n196 + n197 + n198 + n18*n239*n74*xF[9]/n170 + n18*n238*n73*xF[8]/n169 + n18*n237*n72*xF[7]/n168 + n18*n236*n94/n167 + n18*n233*n68*xF[3]/n164 + n18*n231*n66*xF[1]/n162 + n18*n230*n86/n161 + n18*n229*n62*xF[10]/n160));
23656  NP_sqrt_base = (-NP0*n290 - n21*(-n57*n61*xF[0]/(pow(alpha, n17*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1)) + n61 - 1) - n57*n62*xF[10]/(n62 - 1 + pow(alpha, -n5*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n66*xF[1]/(n66 - 1 + pow(alpha, -n7*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n68*xF[3]/(n68 - 1 + pow(alpha, -n9*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n69*xF[4]/(n69 - 1 + pow(alpha, -n10*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n72*xF[7]/(n72 - 1 + pow(alpha, -n13*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n73*xF[8]/(n73 - 1 + pow(alpha, -n14*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n74*xF[9]/(n74 - 1 + pow(alpha, -n15*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n86/(n65 - 1 + pow(alpha, -n6*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n94/(n71 - 1 + pow(alpha, -n12*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n96/(n67 - 1 + pow(alpha, -n8*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1))) - n57*n98/(n70 - 1 + pow(alpha, -n11*(n85*(n119 - log(n78*(n19 + n23*xTj)/(n19 + n25*xTj) + 1)) + 1)))) - n25*n57*n61/(-n143 + n61 - 1) - pow(NP0, -n0)*(1.0*n183*n240*n57*n89 - 0.5*n190*n216*n243*n57 + 0.5*n200 + 0.5*n271 - 0.5*n292*xTj))*(-n0*n200 - n0*n21*(n106*pow(n152, n18)*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n84*n9/n118 - pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*pow(n43, n18)*n64*n84*n9 + n117) + n106*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n2*n9/n118 + n104*n2)*(pow(alpha, NP0*n1 - n121*n9)*n111*n40*n9/n118 + n104*n40)/n164 + n107*pow(n158, n18)*n57*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n84/n118 - pow(alpha, n1*n24 - n121*n15)*n103*pow(n118, n18)*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n15)*pow(n118, n18)*n15*pow(n43, n18)*n64*n84 + n103*n55) + n107*n57*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n2/n118 + n2*n87)*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n40/n118 + n40*n87)/n170 + n109*pow(n157, n18)*n57*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n84/n118 + pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n14*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64 + n115) + n109*n57*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n2/n118 + n2*n90)*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n40/n118 + n40*n90)/n169 - pow(n149, n18)*n57*n86*(pow(alpha, NP0*n1 - n121*n6)*n111*n6*n84/n118 - pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n27*n29*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*pow(n43, n18)*n6*n64*n84 + n113) + pow(n151, n18)*n57*n96*(pow(alpha, NP0*n1 - n121*n8)*n111*n17*n27*n8/n118 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n17*n27*pow(n43, n18)*n64*n8 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64 + n27*n31*n80) + pow(n153, n18)*n57*n77*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n84/n118 + pow(alpha, n1*n24 - n10*n121)*n10*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n10*n121)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64 + n27*n33*n50) + pow(n155, n18)*n57*n94*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n17*n27/n118 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n12*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64 + n27*n35*n82) + n178*n57*n75*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n2/n118 + n2*n88)*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n40/n118 + n40*n88) + n179*n57*n76*(pow(alpha, NP0*n1 - n121*n5)*n111*n5*n84/n118 - pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*n27*n28*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*pow(n43, n18)*n5*n64*n84 + n116) + n182*n57*n86*(pow(alpha, NP0*n1 - n121*n6)*n111*n2*n6/n118 + n110)*(pow(alpha, NP0*n1 - n121*n6)*n111*n40*n6/n118 + n40*n46*n6) + n188*n57*xF[0]*(pow(alpha, NP0*n1 - n1*n121)*n101*(-n19 + xPj*xTj)/(n118*n43) + n101*n78) + n189*n57*xF[1]*(pow(alpha, NP0*n1 - n121*n7)*n111*n59/n118 + n47*n59)*(pow(alpha, NP0*n1 - n121*n7)*n111*n40*n7/n118 + n100*n40) + n191*n57*(pow(alpha, NP0*n1 - n11*n121)*n11*n111*n84/n118 + pow(alpha, n1*n24 - n11*n121)*n11*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n11*n121)*pow(n118, n18)*pow(n43, n18)*n64*n91 + n51*n91) + n192*n57*(pow(alpha, NP0*n1 - n121*n13)*n111*n60/n118 + n53*n60)*(pow(alpha, NP0*n1 - n121*n13)*n111*n13*n40/n118 + n102*n40) + n193*n57*(pow(alpha, NP0*n1 - n121*n7)*n111*n7*n84/n118 + pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n7*n84 - pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n99 + n47*n99) + n194*n57*(pow(alpha, NP0*n1 - n121*n13)*n111*n13*n84/n118 + pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*n13*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*pow(n43, n18)*n64*n95 + n53*n95) + n200 + n201 + n202 + n203 + n204 + n205 + n206 + n207 + n208 + n209 + n210 + n211 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n267 + n268 + n269 - n57*n98*(pow(alpha, NP0*n1 - n11*n121)*n111*n58/n118 + n51*n58)*(pow(alpha, NP0*n1 - n11*n121)*n11*n111*n40/n118 + n11*n40*n51)/n166 + n57*n77*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n2/n118 + n2*n92)*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n40/n118 + n40*n92)/n165 - n57*n96*(pow(alpha, NP0*n1 - n121*n8)*n111*n2*n8/n118 + n2*n97)*(pow(alpha, NP0*n1 - n121*n8)*n111*n40*n8/n118 + n40*n97)/n163 + n57*n76*xF[10]*(pow(alpha, NP0*n1 - n121*n5)*n111*n2*n5/n118 + n2*n93)*(pow(alpha, NP0*n1 - n121*n5)*n111*n40*n5/n118 + n40*n93)/n160 + n25*n57*n61*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89)*(pow(alpha, NP0*n1 - n1*n121)*n0*n111*n17*n2/n118 + n0*n17*n2*n42)/n159) - n0*n271 + 4.0*n183*n240*n57*n89 - 4.0*n190*n228*n57) + pow(-n24*(1.0*n183*n57*n89*xF[0]*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89) + 0.5*n188*n57*xF[0]*(-pow(alpha, NP0*n1 - n1*n121)*n101*n111/n118 + n101*n78) - 0.5*n190*n57*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89)*(pow(alpha, NP0*n1 - n1*n121)*n0*n111*n17*n2/n118 + n0*n17*n2*n42) + n212 - 0.5*xTj*(n106*pow(n152, n18)*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n84*n9/n118 - pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*n27*n32*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n9)*pow(n118, n18)*pow(n43, n18)*n64*n84*n9 + n117) + n106*n57*(pow(alpha, NP0*n1 - n121*n9)*n111*n2*n9/n118 + n104*n2)*(pow(alpha, NP0*n1 - n121*n9)*n111*n40*n9/n118 + n104*n40)/n164 + n107*pow(n158, n18)*n57*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n84/n118 - pow(alpha, n1*n24 - n121*n15)*n103*pow(n118, n18)*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n15)*pow(n118, n18)*n15*pow(n43, n18)*n64*n84 + n103*n55) + n107*n57*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n2/n118 + n2*n87)*(pow(alpha, NP0*n1 - n121*n15)*n111*n15*n40/n118 + n40*n87)/n170 + n109*pow(n157, n18)*n57*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n84/n118 + pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n14*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n14)*pow(n118, n18)*n27*n37*pow(n43, n18)*n64 + n115) + n109*n57*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n2/n118 + n2*n90)*(pow(alpha, NP0*n1 - n121*n14)*n111*n14*n40/n118 + n40*n90)/n169 - pow(n149, n18)*n57*n86*(pow(alpha, NP0*n1 - n121*n6)*n111*n6*n84/n118 - pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*n27*n29*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n6)*pow(n118, n18)*pow(n43, n18)*n6*n64*n84 + n113) + pow(n151, n18)*n57*n96*(pow(alpha, NP0*n1 - n121*n8)*n111*n17*n27*n8/n118 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n17*n27*pow(n43, n18)*n64*n8 + pow(alpha, n1*n24 - n121*n8)*pow(n118, n18)*n27*n31*pow(n43, n18)*n64 + n27*n31*n80) + pow(n153, n18)*n57*n77*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n84/n118 + pow(alpha, n1*n24 - n10*n121)*n10*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n10*n121)*pow(n118, n18)*n27*n33*pow(n43, n18)*n64 + n27*n33*n50) + pow(n155, n18)*n57*n94*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n17*n27/n118 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n12*n17*n27*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n12*n121)*pow(n118, n18)*n27*n35*pow(n43, n18)*n64 + n27*n35*n82) + n178*n57*n75*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n2/n118 + n2*n88)*(pow(alpha, NP0*n1 - n12*n121)*n111*n12*n40/n118 + n40*n88) + n179*n57*n76*(pow(alpha, NP0*n1 - n121*n5)*n111*n5*n84/n118 - pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*n27*n28*pow(n43, n18)*n64 + pow(alpha, n1*n24 - n121*n5)*pow(n118, n18)*pow(n43, n18)*n5*n64*n84 + n116) + n182*n57*n86*(pow(alpha, NP0*n1 - n121*n6)*n111*n2*n6/n118 + n110)*(pow(alpha, NP0*n1 - n121*n6)*n111*n40*n6/n118 + n40*n46*n6) + n188*n57*xF[0]*(-pow(alpha, NP0*n1 - n1*n121)*n101*n111/n118 + n101*n78) + n189*n57*xF[1]*(pow(alpha, NP0*n1 - n121*n7)*n111*n59/n118 + n47*n59)*(pow(alpha, NP0*n1 - n121*n7)*n111*n40*n7/n118 + n100*n40) + n191*n57*(pow(alpha, NP0*n1 - n11*n121)*n11*n111*n84/n118 + pow(alpha, n1*n24 - n11*n121)*n11*pow(n118, n18)*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n11*n121)*pow(n118, n18)*pow(n43, n18)*n64*n91 + n51*n91) + n192*n57*(pow(alpha, NP0*n1 - n121*n13)*n111*n60/n118 + n53*n60)*(pow(alpha, NP0*n1 - n121*n13)*n111*n13*n40/n118 + n102*n40) + n193*n57*(pow(alpha, NP0*n1 - n121*n7)*n111*n7*n84/n118 + pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n7*n84 - pow(alpha, n1*n24 - n121*n7)*pow(n118, n18)*pow(n43, n18)*n64*n99 + n47*n99) + n194*n57*(pow(alpha, NP0*n1 - n121*n13)*n111*n13*n84/n118 + pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*n13*pow(n43, n18)*n64*n84 - pow(alpha, n1*n24 - n121*n13)*pow(n118, n18)*pow(n43, n18)*n64*n95 + n53*n95) + n200 + n201 + n202 + n203 + n204 + n205 + n206 + n207 + n208 + n209 + n210 + n211 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n267 + n268 + n269 - n57*n98*(pow(alpha, NP0*n1 - n11*n121)*n111*n58/n118 + n51*n58)*(pow(alpha, NP0*n1 - n11*n121)*n11*n111*n40/n118 + n11*n40*n51)/n166 + n57*n77*xF[4]*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n2/n118 + n2*n92)*(pow(alpha, NP0*n1 - n10*n121)*n10*n111*n40/n118 + n40*n92)/n165 - n57*n96*(pow(alpha, NP0*n1 - n121*n8)*n111*n2*n8/n118 + n2*n97)*(pow(alpha, NP0*n1 - n121*n8)*n111*n40*n8/n118 + n40*n97)/n163 + n57*n76*xF[10]*(pow(alpha, NP0*n1 - n121*n5)*n111*n2*n5/n118 + n2*n93)*(pow(alpha, NP0*n1 - n121*n5)*n111*n40*n5/n118 + n40*n93)/n160 + n25*n57*n61*(pow(alpha, NP0*n1 - n1*n121)*n1*n111*n2/n118 + n2*n89)*(pow(alpha, NP0*n1 - n1*n121)*n0*n111*n17*n2/n118 + n0*n17*n2*n42)/n159)) - n290, -n0);
23657  NP_sqrt_base = fabs(NP_sqrt_base);
23658  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
23659  NT1 = n85*(n119 - log(-pow(alpha, NP1*n1)*n111 + 1));
23660  g0 = MW[1] - Mstar;
23661  g1 = MW[0] - Mstar;
23662  g2 = NT1 + 1;
23663  g3 = xPj - xTj;
23664  g4 = MW[10] - Mstar;
23665  g5 = MW[11] - Mstar;
23666  g6 = MW[2] - Mstar;
23667  g7 = MW[3] - Mstar;
23668  g8 = MW[4] - Mstar;
23669  g9 = MW[5] - Mstar;
23670  g10 = MW[6] - Mstar;
23671  g11 = MW[7] - Mstar;
23672  g12 = MW[8] - Mstar;
23673  g13 = MW[9] - Mstar;
23674  g14 = xF[0] - xTj;
23675  g15 = xF[0] - xPj;
23676  g16 = -xTj;
23677  g17 = 1.0*xF[4];
23678  g18 = xPj/xF[1];
23679  g19 = pow(alpha, -g1);
23680  g20 = pow(alpha, -g4);
23681  g21 = pow(alpha, -g5);
23682  g22 = pow(alpha, -g0);
23683  g23 = pow(alpha, -g6);
23684  g24 = pow(alpha, -g7);
23685  g25 = pow(alpha, -g8);
23686  g26 = pow(alpha, -g9);
23687  g27 = pow(alpha, -g10);
23688  g28 = pow(alpha, -g11);
23689  g29 = pow(alpha, -g12);
23690  g30 = pow(alpha, -g13);
23691  g31 = log(xF[0]/xF[1]);
23692  g32 = -g2;
23693  g33 = pow(alpha, NP1*g0);
23694  g34 = pow(alpha, NP1*g1);
23695  g35 = pow(alpha, NP1*g4);
23696  g36 = log(g19);
23697  g37 = pow(alpha, NP1*g5);
23698  g38 = pow(alpha, NP1*g6);
23699  g39 = pow(alpha, NP1*g7);
23700  g40 = pow(alpha, NP1*g8);
23701  g41 = pow(alpha, NP1*g9);
23702  g42 = pow(alpha, NP1*g10);
23703  g43 = pow(alpha, NP1*g11);
23704  g44 = pow(alpha, NP1*g12);
23705  g45 = pow(alpha, NP1*g13);
23706  g46 = -g31;
23707  g47 = g14/g3;
23708  g48 = g3/g14;
23709  g49 = -g33 + 1;
23710  g50 = -g33 + 1;
23711  g51 = -g34 + 1;
23712  g52 = -g35 + 1;
23713  g53 = -g37 + 1;
23714  g54 = -g38 + 1;
23715  g55 = -g39 + 1;
23716  g56 = -g40 + 1;
23717  g57 = -g41 + 1;
23718  g58 = -g42 + 1;
23719  g59 = -g43 + 1;
23720  g60 = -g44 + 1;
23721  g61 = -g45 + 1;
23722  g62 = -g34;
23723  g63 = -g35;
23724  g64 = -g37;
23725  g65 = -g38;
23726  g66 = -g39;
23727  g67 = -g40;
23728  g68 = -g41;
23729  g69 = -g42;
23730  g70 = -g43;
23731  g71 = -g44;
23732  g72 = -g45;
23733  g73 = -1.0*g31;
23734  g74 = -g3/g15;
23735  g75 = g15/(g3*xF[1]);
23736  g76 = g73*xF[0];
23737  g77 = g73*xF[10];
23738  g78 = g73*xF[11];
23739  g79 = g73*xF[1];
23740  g80 = g73*xF[2];
23741  g81 = g73*xF[3];
23742  g82 = g73*xF[4];
23743  g83 = g73*xF[5];
23744  g84 = g73*xF[6];
23745  g85 = g73*xF[7];
23746  g86 = g73*xF[8];
23747  g87 = g73*xF[9];
23748  g88 = pow(alpha, g0*g32) - 1;
23749  g89 = pow(alpha, g0*g32) - 1;
23750  g90 = pow(alpha, g1*g32) - 1;
23751  g91 = pow(alpha, g32*g4) - 1;
23752  g92 = pow(alpha, g32*g5) - 1;
23753  g93 = pow(alpha, g32*g6) - 1;
23754  g94 = pow(alpha, g32*g7) - 1;
23755  g95 = pow(alpha, g32*g8) - 1;
23756  g96 = pow(alpha, g32*g9) - 1;
23757  g97 = pow(alpha, g10*g32) - 1;
23758  g98 = pow(alpha, g11*g32) - 1;
23759  g99 = pow(alpha, g12*g32) - 1;
23760  g100 = pow(alpha, g13*g32) - 1;
23761  g101 = -pow(alpha, g1*g32);
23762  g102 = -pow(alpha, g32*g4);
23763  g103 = -pow(alpha, g32*g5);
23764  g104 = -pow(alpha, g32*g6);
23765  g105 = -pow(alpha, g32*g7);
23766  g106 = -pow(alpha, g32*g8);
23767  g107 = -pow(alpha, g32*g9);
23768  g108 = -pow(alpha, g10*g32);
23769  g109 = -pow(alpha, g11*g32);
23770  g110 = -pow(alpha, g12*g32);
23771  g111 = -pow(alpha, g13*g32);
23772  g112 = g50 + g89;
23773  g113 = -g101 - g34;
23774  g114 = -g102 - g35;
23775  g115 = -g103 - g37;
23776  g116 = -g104 - g38;
23777  g117 = -g105 - g39;
23778  g118 = -g106 - g40;
23779  g119 = -g107 - g41;
23780  g120 = -g108 - g42;
23781  g121 = -g109 - g43;
23782  g122 = -g110 - g44;
23783  g123 = -g111 - g45;
23784  g124 = pow(alpha, g1*g32) + g62;
23785  g125 = g50 + g89;
23786  g126 = pow(alpha, g32*g4) + g63;
23787  g127 = pow(alpha, g32*g5) + g64;
23788  g128 = pow(alpha, g32*g6) + g65;
23789  g129 = pow(alpha, g32*g7) + g66;
23790  g130 = pow(alpha, g32*g8) + g67;
23791  g131 = pow(alpha, g32*g9) + g68;
23792  g132 = pow(alpha, g10*g32) + g69;
23793  g133 = pow(alpha, g11*g32) + g70;
23794  g134 = pow(alpha, g12*g32) + g71;
23795  g135 = pow(alpha, g13*g32) + g72;
23796  g136 = xF[11]/g127;
23797  g137 = xF[9]/g135;
23798  g138 = xF[8]/g134;
23799  g139 = xF[1]/g125;
23800  g140 = xF[3]/g129;
23801  g141 = xF[10]/g126;
23802  g142 = xF[6]/g132;
23803  g143 = xF[7]/g133;
23804  g144 = xF[5]/g131;
23805  g145 = xF[2]/g128;
23806  g146 = xF[0]/g124;
23807  g147 = xF[4]/g118;
23808  g148 = xF[1]/g112;
23809  g149 = xF[0]/g113;
23810  g150 = xF[9]/g123;
23811  g151 = xF[6]/g120;
23812  g152 = xF[7]/g121;
23813  g153 = xF[2]/g116;
23814  g154 = xF[11]/g115;
23815  g155 = xF[5]/g119;
23816  g156 = xF[3]/g117;
23817  g157 = xF[8]/g122;
23818  g158 = xF[10]/g114;
23819  g159 = 1.0*g149;
23820  g160 = 1.0*g151;
23821  g161 = 1.0*g153;
23822  g162 = 1.0*g154;
23823  g163 = 1.0*g155;
23824  g164 = 1.0*g150;
23825  g165 = 1.0*g157;
23826  g166 = 1.0*g158;
23827  g167 = 1.0*g156;
23828  g168 = 1.0*g148;
23829  g169 = 1.0*g152;
23830  g170 = g58/g120;
23831  g171 = g61/g123;
23832  g172 = g56/g118;
23833  g173 = g59/g121;
23834  g174 = g51/g113;
23835  g175 = g57/g119;
23836  g176 = g55/g117;
23837  g177 = g49/g112;
23838  g178 = g53/g115;
23839  g179 = g54/g116;
23840  g180 = g52/g114;
23841  g181 = g60/g122;
23842  g182 = g147*g56;
23843  g183 = g150*g61;
23844  g184 = g149*g51;
23845  g185 = g152*g59;
23846  g186 = g153*g54;
23847  g187 = g157*g60;
23848  g188 = g156*g55;
23849  g189 = g148*g49;
23850  g190 = g155*g57;
23851  g191 = g154*g53;
23852  g192 = g151*g58;
23853  g193 = g158*g52;
23854  g194 = g88/g112;
23855  g195 = g90/g113;
23856  g196 = g92/g115;
23857  g197 = g93/g116;
23858  g198 = g94/g117;
23859  g199 = g95/g118;
23860  g200 = g99/g122;
23861  g201 = g100/g123;
23862  g202 = g97/g120;
23863  g203 = g98/g121;
23864  g204 = g91/g114;
23865  g205 = g96/g119;
23866  g206 = g148*g88;
23867  g207 = g149*g90;
23868  g208 = g151*g97;
23869  g209 = g153*g93;
23870  g210 = g154*g92;
23871  g211 = g155*g96;
23872  g212 = g100*g150;
23873  g213 = g156*g94;
23874  g214 = g157*g99;
23875  g215 = g158*g91;
23876  g216 = g152*g98;
23877  g217 = log(g125*g16*g75/g50);
23878  g218 = log(g112*g16*g75/g49);
23879  g219 = log(g125*g18*g47/g89);
23880  g220 = 1.0*g217;
23881  g221 = log(g112*g18*g47/g88);
23882  g222 = 1.0*g219;
23883  g223 = g172*g218;
23884  g224 = g170*g218;
23885  g225 = g171*g218;
23886  g226 = g174*g218;
23887  g227 = g175*g218;
23888  g228 = g179*g218;
23889  g229 = g181*g218;
23890  g230 = g178*g218;
23891  g231 = g176*g218;
23892  g232 = g180*g218;
23893  g233 = g177*g218;
23894  g234 = g173*g218;
23895  g235 = g202*g221;
23896  g236 = g196*g221;
23897  g237 = g198*g221;
23898  g238 = g195*g221;
23899  g239 = g197*g221;
23900  g240 = g205*g221;
23901  g241 = g200*g221;
23902  g242 = g201*g221;
23903  g243 = g204*g221;
23904  g244 = g194*g221;
23905  g245 = g203*g221;
23906  g246 = g199*g221;
23907  g247 = g76 + g77 + g78 + g79 + g80 + g81 + g82 + g83 + g84 + g85 + g86 + g87;
23908  LpF = xF[0]*(g19 + 1.0)*(g226 + g238 + g46)/(g36*(g19 - 1.0)) + xF[10]*(g20 + 1.0)*(g232 + g243 + g46)/(g36*(g20 - 1.0)) + xF[11]*(g21 + 1.0)*(g230 + g236 + g46)/(g36*(g21 - 1.0)) + xF[1]*(g22 + 1.0)*(g233 + g244 + g46)/(g36*(g22 - 1.0)) + xF[2]*(g23 + 1.0)*(g228 + g239 + g46)/(g36*(g23 - 1.0)) + xF[3]*(g24 + 1.0)*(g231 + g237 + g46)/(g36*(g24 - 1.0)) + xF[4]*(g25 + 1.0)*(g223 + g246 + g46)/(g36*(g25 - 1.0)) + xF[5]*(g26 + 1.0)*(g227 + g240 + g46)/(g36*(g26 - 1.0)) + xF[6]*(g27 + 1.0)*(g224 + g235 + g46)/(g36*(g27 - 1.0)) + xF[7]*(g28 + 1.0)*(g234 + g245 + g46)/(g36*(g28 - 1.0)) + xF[8]*(g29 + 1.0)*(g229 + g241 + g46)/(g36*(g29 - 1.0)) + xF[9]*(g30 + 1.0)*(g225 + g242 + g46)/(g36*(g30 - 1.0));
23909  PpF = g47;
23910  TpF = -g15/g3;
23911  SWUpF = -g136*g220*(g64 + 1) - g136*g222*(pow(alpha, g32*g5) - 1) - g137*g220*(g72 + 1) - g137*g222*(pow(alpha, g13*g32) - 1) - g138*g220*(g71 + 1) - g138*g222*(pow(alpha, g12*g32) - 1) - g139*g220*g50 - g139*g222*g89 - g140*g220*(g66 + 1) - g140*g222*(pow(alpha, g32*g7) - 1) - g141*g220*(g63 + 1) - g141*g222*(pow(alpha, g32*g4) - 1) - g142*g220*(g69 + 1) - g142*g222*(pow(alpha, g10*g32) - 1) - g143*g220*(g70 + 1) - g143*g222*(pow(alpha, g11*g32) - 1) - g144*g220*(g68 + 1) - g144*g222*(pow(alpha, g32*g9) - 1) - g145*g220*(g65 + 1) - g145*g222*(pow(alpha, g32*g6) - 1) - g146*g220*(g62 + 1) - g146*g222*(pow(alpha, g1*g32) - 1) - g247 - g17*g217*(g67 + 1)/g130 - g17*g219*(pow(alpha, g32*g8) - 1)/g130;
23912  SWUpP = -g48*(g100*g164*g221 + g159*g218*g51 + g159*g221*g90 + g160*g218*g58 + g160*g221*g97 + g161*g218*g54 + g161*g221*g93 + g162*g218*g53 + g162*g221*g92 + g163*g218*g57 + g163*g221*g96 + g164*g218*g61 + g165*g218*g60 + g165*g221*g99 + g166*g218*g52 + g166*g221*g91 + g167*g218*g55 + g167*g221*g94 + g168*g218*g49 + g168*g221*g88 + g169*g218*g59 + g169*g221*g98 + g17*g223 + g17*g246 + g247);
23913  xP[0] = g207*g48;
23914  xP[1] = g206*g48;
23915  xP[2] = g209*g48;
23916  xP[3] = g213*g48;
23917  xP[4] = g147*g48*g95;
23918  xP[5] = g211*g48;
23919  xP[6] = g208*g48;
23920  xP[7] = g216*g48;
23921  xP[8] = g214*g48;
23922  xP[9] = g212*g48;
23923  xP[10] = g215*g48;
23924  xP[11] = g210*g48;
23925  xT[0] = g184*g74;
23926  xT[1] = g189*g74;
23927  xT[2] = g186*g74;
23928  xT[3] = g188*g74;
23929  xT[4] = g182*g74;
23930  xT[5] = g190*g74;
23931  xT[6] = g192*g74;
23932  xT[7] = g185*g74;
23933  xT[8] = g187*g74;
23934  xT[9] = g183*g74;
23935  xT[10] = g193*g74;
23936  xT[11] = g191*g74;
23937  break;
23938  case 13:
23939  n0 = -0.500000000000000;
23940  n1 = -2.00000000000000;
23941  n2 = MW[0] - Mstar;
23942  n3 = log(alpha);
23943  n4 = xPj - xTj;
23944  n5 = xF[0] - xPj;
23945  n6 = MW[10] - Mstar;
23946  n7 = MW[11] - Mstar;
23947  n8 = MW[12] - Mstar;
23948  n9 = MW[1] - Mstar;
23949  n10 = MW[2] - Mstar;
23950  n11 = MW[3] - Mstar;
23951  n12 = MW[4] - Mstar;
23952  n13 = MW[5] - Mstar;
23953  n14 = MW[6] - Mstar;
23954  n15 = MW[7] - Mstar;
23955  n16 = MW[8] - Mstar;
23956  n17 = MW[9] - Mstar;
23957  n18 = log(xTj);
23958  n19 = -n2;
23959  n20 = -2;
23960  n21 = xF[0]*xPj;
23961  n22 = -Mstar;
23962  n23 = -n1*xF[11];
23963  n24 = -xTj;
23964  n25 = -NP0*n1;
23965  n26 = pow(n2, -n1);
23966  n27 = pow(n3, -n1);
23967  n28 = pow(n6, -n1);
23968  n29 = pow(n7, -n1);
23969  n30 = pow(n8, -n1);
23970  n31 = pow(n9, -n1);
23971  n32 = pow(n10, -n1);
23972  n33 = pow(n11, -n1);
23973  n34 = pow(n12, -n1);
23974  n35 = pow(n13, -n1);
23975  n36 = pow(n14, -n1);
23976  n37 = pow(n15, -n1);
23977  n38 = pow(n16, -n1);
23978  n39 = pow(n17, -n1);
23979  n40 = Mstar*n3;
23980  n41 = -n1*n3;
23981  n42 = pow(alpha, NP0*n2);
23982  n43 = n21 + n24*xF[0];
23983  n44 = n21 + n24*xPj;
23984  n45 = pow(alpha, NP0*n6);
23985  n46 = pow(alpha, NP0*n7);
23986  n47 = pow(alpha, NP0*n8);
23987  n48 = pow(alpha, NP0*n9);
23988  n49 = pow(alpha, NP0*n10);
23989  n50 = pow(alpha, NP0*n11);
23990  n51 = pow(alpha, NP0*n12);
23991  n52 = pow(alpha, NP0*n13);
23992  n53 = pow(alpha, NP0*n14);
23993  n54 = pow(alpha, NP0*n15);
23994  n55 = pow(alpha, NP0*n16);
23995  n56 = pow(alpha, NP0*n17);
23996  n57 = -MW[0]*n3;
23997  n58 = n4/n5;
23998  n59 = n13*n3;
23999  n60 = n3*n9;
24000  n61 = -n33;
24001  n62 = n2*n3;
24002  n63 = n15*n3;
24003  n64 = -n42 + 1;
24004  n65 = -n45 + 1;
24005  n66 = pow(alpha, NP0*n1*n19);
24006  n67 = pow(n44, -n1);
24007  n68 = -n46 + 1;
24008  n69 = -n47 + 1;
24009  n70 = -n48 + 1;
24010  n71 = -n49 + 1;
24011  n72 = -n50 + 1;
24012  n73 = -n51 + 1;
24013  n74 = -n52 + 1;
24014  n75 = -n53 + 1;
24015  n76 = -n54 + 1;
24016  n77 = -n55 + 1;
24017  n78 = -n56 + 1;
24018  n79 = -n72;
24019  n80 = -n75;
24020  n81 = -n73;
24021  n82 = -n42;
24022  n83 = -n46;
24023  n84 = -n47;
24024  n85 = -n49;
24025  n86 = -n52;
24026  n87 = -n53;
24027  n88 = -n56;
24028  n89 = n42*xF[0];
24029  n90 = 1.0/n62;
24030  n91 = n68*xF[11];
24031  n92 = n11*n50;
24032  n93 = n14*n53;
24033  n94 = n16*n55;
24034  n95 = n27*n35;
24035  n96 = n3*n51;
24036  n97 = n26*n27;
24037  n98 = n2*n42;
24038  n99 = n27*n37;
24039  n100 = n10*n49;
24040  n101 = n71*xF[2];
24041  n102 = n64*xF[0];
24042  n103 = n17*n56;
24043  n104 = n27*n30;
24044  n105 = n27*n31;
24045  n106 = n45*n6;
24046  n107 = n48*n9;
24047  n108 = n74*xF[5];
24048  n109 = n47*n8;
24049  n110 = n15*n54;
24050  n111 = n27*n39;
24051  n112 = log((-1.0 + xPj/xF[0])/n4);
24052  n113 = -n69*xF[12];
24053  n114 = -n78*xF[9];
24054  n115 = n106*xF[10];
24055  n116 = -n65*xF[10];
24056  n117 = -n77*xF[8];
24057  n118 = -n76*xF[7];
24058  n119 = n3*n46*n7;
24059  n120 = n44/n43;
24060  n121 = n109*n3*xF[12];
24061  n122 = n27*n29*n46;
24062  n123 = n27*n32*n49;
24063  n124 = n27*n38*n55;
24064  n125 = n27*n34*n51;
24065  n126 = n27*n28*n45;
24066  n127 = n27*n36*n53;
24067  n128 = n27*n33*n50;
24068  n129 = n120*n82 + 1;
24069  n130 = n112 + n18 + n40 + n57;
24070  n131 = n120/n129;
24071  n132 = n131*n27;
24072  n133 = n131*n3*n42;
24073  n134 = n90*(n130 - log(n129)) + 1;
24074  n135 = pow(alpha, n134*n2);
24075  n136 = pow(alpha, n134*n6);
24076  n137 = pow(alpha, n134*n7);
24077  n138 = pow(alpha, n134*n8);
24078  n139 = pow(alpha, n134*n9);
24079  n140 = pow(alpha, n10*n134);
24080  n141 = pow(alpha, n11*n134);
24081  n142 = pow(alpha, n12*n134);
24082  n143 = pow(alpha, n13*n134);
24083  n144 = pow(alpha, n134*n14);
24084  n145 = pow(alpha, n134*n15);
24085  n146 = pow(alpha, n134*n16);
24086  n147 = pow(alpha, n134*n17);
24087  n148 = n8/n138;
24088  n149 = n15/n145;
24089  n150 = n17/n147;
24090  n151 = n11/n141;
24091  n152 = n14/n144;
24092  n153 = n16/n146;
24093  n154 = n7/n137;
24094  n155 = n9/n139;
24095  n156 = n10/n140;
24096  n157 = n6/n136;
24097  n158 = n12/n142;
24098  n159 = n13/n143;
24099  n160 = n29/n137;
24100  n161 = n42/n143;
24101  n162 = pow(alpha, n134*n19) + n64 - 1;
24102  n163 = n65 - 1 + 1.0/n136;
24103  n164 = n68 - 1 + 1.0/n137;
24104  n165 = n69 - 1 + 1.0/n138;
24105  n166 = n70 - 1 + 1.0/n139;
24106  n167 = n71 - 1 + 1.0/n140;
24107  n168 = n72 - 1 + 1.0/n141;
24108  n169 = n73 - 1 + 1.0/n142;
24109  n170 = n74 - 1 + 1.0/n143;
24110  n171 = n75 - 1 + 1.0/n144;
24111  n172 = n76 - 1 + 1.0/n145;
24112  n173 = n77 - 1 + 1.0/n146;
24113  n174 = n78 - 1 + 1.0/n147;
24114  n175 = pow(n162, 3);
24115  n176 = pow(n163, 3);
24116  n177 = pow(n164, 3);
24117  n178 = pow(n165, 3);
24118  n179 = pow(n166, 3);
24119  n180 = pow(n167, 3);
24120  n181 = pow(n168, 3);
24121  n182 = pow(n169, 3);
24122  n183 = pow(n170, 3);
24123  n184 = pow(n171, 3);
24124  n185 = pow(n172, 3);
24125  n186 = pow(n173, 3);
24126  n187 = pow(n174, 3);
24127  n188 = xF[2]/n167;
24128  n189 = xF[11]/n164;
24129  n190 = xF[4]/n169;
24130  n191 = xF[3]/n168;
24131  n192 = xF[8]/n173;
24132  n193 = xF[6]/n171;
24133  n194 = xF[10]/n163;
24134  n195 = pow(n168, n20)*xF[3];
24135  n196 = xF[6]/n184;
24136  n197 = n3/n163;
24137  n198 = -1/n162;
24138  n199 = xF[4]/n182;
24139  n200 = n3*xF[9]/n174;
24140  n201 = n52*xF[5]/n170;
24141  n202 = n48*xF[1]/n166;
24142  n203 = n54*xF[7]/n172;
24143  n204 = n47*xF[12]/n165;
24144  n205 = n70/n179;
24145  n206 = pow(n162, n20)*n64;
24146  n207 = -n108*pow(n170, n20);
24147  n208 = n118/n185;
24148  n209 = -pow(n166, n20)*n70*xF[1];
24149  n210 = n111*n56*xF[9]/n174;
24150  n211 = n58*n89/(n162*n90);
24151  n212 = n19*n3*n58*n89/n162;
24152  n213 = n58*n89*n97/n162;
24153  n214 = n126*n194*n58;
24154  n215 = n122*n189*n58;
24155  n216 = n104*n204*n58;
24156  n217 = n105*n202*n58;
24157  n218 = n123*n188*n58;
24158  n219 = n128*n191*n58;
24159  n220 = n125*n190*n58;
24160  n221 = n201*n58*n95;
24161  n222 = n127*n193*n58;
24162  n223 = n203*n58*n99;
24163  n224 = n124*n192*n58;
24164  n225 = n210*n58;
24165  n226 = n0*n58*n82*n97*xF[0]/n162;
24166  n227 = n131/n135 + 1;
24167  n228 = n131*n42/(n135*n90) + n42/n90;
24168  n229 = n106*n3 + n133*n157;
24169  n230 = n119 + n133*n154;
24170  n231 = n109*n3 + n133*n148;
24171  n232 = n131*n42*n60/n139 + n48*n60;
24172  n233 = n100*n3 + n133*n156;
24173  n234 = n133*n151 + n3*n92;
24174  n235 = n12*n96 + n133*n158;
24175  n236 = n131*n161*n59 + n52*n59;
24176  n237 = n133*n152 + n3*n93;
24177  n238 = n131*n42*n63/n145 + n54*n63;
24178  n239 = n133*n153 + n3*n94;
24179  n240 = n103*n3 + n133*n150;
24180  n241 = pow(n228, -n1);
24181  n242 = pow(n229, -n1);
24182  n243 = pow(n230, -n1);
24183  n244 = pow(n231, -n1);
24184  n245 = pow(n232, -n1);
24185  n246 = pow(n233, -n1);
24186  n247 = pow(n234, -n1);
24187  n248 = pow(n235, -n1);
24188  n249 = pow(n236, -n1);
24189  n250 = pow(n237, -n1);
24190  n251 = pow(n238, -n1);
24191  n252 = pow(n239, -n1);
24192  n253 = pow(n240, -n1);
24193  n254 = n232*xF[1];
24194  n255 = n1*n133*n19/n135 + n1*n19*n3*n42;
24195  n256 = n245*xF[1];
24196  n257 = n131*n82*n97/n135 + n82*n97;
24197  n258 = pow(n165, n20)*n231;
24198  n259 = pow(n162, n20)*n228;
24199  n260 = pow(n164, n20)*n230;
24200  n261 = pow(n174, n20)*n240;
24201  n262 = pow(n163, n20)*n229;
24202  n263 = pow(n172, n20)*n238;
24203  n264 = pow(n173, n20)*n239;
24204  n265 = pow(n171, n20)*n237*xF[6];
24205  n266 = n241/n175;
24206  n267 = n246/n180;
24207  n268 = pow(n169, n20)*n235*xF[4];
24208  n269 = n249/n183;
24209  n270 = n243/n177;
24210  n271 = pow(n162, n20)*n257;
24211  n272 = -n102*n259*n58;
24212  n273 = n1*pow(n162, n20)*n19*n3*n58*n89*(pow(alpha, NP0*n2 + n134*n19)*n131/n90 + n42/n90);
24213  n274 = n115*pow(n163, n20)*n41*n58*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3);
24214  n275 = n119*pow(n164, n20)*n23*n58*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119);
24215  n276 = n109*pow(n165, n20)*n41*n58*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3);
24216  n277 = n107*pow(n166, n20)*n41*n58*xF[1]*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60);
24217  n278 = n100*pow(n167, n20)*n41*n58*xF[2]*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3);
24218  n279 = n195*n41*n58*n92*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92);
24219  n280 = n12*pow(n169, n20)*n41*n51*n58*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96);
24220  n281 = n13*pow(n170, n20)*n41*n52*n58*xF[5]*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59);
24221  n282 = pow(n171, n20)*n41*n58*n93*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93);
24222  n283 = n110*pow(n172, n20)*n41*n58*xF[7]*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63);
24223  n284 = pow(n173, n20)*n41*n58*n94*xF[8]*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94);
24224  n285 = n103*pow(n174, n20)*n41*n58*xF[9]*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3);
24225  n286 = 1.0*n259*n58*n89/n90;
24226  n287 = n102*n271*n58;
24227  n288 = -n0*n287;
24228  n289 = n211 + n272;
24229  n290 = n228*n255/n175;
24230  n291 = pow(alpha, n2*n25)*pow(n129, n20)*n157*n2*n27*pow(n43, n20)*n67 - pow(alpha, n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67/n136 + n126 + n132*n157*n98;
24231  n292 = pow(alpha, n2*n25)*pow(n129, n20)*n154*n19*n27*pow(n43, n20)*n67 + pow(alpha, n2*n25)*pow(n129, n20)*n160*n27*pow(n43, n20)*n67 + n132*n154*n19*n42 + n27*n29*n83;
24232  n293 = pow(alpha, n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67/n138 + pow(alpha, n2*n25)*pow(n129, n20)*n148*n19*n27*pow(n43, n20)*n67 + n104*n84 + n132*n148*n19*n42;
24233  n294 = pow(alpha, n2*n25)*pow(n129, n20)*n156*n19*n27*pow(n43, n20)*n67 + pow(alpha, n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67/n140 + n132*n156*n19*n42 + n27*n32*n85;
24234  n295 = pow(alpha, n2*n25)*pow(n129, n20)*n158*n2*n27*pow(n43, n20)*n67 - pow(alpha, n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67/n142 + n125 + n132*n158*n98;
24235  n296 = pow(alpha, n2*n25)*pow(n129, n20)*n152*n19*n27*pow(n43, n20)*n67 + pow(alpha, n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67/n144 + n132*n152*n19*n42 + n27*n36*n87;
24236  n297 = pow(alpha, n2*n25)*pow(n129, n20)*n149*n2*n27*pow(n43, n20)*n67 - pow(alpha, n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99/n145 + n132*n149*n98 + n54*n99;
24237  n298 = pow(alpha, n2*n25)*pow(n129, n20)*n153*n2*n27*pow(n43, n20)*n67 - pow(alpha, n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67/n146 + n124 + n132*n153*n98;
24238  n299 = pow(n165, n20)*n58*n69*xF[12]*(pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84 + n132*n148*n19*n42);
24239  n300 = n101*pow(n167, n20)*n58*(pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n132*n156*n19*n42 + n27*n32*n85);
24240  n301 = pow(n171, n20)*n58*n75*xF[6]*(pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n132*n152*n19*n42 + n27*n36*n87);
24241  n302 = n116*pow(n163, n20)*n58*(pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126 + n132*n157*n98);
24242  n303 = n209*n58*(-pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48 + n132*n155*n98);
24243  n304 = pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125 + n132*n158*n98);
24244  n305 = n207*n58*(pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n132*n159*n98 + n52*n95);
24245  n306 = n118*pow(n172, n20)*n58*(pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n132*n149*n98 + n54*n99);
24246  n307 = n117*pow(n173, n20)*n58*(pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124 + n132*n153*n98);
24247  n308 = n114*pow(n174, n20)*n58*(-pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n2*n27*pow(n43, n20)*n67 + n111*n56 + n132*n150*n98);
24248  n309 = n226 + n286 + n288;
24249  n310 = n100*n188*n3*n58 - n101*pow(n167, n20)*n233*n58 + n103*n200*n58 + n113*n258*n58 + n114*n261*n58 + n115*n197*n58 + n116*n262*n58 + n117*n264*n58 + n118*n263*n58 + n119*n189*n58 + n12*n190*n58*n96 + n121*n58/n165 + n191*n3*n58*n92 + n192*n3*n58*n94 + n193*n3*n58*n93 + n195*n234*n58*n79 + n201*n58*n59 + n202*n58*n60 + n203*n58*n63 + n207*n236*n58 + n209*n232*n58 - n260*n58*n91 + n265*n58*n80 + n268*n58*n81 + n289;
24250  n311 = n310*xTj;
24251  n312 = n213 + n214 + n215 + n216 + n217 + n218 + n219 + n220 + n221 + n222 + n223 + n224 + n225 + n273 + n274 + n275 + n276 + n277 + n278 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n287 + n299 + n300 + n301 + n302 + n303 + n304 + n305 + n306 + n307 + n308;
24252  n313 = -n101*n233*n58*(n100*n41 + n131*n156*n41*n42)/n180 - n102*n290*n58 - n108*n236*n58*(n13*n41*n52 + n131*n159*n41*n42)/n183 + n113*n231*n58*(n109*n41 + n131*n148*n41*n42)/n178 + n114*n240*n58*(n103*n41 + n131*n150*n41*n42)/n187 + n116*n229*n58*(n106*n41 + n131*n157*n41*n42)/n176 + n117*n239*n58*(n131*n153*n41*n42 + n41*n94)/n186 - pow(n164, n20)*n58*n91*(pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n7 - pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n122 + n132*n154*n98) + n195*n58*n72*(pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*n33*pow(n43, n20)*n67 + n132*n151*n19*n42 + n27*n50*n61) + n196*n237*n58*n80*(n131*n152*n41*n42 + n41*n93) + n199*n235*n58*n81*(n12*n41*n51 + n131*n158*n41*n42) - n205*n254*n58*(n107*n41 + n131*n155*n41*n42) + n208*n238*n58*(n110*n41 + n131*n149*n41*n42) + n312 + n234*n58*n79*xF[3]*(n131*n151*n41*n42 + n41*n92)/n181 - n230*n58*n91*(n131*n154*n41*n42 + n41*n46*n7)/n177;
24253  n314 = n313*xTj;
24254  NP_b = -n206*n227*n58*n89/n90 - n212 - n25*(-n0*n102*pow(n162, n20)*n58*(-pow(alpha, NP0*n2 - n134*n2)*n131*n97 + n82*n97) + n0*xTj*(n101*pow(n167, n20)*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n132*n19 + pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n27*n32*n85) + n101*n20*n267*n58 + n102*pow(n162, n20)*n58*(-pow(alpha, NP0*n2 - n134*n2)*n131*n97 + n82*n97) + n102*n20*n266*n58 + n108*n20*n269*n58 + n114*pow(n174, n20)*n58*(pow(alpha, NP0*n2 - n134*n17)*n132*n17*n2 - pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n2*n27*pow(n43, n20)*n67 + n111*n56) + n116*pow(n163, n20)*n58*(pow(alpha, NP0*n2 - n134*n6)*n132*n2*n6 + pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126) + n117*pow(n173, n20)*n58*(pow(alpha, NP0*n2 - n134*n16)*n132*n16*n2 + pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124) + n118*pow(n172, n20)*n58*(pow(alpha, NP0*n2 - n134*n15)*n132*n15*n2 + pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n54*n99) + pow(n164, n20)*n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n132*n19*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n27*n29*n83) + pow(n165, n20)*n58*n69*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n132*n19*n8 + pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84) + pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n132*n2 + pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125) + pow(n171, n20)*n58*n75*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n132*n14*n19 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n27*n36*n87) + n195*n58*n79*(pow(alpha, NP0*n2 - n11*n134)*n11*n132*n2 + pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*pow(n43, n20)*n61*n67 + n128) + n196*n20*n250*n58*n75 + n199*n20*n248*n58*n73 + n20*n205*n256*n58 + n20*n270*n58*n91 + n207*n58*(pow(alpha, NP0*n2 - n13*n134)*n13*n132*n2 + pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n52*n95) + n209*n58*(pow(alpha, NP0*n2 - n134*n9)*n132*n2*n9 - pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48) + n213 + n214 + n215 + n216 + n217 + n218 + n219 + n220 + n221 + n222 + n223 + n224 + n225 + n273 + n274 + n275 + n276 + n277 + n278 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n20*n253*n58*n78*xF[9]/n187 + n20*n252*n58*n77*xF[8]/n186 + n20*n251*n58*n76*xF[7]/n185 + n20*n247*n58*n72*xF[3]/n181 + n20*n244*n58*n69*xF[12]/n178 + n20*n242*n58*n65*xF[10]/n176) - 1.0*n102*n266*n58 + 1.0*pow(n162, n20)*n58*n89*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)/n90 + n226) - n58*xTj*(n100*n188*n3 - n101*pow(n167, n20)*n233 - n102*n259 + n103*n200 + n113*n258 + n114*n261 + n115*n197 + n116*n262 + n117*n264 + n118*n263 + n119*n189 + n12*n190*n96 + n121/n165 + n191*n3*n92 + n192*n3*n94 + n193*n3*n93 + n195*n234*n79 + n201*n59 + n202*n60 + n203*n63 + n207*n236 + n209*n232 - n260*n91 + n265*n80 + n268*n81 + n89/(n162*n90));
24255  NP_2a = -n58*(-pow(alpha, n2*n25)*n1*n102*pow(n227, -n1)*n97/n175 + pow(alpha, n2*n25)*n1*pow(n162, n20)*n227*n97*xF[0] + n102*pow(n162, n20)*n82*n97*(-1 + (-n21 + xPj*xTj)/(n129*n135*n43)) + 1.0*xTj*(n1*pow(n162, n20)*n19*n3*n89*(pow(alpha, NP0*n2 + n134*n19)*n131/n90 + n42/n90) + n100*pow(n167, n20)*n41*xF[2]*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3) + n101*pow(n167, n20)*(pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n132*n156*n19*n42 + n27*n32*n85) + n101*n20*n267 + n102*n20*n266 + n102*n271 + n103*pow(n174, n20)*n41*xF[9]*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3) + n104*n204 + n105*n202 + n107*pow(n166, n20)*n41*xF[1]*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60) + n108*n20*n269 + n109*pow(n165, n20)*n41*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3) + n110*pow(n172, n20)*n41*xF[7]*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63) + n115*pow(n163, n20)*n41*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3) + n116*pow(n163, n20)*(pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126 + n132*n157*n98) + n117*pow(n173, n20)*(pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124 + n132*n153*n98) + n118*pow(n172, n20)*(pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n132*n149*n98 + n54*n99) + n119*pow(n164, n20)*n23*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119) + n12*pow(n169, n20)*n41*n51*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96) + n122*n189 + n123*n188 + n124*n192 + n125*n190 + n126*n194 + n127*n193 + n128*n191 + n13*pow(n170, n20)*n41*n52*xF[5]*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59) + pow(n164, n20)*n91*(pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n132*n154*n19*n42 + n27*n29*n83) + pow(n165, n20)*n69*xF[12]*(pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84 + n132*n148*n19*n42) + pow(n169, n20)*n81*xF[4]*(pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125 + n132*n158*n98) + pow(n171, n20)*n41*n93*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93) + pow(n171, n20)*n75*xF[6]*(pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n132*n152*n19*n42 + n27*n36*n87) + pow(n173, n20)*n41*n94*xF[8]*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94) + pow(n174, n20)*n78*xF[9]*(pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n19*n27*pow(n43, n20)*n67 + n111*n88 + n132*n150*n19*n42) + n195*n41*n92*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92) + n195*n79*(pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*pow(n43, n20)*n61*n67 + n128 + n132*n151*n98) + n196*n20*n250*n75 + n199*n20*n248*n73 + n20*n205*n256 + n20*n270*n91 + n201*n95 + n203*n99 + n207*(pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n132*n159*n98 + n52*n95) + n209*(-pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48 + n132*n155*n98) + n210 + n20*n253*n78*xF[9]/n187 + n20*n252*n77*xF[8]/n186 + n20*n251*n76*xF[7]/n185 + n20*n247*n72*xF[3]/n181 + n20*n244*n69*xF[12]/n178 + n20*n242*n65*xF[10]/n176 + n89*n97/n162) - 1.0*n89*n97/n162);
24256  NP_sqrt_base = (NP0*(n24*(n100*n188*n3*n58 - n101*pow(n167, n20)*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3) - n102*pow(n162, n20)*n58*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90) + n103*n200*n58 + n113*pow(n165, n20)*n58*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3) + n114*pow(n174, n20)*n58*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3) + n115*n197*n58 + n116*pow(n163, n20)*n58*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3) + n117*pow(n173, n20)*n58*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94) + n118*pow(n172, n20)*n58*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63) + n119*n189*n58 + n12*n190*n58*n96 + n121*n58/n165 - pow(n164, n20)*n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119) + pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96) + pow(n171, n20)*n58*n80*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93) + n191*n3*n58*n92 + n192*n3*n58*n94 + n193*n3*n58*n93 + n195*n58*n79*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92) + n201*n58*n59 + n202*n58*n60 + n203*n58*n63 + n207*n58*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59) + n209*n58*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60) + n211) + n289) + n102*n58/n162 + xTj*(-n101*n58/n167 + n102*n198*n58 - n108*n58/n170 + n113*n58/n165 + n114*n58/n174 + n116*n58/n163 + n117*n58/n173 + n118*n58/n172 + n190*n58*n81 + n191*n58*n79 + n193*n58*n80 - n58*n70*xF[1]/n166 - n58*n91/n164) + pow(NP0, -n1)*(-n0*n102*n290*n58 + n0*n213 + n0*n24*(n101*pow(n167, n20)*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n132*n19 + pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n27*n32*n85) - n101*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3)*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n41 + n100*n41)/n180 + n102*pow(n162, n20)*n58*(pow(alpha, NP0*n2 - n134*n2)*n97*(-n21 + xPj*xTj)/(n129*n43) + n82*n97) - n102*n58*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)*(pow(alpha, NP0*n2 - n134*n2)*n1*n131*n19*n3 + n1*n19*n3*n42)/n175 - n108*n58*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59)*(pow(alpha, NP0*n2 - n13*n134)*n13*n131*n41 + n13*n41*n52)/n183 + n113*n58*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3)*(pow(alpha, NP0*n2 - n134*n8)*n131*n41*n8 + n109*n41)/n178 + n114*pow(n174, n20)*n58*(pow(alpha, NP0*n2 - n134*n17)*n132*n17*n2 - pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n2*n27*pow(n43, n20)*n67 + n111*n56) + n114*n58*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3)*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n41 + n103*n41)/n187 + n116*pow(n163, n20)*n58*(pow(alpha, NP0*n2 - n134*n6)*n132*n2*n6 + pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126) + n116*n58*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3)*(pow(alpha, NP0*n2 - n134*n6)*n131*n41*n6 + n106*n41)/n176 + n117*pow(n173, n20)*n58*(pow(alpha, NP0*n2 - n134*n16)*n132*n16*n2 + pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124) + n117*n58*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94)*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n41 + n41*n94)/n186 + n118*pow(n172, n20)*n58*(pow(alpha, NP0*n2 - n134*n15)*n132*n15*n2 + pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n54*n99) - pow(n164, n20)*n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n132*n2*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n7 - pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n122) + pow(n165, n20)*n58*n69*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n132*n19*n8 + pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84) + pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n132*n2 + pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125) + pow(n171, n20)*n58*n75*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n132*n14*n19 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n27*n36*n87) + n195*n58*n72*(pow(alpha, NP0*n2 - n11*n134)*n11*n132*n19 + pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*n33*pow(n43, n20)*n67 + n27*n50*n61) + n196*n58*n80*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93)*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n41 + n41*n93) + n199*n58*n81*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96)*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n41 + n12*n41*n51) - n205*n58*xF[1]*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60)*(pow(alpha, NP0*n2 - n134*n9)*n131*n41*n9 + n107*n41) + n207*n58*(pow(alpha, NP0*n2 - n13*n134)*n13*n132*n2 + pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n52*n95) + n208*n58*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63)*(pow(alpha, NP0*n2 - n134*n15)*n131*n15*n41 + n110*n41) + n209*n58*(pow(alpha, NP0*n2 - n134*n9)*n132*n2*n9 - pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48) + n213 + n214 + n215 + n216 + n217 + n218 + n219 + n220 + n221 + n222 + n223 + n224 + n225 + n273 + n274 + n275 + n276 + n277 + n278 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n58*n79*xF[3]*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92)*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n41 + n41*n92)/n181 - n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119)*(pow(alpha, NP0*n2 - n134*n7)*n131*n41*n7 + n41*n46*n7)/n177) + n0*n287 - 1.0*n259*n58*n89/n90))*(-n1*n213 - n1*n24*(n101*pow(n167, n20)*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n132*n19 + pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n27*n32*n85) - n101*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3)*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n41 + n100*n41)/n180 + n102*pow(n162, n20)*n58*(pow(alpha, NP0*n2 - n134*n2)*n97*(-n21 + xPj*xTj)/(n129*n43) + n82*n97) - n102*n58*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)*(pow(alpha, NP0*n2 - n134*n2)*n1*n131*n19*n3 + n1*n19*n3*n42)/n175 - n108*n58*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59)*(pow(alpha, NP0*n2 - n13*n134)*n13*n131*n41 + n13*n41*n52)/n183 + n113*n58*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3)*(pow(alpha, NP0*n2 - n134*n8)*n131*n41*n8 + n109*n41)/n178 + n114*pow(n174, n20)*n58*(pow(alpha, NP0*n2 - n134*n17)*n132*n17*n2 - pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n2*n27*pow(n43, n20)*n67 + n111*n56) + n114*n58*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3)*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n41 + n103*n41)/n187 + n116*pow(n163, n20)*n58*(pow(alpha, NP0*n2 - n134*n6)*n132*n2*n6 + pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126) + n116*n58*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3)*(pow(alpha, NP0*n2 - n134*n6)*n131*n41*n6 + n106*n41)/n176 + n117*pow(n173, n20)*n58*(pow(alpha, NP0*n2 - n134*n16)*n132*n16*n2 + pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124) + n117*n58*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94)*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n41 + n41*n94)/n186 + n118*pow(n172, n20)*n58*(pow(alpha, NP0*n2 - n134*n15)*n132*n15*n2 + pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n54*n99) - pow(n164, n20)*n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n132*n2*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n7 - pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n122) + pow(n165, n20)*n58*n69*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n132*n19*n8 + pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84) + pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n132*n2 + pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125) + pow(n171, n20)*n58*n75*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n132*n14*n19 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n27*n36*n87) + n195*n58*n72*(pow(alpha, NP0*n2 - n11*n134)*n11*n132*n19 + pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*n33*pow(n43, n20)*n67 + n27*n50*n61) + n196*n58*n80*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93)*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n41 + n41*n93) + n199*n58*n81*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96)*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n41 + n12*n41*n51) - n205*n58*xF[1]*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60)*(pow(alpha, NP0*n2 - n134*n9)*n131*n41*n9 + n107*n41) + n207*n58*(pow(alpha, NP0*n2 - n13*n134)*n13*n132*n2 + pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n52*n95) + n208*n58*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63)*(pow(alpha, NP0*n2 - n134*n15)*n131*n15*n41 + n110*n41) + n209*n58*(pow(alpha, NP0*n2 - n134*n9)*n132*n2*n9 - pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48) + n213 + n214 + n215 + n216 + n217 + n218 + n219 + n220 + n221 + n222 + n223 + n224 + n225 + n273 + n274 + n275 + n276 + n277 + n278 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n58*n79*xF[3]*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92)*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n41 + n41*n92)/n181 - n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119)*(pow(alpha, NP0*n2 - n134*n7)*n131*n41*n7 + n41*n46*n7)/n177) - n1*n287 - 4.0*n102*n266*n58 + 4.0*n259*n58*n89/n90) + pow(-n102*n259*n58 - n212 - n25*(-n0*n102*pow(n162, n20)*n58*(-pow(alpha, NP0*n2 - n134*n2)*n131*n97 + n82*n97) + n0*n102*n58*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)*(pow(alpha, NP0*n2 - n134*n2)*n1*n131*n19*n3 + n1*n19*n3*n42)/n175 + n0*xTj*(n101*pow(n167, n20)*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n132*n19 + pow(alpha, -n10*n134 + n2*n25)*n10*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n10*n134 + n2*n25)*pow(n129, n20)*n27*n32*pow(n43, n20)*n67 + n27*n32*n85) - n101*n58*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n3 + n100*n3)*(pow(alpha, NP0*n2 - n10*n134)*n10*n131*n41 + n100*n41)/n180 + n102*pow(n162, n20)*n58*(-pow(alpha, NP0*n2 - n134*n2)*n131*n97 + n82*n97) - n102*n58*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)*(pow(alpha, NP0*n2 - n134*n2)*n1*n131*n19*n3 + n1*n19*n3*n42)/n175 - n108*n58*(pow(alpha, NP0*n2 - n13*n134)*n131*n59 + n52*n59)*(pow(alpha, NP0*n2 - n13*n134)*n13*n131*n41 + n13*n41*n52)/n183 + n113*n58*(pow(alpha, NP0*n2 - n134*n8)*n131*n3*n8 + n109*n3)*(pow(alpha, NP0*n2 - n134*n8)*n131*n41*n8 + n109*n41)/n178 + n114*pow(n174, n20)*n58*(pow(alpha, NP0*n2 - n134*n17)*n132*n17*n2 - pow(alpha, -n134*n17 + n2*n25)*n111*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n17 + n2*n25)*pow(n129, n20)*n17*n2*n27*pow(n43, n20)*n67 + n111*n56) + n114*n58*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n3 + n103*n3)*(pow(alpha, NP0*n2 - n134*n17)*n131*n17*n41 + n103*n41)/n187 + n116*pow(n163, n20)*n58*(pow(alpha, NP0*n2 - n134*n6)*n132*n2*n6 + pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n6*n67 - pow(alpha, -n134*n6 + n2*n25)*pow(n129, n20)*n27*n28*pow(n43, n20)*n67 + n126) + n116*n58*(pow(alpha, NP0*n2 - n134*n6)*n131*n3*n6 + n106*n3)*(pow(alpha, NP0*n2 - n134*n6)*n131*n41*n6 + n106*n41)/n176 + n117*pow(n173, n20)*n58*(pow(alpha, NP0*n2 - n134*n16)*n132*n16*n2 + pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n16*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n16 + n2*n25)*pow(n129, n20)*n27*n38*pow(n43, n20)*n67 + n124) + n117*n58*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n3 + n3*n94)*(pow(alpha, NP0*n2 - n134*n16)*n131*n16*n41 + n41*n94)/n186 + n118*pow(n172, n20)*n58*(pow(alpha, NP0*n2 - n134*n15)*n132*n15*n2 + pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*n15*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n134*n15 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n99 + n54*n99) - pow(n164, n20)*n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n132*n2*n7 + pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n7 - pow(alpha, -n134*n7 + n2*n25)*pow(n129, n20)*n27*n29*pow(n43, n20)*n67 + n122) + pow(n165, n20)*n58*n69*xF[12]*(pow(alpha, NP0*n2 - n134*n8)*n132*n19*n8 + pow(alpha, -n134*n8 + n2*n25)*n104*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n8 + n2*n25)*pow(n129, n20)*n19*n27*pow(n43, n20)*n67*n8 + n104*n84) + pow(n169, n20)*n58*n81*xF[4]*(pow(alpha, NP0*n2 - n12*n134)*n12*n132*n2 + pow(alpha, -n12*n134 + n2*n25)*n12*pow(n129, n20)*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n12*n134 + n2*n25)*pow(n129, n20)*n27*n34*pow(n43, n20)*n67 + n125) + pow(n171, n20)*n58*n75*xF[6]*(pow(alpha, NP0*n2 - n134*n14)*n132*n14*n19 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n14*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n134*n14 + n2*n25)*pow(n129, n20)*n27*n36*pow(n43, n20)*n67 + n27*n36*n87) + n195*n58*n72*(pow(alpha, NP0*n2 - n11*n134)*n11*n132*n19 + pow(alpha, -n11*n134 + n2*n25)*n11*pow(n129, n20)*n19*n27*pow(n43, n20)*n67 + pow(alpha, -n11*n134 + n2*n25)*pow(n129, n20)*n27*n33*pow(n43, n20)*n67 + n27*n50*n61) + n196*n58*n80*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n3 + n3*n93)*(pow(alpha, NP0*n2 - n134*n14)*n131*n14*n41 + n41*n93) + n199*n58*n81*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n3 + n12*n96)*(pow(alpha, NP0*n2 - n12*n134)*n12*n131*n41 + n12*n41*n51) - n205*n58*xF[1]*(pow(alpha, NP0*n2 - n134*n9)*n131*n60 + n48*n60)*(pow(alpha, NP0*n2 - n134*n9)*n131*n41*n9 + n107*n41) + n207*n58*(pow(alpha, NP0*n2 - n13*n134)*n13*n132*n2 + pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*n13*n2*n27*pow(n43, n20)*n67 - pow(alpha, -n13*n134 + n2*n25)*pow(n129, n20)*pow(n43, n20)*n67*n95 + n52*n95) + n208*n58*(pow(alpha, NP0*n2 - n134*n15)*n131*n63 + n54*n63)*(pow(alpha, NP0*n2 - n134*n15)*n131*n15*n41 + n110*n41) + n209*n58*(pow(alpha, NP0*n2 - n134*n9)*n132*n2*n9 - pow(alpha, -n134*n9 + n2*n25)*n105*pow(n129, n20)*pow(n43, n20)*n67 + pow(alpha, -n134*n9 + n2*n25)*pow(n129, n20)*n2*n27*pow(n43, n20)*n67*n9 + n105*n48) + n213 + n214 + n215 + n216 + n217 + n218 + n219 + n220 + n221 + n222 + n223 + n224 + n225 + n273 + n274 + n275 + n276 + n277 + n278 + n279 + n280 + n281 + n282 + n283 + n284 + n285 + n58*n79*xF[3]*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n3 + n3*n92)*(pow(alpha, NP0*n2 - n11*n134)*n11*n131*n41 + n41*n92)/n181 - n58*n91*(pow(alpha, NP0*n2 - n134*n7)*n131*n3*n7 + n119)*(pow(alpha, NP0*n2 - n134*n7)*n131*n41*n7 + n41*n46*n7)/n177) + 1.0*pow(n162, n20)*n58*n89*(pow(alpha, NP0*n2 - n134*n2)*n131/n90 + n42/n90)/n90 + n226) - n311, -n1);
24257  NP_sqrt_base = fabs(NP_sqrt_base);
24258  NP1 = (-NP_b - pow(NP_sqrt_base, -n0))/NP_2a;
24259  NT1 = n90*(n130 - log(-pow(alpha, NP1*n2)*n120 + 1));
24260  g0 = MW[1] - Mstar;
24261  g1 = MW[0] - Mstar;
24262  g2 = NT1 + 1;
24263  g3 = xPj - xTj;
24264  g4 = MW[10] - Mstar;
24265  g5 = MW[11] - Mstar;
24266  g6 = MW[12] - Mstar;
24267  g7 = MW[2] - Mstar;
24268  g8 = MW[3] - Mstar;
24269  g9 = MW[4] - Mstar;
24270  g10 = MW[5] - Mstar;
24271  g11 = MW[6] - Mstar;
24272  g12 = MW[7] - Mstar;
24273  g13 = MW[8] - Mstar;
24274  g14 = MW[9] - Mstar;
24275  g15 = xF[0] - xTj;
24276  g16 = xF[0] - xPj;
24277  g17 = -xTj;
24278  g18 = xPj/xF[1];
24279  g19 = pow(alpha, -g1);
24280  g20 = pow(alpha, -g4);
24281  g21 = pow(alpha, -g5);
24282  g22 = pow(alpha, -g6);
24283  g23 = pow(alpha, -g0);
24284  g24 = pow(alpha, -g7);
24285  g25 = pow(alpha, -g8);
24286  g26 = pow(alpha, -g9);
24287  g27 = pow(alpha, -g10);
24288  g28 = pow(alpha, -g11);
24289  g29 = pow(alpha, -g12);
24290  g30 = pow(alpha, -g13);
24291  g31 = pow(alpha, -g14);
24292  g32 = log(xF[0]/xF[1]);
24293  g33 = -g2;
24294  g34 = pow(alpha, NP1*g0);
24295  g35 = pow(alpha, NP1*g1);
24296  g36 = pow(alpha, NP1*g4);
24297  g37 = log(g19);
24298  g38 = pow(alpha, NP1*g5);
24299  g39 = pow(alpha, NP1*g6);
24300  g40 = pow(alpha, NP1*g7);
24301  g41 = pow(alpha, NP1*g8);
24302  g42 = pow(alpha, NP1*g9);
24303  g43 = pow(alpha, NP1*g10);
24304  g44 = pow(alpha, NP1*g11);
24305  g45 = pow(alpha, NP1*g12);
24306  g46 = pow(alpha, NP1*g13);
24307  g47 = pow(alpha, NP1*g14);
24308  g48 = -g32;
24309  g49 = g15/g3;
24310  g50 = g3/g15;
24311  g51 = -g34 + 1;
24312  g52 = -g34 + 1;
24313  g53 = -g35 + 1;
24314  g54 = -g40 + 1;
24315  g55 = -g41 + 1;
24316  g56 = -g42 + 1;
24317  g57 = -g43 + 1;
24318  g58 = -g44 + 1;
24319  g59 = -g45 + 1;
24320  g60 = -g46 + 1;
24321  g61 = -g47 + 1;
24322  g62 = -g36 + 1;
24323  g63 = -g38 + 1;
24324  g64 = -g39 + 1;
24325  g65 = -g35;
24326  g66 = -g36;
24327  g67 = -g38;
24328  g68 = -g39;
24329  g69 = -g40;
24330  g70 = -g41;
24331  g71 = -g42;
24332  g72 = -g43;
24333  g73 = -g44;
24334  g74 = -g45;
24335  g75 = -g46;
24336  g76 = -g47;
24337  g77 = -1.0*g32;
24338  g78 = -g3/g16;
24339  g79 = g16/(g3*xF[1]);
24340  g80 = pow(alpha, g0*g33) - 1;
24341  g81 = pow(alpha, g0*g33) - 1;
24342  g82 = pow(alpha, g1*g33) - 1;
24343  g83 = pow(alpha, g33*g7) - 1;
24344  g84 = pow(alpha, g33*g8) - 1;
24345  g85 = pow(alpha, g33*g9) - 1;
24346  g86 = pow(alpha, g10*g33) - 1;
24347  g87 = pow(alpha, g11*g33) - 1;
24348  g88 = pow(alpha, g12*g33) - 1;
24349  g89 = pow(alpha, g13*g33) - 1;
24350  g90 = pow(alpha, g14*g33) - 1;
24351  g91 = pow(alpha, g33*g4) - 1;
24352  g92 = pow(alpha, g33*g5) - 1;
24353  g93 = pow(alpha, g33*g6) - 1;
24354  g94 = -pow(alpha, g1*g33);
24355  g95 = -pow(alpha, g33*g4);
24356  g96 = -pow(alpha, g33*g5);
24357  g97 = -pow(alpha, g33*g6);
24358  g98 = -pow(alpha, g33*g7);
24359  g99 = -pow(alpha, g33*g8);
24360  g100 = -pow(alpha, g33*g9);
24361  g101 = -pow(alpha, g10*g33);
24362  g102 = -pow(alpha, g11*g33);
24363  g103 = -pow(alpha, g12*g33);
24364  g104 = -pow(alpha, g13*g33);
24365  g105 = -pow(alpha, g14*g33);
24366  g106 = g52 + g81;
24367  g107 = -g35 - g94;
24368  g108 = -g36 - g95;
24369  g109 = -g38 - g96;
24370  g110 = -g39 - g97;
24371  g111 = -g40 - g98;
24372  g112 = -g41 - g99;
24373  g113 = -g100 - g42;
24374  g114 = -g101 - g43;
24375  g115 = -g102 - g44;
24376  g116 = -g103 - g45;
24377  g117 = -g104 - g46;
24378  g118 = -g105 - g47;
24379  g119 = pow(alpha, g1*g33) + g65;
24380  g120 = g52 + g81;
24381  g121 = pow(alpha, g33*g4) + g66;
24382  g122 = pow(alpha, g33*g5) + g67;
24383  g123 = pow(alpha, g33*g6) + g68;
24384  g124 = pow(alpha, g33*g7) + g69;
24385  g125 = pow(alpha, g33*g8) + g70;
24386  g126 = pow(alpha, g33*g9) + g71;
24387  g127 = pow(alpha, g10*g33) + g72;
24388  g128 = pow(alpha, g11*g33) + g73;
24389  g129 = pow(alpha, g12*g33) + g74;
24390  g130 = pow(alpha, g13*g33) + g75;
24391  g131 = pow(alpha, g14*g33) + g76;
24392  g132 = xF[11]/g122;
24393  g133 = xF[9]/g131;
24394  g134 = xF[8]/g130;
24395  g135 = xF[1]/g120;
24396  g136 = xF[10]/g121;
24397  g137 = xF[3]/g125;
24398  g138 = xF[7]/g129;
24399  g139 = xF[4]/g126;
24400  g140 = xF[12]/g123;
24401  g141 = xF[6]/g128;
24402  g142 = xF[5]/g127;
24403  g143 = xF[2]/g124;
24404  g144 = xF[0]/g119;
24405  g145 = xF[1]/g106;
24406  g146 = xF[0]/g107;
24407  g147 = xF[4]/g113;
24408  g148 = xF[7]/g116;
24409  g149 = xF[2]/g111;
24410  g150 = xF[11]/g109;
24411  g151 = xF[3]/g112;
24412  g152 = xF[6]/g115;
24413  g153 = xF[8]/g117;
24414  g154 = xF[12]/g110;
24415  g155 = xF[10]/g108;
24416  g156 = xF[9]/g118;
24417  g157 = xF[5]/g114;
24418  g158 = g58/g115;
24419  g159 = g61/g118;
24420  g160 = g56/g113;
24421  g161 = g59/g116;
24422  g162 = g53/g107;
24423  g163 = g57/g114;
24424  g164 = g64/g110;
24425  g165 = g55/g112;
24426  g166 = g51/g106;
24427  g167 = g63/g109;
24428  g168 = g54/g111;
24429  g169 = g62/g108;
24430  g170 = g60/g117;
24431  g171 = g80/g106;
24432  g172 = g82/g107;
24433  g173 = g92/g109;
24434  g174 = g83/g111;
24435  g175 = g84/g112;
24436  g176 = g85/g113;
24437  g177 = g89/g117;
24438  g178 = g90/g118;
24439  g179 = g87/g115;
24440  g180 = g93/g110;
24441  g181 = g88/g116;
24442  g182 = g91/g108;
24443  g183 = g86/g114;
24444  g184 = log(g120*g17*g79/g52);
24445  g185 = log(g106*g17*g79/g51);
24446  g186 = log(g120*g18*g49/g81);
24447  g187 = 1.0*g184;
24448  g188 = log(g106*g18*g49/g80);
24449  g189 = 1.0*g186;
24450  g190 = -g132*g187*(g67 + 1) - g132*g189*(pow(alpha, g33*g5) - 1) - g133*g187*(g76 + 1) - g133*g189*(pow(alpha, g14*g33) - 1) - g134*g187*(g75 + 1) - g134*g189*(pow(alpha, g13*g33) - 1) - g135*g187*g52 - g135*g189*g81 - g136*g187*(g66 + 1) - g136*g189*(pow(alpha, g33*g4) - 1) - g137*g187*(g70 + 1) - g137*g189*(pow(alpha, g33*g8) - 1) - g138*g187*(g74 + 1) - g138*g189*(pow(alpha, g12*g33) - 1) - g139*g187*(g71 + 1) - g139*g189*(pow(alpha, g33*g9) - 1) - g140*g187*(g68 + 1) - g140*g189*(pow(alpha, g33*g6) - 1) - g141*g187*(g73 + 1) - g141*g189*(pow(alpha, g11*g33) - 1) - g142*g187*(g72 + 1) - g142*g189*(pow(alpha, g10*g33) - 1) - g143*g187*(g69 + 1) - g143*g189*(pow(alpha, g33*g7) - 1) - g144*g187*(g65 + 1) - g144*g189*(pow(alpha, g1*g33) - 1) - g77*xF[0] - g77*xF[10] - g77*xF[11] - g77*xF[12] - g77*xF[1] - g77*xF[2] - g77*xF[3] - g77*xF[4] - g77*xF[5] - g77*xF[6] - g77*xF[7] - g77*xF[8] - g77*xF[9];
24451  LpF = xF[0]*(g19 + 1.0)*(g162*g185 + g172*g188 + g48)/(g37*(g19 - 1.0)) + xF[10]*(g20 + 1.0)*(g169*g185 + g182*g188 + g48)/(g37*(g20 - 1.0)) + xF[11]*(g21 + 1.0)*(g167*g185 + g173*g188 + g48)/(g37*(g21 - 1.0)) + xF[12]*(g22 + 1.0)*(g164*g185 + g180*g188 + g48)/(g37*(g22 - 1.0)) + xF[1]*(g23 + 1.0)*(g166*g185 + g171*g188 + g48)/(g37*(g23 - 1.0)) + xF[2]*(g24 + 1.0)*(g168*g185 + g174*g188 + g48)/(g37*(g24 - 1.0)) + xF[3]*(g25 + 1.0)*(g165*g185 + g175*g188 + g48)/(g37*(g25 - 1.0)) + xF[4]*(g26 + 1.0)*(g160*g185 + g176*g188 + g48)/(g37*(g26 - 1.0)) + xF[5]*(g27 + 1.0)*(g163*g185 + g183*g188 + g48)/(g37*(g27 - 1.0)) + xF[6]*(g28 + 1.0)*(g158*g185 + g179*g188 + g48)/(g37*(g28 - 1.0)) + xF[7]*(g29 + 1.0)*(g161*g185 + g181*g188 + g48)/(g37*(g29 - 1.0)) + xF[8]*(g30 + 1.0)*(g170*g185 + g177*g188 + g48)/(g37*(g30 - 1.0)) + xF[9]*(g31 + 1.0)*(g159*g185 + g178*g188 + g48)/(g37*(g31 - 1.0));
24452  PpF = g49;
24453  TpF = -g16/g3;
24454  SWUpF = g190;
24455  SWUpP = g190*g50;
24456  xP[0] = g146*g50*g82;
24457  xP[1] = g145*g50*g80;
24458  xP[2] = g149*g50*g83;
24459  xP[3] = g151*g50*g84;
24460  xP[4] = g147*g50*g85;
24461  xP[5] = g157*g50*g86;
24462  xP[6] = g152*g50*g87;
24463  xP[7] = g148*g50*g88;
24464  xP[8] = g153*g50*g89;
24465  xP[9] = g156*g50*g90;
24466  xP[10] = g155*g50*g91;
24467  xP[11] = g150*g50*g92;
24468  xP[12] = g154*g50*g93;
24469  xT[0] = g146*g53*g78;
24470  xT[1] = g145*g51*g78;
24471  xT[2] = g149*g54*g78;
24472  xT[3] = g151*g55*g78;
24473  xT[4] = g147*g56*g78;
24474  xT[5] = g157*g57*g78;
24475  xT[6] = g152*g58*g78;
24476  xT[7] = g148*g59*g78;
24477  xT[8] = g153*g60*g78;
24478  xT[9] = g156*g61*g78;
24479  xT[10] = g155*g62*g78;
24480  xT[11] = g150*g63*g78;
24481  xT[12] = g154*g64*g78;
24482  break;
24483  case 14:
24484  n0 = -0.500000000000000;
24485  n1 = MW[0] - Mstar;
24486  n2 = log(alpha);
24487  n3 = xPj - xTj;
24488  n4 = xF[0] - xPj;
24489  n5 = MW[10] - Mstar;
24490  n6 = MW[11] - Mstar;
24491  n7 = MW[12] - Mstar;
24492  n8 = MW[13] - Mstar;
24493  n9 = MW[1] - Mstar;
24494  n10 = MW[2] - Mstar;
24495  n11 = MW[3] - Mstar;
24496  n12 = MW[4] - Mstar;
24497  n13 = MW[5] - Mstar;
24498  n14 = MW[6] - Mstar;
24499  n15 = MW[7] - Mstar;
24500  n16 = MW[8] - Mstar;
24501  n17 = MW[9] - Mstar;
24502  n18 = log(xTj);
24503  n19 = -n1;
24504  n20 = -2;
24505  n21 = xF[0]*xPj;
24506  n22 = -Mstar;
24507  n23 = -xTj;
24508  n24 = -NP0*n20;
24509  n25 = -xPj;
24510  n26 = -n20*xF[12];
24511  n27 = pow(n1, -n20);
24512  n28 = pow(n2, -n20);
24513  n29 = pow(n5, -n20);
24514  n30 = pow(n6, -n20);
24515  n31 = pow(n7, -n20);
24516  n32 = pow(n8, -n20);
24517  n33 = pow(n9, -n20);
24518  n34 = pow(n10, -n20);
24519  n35 = pow(n11, -n20);
24520  n36 = pow(n12, -n20);
24521  n37 = pow(n13, -n20);
24522  n38 = pow(n14, -n20);
24523  n39 = pow(n15, -n20);
24524  n40 = pow(n16, -n20);
24525  n41 = pow(n17, -n20);
24526  n42 = Mstar*n2;
24527  n43 = -n2*n20;
24528  n44 = pow(alpha, NP0*n1);
24529  n45 = n21 + n23*xF[0];
24530  n46 = n21 + n23*xPj;
24531  n47 = pow(alpha, NP0*n5);
24532  n48 = pow(alpha, NP0*n6);
24533  n49 = pow(alpha, NP0*n7);
24534  n50 = pow(alpha, NP0*n8);
24535  n51 = pow(alpha, NP0*n9);
24536  n52 = pow(alpha, NP0*n10);
24537  n53 = pow(alpha, NP0*n11);
24538  n54 = pow(alpha, NP0*n12);
24539  n55 = pow(alpha, NP0*n13);
24540  n56 = pow(alpha, NP0*n14);
24541  n57 = pow(alpha, NP0*n15);
24542  n58 = pow(alpha, NP0*n16);
24543  n59 = pow(alpha, NP0*n17);
24544  n60 = -MW[0]*n2;
24545  n61 = n3/n4;
24546  n62 = n13*n2;
24547  n63 = n2*n9;
24548  n64 = n0*n1*n19;
24549  n65 = n10*n2;
24550  n66 = n1*n19;
24551  n67 = -n35;
24552  n68 = n15*n2;
24553  n69 = -n44 + 1;
24554  n70 = -n47 + 1;
24555  n71 = pow(alpha, n1*n24);
24556  n72 = pow(n45, -n20);
24557  n73 = pow(n46, -n20);
24558  n74 = -n48 + 1;
24559  n75 = -n49 + 1;
24560  n76 = -n50 + 1;
24561  n77 = -n51 + 1;
24562  n78 = -n52 + 1;
24563  n79 = -n53 + 1;
24564  n80 = -n54 + 1;
24565  n81 = -n55 + 1;
24566  n82 = -n56 + 1;
24567  n83 = -n57 + 1;
24568  n84 = -n58 + 1;
24569  n85 = -n59 + 1;
24570  n86 = -n79;
24571  n87 = -n82;
24572  n88 = -n70;
24573  n89 = -n74;
24574  n90 = -n44;
24575  n91 = -n49;
24576  n92 = -n50;
24577  n93 = -n52;
24578  n94 = -n54;
24579  n95 = -n55;
24580  n96 = -n56;
24581  n97 = 1/(n1*n2);
24582  n98 = n14*n56;
24583  n99 = n11*n53;
24584  n100 = n1*n44;
24585  n101 = n16*n58;
24586  n102 = n28*n37;
24587  n103 = n12*n54;
24588  n104 = n47*n5;
24589  n105 = n82*xF[6];
24590  n106 = n28*n39;
24591  n107 = n50*n8;
24592  n108 = n78*xF[2];
24593  n109 = n17*n59;
24594  n110 = n28*n34;
24595  n111 = n28*n31;
24596  n112 = n81*xF[5];
24597  n113 = n28*n33;
24598  n114 = n51*n9;
24599  n115 = n15*n57;
24600  n116 = log((-1.0 + xPj/xF[0])/n3);
24601  n117 = -n75*xF[12];
24602  n118 = n28*n44;
24603  n119 = -n85*xF[9];
24604  n120 = -n76*xF[13];
24605  n121 = n2*n48*n6;
24606  n122 = n2*n49*n7;
24607  n123 = n46/n45;
24608  n124 = n28*n71*xF[0];
24609  n125 = n28*n32*n50;
24610  n126 = n28*n40*n58;
24611  n127 = n28*n30*n48;
24612  n128 = n28*n29*n47;
24613  n129 = n28*n35*n53;
24614  n130 = n123*n90 + 1;
24615  n131 = pow(n130, -n20);
24616  n132 = n116 + n18 + n42 + n60;
24617  n133 = n123/n130;
24618  n134 = n133*n2*n44;
24619  n135 = n28*n71*n73/(n131*n72);
24620  n136 = n97*(n132 - log(n130)) + 1;
24621  n137 = pow(alpha, n1*n136);
24622  n138 = pow(alpha, n136*n5);
24623  n139 = pow(alpha, n136*n6);
24624  n140 = pow(alpha, n136*n7);
24625  n141 = pow(alpha, n136*n8);
24626  n142 = pow(alpha, n136*n9);
24627  n143 = pow(alpha, n10*n136);
24628  n144 = pow(alpha, n11*n136);
24629  n145 = pow(alpha, n12*n136);
24630  n146 = pow(alpha, n13*n136);
24631  n147 = pow(alpha, n136*n14);
24632  n148 = pow(alpha, n136*n15);
24633  n149 = pow(alpha, n136*n16);
24634  n150 = pow(alpha, n136*n17);
24635  n151 = n7/n140;
24636  n152 = n12/n145;
24637  n153 = n15/n148;
24638  n154 = n17/n150;
24639  n155 = n8/n141;
24640  n156 = n11/n144;
24641  n157 = n14/n147;
24642  n158 = n16/n149;
24643  n159 = n6/n139;
24644  n160 = n9/n142;
24645  n161 = n10/n143;
24646  n162 = -1/n137;
24647  n163 = n5/n138;
24648  n164 = n13/n146;
24649  n165 = n44/n146;
24650  n166 = pow(alpha, n136*n19) + n69 - 1;
24651  n167 = n70 - 1 + 1.0/n138;
24652  n168 = n74 - 1 + 1.0/n139;
24653  n169 = n75 - 1 + 1.0/n140;
24654  n170 = n76 - 1 + 1.0/n141;
24655  n171 = n77 - 1 + 1.0/n142;
24656  n172 = n78 - 1 + 1.0/n143;
24657  n173 = n79 - 1 + 1.0/n144;
24658  n174 = n80 - 1 + 1.0/n145;
24659  n175 = n81 - 1 + 1.0/n146;
24660  n176 = n82 - 1 + 1.0/n147;
24661  n177 = n83 - 1 + 1.0/n148;
24662  n178 = n84 - 1 + 1.0/n149;
24663  n179 = n85 - 1 + 1.0/n150;
24664  n180 = pow(n166, -n20);
24665  n181 = pow(n167, -n20);
24666  n182 = pow(n168, -n20);
24667  n183 = pow(n169, -n20);
24668  n184 = pow(n170, -n20);
24669  n185 = pow(n171, -n20);
24670  n186 = pow(n172, -n20);
24671  n187 = pow(n173, -n20);
24672  n188 = pow(n174, -n20);
24673  n189 = pow(n175, -n20);
24674  n190 = pow(n176, -n20);
24675  n191 = pow(n177, -n20);
24676  n192 = pow(n178, -n20);
24677  n193 = pow(n179, -n20);
24678  n194 = pow(n166, 3);
24679  n195 = pow(n167, 3);
24680  n196 = pow(n168, 3);
24681  n197 = pow(n169, 3);
24682  n198 = pow(n170, 3);
24683  n199 = pow(n171, 3);
24684  n200 = pow(n172, 3);
24685  n201 = pow(n173, 3);
24686  n202 = pow(n174, 3);
24687  n203 = pow(n175, 3);
24688  n204 = pow(n176, 3);
24689  n205 = pow(n177, 3);
24690  n206 = pow(n178, 3);
24691  n207 = pow(n179, 3);
24692  n208 = xF[11]/n168;
24693  n209 = xF[12]/n169;
24694  n210 = xF[0]/n166;
24695  n211 = xF[10]/n167;
24696  n212 = xF[13]/n170;
24697  n213 = xF[9]/n179;
24698  n214 = xF[8]/n178;
24699  n215 = xF[3]/n173;
24700  n216 = xF[3]/n187;
24701  n217 = xF[6]/n204;
24702  n218 = xF[10]/n181;
24703  n219 = n2*xF[4]/n174;
24704  n220 = n2*n215;
24705  n221 = n2/n180;
24706  n222 = n2*xF[6]/n176;
24707  n223 = n55*xF[5]/n175;
24708  n224 = n51*xF[1]/n171;
24709  n225 = n57*xF[7]/n177;
24710  n226 = n52*xF[2]/n172;
24711  n227 = n69/n194;
24712  n228 = n69/n180;
24713  n229 = n77/n199;
24714  n230 = n80*xF[4]/n188;
24715  n231 = n80*xF[4]/n202;
24716  n232 = -n112/n189;
24717  n233 = -n83*xF[7]/n205;
24718  n234 = -n77*xF[1]/n185;
24719  n235 = -n83*xF[7]/n191;
24720  n236 = -n84*xF[8]/n192;
24721  n237 = n213*n28*n41*n59;
24722  n238 = n28*n36*n54*xF[4]/n174;
24723  n239 = n28*n38*n56*xF[6]/n176;
24724  n240 = n19*n2*n210*n44*n61;
24725  n241 = n118*n210*n27*n61;
24726  n242 = n128*n211*n61;
24727  n243 = n127*n208*n61;
24728  n244 = n111*n209*n49*n61;
24729  n245 = n125*n212*n61;
24730  n246 = n113*n224*n61;
24731  n247 = n110*n226*n61;
24732  n248 = n129*n215*n61;
24733  n249 = n238*n61;
24734  n250 = n102*n223*n61;
24735  n251 = n239*n61;
24736  n252 = n106*n225*n61;
24737  n253 = n126*n214*n61;
24738  n254 = n237*n61;
24739  n255 = n118*n210*n61*n64;
24740  n256 = n133/n137 + 1;
24741  n257 = n100*n133*n2/n137 + n100*n2;
24742  n258 = n104*n2 + n134*n163;
24743  n259 = n121 + n134*n159;
24744  n260 = n122 + n134*n151;
24745  n261 = n107*n2 + n134*n155;
24746  n262 = n133*n44*n63/n142 + n51*n63;
24747  n263 = n133*n44*n65/n143 + n52*n65;
24748  n264 = n134*n156 + n2*n99;
24749  n265 = n103*n2 + n134*n152;
24750  n266 = n133*n165*n62 + n55*n62;
24751  n267 = n134*n157 + n2*n98;
24752  n268 = n133*n44*n68/n148 + n57*n68;
24753  n269 = n101*n2 + n134*n158;
24754  n270 = n109*n2 + n134*n154;
24755  n271 = pow(n257, -n20);
24756  n272 = pow(n258, -n20);
24757  n273 = pow(n259, -n20);
24758  n274 = pow(n260, -n20);
24759  n275 = pow(n261, -n20);
24760  n276 = pow(n262, -n20);
24761  n277 = pow(n263, -n20);
24762  n278 = pow(n264, -n20);
24763  n279 = pow(n265, -n20);
24764  n280 = pow(n266, -n20);
24765  n281 = pow(n267, -n20);
24766  n282 = pow(n268, -n20);
24767  n283 = pow(n269, -n20);
24768  n284 = pow(n270, -n20);
24769  n285 = n257*xF[0];
24770  n286 = n259*xF[11];
24771  n287 = n262*xF[1];
24772  n288 = n269*xF[8];
24773  n289 = n100*n133*n43/n137 + n100*n43;
24774  n290 = n271*xF[0];
24775  n291 = n276*xF[1];
24776  n292 = n118*n133*n66/n137 + n118*n66;
24777  n293 = n292*xF[0];
24778  n294 = n260/n183;
24779  n295 = n270/n193;
24780  n296 = n261/n184;
24781  n297 = n267*xF[6]/n190;
24782  n298 = n277/n200;
24783  n299 = n280/n203;
24784  n300 = n283*n84*xF[8]/n206;
24785  n301 = n273*n74*xF[11]/n196;
24786  n302 = n228*n285*n61;
24787  n303 = n100*n43*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)/n180;
24788  n304 = n104*n218*n43*n61*(pow(alpha, NP0*n1 - n136*n5)*n133*n2*n5 + n104*n2);
24789  n305 = n43*n48*n6*n61*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n133*n2*n6 + n121)/n182;
24790  n306 = n122*n26*n61*(pow(alpha, NP0*n1 - n136*n7)*n133*n2*n7 + n122)/n183;
24791  n307 = n107*n43*n61*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n2*n8 + n107*n2)/n184;
24792  n308 = n114*n43*n61*xF[1]*(pow(alpha, NP0*n1 - n136*n9)*n133*n63 + n51*n63)/n185;
24793  n309 = n10*n43*n52*n61*xF[2]*(pow(alpha, NP0*n1 - n10*n136)*n133*n65 + n52*n65)/n186;
24794  n310 = n216*n43*n61*n99*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n2 + n2*n99);
24795  n311 = n103*n43*n61*xF[4]*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n2 + n103*n2)/n188;
24796  n312 = n13*n43*n55*n61*xF[5]*(pow(alpha, NP0*n1 - n13*n136)*n133*n62 + n55*n62)/n189;
24797  n313 = n43*n61*n98*xF[6]*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n2 + n2*n98)/n190;
24798  n314 = n115*n43*n61*xF[7]*(pow(alpha, NP0*n1 - n136*n15)*n133*n68 + n57*n68)/n191;
24799  n315 = n101*n43*n61*xF[8]*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n2 + n101*n2)/n192;
24800  n316 = n109*n43*n61*xF[9]*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n2 + n109*n2)/n193;
24801  n317 = 1.0*n100*n221*n285*n61;
24802  n318 = n228*n293*n61;
24803  n319 = -n0*n318;
24804  n320 = n1*n135*n159 + n100*n133*n159*n28 + n127 - n135*n30/n139;
24805  n321 = n111*n91 + n111*n71*n73/(n131*n140*n72) + n118*n133*n151*n19 + n135*n151*n19;
24806  n322 = n118*n133*n155*n19 + n135*n155*n19 + n135*n32/n141 + n28*n32*n92;
24807  n323 = n110*n93 + n110*n71*n73/(n131*n143*n72) + n118*n133*n161*n19 + n135*n161*n19;
24808  n324 = n118*n133*n157*n19 + n135*n157*n19 + n135*n38/n147 + n28*n38*n96;
24809  n325 = n1*n135*n154 + n100*n133*n154*n28 - n135*n41/n150 + n28*n41*n59;
24810  n326 = n61*n75*xF[12]*(pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91 + n118*n133*n151*n19)/n183;
24811  n327 = n61*n76*xF[13]*(pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n118*n133*n155*n19 + n28*n32*n92)/n184;
24812  n328 = n108*n61*(pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93 + n118*n133*n161*n19)/n186;
24813  n329 = n230*n61*(pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n118*n133*n152*n19 + n28*n36*n94);
24814  n330 = n105*n61*(pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n118*n133*n157*n19 + n28*n38*n96)/n190;
24815  n331 = n218*n61*n88*(pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n100*n133*n163*n28 + n128);
24816  n332 = n61*n89*xF[11]*(pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n100*n133*n159*n28 + n127)/n182;
24817  n333 = n234*n61*(pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n100*n133*n160*n28 + n113*n51);
24818  n334 = n232*n61*(pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n100*n133*n164*n28 + n102*n55);
24819  n335 = n235*n61*(pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n100*n133*n153*n28 + n106*n57);
24820  n336 = n236*n61*(pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n100*n133*n158*n28 + n126);
24821  n337 = n119*n61*(pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n100*n133*n154*n28 + n28*n41*n59)/n193;
24822  n338 = xTj*(n100*n2*n210*n61 + n101*n2*n214*n61 + n103*n219*n61 + n104*n2*n211*n61 + n107*n2*n212*n61 - n108*n263*n61/n186 + n109*n2*n213*n61 + n117*n294*n61 + n119*n295*n61 + n120*n296*n61 + n121*n208*n61 + n122*n209*n61 + n216*n264*n61*n86 + n218*n258*n61*n88 + n220*n61*n99 + n222*n61*n98 + n223*n61*n62 + n224*n61*n63 + n225*n61*n68 + n226*n61*n65 - n230*n265*n61 + n232*n266*n61 + n234*n262*n61 + n235*n268*n61 + n236*n269*n61 + n297*n61*n87 - n302 + n286*n61*n89/n182);
24823  n339 = n240 + n302 + n338;
24824  n340 = n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n318 + n326 + n327 + n328 + n329 + n330 + n331 + n332 + n333 + n334 + n335 + n336 + n337;
24825  n341 = -n108*n263*n61*(n10*n43*n52 + n133*n161*n43*n44)/n200 - n112*n266*n61*(n13*n43*n55 + n133*n164*n43*n44)/n203 + n117*n260*n61*(n133*n151*n43*n44 + n43*n49*n7)/n197 + n119*n270*n61*(n109*n43 + n133*n154*n43*n44)/n207 + n120*n261*n61*(n107*n43 + n133*n155*n43*n44)/n198 + n216*n61*n86*(pow(alpha, n1*n24 - n11*n136)*n1*n11*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n67*n73/(n131*n72) + n100*n133*n156*n28 + n129) + n217*n267*n61*n87*(n133*n157*n43*n44 + n43*n98) - n227*n285*n289*n61 - n229*n287*n61*(n114*n43 + n133*n160*n43*n44) - n231*n265*n61*(n103*n43 + n133*n152*n43*n44) + n233*n268*n61*(n115*n43 + n133*n153*n43*n44) + n340 - n288*n61*n84*(n101*n43 + n133*n158*n43*n44)/n206 + n264*n61*n86*xF[3]*(n133*n156*n43*n44 + n43*n99)/n201 + n286*n61*n89*(n133*n159*n43*n44 + n43*n48*n6)/n196 + n258*n61*n88*xF[10]*(n104*n43 + n133*n163*n43*n44)/n195;
24826  NP_b = -n100*n221*n256*n61*n69*xF[0] - n24*(-n0*n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) + n0*xTj*(n105*n20*n281*n61/n204 + n105*n61*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n19*n28 + pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n28*n38*n96)/n190 + n108*n20*n298*n61 + n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n19*n28 + pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93)/n186 + n112*n20*n299*n61 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n1*n133*n17*n28 + pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n28*n41*n59)/n193 + n20*n227*n290*n61 + n20*n229*n291*n61 + n20*n231*n279*n61 + n20*n300*n61 + n20*n301*n61 + n20*n284*n61*n85*xF[9]/n207 + n20*n282*n61*n83*xF[7]/n205 + n20*n278*n61*n79*xF[3]/n201 + n216*n61*n79*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n19*n28 + pow(alpha, n1*n24 - n11*n136)*n11*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n35*n73/(n131*n72) + n28*n53*n67) + n218*n61*n88*(pow(alpha, NP0*n1 - n136*n5)*n1*n133*n28*n5 + pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n128) + n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) + n230*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n19*n28 + pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n28*n36*n94) + n232*n61*(pow(alpha, NP0*n1 - n13*n136)*n1*n13*n133*n28 + pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n102*n55) + n234*n61*(pow(alpha, NP0*n1 - n136*n9)*n1*n133*n28*n9 + pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n113*n51) + n235*n61*(pow(alpha, NP0*n1 - n136*n15)*n1*n133*n15*n28 + pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n106*n57) + n236*n61*(pow(alpha, NP0*n1 - n136*n16)*n1*n133*n16*n28 + pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n126) + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n20*n275*n61*n76*xF[13]/n198 + n20*n274*n61*n75*xF[12]/n197 + n20*n272*n61*n70*xF[10]/n195 + n61*n76*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n19*n28*n8 + pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n28*n32*n92)/n184 + n61*n75*xF[12]*(pow(alpha, NP0*n1 - n136*n7)*n133*n19*n28*n7 + pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91)/n183 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n1*n133*n28*n6 + pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n127)/n182) + 1.0*n100*n221*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2) - 1.0*n227*n290*n61 + n255) - n240 - n61*xTj*(n100*n2*n210 + n101*n2*n214 + n103*n219 + n104*n2*n211 + n107*n2*n212 - n108*n263/n186 + n109*n2*n213 + n117*n294 + n119*n295 + n120*n296 + n121*n208 + n122*n209 + n216*n264*n86 + n218*n258*n88 + n220*n99 + n222*n98 + n223*n62 + n224*n63 + n225*n68 + n226*n65 - n228*n285 - n230*n265 + n232*n266 + n234*n262 + n235*n268 + n236*n269 + n297*n87 + n286*n89/n182);
24827  NP_2a = -n61*(-1.0*n118*n210*n27 + n118*n228*n66*xF[0]*(-1 + (-n21 + xPj*xTj)/(n130*n137*n45)) - n124*n20*n227*pow(n256, -n20)*n27 - 2.0*n124*n256*n27/n180 + 1.0*xTj*(n10*n43*n52*xF[2]*(pow(alpha, NP0*n1 - n10*n136)*n133*n65 + n52*n65)/n186 + n100*n43*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)/n180 + n101*n43*xF[8]*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n2 + n101*n2)/n192 + n102*n223 + n103*n43*xF[4]*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n2 + n103*n2)/n188 + n104*n218*n43*(pow(alpha, NP0*n1 - n136*n5)*n133*n2*n5 + n104*n2) + n105*n20*n281/n204 + n105*(pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n118*n133*n157*n19 + n28*n38*n96)/n190 + n106*n225 + n107*n43*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n2*n8 + n107*n2)/n184 + n108*n20*n298 + n108*(pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93 + n118*n133*n161*n19)/n186 + n109*n43*xF[9]*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n2 + n109*n2)/n193 + n110*n226 + n111*n209*n49 + n112*n20*n299 + n113*n224 + n114*n43*xF[1]*(pow(alpha, NP0*n1 - n136*n9)*n133*n63 + n51*n63)/n185 + n115*n43*xF[7]*(pow(alpha, NP0*n1 - n136*n15)*n133*n68 + n57*n68)/n191 + n118*n210*n27 + n119*(pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n100*n133*n154*n28 + n28*n41*n59)/n193 + n122*n26*(pow(alpha, NP0*n1 - n136*n7)*n133*n2*n7 + n122)/n183 + n125*n212 + n126*n214 + n127*n208 + n128*n211 + n129*n215 + n13*n43*n55*xF[5]*(pow(alpha, NP0*n1 - n13*n136)*n133*n62 + n55*n62)/n189 + n20*n227*n290 + n20*n229*n291 + n20*n231*n279 + n20*n300 + n20*n301 + n20*n284*n85*xF[9]/n207 + n20*n282*n83*xF[7]/n205 + n20*n278*n79*xF[3]/n201 + n216*n43*n99*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n2 + n2*n99) + n216*n86*(pow(alpha, n1*n24 - n11*n136)*n1*n11*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n67*n73/(n131*n72) + n100*n133*n156*n28 + n129) + n218*n88*(pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n100*n133*n163*n28 + n128) + n228*n293 + n230*(pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n118*n133*n152*n19 + n28*n36*n94) + n232*(pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n100*n133*n164*n28 + n102*n55) + n234*(pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n100*n133*n160*n28 + n113*n51) + n235*(pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n100*n133*n153*n28 + n106*n57) + n236*(pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n100*n133*n158*n28 + n126) + n237 + n238 + n239 + n20*n275*n76*xF[13]/n198 + n20*n274*n75*xF[12]/n197 + n20*n272*n70*xF[10]/n195 + n43*n98*xF[6]*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n2 + n2*n98)/n190 + n76*xF[13]*(pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n118*n133*n155*n19 + n28*n32*n92)/n184 + n75*xF[12]*(pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91 + n118*n133*n151*n19)/n183 + n43*n48*n6*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n133*n2*n6 + n121)/n182 + n89*xF[11]*(pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n100*n133*n159*n28 + n127)/n182));
24828  NP_sqrt_base = (-NP0*n339 - n23*(-n105*n61/(n82 - 1 + pow(alpha, -n14*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n108*n61/(n78 - 1 + pow(alpha, -n10*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n112*n61/(n81 - 1 + pow(alpha, -n13*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n69*xF[0]/(pow(alpha, n19*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1)) + n69 - 1) - n61*n70*xF[10]/(n70 - 1 + pow(alpha, -n5*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n74*xF[11]/(n74 - 1 + pow(alpha, -n6*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n75*xF[12]/(n75 - 1 + pow(alpha, -n7*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n76*xF[13]/(n76 - 1 + pow(alpha, -n8*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n77*xF[1]/(n77 - 1 + pow(alpha, -n9*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n79*xF[3]/(n79 - 1 + pow(alpha, -n11*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n80*xF[4]/(n80 - 1 + pow(alpha, -n12*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n83*xF[7]/(n83 - 1 + pow(alpha, -n15*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n84*xF[8]/(n84 - 1 + pow(alpha, -n16*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1))) - n61*n85*xF[9]/(n85 - 1 + pow(alpha, -n17*(n97*(n132 - log(n90*(n21 + n25*xTj)/(n21 - xF[0]*xTj) + 1)) + 1)))) + n61*n69*xF[0]/(-n162 + n69 - 1) - pow(NP0, -n20)*(n0*n227*n285*n289*n61 - n0*n23*(n105*n61*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n19*n28 + pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n28*n38*n96)/n190 - n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n133*n65 + n52*n65)*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n43 + n10*n43*n52)/n200 + n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n19*n28 + pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93)/n186 - n112*n61*(pow(alpha, NP0*n1 - n13*n136)*n133*n62 + n55*n62)*(pow(alpha, NP0*n1 - n13*n136)*n13*n133*n43 + n13*n43*n55)/n203 + n117*n61*(pow(alpha, NP0*n1 - n136*n7)*n133*n2*n7 + n122)*(pow(alpha, NP0*n1 - n136*n7)*n133*n43*n7 + n43*n49*n7)/n197 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n2 + n109*n2)*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n43 + n109*n43)/n207 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n1*n133*n17*n28 + pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n28*n41*n59)/n193 + n120*n61*(pow(alpha, NP0*n1 - n136*n8)*n133*n2*n8 + n107*n2)*(pow(alpha, NP0*n1 - n136*n8)*n133*n43*n8 + n107*n43)/n198 + n216*n61*n86*(pow(alpha, NP0*n1 - n11*n136)*n1*n11*n133*n28 + pow(alpha, n1*n24 - n11*n136)*n1*n11*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n67*n73/(n131*n72) + n129) + n217*n61*n87*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n2 + n2*n98)*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n43 + n43*n98) + n218*n61*n88*(pow(alpha, NP0*n1 - n136*n5)*n1*n133*n28*n5 + pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n128) - n227*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n43 + n100*n43) + n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) - n229*n61*xF[1]*(pow(alpha, NP0*n1 - n136*n9)*n133*n63 + n51*n63)*(pow(alpha, NP0*n1 - n136*n9)*n133*n43*n9 + n114*n43) + n230*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n19*n28 + pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n28*n36*n94) - n231*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n2 + n103*n2)*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n43 + n103*n43) + n232*n61*(pow(alpha, NP0*n1 - n13*n136)*n1*n13*n133*n28 + pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n102*n55) + n233*n61*(pow(alpha, NP0*n1 - n136*n15)*n133*n68 + n57*n68)*(pow(alpha, NP0*n1 - n136*n15)*n133*n15*n43 + n115*n43) + n234*n61*(pow(alpha, NP0*n1 - n136*n9)*n1*n133*n28*n9 + pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n113*n51) + n235*n61*(pow(alpha, NP0*n1 - n136*n15)*n1*n133*n15*n28 + pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n106*n57) + n236*n61*(pow(alpha, NP0*n1 - n136*n16)*n1*n133*n16*n28 + pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n126) + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 - n61*n84*xF[8]*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n2 + n101*n2)*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n43 + n101*n43)/n206 + n61*n86*xF[3]*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n2 + n2*n99)*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n43 + n43*n99)/n201 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n133*n2*n6 + n121)*(pow(alpha, NP0*n1 - n136*n6)*n133*n43*n6 + n43*n48*n6)/n196 + n61*n88*xF[10]*(pow(alpha, NP0*n1 - n136*n5)*n133*n2*n5 + n104*n2)*(pow(alpha, NP0*n1 - n136*n5)*n133*n43*n5 + n104*n43)/n195 + n61*n76*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n19*n28*n8 + pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n28*n32*n92)/n184 + n61*n75*xF[12]*(pow(alpha, NP0*n1 - n136*n7)*n133*n19*n28*n7 + pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91)/n183 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n1*n133*n28*n6 + pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n127)/n182) - n0*n241 - n0*n318 + 1.0*n100*n221*n285*n61))*(4.0*n100*n221*n285*n61 - n20*n23*(n105*n61*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n19*n28 + pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n28*n38*n96)/n190 - n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n133*n65 + n52*n65)*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n43 + n10*n43*n52)/n200 + n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n19*n28 + pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93)/n186 - n112*n61*(pow(alpha, NP0*n1 - n13*n136)*n133*n62 + n55*n62)*(pow(alpha, NP0*n1 - n13*n136)*n13*n133*n43 + n13*n43*n55)/n203 + n117*n61*(pow(alpha, NP0*n1 - n136*n7)*n133*n2*n7 + n122)*(pow(alpha, NP0*n1 - n136*n7)*n133*n43*n7 + n43*n49*n7)/n197 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n2 + n109*n2)*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n43 + n109*n43)/n207 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n1*n133*n17*n28 + pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n28*n41*n59)/n193 + n120*n61*(pow(alpha, NP0*n1 - n136*n8)*n133*n2*n8 + n107*n2)*(pow(alpha, NP0*n1 - n136*n8)*n133*n43*n8 + n107*n43)/n198 + n216*n61*n86*(pow(alpha, NP0*n1 - n11*n136)*n1*n11*n133*n28 + pow(alpha, n1*n24 - n11*n136)*n1*n11*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n67*n73/(n131*n72) + n129) + n217*n61*n87*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n2 + n2*n98)*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n43 + n43*n98) + n218*n61*n88*(pow(alpha, NP0*n1 - n136*n5)*n1*n133*n28*n5 + pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n128) - n227*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n43 + n100*n43) + n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) - n229*n61*xF[1]*(pow(alpha, NP0*n1 - n136*n9)*n133*n63 + n51*n63)*(pow(alpha, NP0*n1 - n136*n9)*n133*n43*n9 + n114*n43) + n230*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n19*n28 + pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n28*n36*n94) - n231*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n2 + n103*n2)*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n43 + n103*n43) + n232*n61*(pow(alpha, NP0*n1 - n13*n136)*n1*n13*n133*n28 + pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n102*n55) + n233*n61*(pow(alpha, NP0*n1 - n136*n15)*n133*n68 + n57*n68)*(pow(alpha, NP0*n1 - n136*n15)*n133*n15*n43 + n115*n43) + n234*n61*(pow(alpha, NP0*n1 - n136*n9)*n1*n133*n28*n9 + pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n113*n51) + n235*n61*(pow(alpha, NP0*n1 - n136*n15)*n1*n133*n15*n28 + pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n106*n57) + n236*n61*(pow(alpha, NP0*n1 - n136*n16)*n1*n133*n16*n28 + pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n126) + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 - n61*n84*xF[8]*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n2 + n101*n2)*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n43 + n101*n43)/n206 + n61*n86*xF[3]*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n2 + n2*n99)*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n43 + n43*n99)/n201 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n133*n2*n6 + n121)*(pow(alpha, NP0*n1 - n136*n6)*n133*n43*n6 + n43*n48*n6)/n196 + n61*n88*xF[10]*(pow(alpha, NP0*n1 - n136*n5)*n133*n2*n5 + n104*n2)*(pow(alpha, NP0*n1 - n136*n5)*n133*n43*n5 + n104*n43)/n195 + n61*n76*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n19*n28*n8 + pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n28*n32*n92)/n184 + n61*n75*xF[12]*(pow(alpha, NP0*n1 - n136*n7)*n133*n19*n28*n7 + pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91)/n183 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n1*n133*n28*n6 + pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n127)/n182) - 4.0*n227*n290*n61 + 2.0*n241 + 2.0*n318) + pow(-n24*(n0*n227*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n43 + n100*n43) - n0*n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) + n0*xTj*(n105*n61*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n19*n28 + pow(alpha, n1*n24 - n136*n14)*n14*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n14)*n28*n38*n73/(n131*n72) + n28*n38*n96)/n190 - n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n133*n65 + n52*n65)*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n43 + n10*n43*n52)/n200 + n108*n61*(pow(alpha, NP0*n1 - n10*n136)*n10*n133*n19*n28 + pow(alpha, n1*n24 - n10*n136)*n10*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n10*n136)*n110*n73/(n131*n72) + n110*n93)/n186 - n112*n61*(pow(alpha, NP0*n1 - n13*n136)*n133*n62 + n55*n62)*(pow(alpha, NP0*n1 - n13*n136)*n13*n133*n43 + n13*n43*n55)/n203 + n117*n61*(pow(alpha, NP0*n1 - n136*n7)*n133*n2*n7 + n122)*(pow(alpha, NP0*n1 - n136*n7)*n133*n43*n7 + n43*n49*n7)/n197 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n2 + n109*n2)*(pow(alpha, NP0*n1 - n136*n17)*n133*n17*n43 + n109*n43)/n207 + n119*n61*(pow(alpha, NP0*n1 - n136*n17)*n1*n133*n17*n28 + pow(alpha, n1*n24 - n136*n17)*n1*n17*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n17)*n28*n41*n73/(n131*n72) + n28*n41*n59)/n193 + n120*n61*(pow(alpha, NP0*n1 - n136*n8)*n133*n2*n8 + n107*n2)*(pow(alpha, NP0*n1 - n136*n8)*n133*n43*n8 + n107*n43)/n198 + n216*n61*n86*(pow(alpha, NP0*n1 - n11*n136)*n1*n11*n133*n28 + pow(alpha, n1*n24 - n11*n136)*n1*n11*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n11*n136)*n28*n67*n73/(n131*n72) + n129) + n217*n61*n87*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n2 + n2*n98)*(pow(alpha, NP0*n1 - n136*n14)*n133*n14*n43 + n43*n98) + n218*n61*n88*(pow(alpha, NP0*n1 - n136*n5)*n1*n133*n28*n5 + pow(alpha, n1*n24 - n136*n5)*n1*n28*n5*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n5)*n28*n29*n73/(n131*n72) + n128) - n227*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2)*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n43 + n100*n43) + n228*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n133*n28*n66 + n118*n66) - n229*n61*xF[1]*(pow(alpha, NP0*n1 - n136*n9)*n133*n63 + n51*n63)*(pow(alpha, NP0*n1 - n136*n9)*n133*n43*n9 + n114*n43) + n230*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n19*n28 + pow(alpha, n1*n24 - n12*n136)*n12*n19*n28*n73/(n131*n72) + pow(alpha, n1*n24 - n12*n136)*n28*n36*n73/(n131*n72) + n28*n36*n94) - n231*n61*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n2 + n103*n2)*(pow(alpha, NP0*n1 - n12*n136)*n12*n133*n43 + n103*n43) + n232*n61*(pow(alpha, NP0*n1 - n13*n136)*n1*n13*n133*n28 + pow(alpha, n1*n24 - n13*n136)*n1*n13*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n13*n136)*n102*n73/(n131*n72) + n102*n55) + n233*n61*(pow(alpha, NP0*n1 - n136*n15)*n133*n68 + n57*n68)*(pow(alpha, NP0*n1 - n136*n15)*n133*n15*n43 + n115*n43) + n234*n61*(pow(alpha, NP0*n1 - n136*n9)*n1*n133*n28*n9 + pow(alpha, n1*n24 - n136*n9)*n1*n28*n73*n9/(n131*n72) - pow(alpha, n1*n24 - n136*n9)*n113*n73/(n131*n72) + n113*n51) + n235*n61*(pow(alpha, NP0*n1 - n136*n15)*n1*n133*n15*n28 + pow(alpha, n1*n24 - n136*n15)*n1*n15*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n15)*n106*n73/(n131*n72) + n106*n57) + n236*n61*(pow(alpha, NP0*n1 - n136*n16)*n1*n133*n16*n28 + pow(alpha, n1*n24 - n136*n16)*n1*n16*n28*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n16)*n28*n40*n73/(n131*n72) + n126) + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n251 + n252 + n253 + n254 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 - n61*n84*xF[8]*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n2 + n101*n2)*(pow(alpha, NP0*n1 - n136*n16)*n133*n16*n43 + n101*n43)/n206 + n61*n86*xF[3]*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n2 + n2*n99)*(pow(alpha, NP0*n1 - n11*n136)*n11*n133*n43 + n43*n99)/n201 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n133*n2*n6 + n121)*(pow(alpha, NP0*n1 - n136*n6)*n133*n43*n6 + n43*n48*n6)/n196 + n61*n88*xF[10]*(pow(alpha, NP0*n1 - n136*n5)*n133*n2*n5 + n104*n2)*(pow(alpha, NP0*n1 - n136*n5)*n133*n43*n5 + n104*n43)/n195 + n61*n76*xF[13]*(pow(alpha, NP0*n1 - n136*n8)*n133*n19*n28*n8 + pow(alpha, n1*n24 - n136*n8)*n19*n28*n73*n8/(n131*n72) + pow(alpha, n1*n24 - n136*n8)*n28*n32*n73/(n131*n72) + n28*n32*n92)/n184 + n61*n75*xF[12]*(pow(alpha, NP0*n1 - n136*n7)*n133*n19*n28*n7 + pow(alpha, n1*n24 - n136*n7)*n111*n73/(n131*n72) + pow(alpha, n1*n24 - n136*n7)*n19*n28*n7*n73/(n131*n72) + n111*n91)/n183 + n61*n89*xF[11]*(pow(alpha, NP0*n1 - n136*n6)*n1*n133*n28*n6 + pow(alpha, n1*n24 - n136*n6)*n1*n28*n6*n73/(n131*n72) - pow(alpha, n1*n24 - n136*n6)*n28*n30*n73/(n131*n72) + n127)/n182) + 1.0*n100*n221*n61*xF[0]*(pow(alpha, NP0*n1 - n1*n136)*n1*n133*n2 + n100*n2) + n255) - n339, -n20);
24829  NP_sqrt_base = fabs(NP_sqrt_base);
24830  NP1 = (-NP_b - pow(NP_sqrt_base, -n0))/NP_2a;
24831  NT1 = n97*(n132 - log(-pow(alpha, NP1*n1)*n123 + 1));
24832  g0 = MW[1] - Mstar;
24833  g1 = MW[0] - Mstar;
24834  g2 = NT1 + 1;
24835  g3 = xPj - xTj;
24836  g4 = MW[10] - Mstar;
24837  g5 = MW[11] - Mstar;
24838  g6 = MW[12] - Mstar;
24839  g7 = MW[13] - Mstar;
24840  g8 = MW[2] - Mstar;
24841  g9 = MW[3] - Mstar;
24842  g10 = MW[4] - Mstar;
24843  g11 = MW[5] - Mstar;
24844  g12 = MW[6] - Mstar;
24845  g13 = MW[7] - Mstar;
24846  g14 = MW[8] - Mstar;
24847  g15 = MW[9] - Mstar;
24848  g16 = xF[0] - xTj;
24849  g17 = xF[0] - xPj;
24850  g18 = -xTj;
24851  g19 = xPj/xF[1];
24852  g20 = pow(alpha, -g1);
24853  g21 = pow(alpha, -g4);
24854  g22 = pow(alpha, -g5);
24855  g23 = pow(alpha, -g6);
24856  g24 = pow(alpha, -g7);
24857  g25 = pow(alpha, -g0);
24858  g26 = pow(alpha, -g8);
24859  g27 = pow(alpha, -g9);
24860  g28 = pow(alpha, -g10);
24861  g29 = pow(alpha, -g11);
24862  g30 = pow(alpha, -g12);
24863  g31 = pow(alpha, -g13);
24864  g32 = pow(alpha, -g14);
24865  g33 = pow(alpha, -g15);
24866  g34 = log(xF[0]/xF[1]);
24867  g35 = -g2;
24868  g36 = pow(alpha, NP1*g0);
24869  g37 = pow(alpha, NP1*g1);
24870  g38 = pow(alpha, NP1*g4);
24871  g39 = log(g20);
24872  g40 = pow(alpha, NP1*g5);
24873  g41 = pow(alpha, NP1*g6);
24874  g42 = pow(alpha, NP1*g7);
24875  g43 = pow(alpha, NP1*g8);
24876  g44 = pow(alpha, NP1*g9);
24877  g45 = pow(alpha, NP1*g10);
24878  g46 = pow(alpha, NP1*g11);
24879  g47 = pow(alpha, NP1*g12);
24880  g48 = pow(alpha, NP1*g13);
24881  g49 = pow(alpha, NP1*g14);
24882  g50 = pow(alpha, NP1*g15);
24883  g51 = -g34;
24884  g52 = g16/g3;
24885  g53 = g3/g16;
24886  g54 = -g36 + 1;
24887  g55 = -g36 + 1;
24888  g56 = -g37 + 1;
24889  g57 = -g43 + 1;
24890  g58 = -g44 + 1;
24891  g59 = -g45 + 1;
24892  g60 = -g46 + 1;
24893  g61 = -g47 + 1;
24894  g62 = -g48 + 1;
24895  g63 = -g49 + 1;
24896  g64 = -g50 + 1;
24897  g65 = -g38 + 1;
24898  g66 = -g40 + 1;
24899  g67 = -g41 + 1;
24900  g68 = -g42 + 1;
24901  g69 = -g37;
24902  g70 = -g38;
24903  g71 = -g40;
24904  g72 = -g41;
24905  g73 = -g42;
24906  g74 = -g43;
24907  g75 = -g44;
24908  g76 = -g45;
24909  g77 = -g46;
24910  g78 = -g47;
24911  g79 = -g48;
24912  g80 = -g49;
24913  g81 = -g50;
24914  g82 = -1.0*g34;
24915  g83 = -g3/g17;
24916  g84 = g17/(g3*xF[1]);
24917  g85 = pow(alpha, g0*g35) - 1;
24918  g86 = pow(alpha, g0*g35) - 1;
24919  g87 = pow(alpha, g1*g35) - 1;
24920  g88 = pow(alpha, g35*g8) - 1;
24921  g89 = pow(alpha, g35*g9) - 1;
24922  g90 = pow(alpha, g10*g35) - 1;
24923  g91 = pow(alpha, g11*g35) - 1;
24924  g92 = pow(alpha, g12*g35) - 1;
24925  g93 = pow(alpha, g13*g35) - 1;
24926  g94 = pow(alpha, g14*g35) - 1;
24927  g95 = pow(alpha, g15*g35) - 1;
24928  g96 = pow(alpha, g35*g4) - 1;
24929  g97 = pow(alpha, g35*g5) - 1;
24930  g98 = pow(alpha, g35*g6) - 1;
24931  g99 = pow(alpha, g35*g7) - 1;
24932  g100 = -pow(alpha, g1*g35);
24933  g101 = -pow(alpha, g35*g4);
24934  g102 = -pow(alpha, g35*g5);
24935  g103 = -pow(alpha, g35*g6);
24936  g104 = -pow(alpha, g35*g7);
24937  g105 = -pow(alpha, g35*g8);
24938  g106 = -pow(alpha, g35*g9);
24939  g107 = -pow(alpha, g10*g35);
24940  g108 = -pow(alpha, g11*g35);
24941  g109 = -pow(alpha, g12*g35);
24942  g110 = -pow(alpha, g13*g35);
24943  g111 = -pow(alpha, g14*g35);
24944  g112 = -pow(alpha, g15*g35);
24945  g113 = g55 + g86;
24946  g114 = -g100 - g37;
24947  g115 = -g101 - g38;
24948  g116 = -g102 - g40;
24949  g117 = -g103 - g41;
24950  g118 = -g104 - g42;
24951  g119 = -g105 - g43;
24952  g120 = -g106 - g44;
24953  g121 = -g107 - g45;
24954  g122 = -g108 - g46;
24955  g123 = -g109 - g47;
24956  g124 = -g110 - g48;
24957  g125 = -g111 - g49;
24958  g126 = -g112 - g50;
24959  g127 = pow(alpha, g1*g35) + g69;
24960  g128 = g55 + g86;
24961  g129 = pow(alpha, g35*g4) + g70;
24962  g130 = pow(alpha, g35*g5) + g71;
24963  g131 = pow(alpha, g35*g6) + g72;
24964  g132 = pow(alpha, g35*g7) + g73;
24965  g133 = pow(alpha, g35*g8) + g74;
24966  g134 = pow(alpha, g35*g9) + g75;
24967  g135 = pow(alpha, g10*g35) + g76;
24968  g136 = pow(alpha, g11*g35) + g77;
24969  g137 = pow(alpha, g12*g35) + g78;
24970  g138 = pow(alpha, g13*g35) + g79;
24971  g139 = pow(alpha, g14*g35) + g80;
24972  g140 = pow(alpha, g15*g35) + g81;
24973  g141 = xF[11]/g130;
24974  g142 = xF[9]/g140;
24975  g143 = xF[8]/g139;
24976  g144 = xF[1]/g128;
24977  g145 = xF[10]/g129;
24978  g146 = xF[3]/g134;
24979  g147 = xF[7]/g138;
24980  g148 = xF[4]/g135;
24981  g149 = xF[12]/g131;
24982  g150 = xF[13]/g132;
24983  g151 = xF[6]/g137;
24984  g152 = xF[5]/g136;
24985  g153 = xF[2]/g133;
24986  g154 = xF[0]/g127;
24987  g155 = xF[1]/g113;
24988  g156 = xF[0]/g114;
24989  g157 = xF[4]/g121;
24990  g158 = xF[7]/g124;
24991  g159 = xF[2]/g119;
24992  g160 = xF[11]/g116;
24993  g161 = xF[13]/g118;
24994  g162 = xF[3]/g120;
24995  g163 = xF[6]/g123;
24996  g164 = xF[8]/g125;
24997  g165 = xF[12]/g117;
24998  g166 = xF[10]/g115;
24999  g167 = xF[9]/g126;
25000  g168 = xF[5]/g122;
25001  g169 = g61/g123;
25002  g170 = g64/g126;
25003  g171 = g59/g121;
25004  g172 = g62/g124;
25005  g173 = g56/g114;
25006  g174 = g60/g122;
25007  g175 = g67/g117;
25008  g176 = g68/g118;
25009  g177 = g58/g120;
25010  g178 = g54/g113;
25011  g179 = g66/g116;
25012  g180 = g57/g119;
25013  g181 = g65/g115;
25014  g182 = g63/g125;
25015  g183 = g85/g113;
25016  g184 = g87/g114;
25017  g185 = g97/g116;
25018  g186 = g88/g119;
25019  g187 = g89/g120;
25020  g188 = g90/g121;
25021  g189 = g94/g125;
25022  g190 = g95/g126;
25023  g191 = g92/g123;
25024  g192 = g98/g117;
25025  g193 = g99/g118;
25026  g194 = g93/g124;
25027  g195 = g96/g115;
25028  g196 = g91/g122;
25029  g197 = log(g128*g18*g84/g55);
25030  g198 = log(g113*g18*g84/g54);
25031  g199 = log(g128*g19*g52/g86);
25032  g200 = 1.0*g197;
25033  g201 = log(g113*g19*g52/g85);
25034  g202 = 1.0*g199;
25035  g203 = -g141*g200*(g71 + 1) - g141*g202*(pow(alpha, g35*g5) - 1) - g142*g200*(g81 + 1) - g142*g202*(pow(alpha, g15*g35) - 1) - g143*g200*(g80 + 1) - g143*g202*(pow(alpha, g14*g35) - 1) - g144*g200*g55 - g144*g202*g86 - g145*g200*(g70 + 1) - g145*g202*(pow(alpha, g35*g4) - 1) - g146*g200*(g75 + 1) - g146*g202*(pow(alpha, g35*g9) - 1) - g147*g200*(g79 + 1) - g147*g202*(pow(alpha, g13*g35) - 1) - g148*g200*(g76 + 1) - g148*g202*(pow(alpha, g10*g35) - 1) - g149*g200*(g72 + 1) - g149*g202*(pow(alpha, g35*g6) - 1) - g150*g200*(g73 + 1) - g150*g202*(pow(alpha, g35*g7) - 1) - g151*g200*(g78 + 1) - g151*g202*(pow(alpha, g12*g35) - 1) - g152*g200*(g77 + 1) - g152*g202*(pow(alpha, g11*g35) - 1) - g153*g200*(g74 + 1) - g153*g202*(pow(alpha, g35*g8) - 1) - g154*g200*(g69 + 1) - g154*g202*(pow(alpha, g1*g35) - 1) - g82*xF[0] - g82*xF[10] - g82*xF[11] - g82*xF[12] - g82*xF[13] - g82*xF[1] - g82*xF[2] - g82*xF[3] - g82*xF[4] - g82*xF[5] - g82*xF[6] - g82*xF[7] - g82*xF[8] - g82*xF[9];
25036  LpF = xF[0]*(g20 + 1.0)*(g173*g198 + g184*g201 + g51)/(g39*(g20 - 1.0)) + xF[10]*(g21 + 1.0)*(g181*g198 + g195*g201 + g51)/(g39*(g21 - 1.0)) + xF[11]*(g22 + 1.0)*(g179*g198 + g185*g201 + g51)/(g39*(g22 - 1.0)) + xF[12]*(g23 + 1.0)*(g175*g198 + g192*g201 + g51)/(g39*(g23 - 1.0)) + xF[13]*(g24 + 1.0)*(g176*g198 + g193*g201 + g51)/(g39*(g24 - 1.0)) + xF[1]*(g25 + 1.0)*(g178*g198 + g183*g201 + g51)/(g39*(g25 - 1.0)) + xF[2]*(g26 + 1.0)*(g180*g198 + g186*g201 + g51)/(g39*(g26 - 1.0)) + xF[3]*(g27 + 1.0)*(g177*g198 + g187*g201 + g51)/(g39*(g27 - 1.0)) + xF[4]*(g28 + 1.0)*(g171*g198 + g188*g201 + g51)/(g39*(g28 - 1.0)) + xF[5]*(g29 + 1.0)*(g174*g198 + g196*g201 + g51)/(g39*(g29 - 1.0)) + xF[6]*(g30 + 1.0)*(g169*g198 + g191*g201 + g51)/(g39*(g30 - 1.0)) + xF[7]*(g31 + 1.0)*(g172*g198 + g194*g201 + g51)/(g39*(g31 - 1.0)) + xF[8]*(g32 + 1.0)*(g182*g198 + g189*g201 + g51)/(g39*(g32 - 1.0)) + xF[9]*(g33 + 1.0)*(g170*g198 + g190*g201 + g51)/(g39*(g33 - 1.0));
25037  PpF = g52;
25038  TpF = -g17/g3;
25039  SWUpF = g203;
25040  SWUpP = g203*g53;
25041  xP[0] = g156*g53*g87;
25042  xP[1] = g155*g53*g85;
25043  xP[2] = g159*g53*g88;
25044  xP[3] = g162*g53*g89;
25045  xP[4] = g157*g53*g90;
25046  xP[5] = g168*g53*g91;
25047  xP[6] = g163*g53*g92;
25048  xP[7] = g158*g53*g93;
25049  xP[8] = g164*g53*g94;
25050  xP[9] = g167*g53*g95;
25051  xP[10] = g166*g53*g96;
25052  xP[11] = g160*g53*g97;
25053  xP[12] = g165*g53*g98;
25054  xP[13] = g161*g53*g99;
25055  xT[0] = g156*g56*g83;
25056  xT[1] = g155*g54*g83;
25057  xT[2] = g159*g57*g83;
25058  xT[3] = g162*g58*g83;
25059  xT[4] = g157*g59*g83;
25060  xT[5] = g168*g60*g83;
25061  xT[6] = g163*g61*g83;
25062  xT[7] = g158*g62*g83;
25063  xT[8] = g164*g63*g83;
25064  xT[9] = g167*g64*g83;
25065  xT[10] = g166*g65*g83;
25066  xT[11] = g160*g66*g83;
25067  xT[12] = g165*g67*g83;
25068  xT[13] = g161*g68*g83;
25069  break;
25070  case 15:
25071  n0 = -2.00000000000000;
25072  n1 = MW[0] - Mstar;
25073  n2 = log(alpha);
25074  n3 = xPj - xTj;
25075  n4 = xF[0] - xPj;
25076  n5 = MW[10] - Mstar;
25077  n6 = MW[11] - Mstar;
25078  n7 = MW[12] - Mstar;
25079  n8 = MW[13] - Mstar;
25080  n9 = MW[14] - Mstar;
25081  n10 = MW[1] - Mstar;
25082  n11 = MW[2] - Mstar;
25083  n12 = MW[3] - Mstar;
25084  n13 = MW[4] - Mstar;
25085  n14 = MW[5] - Mstar;
25086  n15 = MW[6] - Mstar;
25087  n16 = MW[7] - Mstar;
25088  n17 = MW[8] - Mstar;
25089  n18 = MW[9] - Mstar;
25090  n19 = log(xTj);
25091  n20 = -n1;
25092  n21 = -2;
25093  n22 = xF[0]*xPj;
25094  n23 = -Mstar;
25095  n24 = -NP0*n0;
25096  n25 = -xTj;
25097  n26 = pow(n1, -n0);
25098  n27 = pow(n2, -n0);
25099  n28 = pow(n5, -n0);
25100  n29 = pow(n6, -n0);
25101  n30 = pow(n7, -n0);
25102  n31 = pow(n8, -n0);
25103  n32 = pow(n9, -n0);
25104  n33 = pow(n10, -n0);
25105  n34 = pow(n11, -n0);
25106  n35 = pow(n12, -n0);
25107  n36 = pow(n13, -n0);
25108  n37 = pow(n14, -n0);
25109  n38 = pow(n15, -n0);
25110  n39 = pow(n16, -n0);
25111  n40 = pow(n17, -n0);
25112  n41 = pow(n18, -n0);
25113  n42 = Mstar*n2;
25114  n43 = -n0*n2;
25115  n44 = pow(alpha, NP0*n1);
25116  n45 = n22 + n25*xF[0];
25117  n46 = n22 + n25*xPj;
25118  n47 = pow(alpha, NP0*n5);
25119  n48 = pow(alpha, NP0*n6);
25120  n49 = pow(alpha, NP0*n7);
25121  n50 = pow(alpha, NP0*n8);
25122  n51 = pow(alpha, NP0*n9);
25123  n52 = pow(alpha, NP0*n10);
25124  n53 = pow(alpha, NP0*n11);
25125  n54 = pow(alpha, NP0*n12);
25126  n55 = pow(alpha, NP0*n13);
25127  n56 = pow(alpha, NP0*n14);
25128  n57 = pow(alpha, NP0*n15);
25129  n58 = pow(alpha, NP0*n16);
25130  n59 = pow(alpha, NP0*n17);
25131  n60 = pow(alpha, NP0*n18);
25132  n61 = -MW[0]*n2;
25133  n62 = n3/n4;
25134  n63 = n14*n2;
25135  n64 = n10*n2;
25136  n65 = n11*n2;
25137  n66 = n18*n2;
25138  n67 = n1*n2;
25139  n68 = n16*n2;
25140  n69 = -n44 + 1;
25141  n70 = -n47 + 1;
25142  n71 = pow(alpha, NP0*n0*n20);
25143  n72 = pow(n46, -n0);
25144  n73 = -n48 + 1;
25145  n74 = -n49 + 1;
25146  n75 = -n50 + 1;
25147  n76 = -n51 + 1;
25148  n77 = -n52 + 1;
25149  n78 = -n53 + 1;
25150  n79 = -n54 + 1;
25151  n80 = -n55 + 1;
25152  n81 = -n56 + 1;
25153  n82 = -n57 + 1;
25154  n83 = -n58 + 1;
25155  n84 = -n59 + 1;
25156  n85 = -n60 + 1;
25157  n86 = -n79;
25158  n87 = -n73;
25159  n88 = -n82;
25160  n89 = -n80;
25161  n90 = -n44;
25162  n91 = -n49;
25163  n92 = -n50;
25164  n93 = -n51;
25165  n94 = -n53;
25166  n95 = -n55;
25167  n96 = -n56;
25168  n97 = -n57;
25169  n98 = n44*xF[0];
25170  n99 = n60*xF[9];
25171  n100 = 1.0/n67;
25172  n101 = n15*n57;
25173  n102 = n12*n54;
25174  n103 = n27*n37;
25175  n104 = n13*n55;
25176  n105 = n76*xF[14];
25177  n106 = n26*n27;
25178  n107 = n1*n44;
25179  n108 = n27*n39;
25180  n109 = n50*n8;
25181  n110 = n78*xF[2];
25182  n111 = n69*xF[0];
25183  n112 = n51*n9;
25184  n113 = n27*n34;
25185  n114 = n27*n30;
25186  n115 = n27*n33;
25187  n116 = n47*n5;
25188  n117 = n17*n59;
25189  n118 = n10*n52;
25190  n119 = n81*xF[5];
25191  n120 = n49*n7;
25192  n121 = n16*n58;
25193  n122 = n27*n32;
25194  n123 = log((-1.0 + xPj/xF[0])/n3);
25195  n124 = -n74*xF[12];
25196  n125 = -n85*xF[9];
25197  n126 = n116*xF[10];
25198  n127 = -n70*xF[10];
25199  n128 = -n75*xF[13];
25200  n129 = -n84*xF[8];
25201  n130 = -n83*xF[7];
25202  n131 = n2*n48*n6;
25203  n132 = n117*n2;
25204  n133 = n46/n45;
25205  n134 = n120*n2*xF[12];
25206  n135 = n27*n31*n50;
25207  n136 = n27*n29*n48;
25208  n137 = n27*n40*n59;
25209  n138 = n27*n36*n55;
25210  n139 = n27*n28*n47;
25211  n140 = n27*n38*n57;
25212  n141 = n27*n35*n54;
25213  n142 = n133*n90 + 1;
25214  n143 = n123 + n19 + n42 + n61;
25215  n144 = n133/n142;
25216  n145 = n144*n27;
25217  n146 = n144*n2*n44;
25218  n147 = n100*(n143 - log(n142)) + 1;
25219  n148 = pow(alpha, n1*n147);
25220  n149 = pow(alpha, n147*n5);
25221  n150 = pow(alpha, n147*n6);
25222  n151 = pow(alpha, n147*n7);
25223  n152 = pow(alpha, n147*n8);
25224  n153 = pow(alpha, n147*n9);
25225  n154 = pow(alpha, n10*n147);
25226  n155 = pow(alpha, n11*n147);
25227  n156 = pow(alpha, n12*n147);
25228  n157 = pow(alpha, n13*n147);
25229  n158 = pow(alpha, n14*n147);
25230  n159 = pow(alpha, n147*n15);
25231  n160 = pow(alpha, n147*n16);
25232  n161 = pow(alpha, n147*n17);
25233  n162 = pow(alpha, n147*n18);
25234  n163 = n7/n151;
25235  n164 = n13/n157;
25236  n165 = n16/n160;
25237  n166 = n9/n153;
25238  n167 = n18/n162;
25239  n168 = n8/n152;
25240  n169 = n12/n156;
25241  n170 = n15/n159;
25242  n171 = n17/n161;
25243  n172 = n6/n150;
25244  n173 = n10/n154;
25245  n174 = n11/n155;
25246  n175 = n5/n149;
25247  n176 = n14/n158;
25248  n177 = n44/n158;
25249  n178 = pow(alpha, n147*n20) + n69 - 1;
25250  n179 = n70 - 1 + 1.0/n149;
25251  n180 = n73 - 1 + 1.0/n150;
25252  n181 = n74 - 1 + 1.0/n151;
25253  n182 = n75 - 1 + 1.0/n152;
25254  n183 = n76 - 1 + 1.0/n153;
25255  n184 = n77 - 1 + 1.0/n154;
25256  n185 = n78 - 1 + 1.0/n155;
25257  n186 = n79 - 1 + 1.0/n156;
25258  n187 = n80 - 1 + 1.0/n157;
25259  n188 = n81 - 1 + 1.0/n158;
25260  n189 = n82 - 1 + 1.0/n159;
25261  n190 = n83 - 1 + 1.0/n160;
25262  n191 = n84 - 1 + 1.0/n161;
25263  n192 = n85 - 1 + 1.0/n162;
25264  n193 = pow(n178, 3);
25265  n194 = pow(n179, 3);
25266  n195 = pow(n180, 3);
25267  n196 = pow(n181, 3);
25268  n197 = pow(n182, 3);
25269  n198 = pow(n183, 3);
25270  n199 = pow(n184, 3);
25271  n200 = pow(n185, 3);
25272  n201 = pow(n186, 3);
25273  n202 = pow(n187, 3);
25274  n203 = pow(n188, 3);
25275  n204 = pow(n189, 3);
25276  n205 = pow(n190, 3);
25277  n206 = pow(n191, 3);
25278  n207 = pow(n192, 3);
25279  n208 = xF[11]/n180;
25280  n209 = xF[13]/n182;
25281  n210 = xF[4]/n187;
25282  n211 = xF[3]/n186;
25283  n212 = xF[8]/n191;
25284  n213 = xF[6]/n189;
25285  n214 = xF[10]/n179;
25286  n215 = pow(n186, n21)*xF[3];
25287  n216 = xF[6]/n204;
25288  n217 = n2/n179;
25289  n218 = pow(n187, n21)*xF[4];
25290  n219 = -1/n178;
25291  n220 = xF[4]/n202;
25292  n221 = n2*xF[14]/n183;
25293  n222 = n56*xF[5]/n188;
25294  n223 = n52*xF[1]/n184;
25295  n224 = n58*xF[7]/n190;
25296  n225 = n53*xF[2]/n185;
25297  n226 = n49*xF[12]/n181;
25298  n227 = n51*xF[14]/n183;
25299  n228 = n27*n41/n192;
25300  n229 = n77/n199;
25301  n230 = pow(n178, n21)*n69;
25302  n231 = -n119*pow(n188, n21);
25303  n232 = n130/n205;
25304  n233 = -pow(n184, n21)*n77*xF[1];
25305  n234 = n62*n98/(n100*n178);
25306  n235 = n2*n20*n62*n98/n178;
25307  n236 = n106*n62*n98/n178;
25308  n237 = n139*n214*n62;
25309  n238 = n136*n208*n62;
25310  n239 = n114*n226*n62;
25311  n240 = n135*n209*n62;
25312  n241 = n122*n227*n62;
25313  n242 = n115*n223*n62;
25314  n243 = n113*n225*n62;
25315  n244 = n141*n211*n62;
25316  n245 = n138*n210*n62;
25317  n246 = n103*n222*n62;
25318  n247 = n140*n213*n62;
25319  n248 = n108*n224*n62;
25320  n249 = n137*n212*n62;
25321  n250 = n228*n62*n99;
25322  n251 = 0.5*n236;
25323  n252 = n144/n148 + 1;
25324  n253 = n144*n44/(n100*n148) + n44/n100;
25325  n254 = n116*n2 + n146*n175;
25326  n255 = n131 + n146*n172;
25327  n256 = n120*n2 + n146*n163;
25328  n257 = n109*n2 + n146*n168;
25329  n258 = n112*n2 + n146*n166;
25330  n259 = n144*n44*n64/n154 + n52*n64;
25331  n260 = n144*n44*n65/n155 + n53*n65;
25332  n261 = n102*n2 + n146*n169;
25333  n262 = n104*n2 + n146*n164;
25334  n263 = n144*n177*n63 + n56*n63;
25335  n264 = n101*n2 + n146*n170;
25336  n265 = n144*n44*n68/n160 + n58*n68;
25337  n266 = n132 + n146*n171;
25338  n267 = n144*n44*n66/n162 + n60*n66;
25339  n268 = pow(n253, -n0);
25340  n269 = pow(n254, -n0);
25341  n270 = pow(n255, -n0);
25342  n271 = pow(n256, -n0);
25343  n272 = pow(n257, -n0);
25344  n273 = pow(n258, -n0);
25345  n274 = pow(n259, -n0);
25346  n275 = pow(n260, -n0);
25347  n276 = pow(n261, -n0);
25348  n277 = pow(n262, -n0);
25349  n278 = pow(n263, -n0);
25350  n279 = pow(n264, -n0);
25351  n280 = pow(n265, -n0);
25352  n281 = pow(n266, -n0);
25353  n282 = pow(n267, -n0);
25354  n283 = n255*xF[11];
25355  n284 = n259*xF[1];
25356  n285 = n0*n146*n20/n148 + n0*n2*n20*n44;
25357  n286 = n274*xF[1];
25358  n287 = n106*n144*n90/n148 + n106*n90;
25359  n288 = pow(n181, n21)*n256;
25360  n289 = pow(n178, n21)*n253;
25361  n290 = pow(n192, n21)*n267;
25362  n291 = pow(n179, n21)*n254;
25363  n292 = pow(n182, n21)*n257;
25364  n293 = pow(n183, n21)*n258;
25365  n294 = pow(n190, n21)*n265;
25366  n295 = pow(n191, n21)*n266;
25367  n296 = pow(n189, n21)*n264*xF[6];
25368  n297 = n273/n198;
25369  n298 = n268/n193;
25370  n299 = n275/n200;
25371  n300 = n278/n203;
25372  n301 = pow(n178, n21)*n287;
25373  n302 = -n111*n289*n62;
25374  n303 = n0*pow(n178, n21)*n2*n20*n62*n98*(pow(alpha, NP0*n1 + n147*n20)*n144/n100 + n44/n100);
25375  n304 = n126*pow(n179, n21)*n43*n62*(pow(alpha, NP0*n1 - n147*n5)*n144*n2*n5 + n116*n2);
25376  n305 = pow(n180, n21)*n43*n48*n6*n62*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n144*n2*n6 + n131);
25377  n306 = n120*pow(n181, n21)*n43*n62*xF[12]*(pow(alpha, NP0*n1 - n147*n7)*n144*n2*n7 + n120*n2);
25378  n307 = n109*pow(n182, n21)*n43*n62*xF[13]*(pow(alpha, NP0*n1 - n147*n8)*n144*n2*n8 + n109*n2);
25379  n308 = n112*pow(n183, n21)*n43*n62*xF[14]*(pow(alpha, NP0*n1 - n147*n9)*n144*n2*n9 + n112*n2);
25380  n309 = n118*pow(n184, n21)*n43*n62*xF[1]*(pow(alpha, NP0*n1 - n10*n147)*n144*n64 + n52*n64);
25381  n310 = n11*pow(n185, n21)*n43*n53*n62*xF[2]*(pow(alpha, NP0*n1 - n11*n147)*n144*n65 + n53*n65);
25382  n311 = n102*n215*n43*n62*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n2 + n102*n2);
25383  n312 = n104*n218*n43*n62*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n2 + n104*n2);
25384  n313 = n14*pow(n188, n21)*n43*n56*n62*xF[5]*(pow(alpha, NP0*n1 - n14*n147)*n144*n63 + n56*n63);
25385  n314 = n101*pow(n189, n21)*n43*n62*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n2 + n101*n2);
25386  n315 = n121*pow(n190, n21)*n43*n62*xF[7]*(pow(alpha, NP0*n1 - n147*n16)*n144*n68 + n58*n68);
25387  n316 = n117*pow(n191, n21)*n43*n62*xF[8]*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n2 + n132);
25388  n317 = n18*pow(n192, n21)*n43*n62*n99*(pow(alpha, NP0*n1 - n147*n18)*n144*n66 + n60*n66);
25389  n318 = 1.0*n289*n62*n98/n100;
25390  n319 = n111*n301*n62;
25391  n320 = 0.5*n319;
25392  n321 = n234 + n302;
25393  n322 = -n253*n285/n193;
25394  n323 = pow(alpha, n1*n24)*n1*pow(n142, n21)*n175*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72/n149 + n107*n145*n175 + n139;
25395  n324 = pow(alpha, n1*n24)*n1*pow(n142, n21)*n172*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72/n150 + n107*n145*n172 + n136;
25396  n325 = pow(alpha, n1*n24)*n114*pow(n142, n21)*pow(n45, n21)*n72/n151 + pow(alpha, n1*n24)*pow(n142, n21)*n163*n20*n27*pow(n45, n21)*n72 + n114*n91 + n145*n163*n20*n44;
25397  n326 = pow(alpha, n1*n24)*pow(n142, n21)*n168*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72/n152 + n145*n168*n20*n44 + n27*n31*n92;
25398  n327 = pow(alpha, n1*n24)*n122*pow(n142, n21)*pow(n45, n21)*n72/n153 + pow(alpha, n1*n24)*pow(n142, n21)*n166*n20*n27*pow(n45, n21)*n72 + n122*n93 + n145*n166*n20*n44;
25399  n328 = pow(alpha, n1*n24)*n113*pow(n142, n21)*pow(n45, n21)*n72/n155 + pow(alpha, n1*n24)*pow(n142, n21)*n174*n20*n27*pow(n45, n21)*n72 + n113*n94 + n145*n174*n20*n44;
25400  n329 = pow(alpha, n1*n24)*pow(n142, n21)*n164*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72/n157 + n145*n164*n20*n44 + n27*n36*n95;
25401  n330 = pow(alpha, n1*n24)*pow(n142, n21)*n170*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72/n159 + n145*n170*n20*n44 + n27*n38*n97;
25402  n331 = pow(alpha, n1*n24)*n1*pow(n142, n21)*n165*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24)*n108*pow(n142, n21)*pow(n45, n21)*n72/n160 + n107*n145*n165 + n108*n58;
25403  n332 = pow(alpha, n1*n24)*n1*pow(n142, n21)*n171*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72/n161 + n107*n145*n171 + n137;
25404  n333 = pow(alpha, n1*n24)*n1*pow(n142, n21)*n167*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72/n162 + n107*n145*n167 + n27*n41*n60;
25405  n334 = pow(n181, n21)*n62*n74*xF[12]*(pow(alpha, n1*n24 - n147*n7)*n114*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n7)*pow(n142, n21)*n20*n27*pow(n45, n21)*n7*n72 + n114*n91 + n145*n163*n20*n44);
25406  n335 = pow(n182, n21)*n62*n75*xF[13]*(pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72 + n145*n168*n20*n44 + n27*n31*n92);
25407  n336 = n105*pow(n183, n21)*n62*(pow(alpha, n1*n24 - n147*n9)*n122*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n9)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n9 + n122*n93 + n145*n166*n20*n44);
25408  n337 = n110*pow(n185, n21)*n62*(pow(alpha, n1*n24 - n11*n147)*n11*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n11*n147)*n113*pow(n142, n21)*pow(n45, n21)*n72 + n113*n94 + n145*n174*n20*n44);
25409  n338 = n218*n62*n80*(pow(alpha, n1*n24 - n13*n147)*n13*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n13*n147)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72 + n145*n164*n20*n44 + n27*n36*n95);
25410  n339 = pow(n189, n21)*n62*n82*xF[6]*(pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n15*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72 + n145*n170*n20*n44 + n27*n38*n97);
25411  n340 = n127*pow(n179, n21)*n62*(pow(alpha, n1*n24 - n147*n5)*n1*pow(n142, n21)*n27*pow(n45, n21)*n5*n72 - pow(alpha, n1*n24 - n147*n5)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72 + n107*n145*n175 + n139);
25412  n341 = pow(n180, n21)*n62*n87*xF[11]*(pow(alpha, n1*n24 - n147*n6)*n1*pow(n142, n21)*n27*pow(n45, n21)*n6*n72 - pow(alpha, n1*n24 - n147*n6)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72 + n107*n145*n172 + n136);
25413  n342 = n233*n62*(pow(alpha, n1*n24 - n10*n147)*n1*n10*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n10*n147)*n115*pow(n142, n21)*pow(n45, n21)*n72 + n107*n145*n173 + n115*n52);
25414  n343 = n215*n62*n86*(pow(alpha, n1*n24 - n12*n147)*n1*n12*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n12*n147)*pow(n142, n21)*n27*n35*pow(n45, n21)*n72 + n107*n145*n169 + n141);
25415  n344 = n231*n62*(pow(alpha, n1*n24 - n14*n147)*n1*n14*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n14*n147)*n103*pow(n142, n21)*pow(n45, n21)*n72 + n103*n56 + n107*n145*n176);
25416  n345 = n130*pow(n190, n21)*n62*(pow(alpha, n1*n24 - n147*n16)*n1*pow(n142, n21)*n16*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n16)*n108*pow(n142, n21)*pow(n45, n21)*n72 + n107*n145*n165 + n108*n58);
25417  n346 = n129*pow(n191, n21)*n62*(pow(alpha, n1*n24 - n147*n17)*n1*pow(n142, n21)*n17*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n17)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72 + n107*n145*n171 + n137);
25418  n347 = n125*pow(n192, n21)*n62*(pow(alpha, n1*n24 - n147*n18)*n1*pow(n142, n21)*n18*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n18)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72 + n107*n145*n167 + n27*n41*n60);
25419  n348 = n251 + n318 + n320;
25420  n349 = n101*n2*n213*n62 + n102*n2*n211*n62 + n104*n2*n210*n62 - n105*n293*n62 + n109*n2*n209*n62 - n110*pow(n185, n21)*n260*n62 + n112*n221*n62 + n124*n288*n62 + n125*n290*n62 + n126*n217*n62 + n127*n291*n62 + n128*n292*n62 + n129*n295*n62 + n130*n294*n62 + n131*n208*n62 + n132*n212*n62 + n134*n62/n181 + pow(n180, n21)*n283*n62*n87 + n215*n261*n62*n86 + n218*n262*n62*n89 + n222*n62*n63 + n223*n62*n64 + n224*n62*n68 + n225*n62*n65 + n231*n263*n62 + n233*n259*n62 + n296*n62*n88 + n321 + n62*n66*n99/n192;
25421  n350 = n349*xTj;
25422  n351 = n236 + n237 + n238 + n239 + n240 + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n319 + n334 + n335 + n336 + n337 + n338 + n339 + n340 + n341 + n342 + n343 + n344 + n345 + n346 + n347;
25423  n352 = -n105*n258*n62*(n112*n43 + n144*n166*n43*n44)/n198 - n110*n260*n62*(n11*n43*n53 + n144*n174*n43*n44)/n200 + n111*n322*n62 - n119*n263*n62*(n14*n43*n56 + n144*n176*n43*n44)/n203 + n124*n256*n62*(n120*n43 + n144*n163*n43*n44)/n196 + n125*n267*n62*(n144*n167*n43*n44 + n18*n43*n60)/n207 + n127*n254*n62*(n116*n43 + n144*n175*n43*n44)/n194 + n128*n257*n62*(n109*n43 + n144*n168*n43*n44)/n197 + n129*n266*n62*(n117*n43 + n144*n171*n43*n44)/n206 + n216*n264*n62*n88*(n101*n43 + n144*n170*n43*n44) + n220*n262*n62*n89*(n104*n43 + n144*n164*n43*n44) - n229*n284*n62*(n118*n43 + n144*n173*n43*n44) + n232*n265*n62*(n121*n43 + n144*n165*n43*n44) + n351 + n261*n62*n86*xF[3]*(n102*n43 + n144*n169*n43*n44)/n201 + n283*n62*n87*(n144*n172*n43*n44 + n43*n48*n6)/n195;
25424  NP_b = -n235 - n24*(0.5*n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n106*(-n22 + xPj*xTj)/(n142*n45) + n106*n90) - 1.0*n111*n298*n62 + n251 - 0.5*xTj*(n105*pow(n183, n21)*n62*(pow(alpha, NP0*n1 - n147*n9)*n145*n20*n9 + pow(alpha, n1*n24 - n147*n9)*n122*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n9)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n9 + n122*n93) + n105*n21*n297*n62 + n110*pow(n185, n21)*n62*(pow(alpha, NP0*n1 - n11*n147)*n11*n145*n20 + pow(alpha, n1*n24 - n11*n147)*n11*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n11*n147)*n113*pow(n142, n21)*pow(n45, n21)*n72 + n113*n94) + n110*n21*n299*n62 + n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n106*(-n22 + xPj*xTj)/(n142*n45) + n106*n90) + n111*n21*n298*n62 + n119*n21*n300*n62 + n125*pow(n192, n21)*n62*(pow(alpha, NP0*n1 - n147*n18)*n1*n145*n18 + pow(alpha, n1*n24 - n147*n18)*n1*pow(n142, n21)*n18*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n18)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72 + n27*n41*n60) + n127*pow(n179, n21)*n62*(pow(alpha, NP0*n1 - n147*n5)*n1*n145*n5 + pow(alpha, n1*n24 - n147*n5)*n1*pow(n142, n21)*n27*pow(n45, n21)*n5*n72 - pow(alpha, n1*n24 - n147*n5)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72 + n139) + n129*pow(n191, n21)*n62*(pow(alpha, NP0*n1 - n147*n17)*n1*n145*n17 + pow(alpha, n1*n24 - n147*n17)*n1*pow(n142, n21)*n17*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n17)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72 + n137) + n130*pow(n190, n21)*n62*(pow(alpha, NP0*n1 - n147*n16)*n1*n145*n16 + pow(alpha, n1*n24 - n147*n16)*n1*pow(n142, n21)*n16*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n16)*n108*pow(n142, n21)*pow(n45, n21)*n72 + n108*n58) + pow(n180, n21)*n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n1*n145*n6 + pow(alpha, n1*n24 - n147*n6)*n1*pow(n142, n21)*n27*pow(n45, n21)*n6*n72 - pow(alpha, n1*n24 - n147*n6)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72 + n136) + pow(n181, n21)*n62*n74*xF[12]*(pow(alpha, NP0*n1 - n147*n7)*n145*n20*n7 + pow(alpha, n1*n24 - n147*n7)*n114*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n7)*pow(n142, n21)*n20*n27*pow(n45, n21)*n7*n72 + n114*n91) + pow(n182, n21)*n62*n75*xF[13]*(pow(alpha, NP0*n1 - n147*n8)*n145*n20*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72 + n27*n31*n92) + pow(n189, n21)*n62*n82*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n145*n15*n20 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n15*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72 + n27*n38*n97) + n21*n216*n279*n62*n82 + n21*n220*n277*n62*n80 + n21*n229*n286*n62 + n215*n62*n86*(pow(alpha, NP0*n1 - n12*n147)*n1*n12*n145 + pow(alpha, n1*n24 - n12*n147)*n1*n12*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n12*n147)*pow(n142, n21)*n27*n35*pow(n45, n21)*n72 + n141) + n218*n62*n80*(pow(alpha, NP0*n1 - n13*n147)*n13*n145*n20 + pow(alpha, n1*n24 - n13*n147)*n13*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n13*n147)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72 + n27*n36*n95) + n231*n62*(pow(alpha, NP0*n1 - n14*n147)*n1*n14*n145 + pow(alpha, n1*n24 - n14*n147)*n1*n14*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n14*n147)*n103*pow(n142, n21)*pow(n45, n21)*n72 + n103*n56) + n233*n62*(pow(alpha, NP0*n1 - n10*n147)*n1*n10*n145 + pow(alpha, n1*n24 - n10*n147)*n1*n10*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n10*n147)*n115*pow(n142, n21)*pow(n45, n21)*n72 + n115*n52) + n236 + n237 + n238 + n239 + n240 + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n21*n282*n62*n85*xF[9]/n207 + n21*n281*n62*n84*xF[8]/n206 + n21*n280*n62*n83*xF[7]/n205 + n21*n276*n62*n79*xF[3]/n201 + n21*n272*n62*n75*xF[13]/n197 + n21*n271*n62*n74*xF[12]/n196 + n21*n270*n62*n73*xF[11]/n195 + n21*n269*n62*n70*xF[10]/n194) + 1.0*pow(n178, n21)*n62*n98*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100)/n100) - n62*xTj*(n101*n2*n213 + n102*n2*n211 + n104*n2*n210 - n105*n293 + n109*n2*n209 - n110*pow(n185, n21)*n260 - n111*n289 + n112*n221 + n124*n288 + n125*n290 + n126*n217 + n127*n291 + n128*n292 + n129*n295 + n130*n294 + n131*n208 + n132*n212 + n134/n181 + pow(n180, n21)*n283*n87 + n215*n261*n86 + n218*n262*n89 + n222*n63 + n223*n64 + n224*n68 + n225*n65 + n231*n263 + n233*n259 + n296*n88 + n66*n99/n192 + n98/(n100*n178)) - n230*n252*n62*n98/n100;
25425  NP_2a = -n62*(-pow(alpha, n1*n24)*n0*n106*n111*pow(n252, -n0)/n193 + pow(alpha, n1*n24)*n0*n106*pow(n178, n21)*n252*xF[0] + n106*n111*pow(n178, n21)*n90*(-1 + (-n22 + xPj*xTj)/(n142*n148*n45)) - 1.0*n106*n98/n178 + 1.0*xTj*(n0*pow(n178, n21)*n2*n20*n98*(pow(alpha, NP0*n1 + n147*n20)*n144/n100 + n44/n100) + n101*pow(n189, n21)*n43*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n2 + n101*n2) + n102*n215*n43*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n2 + n102*n2) + n103*n222 + n104*n218*n43*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n2 + n104*n2) + n105*pow(n183, n21)*(pow(alpha, n1*n24 - n147*n9)*n122*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n9)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n9 + n122*n93 + n145*n166*n20*n44) + n105*n21*n297 + n106*n98/n178 + n108*n224 + n109*pow(n182, n21)*n43*xF[13]*(pow(alpha, NP0*n1 - n147*n8)*n144*n2*n8 + n109*n2) + n11*pow(n185, n21)*n43*n53*xF[2]*(pow(alpha, NP0*n1 - n11*n147)*n144*n65 + n53*n65) + n110*pow(n185, n21)*(pow(alpha, n1*n24 - n11*n147)*n11*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n11*n147)*n113*pow(n142, n21)*pow(n45, n21)*n72 + n113*n94 + n145*n174*n20*n44) + n110*n21*n299 + n111*n21*n298 + n111*n301 + n112*pow(n183, n21)*n43*xF[14]*(pow(alpha, NP0*n1 - n147*n9)*n144*n2*n9 + n112*n2) + n113*n225 + n114*n226 + n115*n223 + n117*pow(n191, n21)*n43*xF[8]*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n2 + n132) + n118*pow(n184, n21)*n43*xF[1]*(pow(alpha, NP0*n1 - n10*n147)*n144*n64 + n52*n64) + n119*n21*n300 + n120*pow(n181, n21)*n43*xF[12]*(pow(alpha, NP0*n1 - n147*n7)*n144*n2*n7 + n120*n2) + n121*pow(n190, n21)*n43*xF[7]*(pow(alpha, NP0*n1 - n147*n16)*n144*n68 + n58*n68) + n122*n227 + n125*pow(n192, n21)*(pow(alpha, n1*n24 - n147*n18)*n1*pow(n142, n21)*n18*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n18)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72 + n107*n145*n167 + n27*n41*n60) + n126*pow(n179, n21)*n43*(pow(alpha, NP0*n1 - n147*n5)*n144*n2*n5 + n116*n2) + n127*pow(n179, n21)*(pow(alpha, n1*n24 - n147*n5)*n1*pow(n142, n21)*n27*pow(n45, n21)*n5*n72 - pow(alpha, n1*n24 - n147*n5)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72 + n107*n145*n175 + n139) + n129*pow(n191, n21)*(pow(alpha, n1*n24 - n147*n17)*n1*pow(n142, n21)*n17*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n17)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72 + n107*n145*n171 + n137) + n130*pow(n190, n21)*(pow(alpha, n1*n24 - n147*n16)*n1*pow(n142, n21)*n16*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n16)*n108*pow(n142, n21)*pow(n45, n21)*n72 + n107*n145*n165 + n108*n58) + n135*n209 + n136*n208 + n137*n212 + n138*n210 + n139*n214 + n14*pow(n188, n21)*n43*n56*xF[5]*(pow(alpha, NP0*n1 - n14*n147)*n144*n63 + n56*n63) + n140*n213 + n141*n211 + n18*pow(n192, n21)*n43*n99*(pow(alpha, NP0*n1 - n147*n18)*n144*n66 + n60*n66) + pow(n180, n21)*n43*n48*n6*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n144*n2*n6 + n131) + pow(n180, n21)*n87*xF[11]*(pow(alpha, n1*n24 - n147*n6)*n1*pow(n142, n21)*n27*pow(n45, n21)*n6*n72 - pow(alpha, n1*n24 - n147*n6)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72 + n107*n145*n172 + n136) + pow(n181, n21)*n74*xF[12]*(pow(alpha, n1*n24 - n147*n7)*n114*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n7)*pow(n142, n21)*n20*n27*pow(n45, n21)*n7*n72 + n114*n91 + n145*n163*n20*n44) + pow(n182, n21)*n75*xF[13]*(pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72 + n145*n168*n20*n44 + n27*n31*n92) + pow(n189, n21)*n82*xF[6]*(pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n15*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72 + n145*n170*n20*n44 + n27*n38*n97) + n21*n216*n279*n82 + n21*n220*n277*n80 + n21*n229*n286 + n215*n86*(pow(alpha, n1*n24 - n12*n147)*n1*n12*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n12*n147)*pow(n142, n21)*n27*n35*pow(n45, n21)*n72 + n107*n145*n169 + n141) + n218*n80*(pow(alpha, n1*n24 - n13*n147)*n13*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n13*n147)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72 + n145*n164*n20*n44 + n27*n36*n95) + n228*n99 + n231*(pow(alpha, n1*n24 - n14*n147)*n1*n14*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n14*n147)*n103*pow(n142, n21)*pow(n45, n21)*n72 + n103*n56 + n107*n145*n176) + n233*(pow(alpha, n1*n24 - n10*n147)*n1*n10*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n10*n147)*n115*pow(n142, n21)*pow(n45, n21)*n72 + n107*n145*n173 + n115*n52) + n21*n282*n85*xF[9]/n207 + n21*n281*n84*xF[8]/n206 + n21*n280*n83*xF[7]/n205 + n21*n276*n79*xF[3]/n201 + n21*n272*n75*xF[13]/n197 + n21*n271*n74*xF[12]/n196 + n21*n270*n73*xF[11]/n195 + n21*n269*n70*xF[10]/n194));
25426  NP_sqrt_base = (NP0*(n25*(n101*n2*n213*n62 + n102*n2*n211*n62 + n104*n2*n210*n62 - n105*pow(n183, n21)*n62*(pow(alpha, NP0*n1 - n147*n9)*n144*n2*n9 + n112*n2) + n109*n2*n209*n62 - n110*pow(n185, n21)*n62*(pow(alpha, NP0*n1 - n11*n147)*n144*n65 + n53*n65) - n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100) + n112*n221*n62 + n124*pow(n181, n21)*n62*(pow(alpha, NP0*n1 - n147*n7)*n144*n2*n7 + n120*n2) + n125*pow(n192, n21)*n62*(pow(alpha, NP0*n1 - n147*n18)*n144*n66 + n60*n66) + n126*n217*n62 + n127*pow(n179, n21)*n62*(pow(alpha, NP0*n1 - n147*n5)*n144*n2*n5 + n116*n2) + n128*pow(n182, n21)*n62*(pow(alpha, NP0*n1 - n147*n8)*n144*n2*n8 + n109*n2) + n129*pow(n191, n21)*n62*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n2 + n132) + n130*pow(n190, n21)*n62*(pow(alpha, NP0*n1 - n147*n16)*n144*n68 + n58*n68) + n131*n208*n62 + n132*n212*n62 + n134*n62/n181 + pow(n180, n21)*n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n144*n2*n6 + n131) + pow(n189, n21)*n62*n88*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n2 + n101*n2) + n215*n62*n86*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n2 + n102*n2) + n218*n62*n89*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n2 + n104*n2) + n222*n62*n63 + n223*n62*n64 + n224*n62*n68 + n225*n62*n65 + n231*n62*(pow(alpha, NP0*n1 - n14*n147)*n144*n63 + n56*n63) + n233*n62*(pow(alpha, NP0*n1 - n10*n147)*n144*n64 + n52*n64) + n234 + n62*n66*n99/n192) + n321) + n111*n62/n178 + xTj*(-n105*n62/n183 - n110*n62/n185 + n111*n219*n62 - n119*n62/n188 + n124*n62/n181 + n125*n62/n192 + n127*n62/n179 + n128*n62/n182 + n129*n62/n191 + n130*n62/n190 + n208*n62*n87 + n210*n62*n89 + n211*n62*n86 + n213*n62*n88 - n62*n77*xF[1]/n184) + pow(NP0, -n0)*(0.5*n111*n253*n285*n62/n193 - 0.5*n236 - 0.5*n319 + 0.5*n352*xTj - 1.0*n289*n62*n98/n100))*(-n0*n236 - n0*n25*(n105*pow(n183, n21)*n62*(pow(alpha, NP0*n1 - n147*n9)*n145*n20*n9 + pow(alpha, n1*n24 - n147*n9)*n122*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n9)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n9 + n122*n93) - n105*n62*(pow(alpha, NP0*n1 - n147*n9)*n144*n2*n9 + n112*n2)*(pow(alpha, NP0*n1 - n147*n9)*n144*n43*n9 + n112*n43)/n198 + n110*pow(n185, n21)*n62*(pow(alpha, NP0*n1 - n11*n147)*n11*n145*n20 + pow(alpha, n1*n24 - n11*n147)*n11*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n11*n147)*n113*pow(n142, n21)*pow(n45, n21)*n72 + n113*n94) - n110*n62*(pow(alpha, NP0*n1 - n11*n147)*n144*n65 + n53*n65)*(pow(alpha, NP0*n1 - n11*n147)*n11*n144*n43 + n11*n43*n53)/n200 + n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n106*(-n22 + xPj*xTj)/(n142*n45) + n106*n90) - n111*n62*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100)*(pow(alpha, NP0*n1 - n1*n147)*n0*n144*n2*n20 + n0*n2*n20*n44)/n193 - n119*n62*(pow(alpha, NP0*n1 - n14*n147)*n144*n63 + n56*n63)*(pow(alpha, NP0*n1 - n14*n147)*n14*n144*n43 + n14*n43*n56)/n203 + n124*n62*(pow(alpha, NP0*n1 - n147*n7)*n144*n2*n7 + n120*n2)*(pow(alpha, NP0*n1 - n147*n7)*n144*n43*n7 + n120*n43)/n196 + n125*pow(n192, n21)*n62*(pow(alpha, NP0*n1 - n147*n18)*n1*n145*n18 + pow(alpha, n1*n24 - n147*n18)*n1*pow(n142, n21)*n18*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n18)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72 + n27*n41*n60) + n125*n62*(pow(alpha, NP0*n1 - n147*n18)*n144*n66 + n60*n66)*(pow(alpha, NP0*n1 - n147*n18)*n144*n18*n43 + n18*n43*n60)/n207 + n127*pow(n179, n21)*n62*(pow(alpha, NP0*n1 - n147*n5)*n1*n145*n5 + pow(alpha, n1*n24 - n147*n5)*n1*pow(n142, n21)*n27*pow(n45, n21)*n5*n72 - pow(alpha, n1*n24 - n147*n5)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72 + n139) + n127*n62*(pow(alpha, NP0*n1 - n147*n5)*n144*n2*n5 + n116*n2)*(pow(alpha, NP0*n1 - n147*n5)*n144*n43*n5 + n116*n43)/n194 + n128*n62*(pow(alpha, NP0*n1 - n147*n8)*n144*n2*n8 + n109*n2)*(pow(alpha, NP0*n1 - n147*n8)*n144*n43*n8 + n109*n43)/n197 + n129*pow(n191, n21)*n62*(pow(alpha, NP0*n1 - n147*n17)*n1*n145*n17 + pow(alpha, n1*n24 - n147*n17)*n1*pow(n142, n21)*n17*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n17)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72 + n137) + n129*n62*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n2 + n132)*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n43 + n117*n43)/n206 + n130*pow(n190, n21)*n62*(pow(alpha, NP0*n1 - n147*n16)*n1*n145*n16 + pow(alpha, n1*n24 - n147*n16)*n1*pow(n142, n21)*n16*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n16)*n108*pow(n142, n21)*pow(n45, n21)*n72 + n108*n58) + pow(n180, n21)*n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n1*n145*n6 + pow(alpha, n1*n24 - n147*n6)*n1*pow(n142, n21)*n27*pow(n45, n21)*n6*n72 - pow(alpha, n1*n24 - n147*n6)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72 + n136) + pow(n181, n21)*n62*n74*xF[12]*(pow(alpha, NP0*n1 - n147*n7)*n145*n20*n7 + pow(alpha, n1*n24 - n147*n7)*n114*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n7)*pow(n142, n21)*n20*n27*pow(n45, n21)*n7*n72 + n114*n91) + pow(n182, n21)*n62*n75*xF[13]*(pow(alpha, NP0*n1 - n147*n8)*n145*n20*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72 + n27*n31*n92) + pow(n189, n21)*n62*n82*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n145*n15*n20 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n15*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72 + n27*n38*n97) + n215*n62*n86*(pow(alpha, NP0*n1 - n12*n147)*n1*n12*n145 + pow(alpha, n1*n24 - n12*n147)*n1*n12*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n12*n147)*pow(n142, n21)*n27*n35*pow(n45, n21)*n72 + n141) + n216*n62*n88*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n2 + n101*n2)*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n43 + n101*n43) + n218*n62*n80*(pow(alpha, NP0*n1 - n13*n147)*n13*n145*n20 + pow(alpha, n1*n24 - n13*n147)*n13*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n13*n147)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72 + n27*n36*n95) + n220*n62*n89*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n2 + n104*n2)*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n43 + n104*n43) - n229*n62*xF[1]*(pow(alpha, NP0*n1 - n10*n147)*n144*n64 + n52*n64)*(pow(alpha, NP0*n1 - n10*n147)*n10*n144*n43 + n118*n43) + n231*n62*(pow(alpha, NP0*n1 - n14*n147)*n1*n14*n145 + pow(alpha, n1*n24 - n14*n147)*n1*n14*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n14*n147)*n103*pow(n142, n21)*pow(n45, n21)*n72 + n103*n56) + n232*n62*(pow(alpha, NP0*n1 - n147*n16)*n144*n68 + n58*n68)*(pow(alpha, NP0*n1 - n147*n16)*n144*n16*n43 + n121*n43) + n233*n62*(pow(alpha, NP0*n1 - n10*n147)*n1*n10*n145 + pow(alpha, n1*n24 - n10*n147)*n1*n10*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n10*n147)*n115*pow(n142, n21)*pow(n45, n21)*n72 + n115*n52) + n236 + n237 + n238 + n239 + n240 + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n62*n86*xF[3]*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n2 + n102*n2)*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n43 + n102*n43)/n201 + n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n144*n2*n6 + n131)*(pow(alpha, NP0*n1 - n147*n6)*n144*n43*n6 + n43*n48*n6)/n195) - n0*n319 - 4.0*n111*n298*n62 + 4.0*n289*n62*n98/n100) + pow(-n111*n289*n62 - n235 - n24*(0.5*n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n106*(-n22 + xPj*xTj)/(n142*n45) + n106*n90) - 0.5*n111*n62*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100)*(pow(alpha, NP0*n1 - n1*n147)*n0*n144*n2*n20 + n0*n2*n20*n44)/n193 + n251 - 0.5*xTj*(n105*pow(n183, n21)*n62*(pow(alpha, NP0*n1 - n147*n9)*n145*n20*n9 + pow(alpha, n1*n24 - n147*n9)*n122*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n9)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n9 + n122*n93) - n105*n62*(pow(alpha, NP0*n1 - n147*n9)*n144*n2*n9 + n112*n2)*(pow(alpha, NP0*n1 - n147*n9)*n144*n43*n9 + n112*n43)/n198 + n110*pow(n185, n21)*n62*(pow(alpha, NP0*n1 - n11*n147)*n11*n145*n20 + pow(alpha, n1*n24 - n11*n147)*n11*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n11*n147)*n113*pow(n142, n21)*pow(n45, n21)*n72 + n113*n94) - n110*n62*(pow(alpha, NP0*n1 - n11*n147)*n144*n65 + n53*n65)*(pow(alpha, NP0*n1 - n11*n147)*n11*n144*n43 + n11*n43*n53)/n200 + n111*pow(n178, n21)*n62*(pow(alpha, NP0*n1 - n1*n147)*n106*(-n22 + xPj*xTj)/(n142*n45) + n106*n90) - n111*n62*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100)*(pow(alpha, NP0*n1 - n1*n147)*n0*n144*n2*n20 + n0*n2*n20*n44)/n193 - n119*n62*(pow(alpha, NP0*n1 - n14*n147)*n144*n63 + n56*n63)*(pow(alpha, NP0*n1 - n14*n147)*n14*n144*n43 + n14*n43*n56)/n203 + n124*n62*(pow(alpha, NP0*n1 - n147*n7)*n144*n2*n7 + n120*n2)*(pow(alpha, NP0*n1 - n147*n7)*n144*n43*n7 + n120*n43)/n196 + n125*pow(n192, n21)*n62*(pow(alpha, NP0*n1 - n147*n18)*n1*n145*n18 + pow(alpha, n1*n24 - n147*n18)*n1*pow(n142, n21)*n18*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n18)*pow(n142, n21)*n27*n41*pow(n45, n21)*n72 + n27*n41*n60) + n125*n62*(pow(alpha, NP0*n1 - n147*n18)*n144*n66 + n60*n66)*(pow(alpha, NP0*n1 - n147*n18)*n144*n18*n43 + n18*n43*n60)/n207 + n127*pow(n179, n21)*n62*(pow(alpha, NP0*n1 - n147*n5)*n1*n145*n5 + pow(alpha, n1*n24 - n147*n5)*n1*pow(n142, n21)*n27*pow(n45, n21)*n5*n72 - pow(alpha, n1*n24 - n147*n5)*pow(n142, n21)*n27*n28*pow(n45, n21)*n72 + n139) + n127*n62*(pow(alpha, NP0*n1 - n147*n5)*n144*n2*n5 + n116*n2)*(pow(alpha, NP0*n1 - n147*n5)*n144*n43*n5 + n116*n43)/n194 + n128*n62*(pow(alpha, NP0*n1 - n147*n8)*n144*n2*n8 + n109*n2)*(pow(alpha, NP0*n1 - n147*n8)*n144*n43*n8 + n109*n43)/n197 + n129*pow(n191, n21)*n62*(pow(alpha, NP0*n1 - n147*n17)*n1*n145*n17 + pow(alpha, n1*n24 - n147*n17)*n1*pow(n142, n21)*n17*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n17)*pow(n142, n21)*n27*n40*pow(n45, n21)*n72 + n137) + n129*n62*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n2 + n132)*(pow(alpha, NP0*n1 - n147*n17)*n144*n17*n43 + n117*n43)/n206 + n130*pow(n190, n21)*n62*(pow(alpha, NP0*n1 - n147*n16)*n1*n145*n16 + pow(alpha, n1*n24 - n147*n16)*n1*pow(n142, n21)*n16*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n147*n16)*n108*pow(n142, n21)*pow(n45, n21)*n72 + n108*n58) + pow(n180, n21)*n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n1*n145*n6 + pow(alpha, n1*n24 - n147*n6)*n1*pow(n142, n21)*n27*pow(n45, n21)*n6*n72 - pow(alpha, n1*n24 - n147*n6)*pow(n142, n21)*n27*n29*pow(n45, n21)*n72 + n136) + pow(n181, n21)*n62*n74*xF[12]*(pow(alpha, NP0*n1 - n147*n7)*n145*n20*n7 + pow(alpha, n1*n24 - n147*n7)*n114*pow(n142, n21)*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n7)*pow(n142, n21)*n20*n27*pow(n45, n21)*n7*n72 + n114*n91) + pow(n182, n21)*n62*n75*xF[13]*(pow(alpha, NP0*n1 - n147*n8)*n145*n20*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n20*n27*pow(n45, n21)*n72*n8 + pow(alpha, n1*n24 - n147*n8)*pow(n142, n21)*n27*n31*pow(n45, n21)*n72 + n27*n31*n92) + pow(n189, n21)*n62*n82*xF[6]*(pow(alpha, NP0*n1 - n147*n15)*n145*n15*n20 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n15*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n147*n15)*pow(n142, n21)*n27*n38*pow(n45, n21)*n72 + n27*n38*n97) + n215*n62*n86*(pow(alpha, NP0*n1 - n12*n147)*n1*n12*n145 + pow(alpha, n1*n24 - n12*n147)*n1*n12*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n12*n147)*pow(n142, n21)*n27*n35*pow(n45, n21)*n72 + n141) + n216*n62*n88*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n2 + n101*n2)*(pow(alpha, NP0*n1 - n147*n15)*n144*n15*n43 + n101*n43) + n218*n62*n80*(pow(alpha, NP0*n1 - n13*n147)*n13*n145*n20 + pow(alpha, n1*n24 - n13*n147)*n13*pow(n142, n21)*n20*n27*pow(n45, n21)*n72 + pow(alpha, n1*n24 - n13*n147)*pow(n142, n21)*n27*n36*pow(n45, n21)*n72 + n27*n36*n95) + n220*n62*n89*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n2 + n104*n2)*(pow(alpha, NP0*n1 - n13*n147)*n13*n144*n43 + n104*n43) - n229*n62*xF[1]*(pow(alpha, NP0*n1 - n10*n147)*n144*n64 + n52*n64)*(pow(alpha, NP0*n1 - n10*n147)*n10*n144*n43 + n118*n43) + n231*n62*(pow(alpha, NP0*n1 - n14*n147)*n1*n14*n145 + pow(alpha, n1*n24 - n14*n147)*n1*n14*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n14*n147)*n103*pow(n142, n21)*pow(n45, n21)*n72 + n103*n56) + n232*n62*(pow(alpha, NP0*n1 - n147*n16)*n144*n68 + n58*n68)*(pow(alpha, NP0*n1 - n147*n16)*n144*n16*n43 + n121*n43) + n233*n62*(pow(alpha, NP0*n1 - n10*n147)*n1*n10*n145 + pow(alpha, n1*n24 - n10*n147)*n1*n10*pow(n142, n21)*n27*pow(n45, n21)*n72 - pow(alpha, n1*n24 - n10*n147)*n115*pow(n142, n21)*pow(n45, n21)*n72 + n115*n52) + n236 + n237 + n238 + n239 + n240 + n241 + n242 + n243 + n244 + n245 + n246 + n247 + n248 + n249 + n250 + n303 + n304 + n305 + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n62*n86*xF[3]*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n2 + n102*n2)*(pow(alpha, NP0*n1 - n12*n147)*n12*n144*n43 + n102*n43)/n201 + n62*n87*xF[11]*(pow(alpha, NP0*n1 - n147*n6)*n144*n2*n6 + n131)*(pow(alpha, NP0*n1 - n147*n6)*n144*n43*n6 + n43*n48*n6)/n195) + 1.0*pow(n178, n21)*n62*n98*(pow(alpha, NP0*n1 - n1*n147)*n144/n100 + n44/n100)/n100) - n350, -n0);
25427  NP_sqrt_base = fabs(NP_sqrt_base);
25428  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
25429  NT1 = n100*(n143 - log(-pow(alpha, NP1*n1)*n133 + 1));
25430  g0 = MW[1] - Mstar;
25431  g1 = MW[0] - Mstar;
25432  g2 = NT1 + 1;
25433  g3 = xPj - xTj;
25434  g4 = MW[10] - Mstar;
25435  g5 = MW[11] - Mstar;
25436  g6 = MW[12] - Mstar;
25437  g7 = MW[13] - Mstar;
25438  g8 = MW[14] - Mstar;
25439  g9 = MW[2] - Mstar;
25440  g10 = MW[3] - Mstar;
25441  g11 = MW[4] - Mstar;
25442  g12 = MW[5] - Mstar;
25443  g13 = MW[6] - Mstar;
25444  g14 = MW[7] - Mstar;
25445  g15 = MW[8] - Mstar;
25446  g16 = MW[9] - Mstar;
25447  g17 = xF[0] - xTj;
25448  g18 = xF[0] - xPj;
25449  g19 = -xTj;
25450  g20 = xPj/xF[1];
25451  g21 = pow(alpha, -g1);
25452  g22 = pow(alpha, -g4);
25453  g23 = pow(alpha, -g5);
25454  g24 = pow(alpha, -g6);
25455  g25 = pow(alpha, -g7);
25456  g26 = pow(alpha, -g8);
25457  g27 = pow(alpha, -g0);
25458  g28 = pow(alpha, -g9);
25459  g29 = pow(alpha, -g10);
25460  g30 = pow(alpha, -g11);
25461  g31 = pow(alpha, -g12);
25462  g32 = pow(alpha, -g13);
25463  g33 = pow(alpha, -g14);
25464  g34 = pow(alpha, -g15);
25465  g35 = pow(alpha, -g16);
25466  g36 = log(xF[0]/xF[1]);
25467  g37 = -g2;
25468  g38 = pow(alpha, NP1*g0);
25469  g39 = pow(alpha, NP1*g1);
25470  g40 = pow(alpha, NP1*g4);
25471  g41 = log(g21);
25472  g42 = pow(alpha, NP1*g5);
25473  g43 = pow(alpha, NP1*g6);
25474  g44 = pow(alpha, NP1*g7);
25475  g45 = pow(alpha, NP1*g8);
25476  g46 = pow(alpha, NP1*g9);
25477  g47 = pow(alpha, NP1*g10);
25478  g48 = pow(alpha, NP1*g11);
25479  g49 = pow(alpha, NP1*g12);
25480  g50 = pow(alpha, NP1*g13);
25481  g51 = pow(alpha, NP1*g14);
25482  g52 = pow(alpha, NP1*g15);
25483  g53 = pow(alpha, NP1*g16);
25484  g54 = -g36;
25485  g55 = g17/g3;
25486  g56 = g3/g17;
25487  g57 = -g38 + 1;
25488  g58 = -g38 + 1;
25489  g59 = -g39 + 1;
25490  g60 = -g46 + 1;
25491  g61 = -g47 + 1;
25492  g62 = -g48 + 1;
25493  g63 = -g49 + 1;
25494  g64 = -g50 + 1;
25495  g65 = -g51 + 1;
25496  g66 = -g52 + 1;
25497  g67 = -g53 + 1;
25498  g68 = -g40 + 1;
25499  g69 = -g42 + 1;
25500  g70 = -g43 + 1;
25501  g71 = -g44 + 1;
25502  g72 = -g45 + 1;
25503  g73 = -g39;
25504  g74 = -g40;
25505  g75 = -g42;
25506  g76 = -g43;
25507  g77 = -g44;
25508  g78 = -g45;
25509  g79 = -g46;
25510  g80 = -g47;
25511  g81 = -g48;
25512  g82 = -g49;
25513  g83 = -g50;
25514  g84 = -g51;
25515  g85 = -g52;
25516  g86 = -g53;
25517  g87 = -1.0*g36;
25518  g88 = -g3/g18;
25519  g89 = g18/(g3*xF[1]);
25520  g90 = pow(alpha, g0*g37) - 1;
25521  g91 = pow(alpha, g0*g37) - 1;
25522  g92 = pow(alpha, g1*g37) - 1;
25523  g93 = pow(alpha, g37*g9) - 1;
25524  g94 = pow(alpha, g10*g37) - 1;
25525  g95 = pow(alpha, g11*g37) - 1;
25526  g96 = pow(alpha, g12*g37) - 1;
25527  g97 = pow(alpha, g13*g37) - 1;
25528  g98 = pow(alpha, g14*g37) - 1;
25529  g99 = pow(alpha, g15*g37) - 1;
25530  g100 = pow(alpha, g16*g37) - 1;
25531  g101 = pow(alpha, g37*g4) - 1;
25532  g102 = pow(alpha, g37*g5) - 1;
25533  g103 = pow(alpha, g37*g6) - 1;
25534  g104 = pow(alpha, g37*g7) - 1;
25535  g105 = pow(alpha, g37*g8) - 1;
25536  g106 = -pow(alpha, g1*g37);
25537  g107 = -pow(alpha, g37*g4);
25538  g108 = -pow(alpha, g37*g5);
25539  g109 = -pow(alpha, g37*g6);
25540  g110 = -pow(alpha, g37*g7);
25541  g111 = -pow(alpha, g37*g8);
25542  g112 = -pow(alpha, g37*g9);
25543  g113 = -pow(alpha, g10*g37);
25544  g114 = -pow(alpha, g11*g37);
25545  g115 = -pow(alpha, g12*g37);
25546  g116 = -pow(alpha, g13*g37);
25547  g117 = -pow(alpha, g14*g37);
25548  g118 = -pow(alpha, g15*g37);
25549  g119 = -pow(alpha, g16*g37);
25550  g120 = g58 + g91;
25551  g121 = -g106 - g39;
25552  g122 = -g107 - g40;
25553  g123 = -g108 - g42;
25554  g124 = -g109 - g43;
25555  g125 = -g110 - g44;
25556  g126 = -g111 - g45;
25557  g127 = -g112 - g46;
25558  g128 = -g113 - g47;
25559  g129 = -g114 - g48;
25560  g130 = -g115 - g49;
25561  g131 = -g116 - g50;
25562  g132 = -g117 - g51;
25563  g133 = -g118 - g52;
25564  g134 = -g119 - g53;
25565  g135 = pow(alpha, g1*g37) + g73;
25566  g136 = g58 + g91;
25567  g137 = pow(alpha, g37*g4) + g74;
25568  g138 = pow(alpha, g37*g5) + g75;
25569  g139 = pow(alpha, g37*g6) + g76;
25570  g140 = pow(alpha, g37*g7) + g77;
25571  g141 = pow(alpha, g37*g8) + g78;
25572  g142 = pow(alpha, g37*g9) + g79;
25573  g143 = pow(alpha, g10*g37) + g80;
25574  g144 = pow(alpha, g11*g37) + g81;
25575  g145 = pow(alpha, g12*g37) + g82;
25576  g146 = pow(alpha, g13*g37) + g83;
25577  g147 = pow(alpha, g14*g37) + g84;
25578  g148 = pow(alpha, g15*g37) + g85;
25579  g149 = pow(alpha, g16*g37) + g86;
25580  g150 = xF[11]/g138;
25581  g151 = xF[9]/g149;
25582  g152 = xF[8]/g148;
25583  g153 = xF[1]/g136;
25584  g154 = xF[10]/g137;
25585  g155 = xF[3]/g143;
25586  g156 = xF[7]/g147;
25587  g157 = xF[4]/g144;
25588  g158 = xF[12]/g139;
25589  g159 = xF[13]/g140;
25590  g160 = xF[6]/g146;
25591  g161 = xF[14]/g141;
25592  g162 = xF[5]/g145;
25593  g163 = xF[2]/g142;
25594  g164 = xF[0]/g135;
25595  g165 = xF[1]/g120;
25596  g166 = xF[0]/g121;
25597  g167 = xF[4]/g129;
25598  g168 = xF[7]/g132;
25599  g169 = xF[2]/g127;
25600  g170 = xF[11]/g123;
25601  g171 = xF[13]/g125;
25602  g172 = xF[3]/g128;
25603  g173 = xF[6]/g131;
25604  g174 = xF[14]/g126;
25605  g175 = xF[8]/g133;
25606  g176 = xF[12]/g124;
25607  g177 = xF[10]/g122;
25608  g178 = xF[9]/g134;
25609  g179 = xF[5]/g130;
25610  g180 = g64/g131;
25611  g181 = g67/g134;
25612  g182 = g62/g129;
25613  g183 = g65/g132;
25614  g184 = g59/g121;
25615  g185 = g63/g130;
25616  g186 = g70/g124;
25617  g187 = g71/g125;
25618  g188 = g61/g128;
25619  g189 = g57/g120;
25620  g190 = g69/g123;
25621  g191 = g60/g127;
25622  g192 = g72/g126;
25623  g193 = g68/g122;
25624  g194 = g66/g133;
25625  g195 = g90/g120;
25626  g196 = g92/g121;
25627  g197 = g102/g123;
25628  g198 = g93/g127;
25629  g199 = g94/g128;
25630  g200 = g95/g129;
25631  g201 = g99/g133;
25632  g202 = g100/g134;
25633  g203 = g97/g131;
25634  g204 = g105/g126;
25635  g205 = g103/g124;
25636  g206 = g104/g125;
25637  g207 = g98/g132;
25638  g208 = g101/g122;
25639  g209 = g96/g130;
25640  g210 = log(g136*g19*g89/g58);
25641  g211 = log(g120*g19*g89/g57);
25642  g212 = log(g136*g20*g55/g91);
25643  g213 = 1.0*g210;
25644  g214 = log(g120*g20*g55/g90);
25645  g215 = 1.0*g212;
25646  g216 = -g150*g213*(g75 + 1) - g150*g215*(pow(alpha, g37*g5) - 1) - g151*g213*(g86 + 1) - g151*g215*(pow(alpha, g16*g37) - 1) - g152*g213*(g85 + 1) - g152*g215*(pow(alpha, g15*g37) - 1) - g153*g213*g58 - g153*g215*g91 - g154*g213*(g74 + 1) - g154*g215*(pow(alpha, g37*g4) - 1) - g155*g213*(g80 + 1) - g155*g215*(pow(alpha, g10*g37) - 1) - g156*g213*(g84 + 1) - g156*g215*(pow(alpha, g14*g37) - 1) - g157*g213*(g81 + 1) - g157*g215*(pow(alpha, g11*g37) - 1) - g158*g213*(g76 + 1) - g158*g215*(pow(alpha, g37*g6) - 1) - g159*g213*(g77 + 1) - g159*g215*(pow(alpha, g37*g7) - 1) - g160*g213*(g83 + 1) - g160*g215*(pow(alpha, g13*g37) - 1) - g161*g213*(g78 + 1) - g161*g215*(pow(alpha, g37*g8) - 1) - g162*g213*(g82 + 1) - g162*g215*(pow(alpha, g12*g37) - 1) - g163*g213*(g79 + 1) - g163*g215*(pow(alpha, g37*g9) - 1) - g164*g213*(g73 + 1) - g164*g215*(pow(alpha, g1*g37) - 1) - g87*xF[0] - g87*xF[10] - g87*xF[11] - g87*xF[12] - g87*xF[13] - g87*xF[14] - g87*xF[1] - g87*xF[2] - g87*xF[3] - g87*xF[4] - g87*xF[5] - g87*xF[6] - g87*xF[7] - g87*xF[8] - g87*xF[9];
25647  LpF = xF[0]*(g21 + 1.0)*(g184*g211 + g196*g214 + g54)/(g41*(g21 - 1.0)) + xF[10]*(g22 + 1.0)*(g193*g211 + g208*g214 + g54)/(g41*(g22 - 1.0)) + xF[11]*(g23 + 1.0)*(g190*g211 + g197*g214 + g54)/(g41*(g23 - 1.0)) + xF[12]*(g24 + 1.0)*(g186*g211 + g205*g214 + g54)/(g41*(g24 - 1.0)) + xF[13]*(g25 + 1.0)*(g187*g211 + g206*g214 + g54)/(g41*(g25 - 1.0)) + xF[14]*(g26 + 1.0)*(g192*g211 + g204*g214 + g54)/(g41*(g26 - 1.0)) + xF[1]*(g27 + 1.0)*(g189*g211 + g195*g214 + g54)/(g41*(g27 - 1.0)) + xF[2]*(g28 + 1.0)*(g191*g211 + g198*g214 + g54)/(g41*(g28 - 1.0)) + xF[3]*(g29 + 1.0)*(g188*g211 + g199*g214 + g54)/(g41*(g29 - 1.0)) + xF[4]*(g30 + 1.0)*(g182*g211 + g200*g214 + g54)/(g41*(g30 - 1.0)) + xF[5]*(g31 + 1.0)*(g185*g211 + g209*g214 + g54)/(g41*(g31 - 1.0)) + xF[6]*(g32 + 1.0)*(g180*g211 + g203*g214 + g54)/(g41*(g32 - 1.0)) + xF[7]*(g33 + 1.0)*(g183*g211 + g207*g214 + g54)/(g41*(g33 - 1.0)) + xF[8]*(g34 + 1.0)*(g194*g211 + g201*g214 + g54)/(g41*(g34 - 1.0)) + xF[9]*(g35 + 1.0)*(g181*g211 + g202*g214 + g54)/(g41*(g35 - 1.0));
25648  PpF = g55;
25649  TpF = -g18/g3;
25650  SWUpF = g216;
25651  SWUpP = g216*g56;
25652  xP[0] = g166*g56*g92;
25653  xP[1] = g165*g56*g90;
25654  xP[2] = g169*g56*g93;
25655  xP[3] = g172*g56*g94;
25656  xP[4] = g167*g56*g95;
25657  xP[5] = g179*g56*g96;
25658  xP[6] = g173*g56*g97;
25659  xP[7] = g168*g56*g98;
25660  xP[8] = g175*g56*g99;
25661  xP[9] = g100*g178*g56;
25662  xP[10] = g101*g177*g56;
25663  xP[11] = g102*g170*g56;
25664  xP[12] = g103*g176*g56;
25665  xP[13] = g104*g171*g56;
25666  xP[14] = g105*g174*g56;
25667  xT[0] = g166*g59*g88;
25668  xT[1] = g165*g57*g88;
25669  xT[2] = g169*g60*g88;
25670  xT[3] = g172*g61*g88;
25671  xT[4] = g167*g62*g88;
25672  xT[5] = g179*g63*g88;
25673  xT[6] = g173*g64*g88;
25674  xT[7] = g168*g65*g88;
25675  xT[8] = g175*g66*g88;
25676  xT[9] = g178*g67*g88;
25677  xT[10] = g177*g68*g88;
25678  xT[11] = g170*g69*g88;
25679  xT[12] = g176*g70*g88;
25680  xT[13] = g171*g71*g88;
25681  xT[14] = g174*g72*g88;
25682  break;
25683  case 16:
25684  n0 = -2.00000000000000;
25685  n1 = MW[0] - Mstar;
25686  n2 = log(alpha);
25687  n3 = xPj - xTj;
25688  n4 = xF[0] - xPj;
25689  n5 = MW[10] - Mstar;
25690  n6 = MW[11] - Mstar;
25691  n7 = MW[12] - Mstar;
25692  n8 = MW[13] - Mstar;
25693  n9 = MW[14] - Mstar;
25694  n10 = MW[15] - Mstar;
25695  n11 = MW[1] - Mstar;
25696  n12 = MW[2] - Mstar;
25697  n13 = MW[3] - Mstar;
25698  n14 = MW[4] - Mstar;
25699  n15 = MW[5] - Mstar;
25700  n16 = MW[6] - Mstar;
25701  n17 = MW[7] - Mstar;
25702  n18 = MW[8] - Mstar;
25703  n19 = MW[9] - Mstar;
25704  n20 = log(xTj);
25705  n21 = -n1;
25706  n22 = -2;
25707  n23 = xF[0]*xPj;
25708  n24 = -Mstar;
25709  n25 = -xTj;
25710  n26 = -xPj;
25711  n27 = -NP0*n0;
25712  n28 = pow(n1, -n0);
25713  n29 = pow(n2, -n0);
25714  n30 = pow(n5, -n0);
25715  n31 = pow(n6, -n0);
25716  n32 = pow(n7, -n0);
25717  n33 = pow(n8, -n0);
25718  n34 = pow(n9, -n0);
25719  n35 = pow(n10, -n0);
25720  n36 = pow(n11, -n0);
25721  n37 = pow(n12, -n0);
25722  n38 = pow(n13, -n0);
25723  n39 = pow(n14, -n0);
25724  n40 = pow(n15, -n0);
25725  n41 = pow(n16, -n0);
25726  n42 = pow(n17, -n0);
25727  n43 = pow(n18, -n0);
25728  n44 = pow(n19, -n0);
25729  n45 = Mstar*n2;
25730  n46 = -n0*n2;
25731  n47 = NP0*n1;
25732  n48 = -n2;
25733  n49 = pow(alpha, n47);
25734  n50 = n23 + n25*xF[0];
25735  n51 = n23 + n25*xPj;
25736  n52 = pow(alpha, NP0*n5);
25737  n53 = pow(alpha, NP0*n6);
25738  n54 = pow(alpha, NP0*n7);
25739  n55 = pow(alpha, NP0*n8);
25740  n56 = pow(alpha, NP0*n9);
25741  n57 = pow(alpha, NP0*n10);
25742  n58 = pow(alpha, NP0*n11);
25743  n59 = pow(alpha, NP0*n12);
25744  n60 = pow(alpha, NP0*n13);
25745  n61 = pow(alpha, NP0*n14);
25746  n62 = pow(alpha, NP0*n15);
25747  n63 = pow(alpha, NP0*n16);
25748  n64 = pow(alpha, NP0*n17);
25749  n65 = pow(alpha, NP0*n18);
25750  n66 = pow(alpha, NP0*n19);
25751  n67 = MW[0]*n48;
25752  n68 = n3/n4;
25753  n69 = n15*n2;
25754  n70 = n2*n7;
25755  n71 = n11*n2;
25756  n72 = n19*n2;
25757  n73 = n12*n2;
25758  n74 = n10*n2;
25759  n75 = n17*n2;
25760  n76 = -n49 + 1;
25761  n77 = -n52 + 1;
25762  n78 = pow(alpha, NP0*n0*n21);
25763  n79 = pow(n51, -n0);
25764  n80 = -n53 + 1;
25765  n81 = -n54 + 1;
25766  n82 = -n55 + 1;
25767  n83 = -n56 + 1;
25768  n84 = -n57 + 1;
25769  n85 = -n58 + 1;
25770  n86 = -n59 + 1;
25771  n87 = -n60 + 1;
25772  n88 = -n61 + 1;
25773  n89 = -n62 + 1;
25774  n90 = -n63 + 1;
25775  n91 = -n64 + 1;
25776  n92 = -n65 + 1;
25777  n93 = -n66 + 1;
25778  n94 = -n87;
25779  n95 = -n90;
25780  n96 = -n77;
25781  n97 = -n80;
25782  n98 = -n49;
25783  n99 = -n54;
25784  n100 = -n55;
25785  n101 = -n56;
25786  n102 = -n59;
25787  n103 = -n61;
25788  n104 = -n62;
25789  n105 = -n63;
25790  n106 = n1*n29;
25791  n107 = 1/(n1*n2);
25792  n108 = n16*n63;
25793  n109 = n13*n60;
25794  n110 = n1*n49;
25795  n111 = n29*n40;
25796  n112 = n14*n61;
25797  n113 = n56*n9;
25798  n114 = n5*n52;
25799  n115 = n29*n42;
25800  n116 = n55*n8;
25801  n117 = n83*xF[14];
25802  n118 = n86*xF[2];
25803  n119 = n29*n35;
25804  n120 = n29*n37;
25805  n121 = n28*n29;
25806  n122 = n89*xF[5];
25807  n123 = n29*n36;
25808  n124 = n11*n58;
25809  n125 = n17*n64;
25810  n126 = n29*n34;
25811  n127 = n10*n57;
25812  n128 = n18*n65;
25813  n129 = log((-1.0 + xPj/xF[0])/n3);
25814  n130 = -n84*xF[15];
25815  n131 = -n81*xF[12];
25816  n132 = -n93*xF[9];
25817  n133 = n19*n66*xF[9];
25818  n134 = -n82*xF[13];
25819  n135 = n2*n53*n6;
25820  n136 = n128*n2;
25821  n137 = n51/n50;
25822  n138 = n29*n33*n55;
25823  n139 = n29*n31*n53;
25824  n140 = n29*n43*n65;
25825  n141 = n29*n32*n54;
25826  n142 = n29*n30*n52;
25827  n143 = n29*n38*n60;
25828  n144 = n121*n49*xF[0];
25829  n145 = n137*n98 + 1;
25830  n146 = n129 + n20 + n45 + n67;
25831  n147 = n137*n49/n145;
25832  n148 = n107*(n146 - log(n145)) + 1;
25833  n149 = pow(alpha, n1*n148);
25834  n150 = pow(alpha, n148*n5);
25835  n151 = pow(alpha, n148*n6);
25836  n152 = pow(alpha, n148*n7);
25837  n153 = pow(alpha, n148*n8);
25838  n154 = pow(alpha, n148*n9);
25839  n155 = pow(alpha, n10*n148);
25840  n156 = pow(alpha, n11*n148);
25841  n157 = pow(alpha, n12*n148);
25842  n158 = pow(alpha, n13*n148);
25843  n159 = pow(alpha, n14*n148);
25844  n160 = pow(alpha, n148*n15);
25845  n161 = pow(alpha, n148*n16);
25846  n162 = pow(alpha, n148*n17);
25847  n163 = pow(alpha, n148*n18);
25848  n164 = pow(alpha, n148*n19);
25849  n165 = n14/n159;
25850  n166 = n17/n162;
25851  n167 = n8/n153;
25852  n168 = n13/n158;
25853  n169 = n16/n161;
25854  n170 = n9/n154;
25855  n171 = n18/n163;
25856  n172 = n6/n151;
25857  n173 = n11/n156;
25858  n174 = n12/n157;
25859  n175 = -1/n149;
25860  n176 = n10/n155;
25861  n177 = n7/n152;
25862  n178 = n19/n164;
25863  n179 = n5/n150;
25864  n180 = n15/n160;
25865  n181 = pow(alpha, n148*n21) + n76 - 1;
25866  n182 = n77 - 1 + 1.0/n150;
25867  n183 = n80 - 1 + 1.0/n151;
25868  n184 = n81 - 1 + 1.0/n152;
25869  n185 = n82 - 1 + 1.0/n153;
25870  n186 = n83 - 1 + 1.0/n154;
25871  n187 = n84 - 1 + 1.0/n155;
25872  n188 = n85 - 1 + 1.0/n156;
25873  n189 = n86 - 1 + 1.0/n157;
25874  n190 = n87 - 1 + 1.0/n158;
25875  n191 = n88 - 1 + 1.0/n159;
25876  n192 = n89 - 1 + 1.0/n160;
25877  n193 = n90 - 1 + 1.0/n161;
25878  n194 = n91 - 1 + 1.0/n162;
25879  n195 = n92 - 1 + 1.0/n163;
25880  n196 = n93 - 1 + 1.0/n164;
25881  n197 = pow(n181, 3);
25882  n198 = pow(n182, 3);
25883  n199 = pow(n183, 3);
25884  n200 = pow(n184, 3);
25885  n201 = pow(n185, 3);
25886  n202 = pow(n186, 3);
25887  n203 = pow(n187, 3);
25888  n204 = pow(n188, 3);
25889  n205 = pow(n189, 3);
25890  n206 = pow(n190, 3);
25891  n207 = pow(n191, 3);
25892  n208 = pow(n192, 3);
25893  n209 = pow(n193, 3);
25894  n210 = pow(n194, 3);
25895  n211 = pow(n195, 3);
25896  n212 = pow(n196, 3);
25897  n213 = xF[11]/n183;
25898  n214 = xF[12]/n184;
25899  n215 = 0.5/n181;
25900  n216 = xF[10]/n182;
25901  n217 = xF[13]/n185;
25902  n218 = xF[9]/n196;
25903  n219 = xF[8]/n195;
25904  n220 = xF[0]/n181;
25905  n221 = xF[3]/n190;
25906  n222 = pow(n190, n22)*xF[3];
25907  n223 = xF[6]/n209;
25908  n224 = pow(n182, n22)*xF[10];
25909  n225 = xF[10]/n198;
25910  n226 = n2*xF[14]/n186;
25911  n227 = n2*xF[4]/n191;
25912  n228 = n2*n221;
25913  n229 = pow(n181, n22)*n2;
25914  n230 = n2*xF[6]/n193;
25915  n231 = n62*xF[5]/n192;
25916  n232 = n58*xF[1]/n188;
25917  n233 = n64*xF[7]/n194;
25918  n234 = n59*xF[2]/n189;
25919  n235 = n57*xF[15]/n187;
25920  n236 = n56*xF[14]/n186;
25921  n237 = n85/n204;
25922  n238 = -pow(n181, n22)*n76;
25923  n239 = n76*xF[0]/n197;
25924  n240 = pow(n191, n22)*n88*xF[4];
25925  n241 = n88*xF[4]/n207;
25926  n242 = -n122*pow(n192, n22);
25927  n243 = -n91*xF[7]/n210;
25928  n244 = -pow(n188, n22)*n85*xF[1];
25929  n245 = -pow(n194, n22)*n91*xF[7];
25930  n246 = -pow(n195, n22)*n92*xF[8];
25931  n247 = n218*n29*n44*n66;
25932  n248 = n29*n39*n61*xF[4]/n191;
25933  n249 = n29*n41*n63*xF[6]/n193;
25934  n250 = n2*n21*n220*n49*n68;
25935  n251 = n144*n68/n181;
25936  n252 = n142*n216*n68;
25937  n253 = n139*n213*n68;
25938  n254 = n141*n214*n68;
25939  n255 = n138*n217*n68;
25940  n256 = n126*n236*n68;
25941  n257 = n119*n235*n68;
25942  n258 = n123*n232*n68;
25943  n259 = n120*n234*n68;
25944  n260 = n143*n221*n68;
25945  n261 = n248*n68;
25946  n262 = n111*n231*n68;
25947  n263 = n249*n68;
25948  n264 = n115*n233*n68;
25949  n265 = n140*n219*n68;
25950  n266 = n247*n68;
25951  n267 = n144*n215*n68;
25952  n268 = n137/(n145*n149);
25953  n269 = n268 + 1;
25954  n270 = n269*xF[0];
25955  n271 = n110*n2*n268 + n110*n2;
25956  n272 = n114*n2 + n147*n179*n2;
25957  n273 = n135 + n147*n172*n2;
25958  n274 = n147*n70/n152 + n54*n70;
25959  n275 = n116*n2 + n147*n167*n2;
25960  n276 = n113*n2 + n147*n170*n2;
25961  n277 = n147*n74/n155 + n57*n74;
25962  n278 = n147*n71/n156 + n58*n71;
25963  n279 = n147*n73/n157 + n59*n73;
25964  n280 = n109*n2 + n147*n168*n2;
25965  n281 = n112*n2 + n147*n165*n2;
25966  n282 = n147*n69/n160 + n62*n69;
25967  n283 = n108*n2 + n147*n169*n2;
25968  n284 = n147*n75/n162 + n64*n75;
25969  n285 = n136 + n147*n171*n2;
25970  n286 = n147*n72/n164 + n66*n72;
25971  n287 = pow(n271, -n0);
25972  n288 = pow(n272, -n0);
25973  n289 = pow(n273, -n0);
25974  n290 = pow(n274, -n0);
25975  n291 = pow(n275, -n0);
25976  n292 = pow(n276, -n0);
25977  n293 = pow(n277, -n0);
25978  n294 = pow(n278, -n0);
25979  n295 = pow(n279, -n0);
25980  n296 = pow(n280, -n0);
25981  n297 = pow(n281, -n0);
25982  n298 = pow(n282, -n0);
25983  n299 = pow(n283, -n0);
25984  n300 = pow(n284, -n0);
25985  n301 = pow(n285, -n0);
25986  n302 = pow(n286, -n0);
25987  n303 = n271*xF[0];
25988  n304 = n273*xF[11];
25989  n305 = n278*xF[1];
25990  n306 = n285*xF[8];
25991  n307 = n0*n147*n2*n21/n149 + n0*n2*n21*n49;
25992  n308 = n294*xF[1];
25993  n309 = n121*n268*n98 + n121*n98;
25994  n310 = pow(n184, n22)*n274;
25995  n311 = pow(n196, n22)*n286;
25996  n312 = pow(n185, n22)*n275;
25997  n313 = pow(n186, n22)*n276;
25998  n314 = pow(n187, n22)*n277;
25999  n315 = pow(n193, n22)*n283*xF[6];
26000  n316 = n292/n202;
26001  n317 = n295/n205;
26002  n318 = n298/n208;
26003  n319 = pow(n181, n22)*n309*xF[0];
26004  n320 = n301*n92*xF[8]/n211;
26005  n321 = n289*n80*xF[11]/n199;
26006  n322 = pow(n181, n22)*n303*n68*n76;
26007  n323 = n0*n21*n229*n49*n68*xF[0]*(pow(alpha, n148*n21 + n47)*n1*n137*n2/n145 + n110*n2);
26008  n324 = n114*n224*n46*n68*(pow(alpha, -n148*n5 + n47)*n137*n2*n5/n145 + n114*n2);
26009  n325 = pow(n183, n22)*n46*n53*n6*n68*xF[11]*(pow(alpha, -n148*n6 + n47)*n137*n2*n6/n145 + n135);
26010  n326 = pow(n184, n22)*n46*n54*n68*n7*xF[12]*(pow(alpha, -n148*n7 + n47)*n137*n70/n145 + n54*n70);
26011  n327 = n116*pow(n185, n22)*n46*n68*xF[13]*(pow(alpha, -n148*n8 + n47)*n137*n2*n8/n145 + n116*n2);
26012  n328 = n113*pow(n186, n22)*n46*n68*xF[14]*(pow(alpha, -n148*n9 + n47)*n137*n2*n9/n145 + n113*n2);
26013  n329 = n127*pow(n187, n22)*n46*n68*xF[15]*(pow(alpha, -n10*n148 + n47)*n137*n74/n145 + n57*n74);
26014  n330 = n124*pow(n188, n22)*n46*n68*xF[1]*(pow(alpha, -n11*n148 + n47)*n137*n71/n145 + n58*n71);
26015  n331 = n12*pow(n189, n22)*n46*n59*n68*xF[2]*(pow(alpha, -n12*n148 + n47)*n137*n73/n145 + n59*n73);
26016  n332 = n109*n222*n46*n68*(pow(alpha, -n13*n148 + n47)*n13*n137*n2/n145 + n109*n2);
26017  n333 = n112*pow(n191, n22)*n46*n68*xF[4]*(pow(alpha, -n14*n148 + n47)*n137*n14*n2/n145 + n112*n2);
26018  n334 = n15*pow(n192, n22)*n46*n62*n68*xF[5]*(pow(alpha, -n148*n15 + n47)*n137*n69/n145 + n62*n69);
26019  n335 = n108*pow(n193, n22)*n46*n68*xF[6]*(pow(alpha, -n148*n16 + n47)*n137*n16*n2/n145 + n108*n2);
26020  n336 = n125*pow(n194, n22)*n46*n68*xF[7]*(pow(alpha, -n148*n17 + n47)*n137*n75/n145 + n64*n75);
26021  n337 = n128*pow(n195, n22)*n46*n68*xF[8]*(pow(alpha, -n148*n18 + n47)*n137*n18*n2/n145 + n136);
26022  n338 = n133*pow(n196, n22)*n46*n68*(pow(alpha, -n148*n19 + n47)*n137*n72/n145 + n66*n72);
26023  n339 = 1.0*n110*n229*n303*n68;
26024  n340 = n319*n68*n76;
26025  n341 = 0.5*n340;
26026  n342 = pow(alpha, n1*n27)*n106*pow(n145, n22)*n172*pow(n50, n22)*n79 - pow(alpha, n1*n27)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79/n151 + n106*n147*n172 + n139;
26027  n343 = pow(alpha, n1*n27)*n106*pow(n145, n22)*n177*pow(n50, n22)*n79 - pow(alpha, n1*n27)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79/n152 + n106*n147*n177 + n141;
26028  n344 = pow(alpha, n1*n27)*pow(n145, n22)*n167*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79/n153 + n100*n29*n33 + n147*n167*n21*n29;
26029  n345 = pow(alpha, n1*n27)*n126*pow(n145, n22)*pow(n50, n22)*n79/n154 + pow(alpha, n1*n27)*pow(n145, n22)*n170*n21*n29*pow(n50, n22)*n79 + n101*n126 + n147*n170*n21*n29;
26030  n346 = pow(alpha, n1*n27)*n106*pow(n145, n22)*n176*pow(n50, n22)*n79 - pow(alpha, n1*n27)*n119*pow(n145, n22)*pow(n50, n22)*n79/n155 + n106*n147*n176 + n119*n57;
26031  n347 = pow(alpha, n1*n27)*n120*pow(n145, n22)*pow(n50, n22)*n79/n157 + pow(alpha, n1*n27)*pow(n145, n22)*n174*n21*n29*pow(n50, n22)*n79 + n102*n120 + n147*n174*n21*n29;
26032  n348 = pow(alpha, n1*n27)*pow(n145, n22)*n169*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79/n161 + n105*n29*n41 + n147*n169*n21*n29;
26033  n349 = pow(alpha, n1*n27)*n106*pow(n145, n22)*n178*pow(n50, n22)*n79 - pow(alpha, n1*n27)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79/n164 + n106*n147*n178 + n29*n44*n66;
26034  n350 = pow(n185, n22)*n68*n82*xF[13]*(pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n8 + pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79 + n100*n29*n33 + n147*n167*n21*n29);
26035  n351 = n117*pow(n186, n22)*n68*(pow(alpha, n1*n27 - n148*n9)*n126*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n9)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n9 + n101*n126 + n147*n170*n21*n29);
26036  n352 = n118*pow(n189, n22)*n68*(pow(alpha, n1*n27 - n12*n148)*n12*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n12*n148)*n120*pow(n145, n22)*pow(n50, n22)*n79 + n102*n120 + n147*n174*n21*n29);
26037  n353 = n240*n68*(pow(alpha, n1*n27 - n14*n148)*n14*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n14*n148)*pow(n145, n22)*n29*n39*pow(n50, n22)*n79 + n103*n29*n39 + n147*n165*n21*n29);
26038  n354 = pow(n193, n22)*n68*n90*xF[6]*(pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n16*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79 + n105*n29*n41 + n147*n169*n21*n29);
26039  n355 = n224*n68*n96*(pow(alpha, n1*n27 - n148*n5)*n106*pow(n145, n22)*n5*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n5)*pow(n145, n22)*n29*n30*pow(n50, n22)*n79 + n106*n147*n179 + n142);
26040  n356 = pow(n183, n22)*n68*n97*xF[11]*(pow(alpha, n1*n27 - n148*n6)*n106*pow(n145, n22)*pow(n50, n22)*n6*n79 - pow(alpha, n1*n27 - n148*n6)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79 + n106*n147*n172 + n139);
26041  n357 = n131*pow(n184, n22)*n68*(pow(alpha, n1*n27 - n148*n7)*n106*pow(n145, n22)*pow(n50, n22)*n7*n79 - pow(alpha, n1*n27 - n148*n7)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79 + n106*n147*n177 + n141);
26042  n358 = n130*pow(n187, n22)*n68*(pow(alpha, n1*n27 - n10*n148)*n10*n106*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n10*n148)*n119*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n176 + n119*n57);
26043  n359 = n244*n68*(pow(alpha, n1*n27 - n11*n148)*n106*n11*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n11*n148)*n123*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n173 + n123*n58);
26044  n360 = n222*n68*n94*(pow(alpha, n1*n27 - n13*n148)*n106*n13*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n13*n148)*pow(n145, n22)*n29*n38*pow(n50, n22)*n79 + n106*n147*n168 + n143);
26045  n361 = n242*n68*(pow(alpha, n1*n27 - n148*n15)*n106*pow(n145, n22)*n15*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n15)*n111*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n180 + n111*n62);
26046  n362 = n245*n68*(pow(alpha, n1*n27 - n148*n17)*n106*pow(n145, n22)*n17*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n17)*n115*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n166 + n115*n64);
26047  n363 = n246*n68*(pow(alpha, n1*n27 - n148*n18)*n106*pow(n145, n22)*n18*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n18)*pow(n145, n22)*n29*n43*pow(n50, n22)*n79 + n106*n147*n171 + n140);
26048  n364 = n132*pow(n196, n22)*n68*(pow(alpha, n1*n27 - n148*n19)*n106*pow(n145, n22)*n19*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n19)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79 + n106*n147*n178 + n29*n44*n66);
26049  n365 = xTj*(n108*n230*n68 + n109*n228*n68 + n110*n2*n220*n68 + n112*n227*n68 + n113*n226*n68 + n114*n2*n216*n68 + n116*n2*n217*n68 - n117*n313*n68 - n118*pow(n189, n22)*n279*n68 + n130*n314*n68 + n131*n310*n68 + n132*n311*n68 + n134*n312*n68 + n135*n213*n68 + n136*n219*n68 + pow(n183, n22)*n304*n68*n97 + n214*n54*n68*n70 + n218*n66*n68*n72 + n222*n280*n68*n94 + n224*n272*n68*n96 + n231*n68*n69 + n232*n68*n71 + n233*n68*n75 + n234*n68*n73 + n235*n68*n74 + n238*n303*n68 - n240*n281*n68 + n242*n282*n68 + n244*n278*n68 + n245*n284*n68 + n246*n285*n68 + n315*n68*n95);
26050  n366 = n250 + n322 + n365;
26051  n367 = n251 + n252 + n253 + n254 + n255 + n256 + n257 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n323 + n324 + n325 + n326 + n327 + n328 + n329 + n330 + n331 + n332 + n333 + n334 + n335 + n336 + n337 + n338 + n340 + n350 + n351 + n352 + n353 + n354 + n355 + n356 + n357 + n358 + n359 + n360 + n361 + n362 + n363 + n364;
26052  n368 = -n117*n276*n68*(n113*n46 + n147*n170*n46)/n202 - n118*n279*n68*(n12*n46*n59 + n147*n174*n46)/n205 - n122*n282*n68*(n147*n180*n46 + n15*n46*n62)/n208 + n130*n277*n68*(n127*n46 + n147*n176*n46)/n203 + n131*n274*n68*(n147*n177*n46 + n46*n54*n7)/n200 + n132*n286*n68*(n147*n178*n46 + n19*n46*n66)/n212 + n134*n275*n68*(n116*n46 + n147*n167*n46)/n201 + n223*n283*n68*n95*(n108*n46 + n147*n169*n46) + n225*n272*n68*n96*(n114*n46 + n147*n179*n46) - n237*n305*n68*(n124*n46 + n147*n173*n46) - n239*n271*n307*n68 - n241*n281*n68*(n112*n46 + n147*n165*n46) + n243*n284*n68*(n125*n46 + n147*n166*n46) + n367 - n306*n68*n92*(n128*n46 + n147*n171*n46)/n211 + n280*n68*n94*xF[3]*(n109*n46 + n147*n168*n46)/n206 + n304*n68*n97*(n147*n172*n46 + n46*n53*n6)/n199;
26053  n369 = n368*xTj;
26054  NP_b = -n110*n229*n270*n68*n76 - n250 - n27*(1.0*n110*n229*n68*xF[0]*(pow(alpha, -n1*n148 + n47)*n1*n137*n2/n145 + n110*n2) + 0.5*pow(n181, n22)*n68*n76*xF[0]*(-pow(alpha, -n1*n148 + n47)*n121*n137/n145 + n121*n98) - 1.0*n239*n287*n68 + n267 - 0.5*xTj*(n117*pow(n186, n22)*n68*(pow(alpha, n1*n27 - n148*n9)*n126*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n9)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n9 + pow(alpha, -n148*n9 + n47)*n137*n21*n29*n9/n145 + n101*n126) + n117*n22*n316*n68 + n118*pow(n189, n22)*n68*(pow(alpha, n1*n27 - n12*n148)*n12*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n12*n148)*n120*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n12*n148 + n47)*n12*n137*n21*n29/n145 + n102*n120) + n118*n22*n317*n68 + n122*n22*n318*n68 + n130*pow(n187, n22)*n68*(pow(alpha, n1*n27 - n10*n148)*n10*n106*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n10*n148)*n119*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n10*n148 + n47)*n10*n106*n137/n145 + n119*n57) + n131*pow(n184, n22)*n68*(pow(alpha, n1*n27 - n148*n7)*n106*pow(n145, n22)*pow(n50, n22)*n7*n79 - pow(alpha, n1*n27 - n148*n7)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79 + pow(alpha, -n148*n7 + n47)*n106*n137*n7/n145 + n141) + n132*pow(n196, n22)*n68*(pow(alpha, n1*n27 - n148*n19)*n106*pow(n145, n22)*n19*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n19)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79 + pow(alpha, -n148*n19 + n47)*n106*n137*n19/n145 + n29*n44*n66) + pow(n181, n22)*n68*n76*xF[0]*(-pow(alpha, -n1*n148 + n47)*n121*n137/n145 + n121*n98) + pow(n183, n22)*n68*n97*xF[11]*(pow(alpha, n1*n27 - n148*n6)*n106*pow(n145, n22)*pow(n50, n22)*n6*n79 - pow(alpha, n1*n27 - n148*n6)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79 + pow(alpha, -n148*n6 + n47)*n106*n137*n6/n145 + n139) + pow(n185, n22)*n68*n82*xF[13]*(pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n8 + pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79 + pow(alpha, -n148*n8 + n47)*n137*n21*n29*n8/n145 + n100*n29*n33) + pow(n193, n22)*n68*n90*xF[6]*(pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n16*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79 + pow(alpha, -n148*n16 + n47)*n137*n16*n21*n29/n145 + n105*n29*n41) + n22*n223*n299*n68*n90 + n22*n225*n288*n68*n77 + n22*n237*n308*n68 + n22*n239*n287*n68 + n22*n241*n297*n68 + n22*n320*n68 + n22*n321*n68 + n222*n68*n94*(pow(alpha, n1*n27 - n13*n148)*n106*n13*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n13*n148)*pow(n145, n22)*n29*n38*pow(n50, n22)*n79 + pow(alpha, -n13*n148 + n47)*n106*n13*n137/n145 + n143) + n224*n68*n96*(pow(alpha, n1*n27 - n148*n5)*n106*pow(n145, n22)*n5*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n5)*pow(n145, n22)*n29*n30*pow(n50, n22)*n79 + pow(alpha, -n148*n5 + n47)*n106*n137*n5/n145 + n142) + n240*n68*(pow(alpha, n1*n27 - n14*n148)*n14*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n14*n148)*pow(n145, n22)*n29*n39*pow(n50, n22)*n79 + pow(alpha, -n14*n148 + n47)*n137*n14*n21*n29/n145 + n103*n29*n39) + n242*n68*(pow(alpha, n1*n27 - n148*n15)*n106*pow(n145, n22)*n15*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n15)*n111*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n15 + n47)*n106*n137*n15/n145 + n111*n62) + n244*n68*(pow(alpha, n1*n27 - n11*n148)*n106*n11*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n11*n148)*n123*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n11*n148 + n47)*n106*n11*n137/n145 + n123*n58) + n245*n68*(pow(alpha, n1*n27 - n148*n17)*n106*pow(n145, n22)*n17*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n17)*n115*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n17 + n47)*n106*n137*n17/n145 + n115*n64) + n246*n68*(pow(alpha, n1*n27 - n148*n18)*n106*pow(n145, n22)*n18*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n18)*pow(n145, n22)*n29*n43*pow(n50, n22)*n79 + pow(alpha, -n148*n18 + n47)*n106*n137*n18/n145 + n140) + n251 + n252 + n253 + n254 + n255 + n256 + n257 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n323 + n324 + n325 + n326 + n327 + n328 + n329 + n330 + n331 + n332 + n333 + n334 + n335 + n336 + n337 + n338 + n22*n302*n68*n93*xF[9]/n212 + n22*n300*n68*n91*xF[7]/n210 + n22*n296*n68*n87*xF[3]/n206 + n22*n293*n68*n84*xF[15]/n203 + n22*n291*n68*n82*xF[13]/n201 + n22*n290*n68*n81*xF[12]/n200)) - n68*xTj*(n108*n230 + n109*n228 + n110*n2*n220 + n112*n227 + n113*n226 + n114*n2*n216 + n116*n2*n217 - n117*n313 - n118*pow(n189, n22)*n279 + n130*n314 + n131*n310 + n132*n311 + n134*n312 + n135*n213 + n136*n219 + pow(n183, n22)*n304*n97 + n214*n54*n70 + n218*n66*n72 + n222*n280*n94 + n224*n272*n96 + n231*n69 + n232*n71 + n233*n75 + n234*n73 + n235*n74 + n238*n303 - n240*n281 + n242*n282 + n244*n278 + n245*n284 + n246*n285 + n315*n95);
26055  NP_2a = -n68*(pow(alpha, n1*n27)*n0*n121*pow(n181, n22)*n270 - pow(alpha, n1*n27)*n0*n121*n239*pow(n269, -n0) + n121*pow(n181, n22)*n76*n98*xF[0]*(-1 + (-n23 + xPj*xTj)/(n145*n149*n50)) - 1.0*n144/n181 + 1.0*xTj*(n0*n21*n229*n49*xF[0]*(pow(alpha, n148*n21 + n47)*n1*n137*n2/n145 + n110*n2) + n108*pow(n193, n22)*n46*xF[6]*(pow(alpha, -n148*n16 + n47)*n137*n16*n2/n145 + n108*n2) + n109*n222*n46*(pow(alpha, -n13*n148 + n47)*n13*n137*n2/n145 + n109*n2) + n111*n231 + n112*pow(n191, n22)*n46*xF[4]*(pow(alpha, -n14*n148 + n47)*n137*n14*n2/n145 + n112*n2) + n113*pow(n186, n22)*n46*xF[14]*(pow(alpha, -n148*n9 + n47)*n137*n2*n9/n145 + n113*n2) + n114*n224*n46*(pow(alpha, -n148*n5 + n47)*n137*n2*n5/n145 + n114*n2) + n115*n233 + n116*pow(n185, n22)*n46*xF[13]*(pow(alpha, -n148*n8 + n47)*n137*n2*n8/n145 + n116*n2) + n117*pow(n186, n22)*(pow(alpha, n1*n27 - n148*n9)*n126*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n9)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n9 + n101*n126 + n147*n170*n21*n29) + n117*n22*n316 + n118*pow(n189, n22)*(pow(alpha, n1*n27 - n12*n148)*n12*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n12*n148)*n120*pow(n145, n22)*pow(n50, n22)*n79 + n102*n120 + n147*n174*n21*n29) + n118*n22*n317 + n119*n235 + n12*pow(n189, n22)*n46*n59*xF[2]*(pow(alpha, -n12*n148 + n47)*n137*n73/n145 + n59*n73) + n120*n234 + n122*n22*n318 + n123*n232 + n124*pow(n188, n22)*n46*xF[1]*(pow(alpha, -n11*n148 + n47)*n137*n71/n145 + n58*n71) + n125*pow(n194, n22)*n46*xF[7]*(pow(alpha, -n148*n17 + n47)*n137*n75/n145 + n64*n75) + n126*n236 + n127*pow(n187, n22)*n46*xF[15]*(pow(alpha, -n10*n148 + n47)*n137*n74/n145 + n57*n74) + n128*pow(n195, n22)*n46*xF[8]*(pow(alpha, -n148*n18 + n47)*n137*n18*n2/n145 + n136) + n130*pow(n187, n22)*(pow(alpha, n1*n27 - n10*n148)*n10*n106*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n10*n148)*n119*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n176 + n119*n57) + n131*pow(n184, n22)*(pow(alpha, n1*n27 - n148*n7)*n106*pow(n145, n22)*pow(n50, n22)*n7*n79 - pow(alpha, n1*n27 - n148*n7)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79 + n106*n147*n177 + n141) + n132*pow(n196, n22)*(pow(alpha, n1*n27 - n148*n19)*n106*pow(n145, n22)*n19*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n19)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79 + n106*n147*n178 + n29*n44*n66) + n133*pow(n196, n22)*n46*(pow(alpha, -n148*n19 + n47)*n137*n72/n145 + n66*n72) + n138*n217 + n139*n213 + n140*n219 + n141*n214 + n142*n216 + n143*n221 + n144/n181 + n15*pow(n192, n22)*n46*n62*xF[5]*(pow(alpha, -n148*n15 + n47)*n137*n69/n145 + n62*n69) + pow(n183, n22)*n46*n53*n6*xF[11]*(pow(alpha, -n148*n6 + n47)*n137*n2*n6/n145 + n135) + pow(n183, n22)*n97*xF[11]*(pow(alpha, n1*n27 - n148*n6)*n106*pow(n145, n22)*pow(n50, n22)*n6*n79 - pow(alpha, n1*n27 - n148*n6)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79 + n106*n147*n172 + n139) + pow(n184, n22)*n46*n54*n7*xF[12]*(pow(alpha, -n148*n7 + n47)*n137*n70/n145 + n54*n70) + pow(n185, n22)*n82*xF[13]*(pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n8 + pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79 + n100*n29*n33 + n147*n167*n21*n29) + pow(n193, n22)*n90*xF[6]*(pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n16*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79 + n105*n29*n41 + n147*n169*n21*n29) + n22*n223*n299*n90 + n22*n225*n288*n77 + n22*n237*n308 + n22*n239*n287 + n22*n241*n297 + n22*n320 + n22*n321 + n222*n94*(pow(alpha, n1*n27 - n13*n148)*n106*n13*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n13*n148)*pow(n145, n22)*n29*n38*pow(n50, n22)*n79 + n106*n147*n168 + n143) + n224*n96*(pow(alpha, n1*n27 - n148*n5)*n106*pow(n145, n22)*n5*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n5)*pow(n145, n22)*n29*n30*pow(n50, n22)*n79 + n106*n147*n179 + n142) + n240*(pow(alpha, n1*n27 - n14*n148)*n14*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n14*n148)*pow(n145, n22)*n29*n39*pow(n50, n22)*n79 + n103*n29*n39 + n147*n165*n21*n29) + n242*(pow(alpha, n1*n27 - n148*n15)*n106*pow(n145, n22)*n15*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n15)*n111*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n180 + n111*n62) + n244*(pow(alpha, n1*n27 - n11*n148)*n106*n11*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n11*n148)*n123*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n173 + n123*n58) + n245*(pow(alpha, n1*n27 - n148*n17)*n106*pow(n145, n22)*n17*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n17)*n115*pow(n145, n22)*pow(n50, n22)*n79 + n106*n147*n166 + n115*n64) + n246*(pow(alpha, n1*n27 - n148*n18)*n106*pow(n145, n22)*n18*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n18)*pow(n145, n22)*n29*n43*pow(n50, n22)*n79 + n106*n147*n171 + n140) + n247 + n248 + n249 + n319*n76 + n22*n302*n93*xF[9]/n212 + n22*n300*n91*xF[7]/n210 + n22*n296*n87*xF[3]/n206 + n22*n293*n84*xF[15]/n203 + n22*n291*n82*xF[13]/n201 + n22*n290*n81*xF[12]/n200));
26056  NP_sqrt_base = (-NP0*n366 - n25*(-n117*n68/(n83 - 1 + pow(alpha, -n9*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n118*n68/(n86 - 1 + pow(alpha, -n12*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n122*n68/(n89 - 1 + pow(alpha, -n15*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n76*xF[0]/(pow(alpha, n21*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1)) + n76 - 1) - n68*n77*xF[10]/(n77 - 1 + pow(alpha, -n5*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n80*xF[11]/(n80 - 1 + pow(alpha, -n6*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n81*xF[12]/(n81 - 1 + pow(alpha, -n7*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n82*xF[13]/(n82 - 1 + pow(alpha, -n8*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n84*xF[15]/(n84 - 1 + pow(alpha, -n10*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n85*xF[1]/(n85 - 1 + pow(alpha, -n11*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n87*xF[3]/(n87 - 1 + pow(alpha, -n13*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n88*xF[4]/(n88 - 1 + pow(alpha, -n14*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n90*xF[6]/(n90 - 1 + pow(alpha, -n16*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n91*xF[7]/(n91 - 1 + pow(alpha, -n17*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n92*xF[8]/(n92 - 1 + pow(alpha, -n18*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n68*n93*xF[9]/(n93 - 1 + pow(alpha, -n19*(n107*(n146 - log(n98*(n23 + n26*xTj)/(n23 - xF[0]*xTj) + 1)) + 1)))) + n68*n76*xF[0]/(-n175 + n76 - 1) - pow(NP0, -n0)*(1.0*n110*n229*n303*n68 - 0.5*n239*n271*n307*n68 + 0.5*n251 + 0.5*n340 - 0.5*n369))*(-n0*n25*(n117*pow(n186, n22)*n68*(pow(alpha, n1*n27 - n148*n9)*n126*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n9)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n9 + pow(alpha, -n148*n9 + n47)*n137*n21*n29*n9/n145 + n101*n126) - n117*n68*(pow(alpha, -n148*n9 + n47)*n137*n2*n9/n145 + n113*n2)*(pow(alpha, -n148*n9 + n47)*n137*n46*n9/n145 + n113*n46)/n202 + n118*pow(n189, n22)*n68*(pow(alpha, n1*n27 - n12*n148)*n12*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n12*n148)*n120*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n12*n148 + n47)*n12*n137*n21*n29/n145 + n102*n120) - n118*n68*(pow(alpha, -n12*n148 + n47)*n137*n73/n145 + n59*n73)*(pow(alpha, -n12*n148 + n47)*n12*n137*n46/n145 + n12*n46*n59)/n205 - n122*n68*(pow(alpha, -n148*n15 + n47)*n137*n69/n145 + n62*n69)*(pow(alpha, -n148*n15 + n47)*n137*n15*n46/n145 + n15*n46*n62)/n208 + n130*pow(n187, n22)*n68*(pow(alpha, n1*n27 - n10*n148)*n10*n106*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n10*n148)*n119*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n10*n148 + n47)*n10*n106*n137/n145 + n119*n57) + n130*n68*(pow(alpha, -n10*n148 + n47)*n137*n74/n145 + n57*n74)*(pow(alpha, -n10*n148 + n47)*n10*n137*n46/n145 + n127*n46)/n203 + n131*pow(n184, n22)*n68*(pow(alpha, n1*n27 - n148*n7)*n106*pow(n145, n22)*pow(n50, n22)*n7*n79 - pow(alpha, n1*n27 - n148*n7)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79 + pow(alpha, -n148*n7 + n47)*n106*n137*n7/n145 + n141) + n131*n68*(pow(alpha, -n148*n7 + n47)*n137*n70/n145 + n54*n70)*(pow(alpha, -n148*n7 + n47)*n137*n46*n7/n145 + n46*n54*n7)/n200 + n132*pow(n196, n22)*n68*(pow(alpha, n1*n27 - n148*n19)*n106*pow(n145, n22)*n19*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n19)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79 + pow(alpha, -n148*n19 + n47)*n106*n137*n19/n145 + n29*n44*n66) + n132*n68*(pow(alpha, -n148*n19 + n47)*n137*n72/n145 + n66*n72)*(pow(alpha, -n148*n19 + n47)*n137*n19*n46/n145 + n19*n46*n66)/n212 + n134*n68*(pow(alpha, -n148*n8 + n47)*n137*n2*n8/n145 + n116*n2)*(pow(alpha, -n148*n8 + n47)*n137*n46*n8/n145 + n116*n46)/n201 + pow(n181, n22)*n68*n76*xF[0]*(pow(alpha, -n1*n148 + n47)*n121*(-n23 + xPj*xTj)/(n145*n50) + n121*n98) + pow(n183, n22)*n68*n97*xF[11]*(pow(alpha, n1*n27 - n148*n6)*n106*pow(n145, n22)*pow(n50, n22)*n6*n79 - pow(alpha, n1*n27 - n148*n6)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79 + pow(alpha, -n148*n6 + n47)*n106*n137*n6/n145 + n139) + pow(n185, n22)*n68*n82*xF[13]*(pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n8 + pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79 + pow(alpha, -n148*n8 + n47)*n137*n21*n29*n8/n145 + n100*n29*n33) + pow(n193, n22)*n68*n90*xF[6]*(pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n16*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79 + pow(alpha, -n148*n16 + n47)*n137*n16*n21*n29/n145 + n105*n29*n41) + n222*n68*n94*(pow(alpha, n1*n27 - n13*n148)*n106*n13*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n13*n148)*pow(n145, n22)*n29*n38*pow(n50, n22)*n79 + pow(alpha, -n13*n148 + n47)*n106*n13*n137/n145 + n143) + n223*n68*n95*(pow(alpha, -n148*n16 + n47)*n137*n16*n2/n145 + n108*n2)*(pow(alpha, -n148*n16 + n47)*n137*n16*n46/n145 + n108*n46) + n224*n68*n96*(pow(alpha, n1*n27 - n148*n5)*n106*pow(n145, n22)*n5*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n5)*pow(n145, n22)*n29*n30*pow(n50, n22)*n79 + pow(alpha, -n148*n5 + n47)*n106*n137*n5/n145 + n142) + n225*n68*n96*(pow(alpha, -n148*n5 + n47)*n137*n2*n5/n145 + n114*n2)*(pow(alpha, -n148*n5 + n47)*n137*n46*n5/n145 + n114*n46) - n237*n68*xF[1]*(pow(alpha, -n11*n148 + n47)*n137*n71/n145 + n58*n71)*(pow(alpha, -n11*n148 + n47)*n11*n137*n46/n145 + n124*n46) - n239*n68*(pow(alpha, -n1*n148 + n47)*n1*n137*n2/n145 + n110*n2)*(pow(alpha, -n1*n148 + n47)*n0*n137*n2*n21/n145 + n0*n2*n21*n49) + n240*n68*(pow(alpha, n1*n27 - n14*n148)*n14*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n14*n148)*pow(n145, n22)*n29*n39*pow(n50, n22)*n79 + pow(alpha, -n14*n148 + n47)*n137*n14*n21*n29/n145 + n103*n29*n39) - n241*n68*(pow(alpha, -n14*n148 + n47)*n137*n14*n2/n145 + n112*n2)*(pow(alpha, -n14*n148 + n47)*n137*n14*n46/n145 + n112*n46) + n242*n68*(pow(alpha, n1*n27 - n148*n15)*n106*pow(n145, n22)*n15*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n15)*n111*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n15 + n47)*n106*n137*n15/n145 + n111*n62) + n243*n68*(pow(alpha, -n148*n17 + n47)*n137*n75/n145 + n64*n75)*(pow(alpha, -n148*n17 + n47)*n137*n17*n46/n145 + n125*n46) + n244*n68*(pow(alpha, n1*n27 - n11*n148)*n106*n11*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n11*n148)*n123*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n11*n148 + n47)*n106*n11*n137/n145 + n123*n58) + n245*n68*(pow(alpha, n1*n27 - n148*n17)*n106*pow(n145, n22)*n17*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n17)*n115*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n17 + n47)*n106*n137*n17/n145 + n115*n64) + n246*n68*(pow(alpha, n1*n27 - n148*n18)*n106*pow(n145, n22)*n18*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n18)*pow(n145, n22)*n29*n43*pow(n50, n22)*n79 + pow(alpha, -n148*n18 + n47)*n106*n137*n18/n145 + n140) + n251 + n252 + n253 + n254 + n255 + n256 + n257 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n323 + n324 + n325 + n326 + n327 + n328 + n329 + n330 + n331 + n332 + n333 + n334 + n335 + n336 + n337 + n338 - n68*n92*xF[8]*(pow(alpha, -n148*n18 + n47)*n137*n18*n2/n145 + n136)*(pow(alpha, -n148*n18 + n47)*n137*n18*n46/n145 + n128*n46)/n211 + n68*n94*xF[3]*(pow(alpha, -n13*n148 + n47)*n13*n137*n2/n145 + n109*n2)*(pow(alpha, -n13*n148 + n47)*n13*n137*n46/n145 + n109*n46)/n206 + n68*n97*xF[11]*(pow(alpha, -n148*n6 + n47)*n137*n2*n6/n145 + n135)*(pow(alpha, -n148*n6 + n47)*n137*n46*n6/n145 + n46*n53*n6)/n199) - n0*n251 - n0*n340 + 4.0*n110*n229*n303*n68 - 4.0*n239*n287*n68) + pow(-n27*(1.0*n110*n229*n68*xF[0]*(pow(alpha, -n1*n148 + n47)*n1*n137*n2/n145 + n110*n2) + 0.5*pow(n181, n22)*n68*n76*xF[0]*(-pow(alpha, -n1*n148 + n47)*n121*n137/n145 + n121*n98) - 0.5*n239*n68*(pow(alpha, -n1*n148 + n47)*n1*n137*n2/n145 + n110*n2)*(pow(alpha, -n1*n148 + n47)*n0*n137*n2*n21/n145 + n0*n2*n21*n49) + n267 - 0.5*xTj*(n117*pow(n186, n22)*n68*(pow(alpha, n1*n27 - n148*n9)*n126*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n9)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n9 + pow(alpha, -n148*n9 + n47)*n137*n21*n29*n9/n145 + n101*n126) - n117*n68*(pow(alpha, -n148*n9 + n47)*n137*n2*n9/n145 + n113*n2)*(pow(alpha, -n148*n9 + n47)*n137*n46*n9/n145 + n113*n46)/n202 + n118*pow(n189, n22)*n68*(pow(alpha, n1*n27 - n12*n148)*n12*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n12*n148)*n120*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n12*n148 + n47)*n12*n137*n21*n29/n145 + n102*n120) - n118*n68*(pow(alpha, -n12*n148 + n47)*n137*n73/n145 + n59*n73)*(pow(alpha, -n12*n148 + n47)*n12*n137*n46/n145 + n12*n46*n59)/n205 - n122*n68*(pow(alpha, -n148*n15 + n47)*n137*n69/n145 + n62*n69)*(pow(alpha, -n148*n15 + n47)*n137*n15*n46/n145 + n15*n46*n62)/n208 + n130*pow(n187, n22)*n68*(pow(alpha, n1*n27 - n10*n148)*n10*n106*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n10*n148)*n119*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n10*n148 + n47)*n10*n106*n137/n145 + n119*n57) + n130*n68*(pow(alpha, -n10*n148 + n47)*n137*n74/n145 + n57*n74)*(pow(alpha, -n10*n148 + n47)*n10*n137*n46/n145 + n127*n46)/n203 + n131*pow(n184, n22)*n68*(pow(alpha, n1*n27 - n148*n7)*n106*pow(n145, n22)*pow(n50, n22)*n7*n79 - pow(alpha, n1*n27 - n148*n7)*pow(n145, n22)*n29*n32*pow(n50, n22)*n79 + pow(alpha, -n148*n7 + n47)*n106*n137*n7/n145 + n141) + n131*n68*(pow(alpha, -n148*n7 + n47)*n137*n70/n145 + n54*n70)*(pow(alpha, -n148*n7 + n47)*n137*n46*n7/n145 + n46*n54*n7)/n200 + n132*pow(n196, n22)*n68*(pow(alpha, n1*n27 - n148*n19)*n106*pow(n145, n22)*n19*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n19)*pow(n145, n22)*n29*n44*pow(n50, n22)*n79 + pow(alpha, -n148*n19 + n47)*n106*n137*n19/n145 + n29*n44*n66) + n132*n68*(pow(alpha, -n148*n19 + n47)*n137*n72/n145 + n66*n72)*(pow(alpha, -n148*n19 + n47)*n137*n19*n46/n145 + n19*n46*n66)/n212 + n134*n68*(pow(alpha, -n148*n8 + n47)*n137*n2*n8/n145 + n116*n2)*(pow(alpha, -n148*n8 + n47)*n137*n46*n8/n145 + n116*n46)/n201 + pow(n181, n22)*n68*n76*xF[0]*(-pow(alpha, -n1*n148 + n47)*n121*n137/n145 + n121*n98) + pow(n183, n22)*n68*n97*xF[11]*(pow(alpha, n1*n27 - n148*n6)*n106*pow(n145, n22)*pow(n50, n22)*n6*n79 - pow(alpha, n1*n27 - n148*n6)*pow(n145, n22)*n29*n31*pow(n50, n22)*n79 + pow(alpha, -n148*n6 + n47)*n106*n137*n6/n145 + n139) + pow(n185, n22)*n68*n82*xF[13]*(pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n21*n29*pow(n50, n22)*n79*n8 + pow(alpha, n1*n27 - n148*n8)*pow(n145, n22)*n29*n33*pow(n50, n22)*n79 + pow(alpha, -n148*n8 + n47)*n137*n21*n29*n8/n145 + n100*n29*n33) + pow(n193, n22)*n68*n90*xF[6]*(pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n16*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n148*n16)*pow(n145, n22)*n29*n41*pow(n50, n22)*n79 + pow(alpha, -n148*n16 + n47)*n137*n16*n21*n29/n145 + n105*n29*n41) + n222*n68*n94*(pow(alpha, n1*n27 - n13*n148)*n106*n13*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n13*n148)*pow(n145, n22)*n29*n38*pow(n50, n22)*n79 + pow(alpha, -n13*n148 + n47)*n106*n13*n137/n145 + n143) + n223*n68*n95*(pow(alpha, -n148*n16 + n47)*n137*n16*n2/n145 + n108*n2)*(pow(alpha, -n148*n16 + n47)*n137*n16*n46/n145 + n108*n46) + n224*n68*n96*(pow(alpha, n1*n27 - n148*n5)*n106*pow(n145, n22)*n5*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n5)*pow(n145, n22)*n29*n30*pow(n50, n22)*n79 + pow(alpha, -n148*n5 + n47)*n106*n137*n5/n145 + n142) + n225*n68*n96*(pow(alpha, -n148*n5 + n47)*n137*n2*n5/n145 + n114*n2)*(pow(alpha, -n148*n5 + n47)*n137*n46*n5/n145 + n114*n46) - n237*n68*xF[1]*(pow(alpha, -n11*n148 + n47)*n137*n71/n145 + n58*n71)*(pow(alpha, -n11*n148 + n47)*n11*n137*n46/n145 + n124*n46) - n239*n68*(pow(alpha, -n1*n148 + n47)*n1*n137*n2/n145 + n110*n2)*(pow(alpha, -n1*n148 + n47)*n0*n137*n2*n21/n145 + n0*n2*n21*n49) + n240*n68*(pow(alpha, n1*n27 - n14*n148)*n14*pow(n145, n22)*n21*n29*pow(n50, n22)*n79 + pow(alpha, n1*n27 - n14*n148)*pow(n145, n22)*n29*n39*pow(n50, n22)*n79 + pow(alpha, -n14*n148 + n47)*n137*n14*n21*n29/n145 + n103*n29*n39) - n241*n68*(pow(alpha, -n14*n148 + n47)*n137*n14*n2/n145 + n112*n2)*(pow(alpha, -n14*n148 + n47)*n137*n14*n46/n145 + n112*n46) + n242*n68*(pow(alpha, n1*n27 - n148*n15)*n106*pow(n145, n22)*n15*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n15)*n111*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n15 + n47)*n106*n137*n15/n145 + n111*n62) + n243*n68*(pow(alpha, -n148*n17 + n47)*n137*n75/n145 + n64*n75)*(pow(alpha, -n148*n17 + n47)*n137*n17*n46/n145 + n125*n46) + n244*n68*(pow(alpha, n1*n27 - n11*n148)*n106*n11*pow(n145, n22)*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n11*n148)*n123*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n11*n148 + n47)*n106*n11*n137/n145 + n123*n58) + n245*n68*(pow(alpha, n1*n27 - n148*n17)*n106*pow(n145, n22)*n17*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n17)*n115*pow(n145, n22)*pow(n50, n22)*n79 + pow(alpha, -n148*n17 + n47)*n106*n137*n17/n145 + n115*n64) + n246*n68*(pow(alpha, n1*n27 - n148*n18)*n106*pow(n145, n22)*n18*pow(n50, n22)*n79 - pow(alpha, n1*n27 - n148*n18)*pow(n145, n22)*n29*n43*pow(n50, n22)*n79 + pow(alpha, -n148*n18 + n47)*n106*n137*n18/n145 + n140) + n251 + n252 + n253 + n254 + n255 + n256 + n257 + n258 + n259 + n260 + n261 + n262 + n263 + n264 + n265 + n266 + n323 + n324 + n325 + n326 + n327 + n328 + n329 + n330 + n331 + n332 + n333 + n334 + n335 + n336 + n337 + n338 - n68*n92*xF[8]*(pow(alpha, -n148*n18 + n47)*n137*n18*n2/n145 + n136)*(pow(alpha, -n148*n18 + n47)*n137*n18*n46/n145 + n128*n46)/n211 + n68*n94*xF[3]*(pow(alpha, -n13*n148 + n47)*n13*n137*n2/n145 + n109*n2)*(pow(alpha, -n13*n148 + n47)*n13*n137*n46/n145 + n109*n46)/n206 + n68*n97*xF[11]*(pow(alpha, -n148*n6 + n47)*n137*n2*n6/n145 + n135)*(pow(alpha, -n148*n6 + n47)*n137*n46*n6/n145 + n46*n53*n6)/n199)) - n366, -n0);
26057  NP_sqrt_base = fabs(NP_sqrt_base);
26058  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
26059  NT1 = n107*(n146 - log(-pow(alpha, NP1*n1)*n137 + 1));
26060  g0 = MW[1] - Mstar;
26061  g1 = MW[0] - Mstar;
26062  g2 = NT1 + 1;
26063  g3 = xPj - xTj;
26064  g4 = MW[10] - Mstar;
26065  g5 = MW[11] - Mstar;
26066  g6 = MW[12] - Mstar;
26067  g7 = MW[13] - Mstar;
26068  g8 = MW[14] - Mstar;
26069  g9 = MW[15] - Mstar;
26070  g10 = MW[2] - Mstar;
26071  g11 = MW[3] - Mstar;
26072  g12 = MW[4] - Mstar;
26073  g13 = MW[5] - Mstar;
26074  g14 = MW[6] - Mstar;
26075  g15 = MW[7] - Mstar;
26076  g16 = MW[8] - Mstar;
26077  g17 = MW[9] - Mstar;
26078  g18 = xF[0] - xTj;
26079  g19 = xF[0] - xPj;
26080  g20 = -xTj;
26081  g21 = xPj/xF[1];
26082  g22 = pow(alpha, -g1);
26083  g23 = pow(alpha, -g4);
26084  g24 = pow(alpha, -g5);
26085  g25 = pow(alpha, -g6);
26086  g26 = pow(alpha, -g7);
26087  g27 = pow(alpha, -g8);
26088  g28 = pow(alpha, -g9);
26089  g29 = pow(alpha, -g0);
26090  g30 = pow(alpha, -g10);
26091  g31 = pow(alpha, -g11);
26092  g32 = pow(alpha, -g12);
26093  g33 = pow(alpha, -g13);
26094  g34 = pow(alpha, -g14);
26095  g35 = pow(alpha, -g15);
26096  g36 = pow(alpha, -g16);
26097  g37 = pow(alpha, -g17);
26098  g38 = log(xF[0]/xF[1]);
26099  g39 = -g2;
26100  g40 = pow(alpha, NP1*g0);
26101  g41 = pow(alpha, NP1*g1);
26102  g42 = pow(alpha, NP1*g4);
26103  g43 = log(g22);
26104  g44 = pow(alpha, NP1*g5);
26105  g45 = pow(alpha, NP1*g6);
26106  g46 = pow(alpha, NP1*g7);
26107  g47 = pow(alpha, NP1*g8);
26108  g48 = pow(alpha, NP1*g9);
26109  g49 = pow(alpha, NP1*g10);
26110  g50 = pow(alpha, NP1*g11);
26111  g51 = pow(alpha, NP1*g12);
26112  g52 = pow(alpha, NP1*g13);
26113  g53 = pow(alpha, NP1*g14);
26114  g54 = pow(alpha, NP1*g15);
26115  g55 = pow(alpha, NP1*g16);
26116  g56 = pow(alpha, NP1*g17);
26117  g57 = -g38;
26118  g58 = g18/g3;
26119  g59 = g3/g18;
26120  g60 = -g40 + 1;
26121  g61 = -g40 + 1;
26122  g62 = -g41 + 1;
26123  g63 = -g49 + 1;
26124  g64 = -g50 + 1;
26125  g65 = -g51 + 1;
26126  g66 = -g52 + 1;
26127  g67 = -g53 + 1;
26128  g68 = -g54 + 1;
26129  g69 = -g55 + 1;
26130  g70 = -g56 + 1;
26131  g71 = -g42 + 1;
26132  g72 = -g44 + 1;
26133  g73 = -g45 + 1;
26134  g74 = -g46 + 1;
26135  g75 = -g47 + 1;
26136  g76 = -g48 + 1;
26137  g77 = -g41;
26138  g78 = -g42;
26139  g79 = -g44;
26140  g80 = -g45;
26141  g81 = -g46;
26142  g82 = -g47;
26143  g83 = -g48;
26144  g84 = -g49;
26145  g85 = -g50;
26146  g86 = -g51;
26147  g87 = -g52;
26148  g88 = -g53;
26149  g89 = -g54;
26150  g90 = -g55;
26151  g91 = -g56;
26152  g92 = -1.0*g38;
26153  g93 = -g3/g19;
26154  g94 = g19/(g3*xF[1]);
26155  g95 = pow(alpha, g0*g39) - 1;
26156  g96 = pow(alpha, g0*g39) - 1;
26157  g97 = pow(alpha, g1*g39) - 1;
26158  g98 = pow(alpha, g10*g39) - 1;
26159  g99 = pow(alpha, g11*g39) - 1;
26160  g100 = pow(alpha, g12*g39) - 1;
26161  g101 = pow(alpha, g13*g39) - 1;
26162  g102 = pow(alpha, g14*g39) - 1;
26163  g103 = pow(alpha, g15*g39) - 1;
26164  g104 = pow(alpha, g16*g39) - 1;
26165  g105 = pow(alpha, g17*g39) - 1;
26166  g106 = pow(alpha, g39*g4) - 1;
26167  g107 = pow(alpha, g39*g5) - 1;
26168  g108 = pow(alpha, g39*g6) - 1;
26169  g109 = pow(alpha, g39*g7) - 1;
26170  g110 = pow(alpha, g39*g8) - 1;
26171  g111 = pow(alpha, g39*g9) - 1;
26172  g112 = -pow(alpha, g1*g39);
26173  g113 = -pow(alpha, g39*g4);
26174  g114 = -pow(alpha, g39*g5);
26175  g115 = -pow(alpha, g39*g6);
26176  g116 = -pow(alpha, g39*g7);
26177  g117 = -pow(alpha, g39*g8);
26178  g118 = -pow(alpha, g39*g9);
26179  g119 = -pow(alpha, g10*g39);
26180  g120 = -pow(alpha, g11*g39);
26181  g121 = -pow(alpha, g12*g39);
26182  g122 = -pow(alpha, g13*g39);
26183  g123 = -pow(alpha, g14*g39);
26184  g124 = -pow(alpha, g15*g39);
26185  g125 = -pow(alpha, g16*g39);
26186  g126 = -pow(alpha, g17*g39);
26187  g127 = g61 + g96;
26188  g128 = -g112 - g41;
26189  g129 = -g113 - g42;
26190  g130 = -g114 - g44;
26191  g131 = -g115 - g45;
26192  g132 = -g116 - g46;
26193  g133 = -g117 - g47;
26194  g134 = -g118 - g48;
26195  g135 = -g119 - g49;
26196  g136 = -g120 - g50;
26197  g137 = -g121 - g51;
26198  g138 = -g122 - g52;
26199  g139 = -g123 - g53;
26200  g140 = -g124 - g54;
26201  g141 = -g125 - g55;
26202  g142 = -g126 - g56;
26203  g143 = pow(alpha, g1*g39) + g77;
26204  g144 = g61 + g96;
26205  g145 = pow(alpha, g39*g4) + g78;
26206  g146 = pow(alpha, g39*g5) + g79;
26207  g147 = pow(alpha, g39*g6) + g80;
26208  g148 = pow(alpha, g39*g7) + g81;
26209  g149 = pow(alpha, g39*g8) + g82;
26210  g150 = pow(alpha, g39*g9) + g83;
26211  g151 = pow(alpha, g10*g39) + g84;
26212  g152 = pow(alpha, g11*g39) + g85;
26213  g153 = pow(alpha, g12*g39) + g86;
26214  g154 = pow(alpha, g13*g39) + g87;
26215  g155 = pow(alpha, g14*g39) + g88;
26216  g156 = pow(alpha, g15*g39) + g89;
26217  g157 = pow(alpha, g16*g39) + g90;
26218  g158 = pow(alpha, g17*g39) + g91;
26219  g159 = xF[11]/g146;
26220  g160 = xF[9]/g158;
26221  g161 = xF[8]/g157;
26222  g162 = xF[1]/g144;
26223  g163 = xF[10]/g145;
26224  g164 = xF[15]/g150;
26225  g165 = xF[3]/g152;
26226  g166 = xF[7]/g156;
26227  g167 = xF[4]/g153;
26228  g168 = xF[12]/g147;
26229  g169 = xF[13]/g148;
26230  g170 = xF[6]/g155;
26231  g171 = xF[14]/g149;
26232  g172 = xF[5]/g154;
26233  g173 = xF[2]/g151;
26234  g174 = xF[0]/g143;
26235  g175 = xF[0]/g128;
26236  g176 = xF[15]/g134;
26237  g177 = xF[4]/g137;
26238  g178 = xF[7]/g140;
26239  g179 = xF[2]/g135;
26240  g180 = xF[11]/g130;
26241  g181 = xF[1]/g127;
26242  g182 = xF[13]/g132;
26243  g183 = xF[3]/g136;
26244  g184 = xF[6]/g139;
26245  g185 = xF[14]/g133;
26246  g186 = xF[8]/g141;
26247  g187 = xF[12]/g131;
26248  g188 = xF[10]/g129;
26249  g189 = xF[9]/g142;
26250  g190 = xF[5]/g138;
26251  g191 = g73/g131;
26252  g192 = g70/g142;
26253  g193 = g76/g134;
26254  g194 = g65/g137;
26255  g195 = g68/g140;
26256  g196 = g62/g128;
26257  g197 = g66/g138;
26258  g198 = g67/g139;
26259  g199 = g74/g132;
26260  g200 = g64/g136;
26261  g201 = g60/g127;
26262  g202 = g72/g130;
26263  g203 = g63/g135;
26264  g204 = g75/g133;
26265  g205 = g71/g129;
26266  g206 = g69/g141;
26267  g207 = g97/g128;
26268  g208 = g111/g134;
26269  g209 = g107/g130;
26270  g210 = g98/g135;
26271  g211 = g99/g136;
26272  g212 = g100/g137;
26273  g213 = g95/g127;
26274  g214 = g104/g141;
26275  g215 = g105/g142;
26276  g216 = g102/g139;
26277  g217 = g110/g133;
26278  g218 = g108/g131;
26279  g219 = g109/g132;
26280  g220 = g103/g140;
26281  g221 = g106/g129;
26282  g222 = g101/g138;
26283  g223 = log(g144*g20*g94/g61);
26284  g224 = log(g127*g20*g94/g60);
26285  g225 = log(g144*g21*g58/g96);
26286  g226 = 1.0*g223;
26287  g227 = log(g127*g21*g58/g95);
26288  g228 = 1.0*g225;
26289  g229 = -g159*g226*(g79 + 1) - g159*g228*(pow(alpha, g39*g5) - 1) - g160*g226*(g91 + 1) - g160*g228*(pow(alpha, g17*g39) - 1) - g161*g226*(g90 + 1) - g161*g228*(pow(alpha, g16*g39) - 1) - g162*g226*g61 - g162*g228*g96 - g163*g226*(g78 + 1) - g163*g228*(pow(alpha, g39*g4) - 1) - g164*g226*(g83 + 1) - g164*g228*(pow(alpha, g39*g9) - 1) - g165*g226*(g85 + 1) - g165*g228*(pow(alpha, g11*g39) - 1) - g166*g226*(g89 + 1) - g166*g228*(pow(alpha, g15*g39) - 1) - g167*g226*(g86 + 1) - g167*g228*(pow(alpha, g12*g39) - 1) - g168*g226*(g80 + 1) - g168*g228*(pow(alpha, g39*g6) - 1) - g169*g226*(g81 + 1) - g169*g228*(pow(alpha, g39*g7) - 1) - g170*g226*(g88 + 1) - g170*g228*(pow(alpha, g14*g39) - 1) - g171*g226*(g82 + 1) - g171*g228*(pow(alpha, g39*g8) - 1) - g172*g226*(g87 + 1) - g172*g228*(pow(alpha, g13*g39) - 1) - g173*g226*(g84 + 1) - g173*g228*(pow(alpha, g10*g39) - 1) - g174*g226*(g77 + 1) - g174*g228*(pow(alpha, g1*g39) - 1) - g92*xF[0] - g92*xF[10] - g92*xF[11] - g92*xF[12] - g92*xF[13] - g92*xF[14] - g92*xF[15] - g92*xF[1] - g92*xF[2] - g92*xF[3] - g92*xF[4] - g92*xF[5] - g92*xF[6] - g92*xF[7] - g92*xF[8] - g92*xF[9];
26290  LpF = xF[0]*(g22 + 1.0)*(g196*g224 + g207*g227 + g57)/(g43*(g22 - 1.0)) + xF[10]*(g23 + 1.0)*(g205*g224 + g221*g227 + g57)/(g43*(g23 - 1.0)) + xF[11]*(g24 + 1.0)*(g202*g224 + g209*g227 + g57)/(g43*(g24 - 1.0)) + xF[12]*(g25 + 1.0)*(g191*g224 + g218*g227 + g57)/(g43*(g25 - 1.0)) + xF[13]*(g26 + 1.0)*(g199*g224 + g219*g227 + g57)/(g43*(g26 - 1.0)) + xF[14]*(g27 + 1.0)*(g204*g224 + g217*g227 + g57)/(g43*(g27 - 1.0)) + xF[15]*(g28 + 1.0)*(g193*g224 + g208*g227 + g57)/(g43*(g28 - 1.0)) + xF[1]*(g29 + 1.0)*(g201*g224 + g213*g227 + g57)/(g43*(g29 - 1.0)) + xF[2]*(g30 + 1.0)*(g203*g224 + g210*g227 + g57)/(g43*(g30 - 1.0)) + xF[3]*(g31 + 1.0)*(g200*g224 + g211*g227 + g57)/(g43*(g31 - 1.0)) + xF[4]*(g32 + 1.0)*(g194*g224 + g212*g227 + g57)/(g43*(g32 - 1.0)) + xF[5]*(g33 + 1.0)*(g197*g224 + g222*g227 + g57)/(g43*(g33 - 1.0)) + xF[6]*(g34 + 1.0)*(g198*g224 + g216*g227 + g57)/(g43*(g34 - 1.0)) + xF[7]*(g35 + 1.0)*(g195*g224 + g220*g227 + g57)/(g43*(g35 - 1.0)) + xF[8]*(g36 + 1.0)*(g206*g224 + g214*g227 + g57)/(g43*(g36 - 1.0)) + xF[9]*(g37 + 1.0)*(g192*g224 + g215*g227 + g57)/(g43*(g37 - 1.0));
26291  PpF = g58;
26292  TpF = -g19/g3;
26293  SWUpF = g229;
26294  SWUpP = g229*g59;
26295  xP[0] = g175*g59*g97;
26296  xP[1] = g181*g59*g95;
26297  xP[2] = g179*g59*g98;
26298  xP[3] = g183*g59*g99;
26299  xP[4] = g100*g177*g59;
26300  xP[5] = g101*g190*g59;
26301  xP[6] = g102*g184*g59;
26302  xP[7] = g103*g178*g59;
26303  xP[8] = g104*g186*g59;
26304  xP[9] = g105*g189*g59;
26305  xP[10] = g106*g188*g59;
26306  xP[11] = g107*g180*g59;
26307  xP[12] = g108*g187*g59;
26308  xP[13] = g109*g182*g59;
26309  xP[14] = g110*g185*g59;
26310  xP[15] = g111*g176*g59;
26311  xT[0] = g175*g62*g93;
26312  xT[1] = g181*g60*g93;
26313  xT[2] = g179*g63*g93;
26314  xT[3] = g183*g64*g93;
26315  xT[4] = g177*g65*g93;
26316  xT[5] = g190*g66*g93;
26317  xT[6] = g184*g67*g93;
26318  xT[7] = g178*g68*g93;
26319  xT[8] = g186*g69*g93;
26320  xT[9] = g189*g70*g93;
26321  xT[10] = g188*g71*g93;
26322  xT[11] = g180*g72*g93;
26323  xT[12] = g187*g73*g93;
26324  xT[13] = g182*g74*g93;
26325  xT[14] = g185*g75*g93;
26326  xT[15] = g176*g76*g93;
26327  break;
26328  case 17:
26329  n0 = MW[0] - Mstar;
26330  n1 = log(alpha);
26331  n2 = xPj - xTj;
26332  n3 = xF[0] - xPj;
26333  n4 = MW[10] - Mstar;
26334  n5 = MW[11] - Mstar;
26335  n6 = MW[12] - Mstar;
26336  n7 = MW[13] - Mstar;
26337  n8 = MW[14] - Mstar;
26338  n9 = MW[15] - Mstar;
26339  n10 = MW[16] - Mstar;
26340  n11 = MW[1] - Mstar;
26341  n12 = MW[2] - Mstar;
26342  n13 = MW[3] - Mstar;
26343  n14 = MW[4] - Mstar;
26344  n15 = MW[5] - Mstar;
26345  n16 = MW[6] - Mstar;
26346  n17 = MW[7] - Mstar;
26347  n18 = MW[8] - Mstar;
26348  n19 = MW[9] - Mstar;
26349  n20 = log(xTj);
26350  n21 = -2;
26351  n22 = -n0;
26352  n23 = xF[0]*xPj;
26353  n24 = -Mstar;
26354  n25 = -NP0*n21;
26355  n26 = -xTj;
26356  n27 = -xPj;
26357  n28 = -MW[0];
26358  n29 = pow(n0, -n21);
26359  n30 = pow(n1, -n21);
26360  n31 = pow(n4, -n21);
26361  n32 = pow(n5, -n21);
26362  n33 = pow(n6, -n21);
26363  n34 = pow(n7, -n21);
26364  n35 = pow(n8, -n21);
26365  n36 = pow(n9, -n21);
26366  n37 = pow(n10, -n21);
26367  n38 = pow(n11, -n21);
26368  n39 = pow(n12, -n21);
26369  n40 = pow(n13, -n21);
26370  n41 = pow(n14, -n21);
26371  n42 = pow(n15, -n21);
26372  n43 = pow(n16, -n21);
26373  n44 = pow(n17, -n21);
26374  n45 = pow(n18, -n21);
26375  n46 = pow(n19, -n21);
26376  n47 = Mstar*n1;
26377  n48 = -n1*n21;
26378  n49 = n1*xF[4];
26379  n50 = pow(alpha, NP0*n0);
26380  n51 = n23 + n26*xF[0];
26381  n52 = n23 + n26*xPj;
26382  n53 = pow(alpha, NP0*n4);
26383  n54 = pow(alpha, NP0*n5);
26384  n55 = pow(alpha, NP0*n6);
26385  n56 = pow(alpha, NP0*n7);
26386  n57 = pow(alpha, NP0*n8);
26387  n58 = pow(alpha, NP0*n9);
26388  n59 = pow(alpha, NP0*n10);
26389  n60 = pow(alpha, NP0*n11);
26390  n61 = pow(alpha, NP0*n12);
26391  n62 = pow(alpha, NP0*n13);
26392  n63 = pow(alpha, NP0*n14);
26393  n64 = pow(alpha, NP0*n15);
26394  n65 = pow(alpha, NP0*n16);
26395  n66 = pow(alpha, NP0*n17);
26396  n67 = pow(alpha, NP0*n18);
26397  n68 = pow(alpha, NP0*n19);
26398  n69 = n1*n28;
26399  n70 = n2/n3;
26400  n71 = n1*n6;
26401  n72 = n1*n15;
26402  n73 = n1*n5;
26403  n74 = n1*n19;
26404  n75 = n1*n14;
26405  n76 = n1*n12;
26406  n77 = n1*n16;
26407  n78 = n1*n9;
26408  n79 = n1*n7;
26409  n80 = n1*n17;
26410  n81 = -n50 + 1;
26411  n82 = -n53 + 1;
26412  n83 = pow(alpha, NP0*n21*n22);
26413  n84 = pow(n51, -n21);
26414  n85 = pow(n52, -n21);
26415  n86 = -n54 + 1;
26416  n87 = -n55 + 1;
26417  n88 = -n56 + 1;
26418  n89 = -n57 + 1;
26419  n90 = -n58 + 1;
26420  n91 = -n59 + 1;
26421  n92 = -n60 + 1;
26422  n93 = -n61 + 1;
26423  n94 = -n62 + 1;
26424  n95 = -n63 + 1;
26425  n96 = -n64 + 1;
26426  n97 = -n65 + 1;
26427  n98 = -n66 + 1;
26428  n99 = -n67 + 1;
26429  n100 = -n68 + 1;
26430  n101 = n81;
26431  n102 = -n50;
26432  n103 = -n54;
26433  n104 = -n56;
26434  n105 = -n57;
26435  n106 = -n59;
26436  n107 = -n61;
26437  n108 = -n63;
26438  n109 = -n64;
26439  n110 = -n65;
26440  n111 = -n70;
26441  n112 = n55*xF[12];
26442  n113 = n66*xF[7];
26443  n114 = n0*n30;
26444  n115 = n68*xF[9];
26445  n116 = 1/(n0*n1);
26446  n117 = n60*xF[1];
26447  n118 = n58*xF[15];
26448  n119 = n61*xF[2];
26449  n120 = n91*xF[16];
26450  n121 = n13*n62;
26451  n122 = n90*xF[15];
26452  n123 = n87*xF[12];
26453  n124 = n0*n50;
26454  n125 = n30*n42;
26455  n126 = n14*n63;
26456  n127 = n100*xF[9];
26457  n128 = n57*n8;
26458  n129 = n4*n53;
26459  n130 = n97*xF[6];
26460  n131 = n89*xF[14];
26461  n132 = n93*xF[2];
26462  n133 = n96*xF[5];
26463  n134 = n88*xF[13];
26464  n135 = n101*xF[0];
26465  n136 = n30*n36;
26466  n137 = n30*n39;
26467  n138 = n10*n59;
26468  n139 = n30*n38;
26469  n140 = n92*xF[1];
26470  n141 = n11*n60;
26471  n142 = n30*n33;
26472  n143 = n56*n7;
26473  n144 = n29*n30;
26474  n145 = n30*n35;
26475  n146 = n18*n67;
26476  n147 = n81*xF[0];
26477  n148 = log((-1.0 + xPj/xF[0])/n2);
26478  n149 = n1*n124;
26479  n150 = n1*n129;
26480  n151 = n54*n73;
26481  n152 = n55*n71;
26482  n153 = n56*n79;
26483  n154 = n1*n128;
26484  n155 = n58*n78;
26485  n156 = n1*n138;
26486  n157 = n1*n141;
26487  n158 = n61*n76;
26488  n159 = n1*n121;
26489  n160 = n63*n75;
26490  n161 = n64*n72;
26491  n162 = n65*n77;
26492  n163 = n66*n80;
26493  n164 = n1*n146;
26494  n165 = n68*n74;
26495  n166 = n52/n51;
26496  n167 = n1*n11*n117;
26497  n168 = n153*xF[13];
26498  n169 = n144*n50;
26499  n170 = n30*n34*n56;
26500  n171 = n30*n32*n54;
26501  n172 = n30*n45*n67;
26502  n173 = n30*n37*n59;
26503  n174 = n30*n31*n53;
26504  n175 = n30*n43*n65;
26505  n176 = n30*n40*n62;
26506  n177 = n102*n166 + 1;
26507  n178 = -n166*n50 + 1;
26508  n179 = pow(n177, -n21);
26509  n180 = n148 + n20 + n47 + n69;
26510  n181 = n1/n178;
26511  n182 = n50/n178;
26512  n183 = n181*n50;
26513  n184 = n166/n178;
26514  n185 = n166*n50/n177;
26515  n186 = n166*n182;
26516  n187 = n116*(n180 - log(n177)) + 1;
26517  n188 = n116*(n180 - log(n178)) + 1;
26518  n189 = pow(alpha, n0*n187);
26519  n190 = pow(alpha, n187*n4);
26520  n191 = pow(alpha, n187*n5);
26521  n192 = pow(alpha, n187*n6);
26522  n193 = pow(alpha, n187*n7);
26523  n194 = pow(alpha, n187*n8);
26524  n195 = pow(alpha, n187*n9);
26525  n196 = pow(alpha, n10*n187);
26526  n197 = pow(alpha, n11*n187);
26527  n198 = pow(alpha, n12*n187);
26528  n199 = pow(alpha, n13*n187);
26529  n200 = pow(alpha, n14*n187);
26530  n201 = pow(alpha, n15*n187);
26531  n202 = pow(alpha, n16*n187);
26532  n203 = pow(alpha, n17*n187);
26533  n204 = pow(alpha, n18*n187);
26534  n205 = pow(alpha, n187*n19);
26535  n206 = -1/n193;
26536  n207 = n17/n203;
26537  n208 = -1/n192;
26538  n209 = -1/n202;
26539  n210 = -1/n190;
26540  n211 = n13/n199;
26541  n212 = n8/n194;
26542  n213 = -1/n195;
26543  n214 = n18/n204;
26544  n215 = -1/n196;
26545  n216 = -1/n191;
26546  n217 = n5/n191;
26547  n218 = n14/n200;
26548  n219 = -1/n201;
26549  n220 = n11/n197;
26550  n221 = -1/n205;
26551  n222 = n12/n198;
26552  n223 = -1/n199;
26553  n224 = -1/n189;
26554  n225 = n9/n195;
26555  n226 = n6/n192;
26556  n227 = -1/n204;
26557  n228 = n4/n190;
26558  n229 = -1/n197;
26559  n230 = n15/n201;
26560  n231 = n19/n205;
26561  n232 = -1/n203;
26562  n233 = n10/n196;
26563  n234 = pow(alpha, n187*n22) + n81 - 1;
26564  n235 = n82 - 1 + 1.0/n190;
26565  n236 = n86 - 1 + 1.0/n191;
26566  n237 = n87 - 1 + 1.0/n192;
26567  n238 = n88 - 1 + 1.0/n193;
26568  n239 = n89 - 1 + 1.0/n194;
26569  n240 = n90 - 1 + 1.0/n195;
26570  n241 = n91 - 1 + 1.0/n196;
26571  n242 = n92 - 1 + 1.0/n197;
26572  n243 = n93 - 1 + 1.0/n198;
26573  n244 = n94 - 1 + 1.0/n199;
26574  n245 = n95 - 1 + 1.0/n200;
26575  n246 = n96 - 1 + 1.0/n201;
26576  n247 = n97 - 1 + 1.0/n202;
26577  n248 = n98 - 1 + 1.0/n203;
26578  n249 = n99 - 1 + 1.0/n204;
26579  n250 = n100 - 1 + 1.0/n205;
26580  n251 = -n224 + n81 - 1;
26581  n252 = -n210 + n82 - 1;
26582  n253 = -n216 + n86 - 1;
26583  n254 = -n208 + n87 - 1;
26584  n255 = -n206 + n88 - 1;
26585  n256 = n239;
26586  n257 = -n213 + n90 - 1;
26587  n258 = -n215 + n91 - 1;
26588  n259 = -n229 + n92 - 1;
26589  n260 = n243;
26590  n261 = -n223 + n94 - 1;
26591  n262 = n245;
26592  n263 = -n219 + n96 - 1;
26593  n264 = -n209 + n97 - 1;
26594  n265 = -n232 + n98 - 1;
26595  n266 = -n227 + n99 - 1;
26596  n267 = n100 - n221 - 1;
26597  n268 = pow(n234, -n21);
26598  n269 = pow(n235, -n21);
26599  n270 = pow(n236, -n21);
26600  n271 = pow(n237, -n21);
26601  n272 = pow(n238, -n21);
26602  n273 = pow(n239, -n21);
26603  n274 = pow(n240, -n21);
26604  n275 = pow(n241, -n21);
26605  n276 = pow(n242, -n21);
26606  n277 = pow(n243, -n21);
26607  n278 = pow(n244, -n21);
26608  n279 = pow(n245, -n21);
26609  n280 = pow(n246, -n21);
26610  n281 = pow(n247, -n21);
26611  n282 = pow(n248, -n21);
26612  n283 = pow(n249, -n21);
26613  n284 = pow(n250, -n21);
26614  n285 = pow(n234, 3);
26615  n286 = pow(n235, 3);
26616  n287 = pow(n236, 3);
26617  n288 = pow(n237, 3);
26618  n289 = pow(n238, 3);
26619  n290 = pow(n239, 3);
26620  n291 = pow(n240, 3);
26621  n292 = pow(n241, 3);
26622  n293 = pow(n242, 3);
26623  n294 = pow(n243, 3);
26624  n295 = pow(n244, 3);
26625  n296 = pow(n245, 3);
26626  n297 = pow(n246, 3);
26627  n298 = pow(n247, 3);
26628  n299 = pow(n248, 3);
26629  n300 = pow(n249, 3);
26630  n301 = pow(n250, 3);
26631  n302 = pow(n251, -n21);
26632  n303 = xF[11]/n236;
26633  n304 = xF[0]/n234;
26634  n305 = xF[10]/n235;
26635  n306 = xF[13]/n238;
26636  n307 = xF[8]/n249;
26637  n308 = xF[16]/n241;
26638  n309 = xF[6]/n247;
26639  n310 = xF[3]/n244;
26640  n311 = xF[3]/n278;
26641  n312 = xF[10]/n269;
26642  n313 = xF[0]/n251;
26643  n314 = n1/n268;
26644  n315 = n1*n313;
26645  n316 = n64*xF[5]/n246;
26646  n317 = n119/n243;
26647  n318 = n118/n240;
26648  n319 = n57*xF[14]/n239;
26649  n320 = n30*n44/n248;
26650  n321 = n86/n287;
26651  n322 = n86/n270;
26652  n323 = n95/n296;
26653  n324 = n81/n268;
26654  n325 = n133/n280;
26655  n326 = n98*xF[7]/n299;
26656  n327 = n140/n276;
26657  n328 = n95*xF[4]/n279;
26658  n329 = n98*xF[7]/n282;
26659  n330 = n99*xF[8]/n283;
26660  n331 = 1/(n177*n189);
26661  n332 = n115*n30*n46/n250;
26662  n333 = n30*n41*n63*xF[4]/n245;
26663  n334 = n1*n22*n304*n50*n70;
26664  n335 = n169*n304*n70;
26665  n336 = n174*n305*n70;
26666  n337 = n171*n303*n70;
26667  n338 = n112*n142*n70/n237;
26668  n339 = n170*n306*n70;
26669  n340 = n145*n319*n70;
26670  n341 = n136*n318*n70;
26671  n342 = n173*n308*n70;
26672  n343 = n117*n139*n70/n242;
26673  n344 = n137*n317*n70;
26674  n345 = n176*n310*n70;
26675  n346 = n333*n70;
26676  n347 = n125*n316*n70;
26677  n348 = n175*n309*n70;
26678  n349 = n113*n320*n70;
26679  n350 = n172*n307*n70;
26680  n351 = n332*n70;
26681  n352 = 0.5*n335;
26682  n353 = n166*n331 + 1;
26683  n354 = n149*n166*n331 + n149;
26684  n355 = n1*n185*n228 + n150;
26685  n356 = n151 + n185*n73/n191;
26686  n357 = n152 + n185*n71/n192;
26687  n358 = n153 + n185*n79/n193;
26688  n359 = n1*n185*n212 + n154;
26689  n360 = n155 + n185*n78/n195;
26690  n361 = n1*n185*n233 + n156;
26691  n362 = n1*n185*n220 + n157;
26692  n363 = n158 + n185*n76/n198;
26693  n364 = n1*n185*n211 + n159;
26694  n365 = n160 + n185*n75/n200;
26695  n366 = n161 + n185*n72/n201;
26696  n367 = n162 + n185*n77/n202;
26697  n368 = n163 + n185*n80/n203;
26698  n369 = n1*n185*n214 + n164;
26699  n370 = n165 + n185*n74/n205;
26700  n371 = pow(n354, -n21);
26701  n372 = pow(n355, -n21);
26702  n373 = pow(n356, -n21);
26703  n374 = pow(n357, -n21);
26704  n375 = pow(n358, -n21);
26705  n376 = pow(n359, -n21);
26706  n377 = pow(n360, -n21);
26707  n378 = pow(n361, -n21);
26708  n379 = pow(n362, -n21);
26709  n380 = pow(n363, -n21);
26710  n381 = pow(n364, -n21);
26711  n382 = pow(n365, -n21);
26712  n383 = pow(n366, -n21);
26713  n384 = pow(n367, -n21);
26714  n385 = pow(n368, -n21);
26715  n386 = pow(n369, -n21);
26716  n387 = pow(n370, -n21);
26717  n388 = pow(alpha, n188*n22)*n149*n184 + n149;
26718  n389 = n354*xF[0];
26719  n390 = n356*xF[11];
26720  n391 = n365*xF[4];
26721  n392 = n369*xF[8];
26722  n393 = n1*n185*n21*n22/n189 + n1*n21*n22*n50;
26723  n394 = n373*xF[11];
26724  n395 = n382*xF[4];
26725  n396 = n102*n144*n166*n331 + n102*n144;
26726  n397 = n364*n94;
26727  n398 = n355*n82;
26728  n399 = n357/n271;
26729  n400 = n363/n277;
26730  n401 = n370/n284;
26731  n402 = n358/n272;
26732  n403 = n359/n273;
26733  n404 = n360/n274;
26734  n405 = n361/n275;
26735  n406 = n387/n301;
26736  n407 = n384/n298;
26737  n408 = n377/n291;
26738  n409 = n375/n289;
26739  n410 = n376/n290;
26740  n411 = n380/n294;
26741  n412 = n374/n288;
26742  n413 = n383/n297;
26743  n414 = n378/n292;
26744  n415 = n379/n293;
26745  n416 = n393/n285;
26746  n417 = n381*n94*xF[3]/n295;
26747  n418 = n386*n99*xF[8]/n300;
26748  n419 = n147*n371/n285;
26749  n420 = n372*n82*xF[10]/n286;
26750  n421 = n135*n388/n302;
26751  n422 = n21*n22*n314*n50*n70*xF[0]*(pow(alpha, NP0*n0 + n187*n22)*n0*n1*n166/n177 + n149);
26752  n423 = n129*n312*n48*n70*(pow(alpha, NP0*n0 - n187*n4)*n1*n166*n4/n177 + n150);
26753  n424 = n48*n5*n54*n70*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n166*n73/n177 + n151)/n270;
26754  n425 = n112*n48*n6*n70*(pow(alpha, NP0*n0 - n187*n6)*n166*n71/n177 + n152)/n271;
26755  n426 = n143*n48*n70*xF[13]*(pow(alpha, NP0*n0 - n187*n7)*n166*n79/n177 + n153)/n272;
26756  n427 = n128*n48*n70*xF[14]*(pow(alpha, NP0*n0 - n187*n8)*n1*n166*n8/n177 + n154)/n273;
26757  n428 = n118*n48*n70*n9*(pow(alpha, NP0*n0 - n187*n9)*n166*n78/n177 + n155)/n274;
26758  n429 = n138*n48*n70*xF[16]*(pow(alpha, NP0*n0 - n10*n187)*n1*n10*n166/n177 + n156)/n275;
26759  n430 = n11*n117*n48*n70*(pow(alpha, NP0*n0 - n11*n187)*n1*n11*n166/n177 + n157)/n276;
26760  n431 = n119*n12*n48*n70*(pow(alpha, NP0*n0 - n12*n187)*n166*n76/n177 + n158)/n277;
26761  n432 = n121*n311*n48*n70*(pow(alpha, NP0*n0 - n13*n187)*n1*n13*n166/n177 + n159);
26762  n433 = n126*n48*n70*xF[4]*(pow(alpha, NP0*n0 - n14*n187)*n166*n75/n177 + n160)/n279;
26763  n434 = n15*n48*n64*n70*xF[5]*(pow(alpha, NP0*n0 - n15*n187)*n166*n72/n177 + n161)/n280;
26764  n435 = n16*n48*n65*n70*xF[6]*(pow(alpha, NP0*n0 - n16*n187)*n166*n77/n177 + n162)/n281;
26765  n436 = n113*n17*n48*n70*(pow(alpha, NP0*n0 - n17*n187)*n166*n80/n177 + n163)/n282;
26766  n437 = n146*n48*n70*xF[8]*(pow(alpha, NP0*n0 - n18*n187)*n1*n166*n18/n177 + n164)/n283;
26767  n438 = n115*n19*n48*n70*(pow(alpha, NP0*n0 - n187*n19)*n166*n74/n177 + n165)/n284;
26768  n439 = 1.0*n149*n389*n70/n268;
26769  n440 = n147*n396*n70/n268;
26770  n441 = 0.5*n440;
26771  n442 = pow(alpha, n0*n25)*n114*n228*n85/(n179*n84) + pow(alpha, n0*n25)*n210*n30*n31*n85/(n179*n84) + n114*n185*n228 + n174;
26772  n443 = pow(alpha, n0*n25)*n114*n217*n85/(n179*n84) + pow(alpha, n0*n25)*n216*n30*n32*n85/(n179*n84) + n114*n185*n217 + n171;
26773  n444 = pow(alpha, n0*n25)*n114*n226*n85/(n179*n84) + pow(alpha, n0*n25)*n142*n208*n85/(n179*n84) + n114*n185*n226 + n142*n55;
26774  n445 = pow(alpha, n0*n25)*n22*n30*n7*n85/(n179*n193*n84) + pow(alpha, n0*n25)*n30*n34*n85/(n179*n193*n84) + n104*n30*n34 + n185*n22*n30*n7/n193;
26775  n446 = pow(alpha, n0*n25)*n145*n85/(n179*n194*n84) + pow(alpha, n0*n25)*n212*n22*n30*n85/(n179*n84) + n105*n145 + n185*n212*n22*n30;
26776  n447 = pow(alpha, n0*n25)*n114*n225*n85/(n179*n84) + pow(alpha, n0*n25)*n136*n213*n85/(n179*n84) + n114*n185*n225 + n136*n58;
26777  n448 = pow(alpha, n0*n25)*n22*n233*n30*n85/(n179*n84) + pow(alpha, n0*n25)*n30*n37*n85/(n179*n196*n84) + n106*n30*n37 + n185*n22*n233*n30;
26778  n449 = pow(alpha, n0*n25)*n137*n85/(n179*n198*n84) + pow(alpha, n0*n25)*n22*n222*n30*n85/(n179*n84) + n107*n137 + n185*n22*n222*n30;
26779  n450 = pow(alpha, n0*n25)*n114*n211*n85/(n179*n84) + pow(alpha, n0*n25)*n223*n30*n40*n85/(n179*n84) + n114*n185*n211 + n176;
26780  n451 = pow(alpha, n0*n25)*n16*n22*n30*n85/(n179*n202*n84) + pow(alpha, n0*n25)*n30*n43*n85/(n179*n202*n84) + n110*n30*n43 + n16*n185*n22*n30/n202;
26781  n452 = pow(alpha, n0*n25)*n114*n231*n85/(n179*n84) + pow(alpha, n0*n25)*n221*n30*n46*n85/(n179*n84) + n114*n185*n231 + n30*n46*n68;
26782  n453 = n134*n70*(pow(alpha, n0*n25 - n187*n7)*n22*n30*n7*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n7)*n30*n34*n85/(n179*n84) + n104*n30*n34 + n185*n22*n30*n7/n193)/n272;
26783  n454 = n131*n70*(pow(alpha, n0*n25 - n187*n8)*n145*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n8)*n22*n30*n8*n85/(n179*n84) + n105*n145 + n185*n212*n22*n30)/n273;
26784  n455 = n120*n70*(pow(alpha, n0*n25 - n10*n187)*n10*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n10*n187)*n30*n37*n85/(n179*n84) + n106*n30*n37 + n185*n22*n233*n30)/n275;
26785  n456 = n132*n70*(pow(alpha, n0*n25 - n12*n187)*n12*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n12*n187)*n137*n85/(n179*n84) + n107*n137 + n185*n22*n222*n30)/n277;
26786  n457 = n328*n70*(pow(alpha, n0*n25 - n14*n187)*n14*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n14*n187)*n30*n41*n85/(n179*n84) + n108*n30*n41 + n185*n218*n22*n30);
26787  n458 = n130*n70*(pow(alpha, n0*n25 - n16*n187)*n16*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n16*n187)*n30*n43*n85/(n179*n84) + n110*n30*n43 + n16*n185*n22*n30/n202)/n281;
26788  n459 = n111*n312*n82*(pow(alpha, n0*n25 - n187*n4)*n114*n4*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n4)*n30*n31*n85/(n179*n84) + n114*n185*n228 + n174);
26789  n460 = n111*n322*xF[11]*(pow(alpha, n0*n25 - n187*n5)*n114*n5*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n5)*n30*n32*n85/(n179*n84) + n114*n185*n217 + n171);
26790  n461 = n111*n123*(pow(alpha, n0*n25 - n187*n6)*n114*n6*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n6)*n142*n85/(n179*n84) + n114*n185*n226 + n142*n55)/n271;
26791  n462 = n111*n122*(pow(alpha, n0*n25 - n187*n9)*n114*n85*n9/(n179*n84) - pow(alpha, n0*n25 - n187*n9)*n136*n85/(n179*n84) + n114*n185*n225 + n136*n58)/n274;
26792  n463 = n111*n327*(pow(alpha, n0*n25 - n11*n187)*n11*n114*n85/(n179*n84) - pow(alpha, n0*n25 - n11*n187)*n139*n85/(n179*n84) + n114*n185*n220 + n139*n60);
26793  n464 = n111*n311*n94*(pow(alpha, n0*n25 - n13*n187)*n114*n13*n85/(n179*n84) - pow(alpha, n0*n25 - n13*n187)*n30*n40*n85/(n179*n84) + n114*n185*n211 + n176);
26794  n465 = n111*n325*(pow(alpha, n0*n25 - n15*n187)*n114*n15*n85/(n179*n84) - pow(alpha, n0*n25 - n15*n187)*n125*n85/(n179*n84) + n114*n185*n230 + n125*n64);
26795  n466 = n111*n329*(pow(alpha, n0*n25 - n17*n187)*n114*n17*n85/(n179*n84) - pow(alpha, n0*n25 - n17*n187)*n30*n44*n85/(n179*n84) + n114*n185*n207 + n30*n44*n66);
26796  n467 = n111*n330*(pow(alpha, n0*n25 - n18*n187)*n114*n18*n85/(n179*n84) - pow(alpha, n0*n25 - n18*n187)*n30*n45*n85/(n179*n84) + n114*n185*n214 + n172);
26797  n468 = n111*n127*(pow(alpha, n0*n25 - n187*n19)*n114*n19*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n19)*n30*n46*n85/(n179*n84) + n114*n185*n231 + n30*n46*n68)/n284;
26798  n469 = n335 + n336 + n337 + n338 + n339 + n340 + n341 + n342 + n343 + n344 + n345 + n346 + n347 + n348 + n349 + n350 + n351 + n422 + n423 + n424 + n425 + n426 + n427 + n428 + n429 + n430 + n431 + n432 + n433 + n434 + n435 + n436 + n437 + n438 + n440 + n453 + n454 + n455 + n456 + n457 + n458 + n459 + n460 + n461 + n462 + n463 + n464 + n465 + n466 + n467 + n468;
26799  n470 = n111*n120*n361*(n138*n48 + n185*n233*n48)/n292 + n111*n122*n360*(n185*n225*n48 + n48*n58*n9)/n291 + n111*n123*n357*(n185*n226*n48 + n48*n55*n6)/n288 + n111*n127*n370*(n185*n231*n48 + n19*n48*n68)/n301 + n111*n130*n367*(n16*n185*n48/n202 + n16*n48*n65)/n298 + n111*n131*n359*(n128*n48 + n185*n212*n48)/n290 + n111*n132*n363*(n12*n48*n61 + n185*n222*n48)/n294 + n111*n133*n366*(n15*n48*n64 + n185*n230*n48)/n297 + n111*n134*n358*(n143*n48 + n185*n48*n7/n193)/n289 + n111*n140*n362*(n141*n48 + n185*n220*n48)/n293 + n111*n147*n354*n416 + n111*n321*n390*(n185*n217*n48 + n48*n5*n54) + n111*n323*n391*(n126*n48 + n185*n218*n48) + n111*n326*n368*(n17*n48*n66 + n185*n207*n48) + n111*n392*n99*(n146*n48 + n185*n214*n48)/n300 + n111*n397*xF[3]*(n121*n48 + n185*n211*n48)/n295 + n111*n398*xF[10]*(n129*n48 + n185*n228*n48)/n286 + n469;
26800  n471 = n470*xTj;
26801  NP_b = -n147*n149*n353*n70/n268 - n25*(0.5*n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n144*(-n23 + xPj*xTj)/(n177*n51) + n102*n144)/n268 + 1.0*n149*n70*xF[0]*(pow(alpha, NP0*n0 - n0*n187)*n0*n1*n166/n177 + n149)/n268 + n352 - 1.0*n419*n70 - 0.5*xTj*(n111*n122*(pow(alpha, NP0*n0 - n187*n9)*n114*n166*n9/n177 + pow(alpha, n0*n25 - n187*n9)*n114*n85*n9/(n179*n84) - pow(alpha, n0*n25 - n187*n9)*n136*n85/(n179*n84) + n136*n58)/n274 + n111*n123*(pow(alpha, NP0*n0 - n187*n6)*n114*n166*n6/n177 + pow(alpha, n0*n25 - n187*n6)*n114*n6*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n6)*n142*n85/(n179*n84) + n142*n55)/n271 + n111*n127*(pow(alpha, NP0*n0 - n187*n19)*n114*n166*n19/n177 + pow(alpha, n0*n25 - n187*n19)*n114*n19*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n19)*n30*n46*n85/(n179*n84) + n30*n46*n68)/n284 + n111*n311*n94*(pow(alpha, NP0*n0 - n13*n187)*n114*n13*n166/n177 + pow(alpha, n0*n25 - n13*n187)*n114*n13*n85/(n179*n84) - pow(alpha, n0*n25 - n13*n187)*n30*n40*n85/(n179*n84) + n176) + n111*n312*n82*(pow(alpha, NP0*n0 - n187*n4)*n114*n166*n4/n177 + pow(alpha, n0*n25 - n187*n4)*n114*n4*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n4)*n30*n31*n85/(n179*n84) + n174) + n111*n322*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n114*n166*n5/n177 + pow(alpha, n0*n25 - n187*n5)*n114*n5*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n5)*n30*n32*n85/(n179*n84) + n171) + n111*n325*(pow(alpha, NP0*n0 - n15*n187)*n114*n15*n166/n177 + pow(alpha, n0*n25 - n15*n187)*n114*n15*n85/(n179*n84) - pow(alpha, n0*n25 - n15*n187)*n125*n85/(n179*n84) + n125*n64) + n111*n327*(pow(alpha, NP0*n0 - n11*n187)*n11*n114*n166/n177 + pow(alpha, n0*n25 - n11*n187)*n11*n114*n85/(n179*n84) - pow(alpha, n0*n25 - n11*n187)*n139*n85/(n179*n84) + n139*n60) + n111*n329*(pow(alpha, NP0*n0 - n17*n187)*n114*n166*n17/n177 + pow(alpha, n0*n25 - n17*n187)*n114*n17*n85/(n179*n84) - pow(alpha, n0*n25 - n17*n187)*n30*n44*n85/(n179*n84) + n30*n44*n66) + n111*n330*(pow(alpha, NP0*n0 - n18*n187)*n114*n166*n18/n177 + pow(alpha, n0*n25 - n18*n187)*n114*n18*n85/(n179*n84) - pow(alpha, n0*n25 - n18*n187)*n30*n45*n85/(n179*n84) + n172) + n120*n21*n414*n70 + n120*n70*(pow(alpha, NP0*n0 - n10*n187)*n10*n166*n22*n30/n177 + pow(alpha, n0*n25 - n10*n187)*n10*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n10*n187)*n30*n37*n85/(n179*n84) + n106*n30*n37)/n275 + n122*n21*n408*n70 + n123*n21*n412*n70 + n127*n21*n406*n70 + n130*n21*n407*n70 + n130*n70*(pow(alpha, NP0*n0 - n16*n187)*n16*n166*n22*n30/n177 + pow(alpha, n0*n25 - n16*n187)*n16*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n16*n187)*n30*n43*n85/(n179*n84) + n110*n30*n43)/n281 + n131*n21*n410*n70 + n131*n70*(pow(alpha, NP0*n0 - n187*n8)*n166*n22*n30*n8/n177 + pow(alpha, n0*n25 - n187*n8)*n145*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n8)*n22*n30*n8*n85/(n179*n84) + n105*n145)/n273 + n132*n21*n411*n70 + n132*n70*(pow(alpha, NP0*n0 - n12*n187)*n12*n166*n22*n30/n177 + pow(alpha, n0*n25 - n12*n187)*n12*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n12*n187)*n137*n85/(n179*n84) + n107*n137)/n277 + n133*n21*n413*n70 + n134*n21*n409*n70 + n134*n70*(pow(alpha, NP0*n0 - n187*n7)*n166*n22*n30*n7/n177 + pow(alpha, n0*n25 - n187*n7)*n22*n30*n7*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n7)*n30*n34*n85/(n179*n84) + n104*n30*n34)/n272 + n140*n21*n415*n70 + n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n144*(-n23 + xPj*xTj)/(n177*n51) + n102*n144)/n268 + n21*n321*n394*n70 + n21*n323*n395*n70 + n21*n326*n385*n70 + n21*n417*n70 + n21*n418*n70 + n21*n419*n70 + n21*n420*n70 + n328*n70*(pow(alpha, NP0*n0 - n14*n187)*n14*n166*n22*n30/n177 + pow(alpha, n0*n25 - n14*n187)*n14*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n14*n187)*n30*n41*n85/(n179*n84) + n108*n30*n41) + n335 + n336 + n337 + n338 + n339 + n340 + n341 + n342 + n343 + n344 + n345 + n346 + n347 + n348 + n349 + n350 + n351 + n422 + n423 + n424 + n425 + n426 + n427 + n428 + n429 + n430 + n431 + n432 + n433 + n434 + n435 + n436 + n437 + n438)) - n334 - n70*xTj*(n112*n71/n237 + n113*n80/n248 + n115*n74/n250 - n120*n405 - n122*n404 - n123*n399 + n126*n49/n245 - n127*n401 - n130*n367/n281 - n131*n403 - n132*n400 - n134*n402 - n147*n354/n268 + n149*n304 + n150*n305 + n151*n303 + n154*xF[14]/n239 + n156*n308 + n159*n310 + n161*xF[5]/n246 + n162*n309 + n164*n307 + n167/n242 + n168/n238 - n311*n397 - n312*n398 + n317*n76 + n318*n78 - n322*n390 - n325*n366 - n327*n362 - n328*n365 - n329*n368 - n330*n369);
26802  NP_2a = -n70*(-pow(alpha, n0*n25)*n144*n147*n21*pow(n353, -n21)/n285 - 2.0*pow(alpha, n0*n25)*n144*n353*xF[0]/n268 + n102*n144*n147*(n331*(-n23 + xPj*xTj)/n51 - 1)/n268 - 1.0*n169*n304 + 1.0*xTj*(n11*n117*n48*(pow(alpha, NP0*n0 - n11*n187)*n1*n11*n166/n177 + n157)/n276 + n112*n142/n237 + n112*n48*n6*(pow(alpha, NP0*n0 - n187*n6)*n166*n71/n177 + n152)/n271 + n113*n17*n48*(pow(alpha, NP0*n0 - n17*n187)*n166*n80/n177 + n163)/n282 + n113*n320 + n115*n19*n48*(pow(alpha, NP0*n0 - n187*n19)*n166*n74/n177 + n165)/n284 + n117*n139/n242 + n118*n48*n9*(pow(alpha, NP0*n0 - n187*n9)*n166*n78/n177 + n155)/n274 + n119*n12*n48*(pow(alpha, NP0*n0 - n12*n187)*n166*n76/n177 + n158)/n277 + n120*n21*n414 + n120*(pow(alpha, n0*n25 - n10*n187)*n10*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n10*n187)*n30*n37*n85/(n179*n84) + n106*n30*n37 + n185*n22*n233*n30)/n275 + n121*n311*n48*(pow(alpha, NP0*n0 - n13*n187)*n1*n13*n166/n177 + n159) + n122*n21*n408 - n122*(pow(alpha, n0*n25 - n187*n9)*n114*n85*n9/(n179*n84) - pow(alpha, n0*n25 - n187*n9)*n136*n85/(n179*n84) + n114*n185*n225 + n136*n58)/n274 + n123*n21*n412 - n123*(pow(alpha, n0*n25 - n187*n6)*n114*n6*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n6)*n142*n85/(n179*n84) + n114*n185*n226 + n142*n55)/n271 + n125*n316 + n126*n48*xF[4]*(pow(alpha, NP0*n0 - n14*n187)*n166*n75/n177 + n160)/n279 + n127*n21*n406 - n127*(pow(alpha, n0*n25 - n187*n19)*n114*n19*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n19)*n30*n46*n85/(n179*n84) + n114*n185*n231 + n30*n46*n68)/n284 + n128*n48*xF[14]*(pow(alpha, NP0*n0 - n187*n8)*n1*n166*n8/n177 + n154)/n273 + n129*n312*n48*(pow(alpha, NP0*n0 - n187*n4)*n1*n166*n4/n177 + n150) + n130*n21*n407 + n130*(pow(alpha, n0*n25 - n16*n187)*n16*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n16*n187)*n30*n43*n85/(n179*n84) + n110*n30*n43 + n16*n185*n22*n30/n202)/n281 + n131*n21*n410 + n131*(pow(alpha, n0*n25 - n187*n8)*n145*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n8)*n22*n30*n8*n85/(n179*n84) + n105*n145 + n185*n212*n22*n30)/n273 + n132*n21*n411 + n132*(pow(alpha, n0*n25 - n12*n187)*n12*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n12*n187)*n137*n85/(n179*n84) + n107*n137 + n185*n22*n222*n30)/n277 + n133*n21*n413 + n134*n21*n409 + n134*(pow(alpha, n0*n25 - n187*n7)*n22*n30*n7*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n7)*n30*n34*n85/(n179*n84) + n104*n30*n34 + n185*n22*n30*n7/n193)/n272 + n136*n318 + n137*n317 + n138*n48*xF[16]*(pow(alpha, NP0*n0 - n10*n187)*n1*n10*n166/n177 + n156)/n275 + n140*n21*n415 + n143*n48*xF[13]*(pow(alpha, NP0*n0 - n187*n7)*n166*n79/n177 + n153)/n272 + n145*n319 + n146*n48*xF[8]*(pow(alpha, NP0*n0 - n18*n187)*n1*n166*n18/n177 + n164)/n283 + n147*n396/n268 + n15*n48*n64*xF[5]*(pow(alpha, NP0*n0 - n15*n187)*n166*n72/n177 + n161)/n280 + n16*n48*n65*xF[6]*(pow(alpha, NP0*n0 - n16*n187)*n166*n77/n177 + n162)/n281 + n169*n304 + n170*n306 + n171*n303 + n172*n307 + n173*n308 + n174*n305 + n175*n309 + n176*n310 + n21*n22*n314*n50*xF[0]*(pow(alpha, NP0*n0 + n187*n22)*n0*n1*n166/n177 + n149) + n21*n321*n394 + n21*n323*n395 + n21*n326*n385 + n21*n417 + n21*n418 + n21*n419 + n21*n420 - n311*n94*(pow(alpha, n0*n25 - n13*n187)*n114*n13*n85/(n179*n84) - pow(alpha, n0*n25 - n13*n187)*n30*n40*n85/(n179*n84) + n114*n185*n211 + n176) - n312*n82*(pow(alpha, n0*n25 - n187*n4)*n114*n4*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n4)*n30*n31*n85/(n179*n84) + n114*n185*n228 + n174) - n322*xF[11]*(pow(alpha, n0*n25 - n187*n5)*n114*n5*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n5)*n30*n32*n85/(n179*n84) + n114*n185*n217 + n171) - n325*(pow(alpha, n0*n25 - n15*n187)*n114*n15*n85/(n179*n84) - pow(alpha, n0*n25 - n15*n187)*n125*n85/(n179*n84) + n114*n185*n230 + n125*n64) - n327*(pow(alpha, n0*n25 - n11*n187)*n11*n114*n85/(n179*n84) - pow(alpha, n0*n25 - n11*n187)*n139*n85/(n179*n84) + n114*n185*n220 + n139*n60) + n328*(pow(alpha, n0*n25 - n14*n187)*n14*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n14*n187)*n30*n41*n85/(n179*n84) + n108*n30*n41 + n185*n218*n22*n30) - n329*(pow(alpha, n0*n25 - n17*n187)*n114*n17*n85/(n179*n84) - pow(alpha, n0*n25 - n17*n187)*n30*n44*n85/(n179*n84) + n114*n185*n207 + n30*n44*n66) - n330*(pow(alpha, n0*n25 - n18*n187)*n114*n18*n85/(n179*n84) - pow(alpha, n0*n25 - n18*n187)*n30*n45*n85/(n179*n84) + n114*n185*n214 + n172) + n332 + n333 + n48*n5*n54*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n166*n73/n177 + n151)/n270));
26803  NP_sqrt_base = (-NP0*(n22*n315*n50*n70 + n421*n70 + xTj*(n100*n111*pow(n267, n21)*xF[9]*(n165 + pow(alpha, -n188*n19)*n186*n74) + n111*pow(n252, n21)*n82*xF[10]*(n150 + pow(alpha, -n188*n4)*n166*n183*n4) + n111*pow(n253, n21)*n86*xF[11]*(n151 + pow(alpha, -n188*n5)*n186*n73) + n111*pow(n254, n21)*n87*xF[12]*(n152 + pow(alpha, -n188*n6)*n186*n71) + n111*pow(n255, n21)*n88*xF[13]*(n153 + pow(alpha, -n188*n7)*n186*n79) + n111*pow(n256, n21)*n89*xF[14]*(n154 + pow(alpha, -n188*n8)*n166*n183*n8) + n111*pow(n257, n21)*n90*xF[15]*(n155 + pow(alpha, -n188*n9)*n186*n78) + n111*pow(n258, n21)*n91*xF[16]*(n156 + pow(alpha, -n10*n188)*n10*n166*n183) + n111*pow(n259, n21)*n92*xF[1]*(n157 + pow(alpha, -n11*n188)*n11*n166*n183) + n111*pow(n260, n21)*n93*xF[2]*(n158 + pow(alpha, -n12*n188)*n186*n76) + n111*pow(n261, n21)*n94*xF[3]*(n159 + pow(alpha, -n13*n188)*n13*n166*n183) + n111*pow(n262, n21)*n95*xF[4]*(n160 + pow(alpha, -n14*n188)*n186*n75) + n111*pow(n263, n21)*n96*xF[5]*(n161 + pow(alpha, -n15*n188)*n186*n72) + n111*pow(n264, n21)*n97*xF[6]*(n162 + pow(alpha, -n16*n188)*n186*n77) + n111*pow(n265, n21)*n98*xF[7]*(n163 + pow(alpha, -n17*n188)*n186*n80) + n111*pow(n266, n21)*n99*xF[8]*(n164 + pow(alpha, -n18*n188)*n166*n18*n183) + n111*n421 + n112*n70*n71/n254 + n113*n70*n80/n265 + n115*n70*n74/n267 + n118*n70*n78/n257 + n119*n70*n76/n260 + n126*n49*n70/n262 + n149*n313*n70 + n150*n70*xF[10]/n252 + n151*n70*xF[11]/n253 + n154*n70*xF[14]/n256 + n156*n70*xF[16]/n258 + n159*n70*xF[3]/n261 + n161*n70*xF[5]/n263 + n162*n70*xF[6]/n264 + n164*n70*xF[8]/n266 + n167*n70/n259 + n168*n70/n255)) - n111*n135/n251 - n26*(-n120*n70/(n91 - 1 + pow(alpha, -n10*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n122*n70/(n90 - 1 + pow(alpha, -n9*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n123*n70/(n87 - 1 + pow(alpha, -n6*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n127*n70/(n100 - 1 + pow(alpha, -n19*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n130*n70/(n97 - 1 + pow(alpha, -n16*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n131*n70/(n89 - 1 + pow(alpha, -n8*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n132*n70/(n93 - 1 + pow(alpha, -n12*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n133*n70/(n96 - 1 + pow(alpha, -n15*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n134*n70/(n88 - 1 + pow(alpha, -n7*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n140*n70/(n92 - 1 + pow(alpha, -n11*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n147*n70/(pow(alpha, n22*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1)) + n81 - 1) - n70*n82*xF[10]/(n82 - 1 + pow(alpha, -n4*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n70*n86*xF[11]/(n86 - 1 + pow(alpha, -n5*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n70*n94*xF[3]/(n94 - 1 + pow(alpha, -n13*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n70*n95*xF[4]/(n95 - 1 + pow(alpha, -n14*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n70*n98*xF[7]/(n98 - 1 + pow(alpha, -n17*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1))) - n70*n99*xF[8]/(n99 - 1 + pow(alpha, -n18*(n116*(n180 - log(n102*(n23 + n27*xTj)/(n23 - xF[0]*xTj) + 1)) + 1)))) - pow(NP0, -n21)*(-0.5*n147*n354*n416*n70 + 1.0*n149*n389*n70/n268 + 0.5*n335 + 0.5*n440 - 0.5*n471))*(4.0*n149*n389*n70/n268 - n21*n26*(n111*n120*(pow(alpha, NP0*n0 - n10*n187)*n1*n10*n166/n177 + n156)*(pow(alpha, NP0*n0 - n10*n187)*n10*n166*n48/n177 + n138*n48)/n292 + n111*n122*(pow(alpha, NP0*n0 - n187*n9)*n166*n78/n177 + n155)*(pow(alpha, NP0*n0 - n187*n9)*n166*n48*n9/n177 + n48*n58*n9)/n291 + n111*n122*(pow(alpha, NP0*n0 - n187*n9)*n114*n166*n9/n177 + pow(alpha, n0*n25 - n187*n9)*n114*n85*n9/(n179*n84) - pow(alpha, n0*n25 - n187*n9)*n136*n85/(n179*n84) + n136*n58)/n274 + n111*n123*(pow(alpha, NP0*n0 - n187*n6)*n166*n71/n177 + n152)*(pow(alpha, NP0*n0 - n187*n6)*n166*n48*n6/n177 + n48*n55*n6)/n288 + n111*n123*(pow(alpha, NP0*n0 - n187*n6)*n114*n166*n6/n177 + pow(alpha, n0*n25 - n187*n6)*n114*n6*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n6)*n142*n85/(n179*n84) + n142*n55)/n271 + n111*n127*(pow(alpha, NP0*n0 - n187*n19)*n166*n74/n177 + n165)*(pow(alpha, NP0*n0 - n187*n19)*n166*n19*n48/n177 + n19*n48*n68)/n301 + n111*n127*(pow(alpha, NP0*n0 - n187*n19)*n114*n166*n19/n177 + pow(alpha, n0*n25 - n187*n19)*n114*n19*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n19)*n30*n46*n85/(n179*n84) + n30*n46*n68)/n284 + n111*n130*(pow(alpha, NP0*n0 - n16*n187)*n166*n77/n177 + n162)*(pow(alpha, NP0*n0 - n16*n187)*n16*n166*n48/n177 + n16*n48*n65)/n298 + n111*n131*(pow(alpha, NP0*n0 - n187*n8)*n1*n166*n8/n177 + n154)*(pow(alpha, NP0*n0 - n187*n8)*n166*n48*n8/n177 + n128*n48)/n290 + n111*n132*(pow(alpha, NP0*n0 - n12*n187)*n166*n76/n177 + n158)*(pow(alpha, NP0*n0 - n12*n187)*n12*n166*n48/n177 + n12*n48*n61)/n294 + n111*n133*(pow(alpha, NP0*n0 - n15*n187)*n166*n72/n177 + n161)*(pow(alpha, NP0*n0 - n15*n187)*n15*n166*n48/n177 + n15*n48*n64)/n297 + n111*n134*(pow(alpha, NP0*n0 - n187*n7)*n166*n79/n177 + n153)*(pow(alpha, NP0*n0 - n187*n7)*n166*n48*n7/n177 + n143*n48)/n289 + n111*n140*(pow(alpha, NP0*n0 - n11*n187)*n1*n11*n166/n177 + n157)*(pow(alpha, NP0*n0 - n11*n187)*n11*n166*n48/n177 + n141*n48)/n293 + n111*n147*(pow(alpha, NP0*n0 - n0*n187)*n0*n1*n166/n177 + n149)*(pow(alpha, NP0*n0 - n0*n187)*n1*n166*n21*n22/n177 + n1*n21*n22*n50)/n285 + n111*n311*n94*(pow(alpha, NP0*n0 - n13*n187)*n114*n13*n166/n177 + pow(alpha, n0*n25 - n13*n187)*n114*n13*n85/(n179*n84) - pow(alpha, n0*n25 - n13*n187)*n30*n40*n85/(n179*n84) + n176) + n111*n312*n82*(pow(alpha, NP0*n0 - n187*n4)*n114*n166*n4/n177 + pow(alpha, n0*n25 - n187*n4)*n114*n4*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n4)*n30*n31*n85/(n179*n84) + n174) + n111*n321*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n166*n73/n177 + n151)*(pow(alpha, NP0*n0 - n187*n5)*n166*n48*n5/n177 + n48*n5*n54) + n111*n322*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n114*n166*n5/n177 + pow(alpha, n0*n25 - n187*n5)*n114*n5*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n5)*n30*n32*n85/(n179*n84) + n171) + n111*n323*xF[4]*(pow(alpha, NP0*n0 - n14*n187)*n166*n75/n177 + n160)*(pow(alpha, NP0*n0 - n14*n187)*n14*n166*n48/n177 + n126*n48) + n111*n325*(pow(alpha, NP0*n0 - n15*n187)*n114*n15*n166/n177 + pow(alpha, n0*n25 - n15*n187)*n114*n15*n85/(n179*n84) - pow(alpha, n0*n25 - n15*n187)*n125*n85/(n179*n84) + n125*n64) + n111*n326*(pow(alpha, NP0*n0 - n17*n187)*n166*n80/n177 + n163)*(pow(alpha, NP0*n0 - n17*n187)*n166*n17*n48/n177 + n17*n48*n66) + n111*n327*(pow(alpha, NP0*n0 - n11*n187)*n11*n114*n166/n177 + pow(alpha, n0*n25 - n11*n187)*n11*n114*n85/(n179*n84) - pow(alpha, n0*n25 - n11*n187)*n139*n85/(n179*n84) + n139*n60) + n111*n329*(pow(alpha, NP0*n0 - n17*n187)*n114*n166*n17/n177 + pow(alpha, n0*n25 - n17*n187)*n114*n17*n85/(n179*n84) - pow(alpha, n0*n25 - n17*n187)*n30*n44*n85/(n179*n84) + n30*n44*n66) + n111*n330*(pow(alpha, NP0*n0 - n18*n187)*n114*n166*n18/n177 + pow(alpha, n0*n25 - n18*n187)*n114*n18*n85/(n179*n84) - pow(alpha, n0*n25 - n18*n187)*n30*n45*n85/(n179*n84) + n172) + n111*n99*xF[8]*(pow(alpha, NP0*n0 - n18*n187)*n1*n166*n18/n177 + n164)*(pow(alpha, NP0*n0 - n18*n187)*n166*n18*n48/n177 + n146*n48)/n300 + n111*n94*xF[3]*(pow(alpha, NP0*n0 - n13*n187)*n1*n13*n166/n177 + n159)*(pow(alpha, NP0*n0 - n13*n187)*n13*n166*n48/n177 + n121*n48)/n295 + n111*n82*xF[10]*(pow(alpha, NP0*n0 - n187*n4)*n1*n166*n4/n177 + n150)*(pow(alpha, NP0*n0 - n187*n4)*n166*n4*n48/n177 + n129*n48)/n286 + n120*n70*(pow(alpha, NP0*n0 - n10*n187)*n10*n166*n22*n30/n177 + pow(alpha, n0*n25 - n10*n187)*n10*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n10*n187)*n30*n37*n85/(n179*n84) + n106*n30*n37)/n275 + n130*n70*(pow(alpha, NP0*n0 - n16*n187)*n16*n166*n22*n30/n177 + pow(alpha, n0*n25 - n16*n187)*n16*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n16*n187)*n30*n43*n85/(n179*n84) + n110*n30*n43)/n281 + n131*n70*(pow(alpha, NP0*n0 - n187*n8)*n166*n22*n30*n8/n177 + pow(alpha, n0*n25 - n187*n8)*n145*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n8)*n22*n30*n8*n85/(n179*n84) + n105*n145)/n273 + n132*n70*(pow(alpha, NP0*n0 - n12*n187)*n12*n166*n22*n30/n177 + pow(alpha, n0*n25 - n12*n187)*n12*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n12*n187)*n137*n85/(n179*n84) + n107*n137)/n277 + n134*n70*(pow(alpha, NP0*n0 - n187*n7)*n166*n22*n30*n7/n177 + pow(alpha, n0*n25 - n187*n7)*n22*n30*n7*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n7)*n30*n34*n85/(n179*n84) + n104*n30*n34)/n272 + n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n144*(-n23 + xPj*xTj)/(n177*n51) + n102*n144)/n268 + n328*n70*(pow(alpha, NP0*n0 - n14*n187)*n14*n166*n22*n30/n177 + pow(alpha, n0*n25 - n14*n187)*n14*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n14*n187)*n30*n41*n85/(n179*n84) + n108*n30*n41) + n335 + n336 + n337 + n338 + n339 + n340 + n341 + n342 + n343 + n344 + n345 + n346 + n347 + n348 + n349 + n350 + n351 + n422 + n423 + n424 + n425 + n426 + n427 + n428 + n429 + n430 + n431 + n432 + n433 + n434 + n435 + n436 + n437 + n438) + 2.0*n335 - 4.0*n419*n70 + 2.0*n440) + pow(-n147*n354*n70/n268 - n25*(-0.5*n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n0*n1*n166/n177 + n149)*(pow(alpha, NP0*n0 - n0*n187)*n1*n166*n21*n22/n177 + n1*n21*n22*n50)/n285 + 0.5*n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n144*(-n23 + xPj*xTj)/(n177*n51) + n102*n144)/n268 + 1.0*n149*n70*xF[0]*(pow(alpha, NP0*n0 - n0*n187)*n0*n1*n166/n177 + n149)/n268 + n352 - 0.5*xTj*(n111*n120*(pow(alpha, NP0*n0 - n10*n187)*n1*n10*n166/n177 + n156)*(pow(alpha, NP0*n0 - n10*n187)*n10*n166*n48/n177 + n138*n48)/n292 + n111*n122*(pow(alpha, NP0*n0 - n187*n9)*n166*n78/n177 + n155)*(pow(alpha, NP0*n0 - n187*n9)*n166*n48*n9/n177 + n48*n58*n9)/n291 + n111*n122*(pow(alpha, NP0*n0 - n187*n9)*n114*n166*n9/n177 + pow(alpha, n0*n25 - n187*n9)*n114*n85*n9/(n179*n84) - pow(alpha, n0*n25 - n187*n9)*n136*n85/(n179*n84) + n136*n58)/n274 + n111*n123*(pow(alpha, NP0*n0 - n187*n6)*n166*n71/n177 + n152)*(pow(alpha, NP0*n0 - n187*n6)*n166*n48*n6/n177 + n48*n55*n6)/n288 + n111*n123*(pow(alpha, NP0*n0 - n187*n6)*n114*n166*n6/n177 + pow(alpha, n0*n25 - n187*n6)*n114*n6*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n6)*n142*n85/(n179*n84) + n142*n55)/n271 + n111*n127*(pow(alpha, NP0*n0 - n187*n19)*n166*n74/n177 + n165)*(pow(alpha, NP0*n0 - n187*n19)*n166*n19*n48/n177 + n19*n48*n68)/n301 + n111*n127*(pow(alpha, NP0*n0 - n187*n19)*n114*n166*n19/n177 + pow(alpha, n0*n25 - n187*n19)*n114*n19*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n19)*n30*n46*n85/(n179*n84) + n30*n46*n68)/n284 + n111*n130*(pow(alpha, NP0*n0 - n16*n187)*n166*n77/n177 + n162)*(pow(alpha, NP0*n0 - n16*n187)*n16*n166*n48/n177 + n16*n48*n65)/n298 + n111*n131*(pow(alpha, NP0*n0 - n187*n8)*n1*n166*n8/n177 + n154)*(pow(alpha, NP0*n0 - n187*n8)*n166*n48*n8/n177 + n128*n48)/n290 + n111*n132*(pow(alpha, NP0*n0 - n12*n187)*n166*n76/n177 + n158)*(pow(alpha, NP0*n0 - n12*n187)*n12*n166*n48/n177 + n12*n48*n61)/n294 + n111*n133*(pow(alpha, NP0*n0 - n15*n187)*n166*n72/n177 + n161)*(pow(alpha, NP0*n0 - n15*n187)*n15*n166*n48/n177 + n15*n48*n64)/n297 + n111*n134*(pow(alpha, NP0*n0 - n187*n7)*n166*n79/n177 + n153)*(pow(alpha, NP0*n0 - n187*n7)*n166*n48*n7/n177 + n143*n48)/n289 + n111*n140*(pow(alpha, NP0*n0 - n11*n187)*n1*n11*n166/n177 + n157)*(pow(alpha, NP0*n0 - n11*n187)*n11*n166*n48/n177 + n141*n48)/n293 + n111*n147*(pow(alpha, NP0*n0 - n0*n187)*n0*n1*n166/n177 + n149)*(pow(alpha, NP0*n0 - n0*n187)*n1*n166*n21*n22/n177 + n1*n21*n22*n50)/n285 + n111*n311*n94*(pow(alpha, NP0*n0 - n13*n187)*n114*n13*n166/n177 + pow(alpha, n0*n25 - n13*n187)*n114*n13*n85/(n179*n84) - pow(alpha, n0*n25 - n13*n187)*n30*n40*n85/(n179*n84) + n176) + n111*n312*n82*(pow(alpha, NP0*n0 - n187*n4)*n114*n166*n4/n177 + pow(alpha, n0*n25 - n187*n4)*n114*n4*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n4)*n30*n31*n85/(n179*n84) + n174) + n111*n321*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n166*n73/n177 + n151)*(pow(alpha, NP0*n0 - n187*n5)*n166*n48*n5/n177 + n48*n5*n54) + n111*n322*xF[11]*(pow(alpha, NP0*n0 - n187*n5)*n114*n166*n5/n177 + pow(alpha, n0*n25 - n187*n5)*n114*n5*n85/(n179*n84) - pow(alpha, n0*n25 - n187*n5)*n30*n32*n85/(n179*n84) + n171) + n111*n323*xF[4]*(pow(alpha, NP0*n0 - n14*n187)*n166*n75/n177 + n160)*(pow(alpha, NP0*n0 - n14*n187)*n14*n166*n48/n177 + n126*n48) + n111*n325*(pow(alpha, NP0*n0 - n15*n187)*n114*n15*n166/n177 + pow(alpha, n0*n25 - n15*n187)*n114*n15*n85/(n179*n84) - pow(alpha, n0*n25 - n15*n187)*n125*n85/(n179*n84) + n125*n64) + n111*n326*(pow(alpha, NP0*n0 - n17*n187)*n166*n80/n177 + n163)*(pow(alpha, NP0*n0 - n17*n187)*n166*n17*n48/n177 + n17*n48*n66) + n111*n327*(pow(alpha, NP0*n0 - n11*n187)*n11*n114*n166/n177 + pow(alpha, n0*n25 - n11*n187)*n11*n114*n85/(n179*n84) - pow(alpha, n0*n25 - n11*n187)*n139*n85/(n179*n84) + n139*n60) + n111*n329*(pow(alpha, NP0*n0 - n17*n187)*n114*n166*n17/n177 + pow(alpha, n0*n25 - n17*n187)*n114*n17*n85/(n179*n84) - pow(alpha, n0*n25 - n17*n187)*n30*n44*n85/(n179*n84) + n30*n44*n66) + n111*n330*(pow(alpha, NP0*n0 - n18*n187)*n114*n166*n18/n177 + pow(alpha, n0*n25 - n18*n187)*n114*n18*n85/(n179*n84) - pow(alpha, n0*n25 - n18*n187)*n30*n45*n85/(n179*n84) + n172) + n111*n99*xF[8]*(pow(alpha, NP0*n0 - n18*n187)*n1*n166*n18/n177 + n164)*(pow(alpha, NP0*n0 - n18*n187)*n166*n18*n48/n177 + n146*n48)/n300 + n111*n94*xF[3]*(pow(alpha, NP0*n0 - n13*n187)*n1*n13*n166/n177 + n159)*(pow(alpha, NP0*n0 - n13*n187)*n13*n166*n48/n177 + n121*n48)/n295 + n111*n82*xF[10]*(pow(alpha, NP0*n0 - n187*n4)*n1*n166*n4/n177 + n150)*(pow(alpha, NP0*n0 - n187*n4)*n166*n4*n48/n177 + n129*n48)/n286 + n120*n70*(pow(alpha, NP0*n0 - n10*n187)*n10*n166*n22*n30/n177 + pow(alpha, n0*n25 - n10*n187)*n10*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n10*n187)*n30*n37*n85/(n179*n84) + n106*n30*n37)/n275 + n130*n70*(pow(alpha, NP0*n0 - n16*n187)*n16*n166*n22*n30/n177 + pow(alpha, n0*n25 - n16*n187)*n16*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n16*n187)*n30*n43*n85/(n179*n84) + n110*n30*n43)/n281 + n131*n70*(pow(alpha, NP0*n0 - n187*n8)*n166*n22*n30*n8/n177 + pow(alpha, n0*n25 - n187*n8)*n145*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n8)*n22*n30*n8*n85/(n179*n84) + n105*n145)/n273 + n132*n70*(pow(alpha, NP0*n0 - n12*n187)*n12*n166*n22*n30/n177 + pow(alpha, n0*n25 - n12*n187)*n12*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n12*n187)*n137*n85/(n179*n84) + n107*n137)/n277 + n134*n70*(pow(alpha, NP0*n0 - n187*n7)*n166*n22*n30*n7/n177 + pow(alpha, n0*n25 - n187*n7)*n22*n30*n7*n85/(n179*n84) + pow(alpha, n0*n25 - n187*n7)*n30*n34*n85/(n179*n84) + n104*n30*n34)/n272 + n147*n70*(pow(alpha, NP0*n0 - n0*n187)*n144*(-n23 + xPj*xTj)/(n177*n51) + n102*n144)/n268 + n328*n70*(pow(alpha, NP0*n0 - n14*n187)*n14*n166*n22*n30/n177 + pow(alpha, n0*n25 - n14*n187)*n14*n22*n30*n85/(n179*n84) + pow(alpha, n0*n25 - n14*n187)*n30*n41*n85/(n179*n84) + n108*n30*n41) + n335 + n336 + n337 + n338 + n339 + n340 + n341 + n342 + n343 + n344 + n345 + n346 + n347 + n348 + n349 + n350 + n351 + n422 + n423 + n424 + n425 + n426 + n427 + n428 + n429 + n430 + n431 + n432 + n433 + n434 + n435 + n436 + n437 + n438)) - n334 - xTj*(n111*n120*n405 + n111*n122*n404 + n111*n123*n399 + n111*n127*n401 + n111*n130*n367/n281 + n111*n131*n403 + n111*n132*n400 + n111*n134*n402 + n111*n147*n354/n268 + n111*n311*n397 + n111*n312*n398 + n111*n322*n390 + n111*n325*n366 + n111*n327*n362 + n111*n328*n365 + n111*n329*n368 + n111*n330*n369 + n112*n70*n71/n237 + n113*n70*n80/n248 + n115*n70*n74/n250 + n126*n49*n70/n245 + n149*n304*n70 + n150*n305*n70 + n151*n303*n70 + n154*n70*xF[14]/n239 + n156*n308*n70 + n159*n310*n70 + n161*n70*xF[5]/n246 + n162*n309*n70 + n164*n307*n70 + n167*n70/n242 + n168*n70/n238 + n317*n70*n76 + n318*n70*n78), -n21);
26804  NP_sqrt_base = fabs(NP_sqrt_base);
26805  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
26806  NT1 = n116*(n180 - log(-pow(alpha, NP1*n0)*n166 + 1));
26807  g0 = MW[1] - Mstar;
26808  g1 = MW[0] - Mstar;
26809  g2 = NT1 + 1;
26810  g3 = xPj - xTj;
26811  g4 = MW[10] - Mstar;
26812  g5 = MW[11] - Mstar;
26813  g6 = MW[12] - Mstar;
26814  g7 = MW[13] - Mstar;
26815  g8 = MW[14] - Mstar;
26816  g9 = MW[15] - Mstar;
26817  g10 = MW[16] - Mstar;
26818  g11 = MW[2] - Mstar;
26819  g12 = MW[3] - Mstar;
26820  g13 = MW[4] - Mstar;
26821  g14 = MW[5] - Mstar;
26822  g15 = MW[6] - Mstar;
26823  g16 = MW[7] - Mstar;
26824  g17 = MW[8] - Mstar;
26825  g18 = MW[9] - Mstar;
26826  g19 = xF[0] - xTj;
26827  g20 = xF[0] - xPj;
26828  g21 = -xTj;
26829  g22 = xPj/xF[1];
26830  g23 = pow(alpha, -g1);
26831  g24 = pow(alpha, -g4);
26832  g25 = pow(alpha, -g5);
26833  g26 = pow(alpha, -g6);
26834  g27 = pow(alpha, -g7);
26835  g28 = pow(alpha, -g8);
26836  g29 = pow(alpha, -g9);
26837  g30 = pow(alpha, -g10);
26838  g31 = pow(alpha, -g0);
26839  g32 = pow(alpha, -g11);
26840  g33 = pow(alpha, -g12);
26841  g34 = pow(alpha, -g13);
26842  g35 = pow(alpha, -g14);
26843  g36 = pow(alpha, -g15);
26844  g37 = pow(alpha, -g16);
26845  g38 = pow(alpha, -g17);
26846  g39 = pow(alpha, -g18);
26847  g40 = log(xF[0]/xF[1]);
26848  g41 = -g2;
26849  g42 = pow(alpha, NP1*g0);
26850  g43 = pow(alpha, NP1*g1);
26851  g44 = pow(alpha, NP1*g4);
26852  g45 = log(g23);
26853  g46 = pow(alpha, NP1*g5);
26854  g47 = pow(alpha, NP1*g6);
26855  g48 = pow(alpha, NP1*g7);
26856  g49 = pow(alpha, NP1*g8);
26857  g50 = pow(alpha, NP1*g9);
26858  g51 = pow(alpha, NP1*g10);
26859  g52 = pow(alpha, NP1*g11);
26860  g53 = pow(alpha, NP1*g12);
26861  g54 = pow(alpha, NP1*g13);
26862  g55 = pow(alpha, NP1*g14);
26863  g56 = pow(alpha, NP1*g15);
26864  g57 = pow(alpha, NP1*g16);
26865  g58 = pow(alpha, NP1*g17);
26866  g59 = pow(alpha, NP1*g18);
26867  g60 = -g40;
26868  g61 = g19/g3;
26869  g62 = g3/g19;
26870  g63 = -g42 + 1;
26871  g64 = -g42 + 1;
26872  g65 = -g43 + 1;
26873  g66 = -g52 + 1;
26874  g67 = -g53 + 1;
26875  g68 = -g54 + 1;
26876  g69 = -g55 + 1;
26877  g70 = -g56 + 1;
26878  g71 = -g57 + 1;
26879  g72 = -g58 + 1;
26880  g73 = -g59 + 1;
26881  g74 = -g44 + 1;
26882  g75 = -g46 + 1;
26883  g76 = -g47 + 1;
26884  g77 = -g48 + 1;
26885  g78 = -g49 + 1;
26886  g79 = -g50 + 1;
26887  g80 = -g51 + 1;
26888  g81 = -g43;
26889  g82 = -g44;
26890  g83 = -g46;
26891  g84 = -g47;
26892  g85 = -g48;
26893  g86 = -g49;
26894  g87 = -g50;
26895  g88 = -g51;
26896  g89 = -g52;
26897  g90 = -g53;
26898  g91 = -g54;
26899  g92 = -g55;
26900  g93 = -g56;
26901  g94 = -g57;
26902  g95 = -g58;
26903  g96 = -g59;
26904  g97 = -1.0*g40;
26905  g98 = -g3/g20;
26906  g99 = g20/(g3*xF[1]);
26907  g100 = pow(alpha, g0*g41) - 1;
26908  g101 = pow(alpha, g0*g41) - 1;
26909  g102 = pow(alpha, g1*g41) - 1;
26910  g103 = pow(alpha, g11*g41) - 1;
26911  g104 = pow(alpha, g12*g41) - 1;
26912  g105 = pow(alpha, g13*g41) - 1;
26913  g106 = pow(alpha, g14*g41) - 1;
26914  g107 = pow(alpha, g15*g41) - 1;
26915  g108 = pow(alpha, g16*g41) - 1;
26916  g109 = pow(alpha, g17*g41) - 1;
26917  g110 = pow(alpha, g18*g41) - 1;
26918  g111 = pow(alpha, g4*g41) - 1;
26919  g112 = pow(alpha, g41*g5) - 1;
26920  g113 = pow(alpha, g41*g6) - 1;
26921  g114 = pow(alpha, g41*g7) - 1;
26922  g115 = pow(alpha, g41*g8) - 1;
26923  g116 = pow(alpha, g41*g9) - 1;
26924  g117 = pow(alpha, g10*g41) - 1;
26925  g118 = -pow(alpha, g1*g41);
26926  g119 = -pow(alpha, g4*g41);
26927  g120 = -pow(alpha, g41*g5);
26928  g121 = -pow(alpha, g41*g6);
26929  g122 = -pow(alpha, g41*g7);
26930  g123 = -pow(alpha, g41*g8);
26931  g124 = -pow(alpha, g41*g9);
26932  g125 = -pow(alpha, g10*g41);
26933  g126 = -pow(alpha, g11*g41);
26934  g127 = -pow(alpha, g12*g41);
26935  g128 = -pow(alpha, g13*g41);
26936  g129 = -pow(alpha, g14*g41);
26937  g130 = -pow(alpha, g15*g41);
26938  g131 = -pow(alpha, g16*g41);
26939  g132 = -pow(alpha, g17*g41);
26940  g133 = -pow(alpha, g18*g41);
26941  g134 = g101 + g64;
26942  g135 = -g118 - g43;
26943  g136 = -g119 - g44;
26944  g137 = -g120 - g46;
26945  g138 = -g121 - g47;
26946  g139 = -g122 - g48;
26947  g140 = -g123 - g49;
26948  g141 = -g124 - g50;
26949  g142 = -g125 - g51;
26950  g143 = -g126 - g52;
26951  g144 = -g127 - g53;
26952  g145 = -g128 - g54;
26953  g146 = -g129 - g55;
26954  g147 = -g130 - g56;
26955  g148 = -g131 - g57;
26956  g149 = -g132 - g58;
26957  g150 = -g133 - g59;
26958  g151 = pow(alpha, g1*g41) + g81;
26959  g152 = g101 + g64;
26960  g153 = pow(alpha, g4*g41) + g82;
26961  g154 = pow(alpha, g41*g5) + g83;
26962  g155 = pow(alpha, g41*g6) + g84;
26963  g156 = pow(alpha, g41*g7) + g85;
26964  g157 = pow(alpha, g41*g8) + g86;
26965  g158 = pow(alpha, g41*g9) + g87;
26966  g159 = pow(alpha, g10*g41) + g88;
26967  g160 = pow(alpha, g11*g41) + g89;
26968  g161 = pow(alpha, g12*g41) + g90;
26969  g162 = pow(alpha, g13*g41) + g91;
26970  g163 = pow(alpha, g14*g41) + g92;
26971  g164 = pow(alpha, g15*g41) + g93;
26972  g165 = pow(alpha, g16*g41) + g94;
26973  g166 = pow(alpha, g17*g41) + g95;
26974  g167 = pow(alpha, g18*g41) + g96;
26975  g168 = xF[9]/g167;
26976  g169 = xF[8]/g166;
26977  g170 = xF[1]/g152;
26978  g171 = xF[10]/g153;
26979  g172 = xF[15]/g158;
26980  g173 = xF[3]/g161;
26981  g174 = xF[16]/g159;
26982  g175 = xF[7]/g165;
26983  g176 = xF[4]/g162;
26984  g177 = xF[12]/g155;
26985  g178 = xF[13]/g156;
26986  g179 = xF[11]/g154;
26987  g180 = xF[6]/g164;
26988  g181 = xF[14]/g157;
26989  g182 = xF[5]/g163;
26990  g183 = xF[2]/g160;
26991  g184 = xF[0]/g151;
26992  g185 = xF[0]/g135;
26993  g186 = xF[15]/g141;
26994  g187 = xF[4]/g145;
26995  g188 = xF[7]/g148;
26996  g189 = xF[2]/g143;
26997  g190 = xF[11]/g137;
26998  g191 = xF[1]/g134;
26999  g192 = xF[13]/g139;
27000  g193 = xF[16]/g142;
27001  g194 = xF[3]/g144;
27002  g195 = xF[6]/g147;
27003  g196 = xF[14]/g140;
27004  g197 = xF[8]/g149;
27005  g198 = xF[12]/g138;
27006  g199 = xF[10]/g136;
27007  g200 = xF[9]/g150;
27008  g201 = xF[5]/g146;
27009  g202 = g76/g138;
27010  g203 = g73/g150;
27011  g204 = g79/g141;
27012  g205 = g68/g145;
27013  g206 = g71/g148;
27014  g207 = g66/g143;
27015  g208 = g65/g135;
27016  g209 = g69/g146;
27017  g210 = g70/g147;
27018  g211 = g77/g139;
27019  g212 = g67/g144;
27020  g213 = g80/g142;
27021  g214 = g75/g137;
27022  g215 = g78/g140;
27023  g216 = g74/g136;
27024  g217 = g72/g149;
27025  g218 = g63/g134;
27026  g219 = g102/g135;
27027  g220 = g116/g141;
27028  g221 = g112/g137;
27029  g222 = g103/g143;
27030  g223 = g104/g144;
27031  g224 = g105/g145;
27032  g225 = g100/g134;
27033  g226 = g109/g149;
27034  g227 = g110/g150;
27035  g228 = g117/g142;
27036  g229 = g107/g147;
27037  g230 = g115/g140;
27038  g231 = g113/g138;
27039  g232 = g114/g139;
27040  g233 = g108/g148;
27041  g234 = g111/g136;
27042  g235 = g106/g146;
27043  g236 = log(g152*g21*g99/g64);
27044  g237 = log(g134*g21*g99/g63);
27045  g238 = log(g152*g22*g61/g101);
27046  g239 = 1.0*g236;
27047  g240 = log(g134*g22*g61/g100);
27048  g241 = 1.0*g238;
27049  g242 = -g101*g170*g241 - g168*g239*(g96 + 1) - g168*g241*(pow(alpha, g18*g41) - 1) - g169*g239*(g95 + 1) - g169*g241*(pow(alpha, g17*g41) - 1) - g170*g239*g64 - g171*g239*(g82 + 1) - g171*g241*(pow(alpha, g4*g41) - 1) - g172*g239*(g87 + 1) - g172*g241*(pow(alpha, g41*g9) - 1) - g173*g239*(g90 + 1) - g173*g241*(pow(alpha, g12*g41) - 1) - g174*g239*(g88 + 1) - g174*g241*(pow(alpha, g10*g41) - 1) - g175*g239*(g94 + 1) - g175*g241*(pow(alpha, g16*g41) - 1) - g176*g239*(g91 + 1) - g176*g241*(pow(alpha, g13*g41) - 1) - g177*g239*(g84 + 1) - g177*g241*(pow(alpha, g41*g6) - 1) - g178*g239*(g85 + 1) - g178*g241*(pow(alpha, g41*g7) - 1) - g179*g239*(g83 + 1) - g179*g241*(pow(alpha, g41*g5) - 1) - g180*g239*(g93 + 1) - g180*g241*(pow(alpha, g15*g41) - 1) - g181*g239*(g86 + 1) - g181*g241*(pow(alpha, g41*g8) - 1) - g182*g239*(g92 + 1) - g182*g241*(pow(alpha, g14*g41) - 1) - g183*g239*(g89 + 1) - g183*g241*(pow(alpha, g11*g41) - 1) - g184*g239*(g81 + 1) - g184*g241*(pow(alpha, g1*g41) - 1) - g97*xF[0] - g97*xF[10] - g97*xF[11] - g97*xF[12] - g97*xF[13] - g97*xF[14] - g97*xF[15] - g97*xF[16] - g97*xF[1] - g97*xF[2] - g97*xF[3] - g97*xF[4] - g97*xF[5] - g97*xF[6] - g97*xF[7] - g97*xF[8] - g97*xF[9];
27050  LpF = xF[0]*(g23 + 1.0)*(g208*g237 + g219*g240 + g60)/(g45*(g23 - 1.0)) + xF[10]*(g24 + 1.0)*(g216*g237 + g234*g240 + g60)/(g45*(g24 - 1.0)) + xF[11]*(g25 + 1.0)*(g214*g237 + g221*g240 + g60)/(g45*(g25 - 1.0)) + xF[12]*(g26 + 1.0)*(g202*g237 + g231*g240 + g60)/(g45*(g26 - 1.0)) + xF[13]*(g27 + 1.0)*(g211*g237 + g232*g240 + g60)/(g45*(g27 - 1.0)) + xF[14]*(g28 + 1.0)*(g215*g237 + g230*g240 + g60)/(g45*(g28 - 1.0)) + xF[15]*(g29 + 1.0)*(g204*g237 + g220*g240 + g60)/(g45*(g29 - 1.0)) + xF[16]*(g30 + 1.0)*(g213*g237 + g228*g240 + g60)/(g45*(g30 - 1.0)) + xF[1]*(g31 + 1.0)*(g218*g237 + g225*g240 + g60)/(g45*(g31 - 1.0)) + xF[2]*(g32 + 1.0)*(g207*g237 + g222*g240 + g60)/(g45*(g32 - 1.0)) + xF[3]*(g33 + 1.0)*(g212*g237 + g223*g240 + g60)/(g45*(g33 - 1.0)) + xF[4]*(g34 + 1.0)*(g205*g237 + g224*g240 + g60)/(g45*(g34 - 1.0)) + xF[5]*(g35 + 1.0)*(g209*g237 + g235*g240 + g60)/(g45*(g35 - 1.0)) + xF[6]*(g36 + 1.0)*(g210*g237 + g229*g240 + g60)/(g45*(g36 - 1.0)) + xF[7]*(g37 + 1.0)*(g206*g237 + g233*g240 + g60)/(g45*(g37 - 1.0)) + xF[8]*(g38 + 1.0)*(g217*g237 + g226*g240 + g60)/(g45*(g38 - 1.0)) + xF[9]*(g39 + 1.0)*(g203*g237 + g227*g240 + g60)/(g45*(g39 - 1.0));
27051  PpF = g61;
27052  TpF = -g20/g3;
27053  SWUpF = g242;
27054  SWUpP = g242*g62;
27055  xP[0] = g102*g185*g62;
27056  xP[1] = g100*g191*g62;
27057  xP[2] = g103*g189*g62;
27058  xP[3] = g104*g194*g62;
27059  xP[4] = g105*g187*g62;
27060  xP[5] = g106*g201*g62;
27061  xP[6] = g107*g195*g62;
27062  xP[7] = g108*g188*g62;
27063  xP[8] = g109*g197*g62;
27064  xP[9] = g110*g200*g62;
27065  xP[10] = g111*g199*g62;
27066  xP[11] = g112*g190*g62;
27067  xP[12] = g113*g198*g62;
27068  xP[13] = g114*g192*g62;
27069  xP[14] = g115*g196*g62;
27070  xP[15] = g116*g186*g62;
27071  xP[16] = g117*g193*g62;
27072  xT[0] = g185*g65*g98;
27073  xT[1] = g191*g63*g98;
27074  xT[2] = g189*g66*g98;
27075  xT[3] = g194*g67*g98;
27076  xT[4] = g187*g68*g98;
27077  xT[5] = g201*g69*g98;
27078  xT[6] = g195*g70*g98;
27079  xT[7] = g188*g71*g98;
27080  xT[8] = g197*g72*g98;
27081  xT[9] = g200*g73*g98;
27082  xT[10] = g199*g74*g98;
27083  xT[11] = g190*g75*g98;
27084  xT[12] = g198*g76*g98;
27085  xT[13] = g192*g77*g98;
27086  xT[14] = g196*g78*g98;
27087  xT[15] = g186*g79*g98;
27088  xT[16] = g193*g80*g98;
27089  break;
27090  case 18:
27091  n0 = -2.00000000000000;
27092  n1 = MW[0] - Mstar;
27093  n2 = log(alpha);
27094  n3 = xPj - xTj;
27095  n4 = xF[0] - xPj;
27096  n5 = MW[10] - Mstar;
27097  n6 = MW[11] - Mstar;
27098  n7 = MW[12] - Mstar;
27099  n8 = MW[13] - Mstar;
27100  n9 = MW[14] - Mstar;
27101  n10 = MW[15] - Mstar;
27102  n11 = MW[16] - Mstar;
27103  n12 = MW[17] - Mstar;
27104  n13 = MW[1] - Mstar;
27105  n14 = MW[2] - Mstar;
27106  n15 = MW[3] - Mstar;
27107  n16 = MW[4] - Mstar;
27108  n17 = MW[5] - Mstar;
27109  n18 = MW[6] - Mstar;
27110  n19 = MW[7] - Mstar;
27111  n20 = MW[8] - Mstar;
27112  n21 = MW[9] - Mstar;
27113  n22 = log(xTj);
27114  n23 = -n1;
27115  n24 = -2;
27116  n25 = xF[0]*xPj;
27117  n26 = -Mstar;
27118  n27 = -xTj;
27119  n28 = -xPj;
27120  n29 = -NP0*n0;
27121  n30 = pow(n1, -n0);
27122  n31 = pow(n2, -n0);
27123  n32 = pow(n5, -n0);
27124  n33 = pow(n6, -n0);
27125  n34 = pow(n7, -n0);
27126  n35 = pow(n8, -n0);
27127  n36 = pow(n9, -n0);
27128  n37 = pow(n10, -n0);
27129  n38 = pow(n11, -n0);
27130  n39 = pow(n12, -n0);
27131  n40 = pow(n13, -n0);
27132  n41 = pow(n14, -n0);
27133  n42 = pow(n15, -n0);
27134  n43 = pow(n16, -n0);
27135  n44 = pow(n17, -n0);
27136  n45 = pow(n18, -n0);
27137  n46 = pow(n19, -n0);
27138  n47 = pow(n20, -n0);
27139  n48 = pow(n21, -n0);
27140  n49 = Mstar*n2;
27141  n50 = -n0*n2;
27142  n51 = NP0*n1;
27143  n52 = -n2;
27144  n53 = pow(alpha, n51);
27145  n54 = n25 + n27*xF[0];
27146  n55 = n25 + n27*xPj;
27147  n56 = pow(alpha, NP0*n5);
27148  n57 = pow(alpha, NP0*n6);
27149  n58 = pow(alpha, NP0*n7);
27150  n59 = pow(alpha, NP0*n8);
27151  n60 = pow(alpha, NP0*n9);
27152  n61 = pow(alpha, NP0*n10);
27153  n62 = pow(alpha, NP0*n11);
27154  n63 = pow(alpha, NP0*n12);
27155  n64 = pow(alpha, NP0*n13);
27156  n65 = pow(alpha, NP0*n14);
27157  n66 = pow(alpha, NP0*n15);
27158  n67 = pow(alpha, NP0*n16);
27159  n68 = pow(alpha, NP0*n17);
27160  n69 = pow(alpha, NP0*n18);
27161  n70 = pow(alpha, NP0*n19);
27162  n71 = pow(alpha, NP0*n20);
27163  n72 = pow(alpha, NP0*n21);
27164  n73 = MW[0]*n52;
27165  n74 = n3/n4;
27166  n75 = n17*n2;
27167  n76 = n2*n7;
27168  n77 = n13*n2;
27169  n78 = n2*n21;
27170  n79 = n2*n8;
27171  n80 = n14*n2;
27172  n81 = n10*n2;
27173  n82 = n19*n2;
27174  n83 = -n53 + 1;
27175  n84 = -n56 + 1;
27176  n85 = pow(alpha, NP0*n0*n23);
27177  n86 = pow(n55, -n0);
27178  n87 = -n57 + 1;
27179  n88 = -n58 + 1;
27180  n89 = -n59 + 1;
27181  n90 = -n60 + 1;
27182  n91 = -n61 + 1;
27183  n92 = -n62 + 1;
27184  n93 = -n63 + 1;
27185  n94 = -n64 + 1;
27186  n95 = -n65 + 1;
27187  n96 = -n66 + 1;
27188  n97 = -n67 + 1;
27189  n98 = -n68 + 1;
27190  n99 = -n69 + 1;
27191  n100 = -n70 + 1;
27192  n101 = -n71 + 1;
27193  n102 = -n72 + 1;
27194  n103 = -n96;
27195  n104 = -n88;
27196  n105 = -n99;
27197  n106 = -n93;
27198  n107 = -n84;
27199  n108 = -n83;
27200  n109 = -n87;
27201  n110 = -n53;
27202  n111 = -n58;
27203  n112 = -n59;
27204  n113 = -n60;
27205  n114 = -n62;
27206  n115 = -n65;
27207  n116 = -n67;
27208  n117 = -n68;
27209  n118 = -n69;
27210  n119 = n1*n31;
27211  n120 = 1/(n1*n2);
27212  n121 = n92*xF[16];
27213  n122 = n31*n40;
27214  n123 = n18*n69;
27215  n124 = n15*n66;
27216  n125 = n1*n53;
27217  n126 = n31*n44;
27218  n127 = n16*n67;
27219  n128 = n12*n63;
27220  n129 = n60*n9;
27221  n130 = n5*n56;
27222  n131 = n31*n46;
27223  n132 = n90*xF[14];
27224  n133 = n95*xF[2];
27225  n134 = n31*n35;
27226  n135 = n31*n37;
27227  n136 = n31*n41;
27228  n137 = n11*n62;
27229  n138 = n98*xF[5];
27230  n139 = n13*n64;
27231  n140 = n59*n8;
27232  n141 = n19*n70;
27233  n142 = n30*n31;
27234  n143 = n31*n36;
27235  n144 = n10*n61;
27236  n145 = n20*n71;
27237  n146 = n83*xF[0];
27238  n147 = log((-1.0 + xPj/xF[0])/n3);
27239  n148 = -n91*xF[15];
27240  n149 = -n102*xF[9];
27241  n150 = n21*n72*xF[9];
27242  n151 = -n89*xF[13];
27243  n152 = n2*n57*n6;
27244  n153 = n145*n2;
27245  n154 = n55/n54;
27246  n155 = n31*n39*n63;
27247  n156 = n142*n53;
27248  n157 = n31*n33*n57;
27249  n158 = n31*n47*n71;
27250  n159 = n31*n38*n62;
27251  n160 = n31*n34*n58;
27252  n161 = n31*n32*n56;
27253  n162 = n31*n42*n66;
27254  n163 = n110*n154 + 1;
27255  n164 = n147 + n22 + n49 + n73;
27256  n165 = n154*n53/n163;
27257  n166 = n120*(n164 - log(n163)) + 1;
27258  n167 = pow(alpha, n1*n166);
27259  n168 = pow(alpha, n166*n5);
27260  n169 = pow(alpha, n166*n6);
27261  n170 = pow(alpha, n166*n7);
27262  n171 = pow(alpha, n166*n8);
27263  n172 = pow(alpha, n166*n9);
27264  n173 = pow(alpha, n10*n166);
27265  n174 = pow(alpha, n11*n166);
27266  n175 = pow(alpha, n12*n166);
27267  n176 = pow(alpha, n13*n166);
27268  n177 = pow(alpha, n14*n166);
27269  n178 = pow(alpha, n15*n166);
27270  n179 = pow(alpha, n16*n166);
27271  n180 = pow(alpha, n166*n17);
27272  n181 = pow(alpha, n166*n18);
27273  n182 = pow(alpha, n166*n19);
27274  n183 = pow(alpha, n166*n20);
27275  n184 = pow(alpha, n166*n21);
27276  n185 = n16/n179;
27277  n186 = n19/n182;
27278  n187 = n8/n171;
27279  n188 = n12/n175;
27280  n189 = n15/n178;
27281  n190 = n18/n181;
27282  n191 = n9/n172;
27283  n192 = n20/n183;
27284  n193 = n6/n169;
27285  n194 = n13/n176;
27286  n195 = n14/n177;
27287  n196 = -1/n167;
27288  n197 = n10/n173;
27289  n198 = n7/n170;
27290  n199 = n21/n184;
27291  n200 = n5/n168;
27292  n201 = n11/n174;
27293  n202 = n17/n180;
27294  n203 = pow(alpha, n166*n23) + n83 - 1;
27295  n204 = n84 - 1 + 1.0/n168;
27296  n205 = n87 - 1 + 1.0/n169;
27297  n206 = n88 - 1 + 1.0/n170;
27298  n207 = n89 - 1 + 1.0/n171;
27299  n208 = n90 - 1 + 1.0/n172;
27300  n209 = n91 - 1 + 1.0/n173;
27301  n210 = n92 - 1 + 1.0/n174;
27302  n211 = n93 - 1 + 1.0/n175;
27303  n212 = n94 - 1 + 1.0/n176;
27304  n213 = n95 - 1 + 1.0/n177;
27305  n214 = n96 - 1 + 1.0/n178;
27306  n215 = n97 - 1 + 1.0/n179;
27307  n216 = n98 - 1 + 1.0/n180;
27308  n217 = n99 - 1 + 1.0/n181;
27309  n218 = n100 - 1 + 1.0/n182;
27310  n219 = n101 - 1 + 1.0/n183;
27311  n220 = n102 - 1 + 1.0/n184;
27312  n221 = pow(n203, 3);
27313  n222 = pow(n204, 3);
27314  n223 = pow(n205, 3);
27315  n224 = pow(n206, 3);
27316  n225 = pow(n207, 3);
27317  n226 = pow(n208, 3);
27318  n227 = pow(n209, 3);
27319  n228 = pow(n210, 3);
27320  n229 = pow(n211, 3);
27321  n230 = pow(n212, 3);
27322  n231 = pow(n213, 3);
27323  n232 = pow(n214, 3);
27324  n233 = pow(n215, 3);
27325  n234 = pow(n216, 3);
27326  n235 = pow(n217, 3);
27327  n236 = pow(n218, 3);
27328  n237 = pow(n219, 3);
27329  n238 = pow(n220, 3);
27330  n239 = xF[11]/n205;
27331  n240 = xF[12]/n206;
27332  n241 = xF[17]/n211;
27333  n242 = xF[0]/n203;
27334  n243 = xF[10]/n204;
27335  n244 = xF[9]/n220;
27336  n245 = xF[8]/n219;
27337  n246 = xF[16]/n210;
27338  n247 = xF[3]/n214;
27339  n248 = pow(n214, n24)*xF[3];
27340  n249 = xF[6]/n235;
27341  n250 = pow(n211, n24)*xF[17];
27342  n251 = pow(n204, n24)*xF[10];
27343  n252 = xF[17]/n229;
27344  n253 = pow(n203, n24)*xF[0];
27345  n254 = xF[12]/n224;
27346  n255 = xF[10]/n222;
27347  n256 = n2*xF[14]/n208;
27348  n257 = n2*xF[4]/n215;
27349  n258 = n2*n247;
27350  n259 = n2*pow(n203, n24);
27351  n260 = n2*xF[6]/n217;
27352  n261 = n64*xF[1]/n212;
27353  n262 = n68*xF[5]/n216;
27354  n263 = n70*xF[7]/n218;
27355  n264 = n59*xF[13]/n207;
27356  n265 = n65*xF[2]/n213;
27357  n266 = n61*xF[15]/n209;
27358  n267 = n60*xF[14]/n208;
27359  n268 = n94/n230;
27360  n269 = pow(n215, n24)*n97*xF[4];
27361  n270 = n97*xF[4]/n233;
27362  n271 = -n138*pow(n216, n24);
27363  n272 = -n100*xF[7]/n236;
27364  n273 = -pow(n212, n24)*n94*xF[1];
27365  n274 = -n100*pow(n218, n24)*xF[7];
27366  n275 = -n101*pow(n219, n24)*xF[8];
27367  n276 = n244*n31*n48*n72;
27368  n277 = n31*n43*n67*xF[4]/n215;
27369  n278 = n31*n45*n69*xF[6]/n217;
27370  n279 = n2*n23*n242*n53*n74;
27371  n280 = n156*n242*n74;
27372  n281 = n161*n243*n74;
27373  n282 = n157*n239*n74;
27374  n283 = n160*n240*n74;
27375  n284 = n134*n264*n74;
27376  n285 = n143*n267*n74;
27377  n286 = n135*n266*n74;
27378  n287 = n159*n246*n74;
27379  n288 = n155*n241*n74;
27380  n289 = n122*n261*n74;
27381  n290 = n136*n265*n74;
27382  n291 = n162*n247*n74;
27383  n292 = n277*n74;
27384  n293 = n126*n262*n74;
27385  n294 = n278*n74;
27386  n295 = n131*n263*n74;
27387  n296 = n158*n245*n74;
27388  n297 = n276*n74;
27389  n298 = 0.5*n280;
27390  n299 = n154/(n163*n167);
27391  n300 = n299 + 1;
27392  n301 = n125*n2*n299 + n125*n2;
27393  n302 = n130*n2 + n165*n2*n200;
27394  n303 = n152 + n165*n193*n2;
27395  n304 = n165*n76/n170 + n58*n76;
27396  n305 = n165*n79/n171 + n59*n79;
27397  n306 = n129*n2 + n165*n191*n2;
27398  n307 = n165*n81/n173 + n61*n81;
27399  n308 = n137*n2 + n165*n2*n201;
27400  n309 = n128*n2 + n165*n188*n2;
27401  n310 = n165*n77/n176 + n64*n77;
27402  n311 = n165*n80/n177 + n65*n80;
27403  n312 = n124*n2 + n165*n189*n2;
27404  n313 = n127*n2 + n165*n185*n2;
27405  n314 = n165*n75/n180 + n68*n75;
27406  n315 = n123*n2 + n165*n190*n2;
27407  n316 = n165*n82/n182 + n70*n82;
27408  n317 = n153 + n165*n192*n2;
27409  n318 = n165*n78/n184 + n72*n78;
27410  n319 = pow(n301, -n0);
27411  n320 = pow(n302, -n0);
27412  n321 = pow(n303, -n0);
27413  n322 = pow(n304, -n0);
27414  n323 = pow(n305, -n0);
27415  n324 = pow(n306, -n0);
27416  n325 = pow(n307, -n0);
27417  n326 = pow(n308, -n0);
27418  n327 = pow(n309, -n0);
27419  n328 = pow(n310, -n0);
27420  n329 = pow(n311, -n0);
27421  n330 = pow(n312, -n0);
27422  n331 = pow(n313, -n0);
27423  n332 = pow(n314, -n0);
27424  n333 = pow(n315, -n0);
27425  n334 = pow(n316, -n0);
27426  n335 = pow(n317, -n0);
27427  n336 = pow(n318, -n0);
27428  n337 = n301*xF[0];
27429  n338 = n303*xF[11];
27430  n339 = n310*xF[1];
27431  n340 = n317*xF[8];
27432  n341 = n0*n165*n2*n23/n167 + n0*n2*n23*n53;
27433  n342 = n328*xF[1];
27434  n343 = n110*n142*n299 + n110*n142;
27435  n344 = pow(n220, n24)*n318;
27436  n345 = pow(n207, n24)*n305;
27437  n346 = pow(n208, n24)*n306;
27438  n347 = pow(n209, n24)*n307;
27439  n348 = pow(n206, n24)*n304*xF[12];
27440  n349 = pow(n217, n24)*n315*xF[6];
27441  n350 = n324/n226;
27442  n351 = n329/n231;
27443  n352 = n332/n234;
27444  n353 = n326/n228;
27445  n354 = n341/n221;
27446  n355 = n101*n335*xF[8]/n237;
27447  n356 = n321*n87*xF[11]/n223;
27448  n357 = n146*pow(n203, n24)*n301*n74;
27449  n358 = n0*n2*n23*n253*n53*n74*(pow(alpha, n166*n23 + n51)*n1*n154*n2/n163 + n125*n2);
27450  n359 = n130*n251*n50*n74*(pow(alpha, -n166*n5 + n51)*n154*n2*n5/n163 + n130*n2);
27451  n360 = pow(n205, n24)*n50*n57*n6*n74*xF[11]*(pow(alpha, -n166*n6 + n51)*n154*n2*n6/n163 + n152);
27452  n361 = pow(n206, n24)*n50*n58*n7*n74*xF[12]*(pow(alpha, -n166*n7 + n51)*n154*n76/n163 + n58*n76);
27453  n362 = n140*pow(n207, n24)*n50*n74*xF[13]*(pow(alpha, -n166*n8 + n51)*n154*n79/n163 + n59*n79);
27454  n363 = n129*pow(n208, n24)*n50*n74*xF[14]*(pow(alpha, -n166*n9 + n51)*n154*n2*n9/n163 + n129*n2);
27455  n364 = n144*pow(n209, n24)*n50*n74*xF[15]*(pow(alpha, -n10*n166 + n51)*n154*n81/n163 + n61*n81);
27456  n365 = n137*pow(n210, n24)*n50*n74*xF[16]*(pow(alpha, -n11*n166 + n51)*n11*n154*n2/n163 + n137*n2);
27457  n366 = n128*n250*n50*n74*(pow(alpha, -n12*n166 + n51)*n12*n154*n2/n163 + n128*n2);
27458  n367 = n139*pow(n212, n24)*n50*n74*xF[1]*(pow(alpha, -n13*n166 + n51)*n154*n77/n163 + n64*n77);
27459  n368 = n14*pow(n213, n24)*n50*n65*n74*xF[2]*(pow(alpha, -n14*n166 + n51)*n154*n80/n163 + n65*n80);
27460  n369 = n124*n248*n50*n74*(pow(alpha, -n15*n166 + n51)*n15*n154*n2/n163 + n124*n2);
27461  n370 = n127*pow(n215, n24)*n50*n74*xF[4]*(pow(alpha, -n16*n166 + n51)*n154*n16*n2/n163 + n127*n2);
27462  n371 = n17*pow(n216, n24)*n50*n68*n74*xF[5]*(pow(alpha, -n166*n17 + n51)*n154*n75/n163 + n68*n75);
27463  n372 = n123*pow(n217, n24)*n50*n74*xF[6]*(pow(alpha, -n166*n18 + n51)*n154*n18*n2/n163 + n123*n2);
27464  n373 = n141*pow(n218, n24)*n50*n74*xF[7]*(pow(alpha, -n166*n19 + n51)*n154*n82/n163 + n70*n82);
27465  n374 = n145*pow(n219, n24)*n50*n74*xF[8]*(pow(alpha, -n166*n20 + n51)*n154*n2*n20/n163 + n153);
27466  n375 = n150*pow(n220, n24)*n50*n74*(pow(alpha, -n166*n21 + n51)*n154*n78/n163 + n72*n78);
27467  n376 = 1.0*n125*n2*n253*n301*n74;
27468  n377 = n146*pow(n203, n24)*n343*n74;
27469  n378 = 0.5*n377;
27470  n379 = pow(alpha, n1*n29)*n119*pow(n163, n24)*n193*pow(n54, n24)*n86 - pow(alpha, n1*n29)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86/n169 + n119*n165*n193 + n157;
27471  n380 = pow(alpha, n1*n29)*n119*pow(n163, n24)*n198*pow(n54, n24)*n86 - pow(alpha, n1*n29)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86/n170 + n119*n165*n198 + n160;
27472  n381 = pow(alpha, n1*n29)*n134*pow(n163, n24)*pow(n54, n24)*n86/n171 + pow(alpha, n1*n29)*pow(n163, n24)*n187*n23*n31*pow(n54, n24)*n86 + n112*n134 + n165*n187*n23*n31;
27473  n382 = pow(alpha, n1*n29)*n143*pow(n163, n24)*pow(n54, n24)*n86/n172 + pow(alpha, n1*n29)*pow(n163, n24)*n191*n23*n31*pow(n54, n24)*n86 + n113*n143 + n165*n191*n23*n31;
27474  n383 = pow(alpha, n1*n29)*n119*pow(n163, n24)*n197*pow(n54, n24)*n86 - pow(alpha, n1*n29)*n135*pow(n163, n24)*pow(n54, n24)*n86/n173 + n119*n165*n197 + n135*n61;
27475  n384 = pow(alpha, n1*n29)*pow(n163, n24)*n201*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86/n174 + n114*n31*n38 + n165*n201*n23*n31;
27476  n385 = pow(alpha, n1*n29)*n136*pow(n163, n24)*pow(n54, n24)*n86/n177 + pow(alpha, n1*n29)*pow(n163, n24)*n195*n23*n31*pow(n54, n24)*n86 + n115*n136 + n165*n195*n23*n31;
27477  n386 = pow(alpha, n1*n29)*pow(n163, n24)*n190*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86/n181 + n118*n31*n45 + n165*n190*n23*n31;
27478  n387 = pow(alpha, n1*n29)*n119*pow(n163, n24)*n199*pow(n54, n24)*n86 - pow(alpha, n1*n29)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86/n184 + n119*n165*n199 + n31*n48*n72;
27479  n388 = pow(n207, n24)*n74*n89*xF[13]*(pow(alpha, n1*n29 - n166*n8)*n134*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n8)*pow(n163, n24)*n23*n31*pow(n54, n24)*n8*n86 + n112*n134 + n165*n187*n23*n31);
27480  n389 = n132*pow(n208, n24)*n74*(pow(alpha, n1*n29 - n166*n9)*n143*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n9)*pow(n163, n24)*n23*n31*pow(n54, n24)*n86*n9 + n113*n143 + n165*n191*n23*n31);
27481  n390 = n121*pow(n210, n24)*n74*(pow(alpha, n1*n29 - n11*n166)*n11*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n11*n166)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86 + n114*n31*n38 + n165*n201*n23*n31);
27482  n391 = n133*pow(n213, n24)*n74*(pow(alpha, n1*n29 - n14*n166)*n136*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n14*n166)*n14*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + n115*n136 + n165*n195*n23*n31);
27483  n392 = n269*n74*(pow(alpha, n1*n29 - n16*n166)*n16*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n16*n166)*pow(n163, n24)*n31*n43*pow(n54, n24)*n86 + n116*n31*n43 + n165*n185*n23*n31);
27484  n393 = pow(n217, n24)*n74*n99*xF[6]*(pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n18*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86 + n118*n31*n45 + n165*n190*n23*n31);
27485  n394 = n107*n251*n74*(pow(alpha, n1*n29 - n166*n5)*n119*pow(n163, n24)*n5*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n5)*pow(n163, n24)*n31*n32*pow(n54, n24)*n86 + n119*n165*n200 + n161);
27486  n395 = n109*pow(n205, n24)*n74*xF[11]*(pow(alpha, n1*n29 - n166*n6)*n119*pow(n163, n24)*pow(n54, n24)*n6*n86 - pow(alpha, n1*n29 - n166*n6)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86 + n119*n165*n193 + n157);
27487  n396 = n104*pow(n206, n24)*n74*xF[12]*(pow(alpha, n1*n29 - n166*n7)*n119*pow(n163, n24)*pow(n54, n24)*n7*n86 - pow(alpha, n1*n29 - n166*n7)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86 + n119*n165*n198 + n160);
27488  n397 = n148*pow(n209, n24)*n74*(pow(alpha, n1*n29 - n10*n166)*n10*n119*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n10*n166)*n135*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n197 + n135*n61);
27489  n398 = n106*n250*n74*(pow(alpha, n1*n29 - n12*n166)*n119*n12*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n12*n166)*pow(n163, n24)*n31*n39*pow(n54, n24)*n86 + n119*n165*n188 + n155);
27490  n399 = n273*n74*(pow(alpha, n1*n29 - n13*n166)*n119*n13*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n13*n166)*n122*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n194 + n122*n64);
27491  n400 = n103*n248*n74*(pow(alpha, n1*n29 - n15*n166)*n119*n15*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n15*n166)*pow(n163, n24)*n31*n42*pow(n54, n24)*n86 + n119*n165*n189 + n162);
27492  n401 = n271*n74*(pow(alpha, n1*n29 - n166*n17)*n119*pow(n163, n24)*n17*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n17)*n126*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n202 + n126*n68);
27493  n402 = n274*n74*(pow(alpha, n1*n29 - n166*n19)*n119*pow(n163, n24)*n19*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n19)*n131*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n186 + n131*n70);
27494  n403 = n275*n74*(pow(alpha, n1*n29 - n166*n20)*n119*pow(n163, n24)*n20*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n20)*pow(n163, n24)*n31*n47*pow(n54, n24)*n86 + n119*n165*n192 + n158);
27495  n404 = n149*pow(n220, n24)*n74*(pow(alpha, n1*n29 - n166*n21)*n119*pow(n163, n24)*n21*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n21)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86 + n119*n165*n199 + n31*n48*n72);
27496  n405 = xTj*(n103*n248*n312*n74 + n104*n348*n74 + n105*n349*n74 + n106*n250*n309*n74 + n107*n251*n302*n74 + n108*n253*n301*n74 + n109*pow(n205, n24)*n338*n74 - n121*pow(n210, n24)*n308*n74 + n123*n260*n74 + n124*n258*n74 + n125*n2*n242*n74 + n127*n257*n74 + n128*n2*n241*n74 + n129*n256*n74 + n130*n2*n243*n74 - n132*n346*n74 - n133*pow(n213, n24)*n311*n74 + n137*n2*n246*n74 + n148*n347*n74 + n149*n344*n74 + n151*n345*n74 + n152*n239*n74 + n153*n245*n74 + n240*n58*n74*n76 + n244*n72*n74*n78 + n261*n74*n77 + n262*n74*n75 + n263*n74*n82 + n264*n74*n79 + n265*n74*n80 + n266*n74*n81 - n269*n313*n74 + n271*n314*n74 + n273*n310*n74 + n274*n316*n74 + n275*n317*n74);
27497  n406 = n279 + n357 + n405;
27498  n407 = n280 + n281 + n282 + n283 + n284 + n285 + n286 + n287 + n288 + n289 + n290 + n291 + n292 + n293 + n294 + n295 + n296 + n297 + n358 + n359 + n360 + n361 + n362 + n363 + n364 + n365 + n366 + n367 + n368 + n369 + n370 + n371 + n372 + n373 + n374 + n375 + n377 + n388 + n389 + n390 + n391 + n392 + n393 + n394 + n395 + n396 + n397 + n398 + n399 + n400 + n401 + n402 + n403 + n404;
27499  n408 = -n101*n340*n74*(n145*n50 + n165*n192*n50)/n237 + n103*n312*n74*xF[3]*(n124*n50 + n165*n189*n50)/n232 + n104*n254*n304*n74*(n165*n198*n50 + n50*n58*n7) + n105*n249*n315*n74*(n123*n50 + n165*n190*n50) + n106*n252*n309*n74*(n128*n50 + n165*n188*n50) + n107*n255*n302*n74*(n130*n50 + n165*n200*n50) + n108*n337*n354*n74 + n109*n338*n74*(n165*n193*n50 + n50*n57*n6)/n223 - n121*n308*n74*(n137*n50 + n165*n201*n50)/n228 - n132*n306*n74*(n129*n50 + n165*n191*n50)/n226 - n133*n311*n74*(n14*n50*n65 + n165*n195*n50)/n231 - n138*n314*n74*(n165*n202*n50 + n17*n50*n68)/n234 + n148*n307*n74*(n144*n50 + n165*n197*n50)/n227 + n149*n318*n74*(n165*n199*n50 + n21*n50*n72)/n238 + n151*n305*n74*(n140*n50 + n165*n187*n50)/n225 - n268*n339*n74*(n139*n50 + n165*n194*n50) - n270*n313*n74*(n127*n50 + n165*n185*n50) + n272*n316*n74*(n141*n50 + n165*n186*n50) + n407;
27500  n409 = n408*xTj;
27501  NP_b = -n125*n146*n259*n300*n74 - n279 - n29*(1.0*n125*n2*n253*n74*(pow(alpha, -n1*n166 + n51)*n1*n154*n2/n163 + n125*n2) + 0.5*n146*pow(n203, n24)*n74*(-pow(alpha, -n1*n166 + n51)*n142*n154/n163 + n110*n142) - 1.0*n146*n319*n74/n221 + n298 - 0.5*xTj*(n100*n24*n334*n74*xF[7]/n236 + n102*n24*n336*n74*xF[9]/n238 + n103*n248*n74*(pow(alpha, n1*n29 - n15*n166)*n119*n15*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n15*n166)*pow(n163, n24)*n31*n42*pow(n54, n24)*n86 + pow(alpha, -n15*n166 + n51)*n119*n15*n154/n163 + n162) + n104*pow(n206, n24)*n74*xF[12]*(pow(alpha, n1*n29 - n166*n7)*n119*pow(n163, n24)*pow(n54, n24)*n7*n86 - pow(alpha, n1*n29 - n166*n7)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86 + pow(alpha, -n166*n7 + n51)*n119*n154*n7/n163 + n160) + n106*n250*n74*(pow(alpha, n1*n29 - n12*n166)*n119*n12*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n12*n166)*pow(n163, n24)*n31*n39*pow(n54, n24)*n86 + pow(alpha, -n12*n166 + n51)*n119*n12*n154/n163 + n155) + n107*n251*n74*(pow(alpha, n1*n29 - n166*n5)*n119*pow(n163, n24)*n5*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n5)*pow(n163, n24)*n31*n32*pow(n54, n24)*n86 + pow(alpha, -n166*n5 + n51)*n119*n154*n5/n163 + n161) + n109*pow(n205, n24)*n74*xF[11]*(pow(alpha, n1*n29 - n166*n6)*n119*pow(n163, n24)*pow(n54, n24)*n6*n86 - pow(alpha, n1*n29 - n166*n6)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86 + pow(alpha, -n166*n6 + n51)*n119*n154*n6/n163 + n157) + n121*pow(n210, n24)*n74*(pow(alpha, n1*n29 - n11*n166)*n11*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n11*n166)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86 + pow(alpha, -n11*n166 + n51)*n11*n154*n23*n31/n163 + n114*n31*n38) + n121*n24*n353*n74 + n132*pow(n208, n24)*n74*(pow(alpha, n1*n29 - n166*n9)*n143*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n9)*pow(n163, n24)*n23*n31*pow(n54, n24)*n86*n9 + pow(alpha, -n166*n9 + n51)*n154*n23*n31*n9/n163 + n113*n143) + n132*n24*n350*n74 + n133*pow(n213, n24)*n74*(pow(alpha, n1*n29 - n14*n166)*n136*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n14*n166)*n14*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, -n14*n166 + n51)*n14*n154*n23*n31/n163 + n115*n136) + n133*n24*n351*n74 + n138*n24*n352*n74 + n146*pow(n203, n24)*n74*(-pow(alpha, -n1*n166 + n51)*n142*n154/n163 + n110*n142) + n146*n24*n319*n74/n221 + n148*pow(n209, n24)*n74*(pow(alpha, n1*n29 - n10*n166)*n10*n119*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n10*n166)*n135*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n10*n166 + n51)*n10*n119*n154/n163 + n135*n61) + n149*pow(n220, n24)*n74*(pow(alpha, n1*n29 - n166*n21)*n119*pow(n163, n24)*n21*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n21)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86 + pow(alpha, -n166*n21 + n51)*n119*n154*n21/n163 + n31*n48*n72) + pow(n207, n24)*n74*n89*xF[13]*(pow(alpha, n1*n29 - n166*n8)*n134*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n8)*pow(n163, n24)*n23*n31*pow(n54, n24)*n8*n86 + pow(alpha, -n166*n8 + n51)*n154*n23*n31*n8/n163 + n112*n134) + pow(n217, n24)*n74*n99*xF[6]*(pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n18*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86 + pow(alpha, -n166*n18 + n51)*n154*n18*n23*n31/n163 + n118*n31*n45) + n24*n249*n333*n74*n99 + n24*n252*n327*n74*n93 + n24*n254*n322*n74*n88 + n24*n255*n320*n74*n84 + n24*n268*n342*n74 + n24*n270*n331*n74 + n24*n355*n74 + n24*n356*n74 + n269*n74*(pow(alpha, n1*n29 - n16*n166)*n16*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n16*n166)*pow(n163, n24)*n31*n43*pow(n54, n24)*n86 + pow(alpha, -n16*n166 + n51)*n154*n16*n23*n31/n163 + n116*n31*n43) + n271*n74*(pow(alpha, n1*n29 - n166*n17)*n119*pow(n163, n24)*n17*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n17)*n126*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n17 + n51)*n119*n154*n17/n163 + n126*n68) + n273*n74*(pow(alpha, n1*n29 - n13*n166)*n119*n13*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n13*n166)*n122*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n13*n166 + n51)*n119*n13*n154/n163 + n122*n64) + n274*n74*(pow(alpha, n1*n29 - n166*n19)*n119*pow(n163, n24)*n19*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n19)*n131*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n19 + n51)*n119*n154*n19/n163 + n131*n70) + n275*n74*(pow(alpha, n1*n29 - n166*n20)*n119*pow(n163, n24)*n20*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n20)*pow(n163, n24)*n31*n47*pow(n54, n24)*n86 + pow(alpha, -n166*n20 + n51)*n119*n154*n20/n163 + n158) + n280 + n281 + n282 + n283 + n284 + n285 + n286 + n287 + n288 + n289 + n290 + n291 + n292 + n293 + n294 + n295 + n296 + n297 + n358 + n359 + n360 + n361 + n362 + n363 + n364 + n365 + n366 + n367 + n368 + n369 + n370 + n371 + n372 + n373 + n374 + n375 + n24*n330*n74*n96*xF[3]/n232 + n24*n325*n74*n91*xF[15]/n227 + n24*n323*n74*n89*xF[13]/n225)) - n74*xTj*(n103*n248*n312 + n104*n348 + n105*n349 + n106*n250*n309 + n107*n251*n302 + n108*n253*n301 + n109*pow(n205, n24)*n338 - n121*pow(n210, n24)*n308 + n123*n260 + n124*n258 + n125*n2*n242 + n127*n257 + n128*n2*n241 + n129*n256 + n130*n2*n243 - n132*n346 - n133*pow(n213, n24)*n311 + n137*n2*n246 + n148*n347 + n149*n344 + n151*n345 + n152*n239 + n153*n245 + n240*n58*n76 + n244*n72*n78 + n261*n77 + n262*n75 + n263*n82 + n264*n79 + n265*n80 + n266*n81 - n269*n313 + n271*n314 + n273*n310 + n274*n316 + n275*n317);
27502  NP_2a = -n74*(pow(alpha, n1*n29)*n0*n108*n142*pow(n300, -n0)*xF[0]/n221 + pow(alpha, n1*n29)*n0*n142*n253*n300 + n108*n156*n253*(-1 + (-n25 + xPj*xTj)/(n163*n167*n54)) - 1.0*n156*n242 + 1.0*xTj*(n0*n2*n23*n253*n53*(pow(alpha, n166*n23 + n51)*n1*n154*n2/n163 + n125*n2) + n100*n24*n334*xF[7]/n236 + n102*n24*n336*xF[9]/n238 + n103*n248*(pow(alpha, n1*n29 - n15*n166)*n119*n15*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n15*n166)*pow(n163, n24)*n31*n42*pow(n54, n24)*n86 + n119*n165*n189 + n162) + n104*pow(n206, n24)*xF[12]*(pow(alpha, n1*n29 - n166*n7)*n119*pow(n163, n24)*pow(n54, n24)*n7*n86 - pow(alpha, n1*n29 - n166*n7)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86 + n119*n165*n198 + n160) + n106*n250*(pow(alpha, n1*n29 - n12*n166)*n119*n12*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n12*n166)*pow(n163, n24)*n31*n39*pow(n54, n24)*n86 + n119*n165*n188 + n155) + n107*n251*(pow(alpha, n1*n29 - n166*n5)*n119*pow(n163, n24)*n5*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n5)*pow(n163, n24)*n31*n32*pow(n54, n24)*n86 + n119*n165*n200 + n161) + n109*pow(n205, n24)*xF[11]*(pow(alpha, n1*n29 - n166*n6)*n119*pow(n163, n24)*pow(n54, n24)*n6*n86 - pow(alpha, n1*n29 - n166*n6)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86 + n119*n165*n193 + n157) + n121*pow(n210, n24)*(pow(alpha, n1*n29 - n11*n166)*n11*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n11*n166)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86 + n114*n31*n38 + n165*n201*n23*n31) + n121*n24*n353 + n122*n261 + n123*pow(n217, n24)*n50*xF[6]*(pow(alpha, -n166*n18 + n51)*n154*n18*n2/n163 + n123*n2) + n124*n248*n50*(pow(alpha, -n15*n166 + n51)*n15*n154*n2/n163 + n124*n2) + n126*n262 + n127*pow(n215, n24)*n50*xF[4]*(pow(alpha, -n16*n166 + n51)*n154*n16*n2/n163 + n127*n2) + n128*n250*n50*(pow(alpha, -n12*n166 + n51)*n12*n154*n2/n163 + n128*n2) + n129*pow(n208, n24)*n50*xF[14]*(pow(alpha, -n166*n9 + n51)*n154*n2*n9/n163 + n129*n2) + n130*n251*n50*(pow(alpha, -n166*n5 + n51)*n154*n2*n5/n163 + n130*n2) + n131*n263 + n132*pow(n208, n24)*(pow(alpha, n1*n29 - n166*n9)*n143*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n9)*pow(n163, n24)*n23*n31*pow(n54, n24)*n86*n9 + n113*n143 + n165*n191*n23*n31) + n132*n24*n350 + n133*pow(n213, n24)*(pow(alpha, n1*n29 - n14*n166)*n136*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n14*n166)*n14*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + n115*n136 + n165*n195*n23*n31) + n133*n24*n351 + n134*n264 + n135*n266 + n136*n265 + n137*pow(n210, n24)*n50*xF[16]*(pow(alpha, -n11*n166 + n51)*n11*n154*n2/n163 + n137*n2) + n138*n24*n352 + n139*pow(n212, n24)*n50*xF[1]*(pow(alpha, -n13*n166 + n51)*n154*n77/n163 + n64*n77) + n14*pow(n213, n24)*n50*n65*xF[2]*(pow(alpha, -n14*n166 + n51)*n154*n80/n163 + n65*n80) + n140*pow(n207, n24)*n50*xF[13]*(pow(alpha, -n166*n8 + n51)*n154*n79/n163 + n59*n79) + n141*pow(n218, n24)*n50*xF[7]*(pow(alpha, -n166*n19 + n51)*n154*n82/n163 + n70*n82) + n143*n267 + n144*pow(n209, n24)*n50*xF[15]*(pow(alpha, -n10*n166 + n51)*n154*n81/n163 + n61*n81) + n145*pow(n219, n24)*n50*xF[8]*(pow(alpha, -n166*n20 + n51)*n154*n2*n20/n163 + n153) + n146*pow(n203, n24)*n343 + n146*n24*n319/n221 + n148*pow(n209, n24)*(pow(alpha, n1*n29 - n10*n166)*n10*n119*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n10*n166)*n135*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n197 + n135*n61) + n149*pow(n220, n24)*(pow(alpha, n1*n29 - n166*n21)*n119*pow(n163, n24)*n21*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n21)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86 + n119*n165*n199 + n31*n48*n72) + n150*pow(n220, n24)*n50*(pow(alpha, -n166*n21 + n51)*n154*n78/n163 + n72*n78) + n155*n241 + n156*n242 + n157*n239 + n158*n245 + n159*n246 + n160*n240 + n161*n243 + n162*n247 + n17*pow(n216, n24)*n50*n68*xF[5]*(pow(alpha, -n166*n17 + n51)*n154*n75/n163 + n68*n75) + pow(n205, n24)*n50*n57*n6*xF[11]*(pow(alpha, -n166*n6 + n51)*n154*n2*n6/n163 + n152) + pow(n206, n24)*n50*n58*n7*xF[12]*(pow(alpha, -n166*n7 + n51)*n154*n76/n163 + n58*n76) + pow(n207, n24)*n89*xF[13]*(pow(alpha, n1*n29 - n166*n8)*n134*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n8)*pow(n163, n24)*n23*n31*pow(n54, n24)*n8*n86 + n112*n134 + n165*n187*n23*n31) + pow(n217, n24)*n99*xF[6]*(pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n18*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86 + n118*n31*n45 + n165*n190*n23*n31) + n24*n249*n333*n99 + n24*n252*n327*n93 + n24*n254*n322*n88 + n24*n255*n320*n84 + n24*n268*n342 + n24*n270*n331 + n24*n355 + n24*n356 + n269*(pow(alpha, n1*n29 - n16*n166)*n16*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n16*n166)*pow(n163, n24)*n31*n43*pow(n54, n24)*n86 + n116*n31*n43 + n165*n185*n23*n31) + n271*(pow(alpha, n1*n29 - n166*n17)*n119*pow(n163, n24)*n17*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n17)*n126*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n202 + n126*n68) + n273*(pow(alpha, n1*n29 - n13*n166)*n119*n13*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n13*n166)*n122*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n194 + n122*n64) + n274*(pow(alpha, n1*n29 - n166*n19)*n119*pow(n163, n24)*n19*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n19)*n131*pow(n163, n24)*pow(n54, n24)*n86 + n119*n165*n186 + n131*n70) + n275*(pow(alpha, n1*n29 - n166*n20)*n119*pow(n163, n24)*n20*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n20)*pow(n163, n24)*n31*n47*pow(n54, n24)*n86 + n119*n165*n192 + n158) + n276 + n277 + n278 + n24*n330*n96*xF[3]/n232 + n24*n325*n91*xF[15]/n227 + n24*n323*n89*xF[13]/n225));
27503  NP_sqrt_base = (-NP0*n406 - n108*n74*xF[0]/(-n108 - n196 - 1) - n27*(-n100*n74*xF[7]/(n100 - 1 + pow(alpha, -n19*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n101*n74*xF[8]/(n101 - 1 + pow(alpha, -n20*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n102*n74*xF[9]/(n102 - 1 + pow(alpha, -n21*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n121*n74/(n92 - 1 + pow(alpha, -n11*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n132*n74/(n90 - 1 + pow(alpha, -n9*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n133*n74/(n95 - 1 + pow(alpha, -n14*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n138*n74/(n98 - 1 + pow(alpha, -n17*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n146*n74/(pow(alpha, n23*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1)) + n83 - 1) - n74*n84*xF[10]/(n84 - 1 + pow(alpha, -n5*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n87*xF[11]/(n87 - 1 + pow(alpha, -n6*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n88*xF[12]/(n88 - 1 + pow(alpha, -n7*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n89*xF[13]/(n89 - 1 + pow(alpha, -n8*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n91*xF[15]/(n91 - 1 + pow(alpha, -n10*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n93*xF[17]/(n93 - 1 + pow(alpha, -n12*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n94*xF[1]/(n94 - 1 + pow(alpha, -n13*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n96*xF[3]/(n96 - 1 + pow(alpha, -n15*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n97*xF[4]/(n97 - 1 + pow(alpha, -n16*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1))) - n74*n99*xF[6]/(n99 - 1 + pow(alpha, -n18*(n120*(n164 - log(n110*(n25 + n28*xTj)/(n25 - xF[0]*xTj) + 1)) + 1)))) - pow(NP0, -n0)*(1.0*n125*n2*n253*n301*n74 - 0.5*n146*n301*n354*n74 + 0.5*n280 + 0.5*n377 - 0.5*n409))*(-n0*n27*(-n101*n74*xF[8]*(pow(alpha, -n166*n20 + n51)*n154*n2*n20/n163 + n153)*(pow(alpha, -n166*n20 + n51)*n154*n20*n50/n163 + n145*n50)/n237 + n103*n248*n74*(pow(alpha, n1*n29 - n15*n166)*n119*n15*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n15*n166)*pow(n163, n24)*n31*n42*pow(n54, n24)*n86 + pow(alpha, -n15*n166 + n51)*n119*n15*n154/n163 + n162) + n103*n74*xF[3]*(pow(alpha, -n15*n166 + n51)*n15*n154*n2/n163 + n124*n2)*(pow(alpha, -n15*n166 + n51)*n15*n154*n50/n163 + n124*n50)/n232 + n104*pow(n206, n24)*n74*xF[12]*(pow(alpha, n1*n29 - n166*n7)*n119*pow(n163, n24)*pow(n54, n24)*n7*n86 - pow(alpha, n1*n29 - n166*n7)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86 + pow(alpha, -n166*n7 + n51)*n119*n154*n7/n163 + n160) + n104*n254*n74*(pow(alpha, -n166*n7 + n51)*n154*n76/n163 + n58*n76)*(pow(alpha, -n166*n7 + n51)*n154*n50*n7/n163 + n50*n58*n7) + n105*n249*n74*(pow(alpha, -n166*n18 + n51)*n154*n18*n2/n163 + n123*n2)*(pow(alpha, -n166*n18 + n51)*n154*n18*n50/n163 + n123*n50) + n106*n250*n74*(pow(alpha, n1*n29 - n12*n166)*n119*n12*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n12*n166)*pow(n163, n24)*n31*n39*pow(n54, n24)*n86 + pow(alpha, -n12*n166 + n51)*n119*n12*n154/n163 + n155) + n106*n252*n74*(pow(alpha, -n12*n166 + n51)*n12*n154*n2/n163 + n128*n2)*(pow(alpha, -n12*n166 + n51)*n12*n154*n50/n163 + n128*n50) + n107*n251*n74*(pow(alpha, n1*n29 - n166*n5)*n119*pow(n163, n24)*n5*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n5)*pow(n163, n24)*n31*n32*pow(n54, n24)*n86 + pow(alpha, -n166*n5 + n51)*n119*n154*n5/n163 + n161) + n107*n255*n74*(pow(alpha, -n166*n5 + n51)*n154*n2*n5/n163 + n130*n2)*(pow(alpha, -n166*n5 + n51)*n154*n5*n50/n163 + n130*n50) + n108*n74*xF[0]*(pow(alpha, -n1*n166 + n51)*n1*n154*n2/n163 + n125*n2)*(pow(alpha, -n1*n166 + n51)*n0*n154*n2*n23/n163 + n0*n2*n23*n53)/n221 + n109*pow(n205, n24)*n74*xF[11]*(pow(alpha, n1*n29 - n166*n6)*n119*pow(n163, n24)*pow(n54, n24)*n6*n86 - pow(alpha, n1*n29 - n166*n6)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86 + pow(alpha, -n166*n6 + n51)*n119*n154*n6/n163 + n157) + n109*n74*xF[11]*(pow(alpha, -n166*n6 + n51)*n154*n2*n6/n163 + n152)*(pow(alpha, -n166*n6 + n51)*n154*n50*n6/n163 + n50*n57*n6)/n223 + n121*pow(n210, n24)*n74*(pow(alpha, n1*n29 - n11*n166)*n11*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n11*n166)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86 + pow(alpha, -n11*n166 + n51)*n11*n154*n23*n31/n163 + n114*n31*n38) - n121*n74*(pow(alpha, -n11*n166 + n51)*n11*n154*n2/n163 + n137*n2)*(pow(alpha, -n11*n166 + n51)*n11*n154*n50/n163 + n137*n50)/n228 + n132*pow(n208, n24)*n74*(pow(alpha, n1*n29 - n166*n9)*n143*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n9)*pow(n163, n24)*n23*n31*pow(n54, n24)*n86*n9 + pow(alpha, -n166*n9 + n51)*n154*n23*n31*n9/n163 + n113*n143) - n132*n74*(pow(alpha, -n166*n9 + n51)*n154*n2*n9/n163 + n129*n2)*(pow(alpha, -n166*n9 + n51)*n154*n50*n9/n163 + n129*n50)/n226 + n133*pow(n213, n24)*n74*(pow(alpha, n1*n29 - n14*n166)*n136*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n14*n166)*n14*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, -n14*n166 + n51)*n14*n154*n23*n31/n163 + n115*n136) - n133*n74*(pow(alpha, -n14*n166 + n51)*n154*n80/n163 + n65*n80)*(pow(alpha, -n14*n166 + n51)*n14*n154*n50/n163 + n14*n50*n65)/n231 - n138*n74*(pow(alpha, -n166*n17 + n51)*n154*n75/n163 + n68*n75)*(pow(alpha, -n166*n17 + n51)*n154*n17*n50/n163 + n17*n50*n68)/n234 + n146*pow(n203, n24)*n74*(pow(alpha, -n1*n166 + n51)*n142*(-n25 + xPj*xTj)/(n163*n54) + n110*n142) + n148*pow(n209, n24)*n74*(pow(alpha, n1*n29 - n10*n166)*n10*n119*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n10*n166)*n135*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n10*n166 + n51)*n10*n119*n154/n163 + n135*n61) + n148*n74*(pow(alpha, -n10*n166 + n51)*n154*n81/n163 + n61*n81)*(pow(alpha, -n10*n166 + n51)*n10*n154*n50/n163 + n144*n50)/n227 + n149*pow(n220, n24)*n74*(pow(alpha, n1*n29 - n166*n21)*n119*pow(n163, n24)*n21*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n21)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86 + pow(alpha, -n166*n21 + n51)*n119*n154*n21/n163 + n31*n48*n72) + n149*n74*(pow(alpha, -n166*n21 + n51)*n154*n78/n163 + n72*n78)*(pow(alpha, -n166*n21 + n51)*n154*n21*n50/n163 + n21*n50*n72)/n238 + n151*n74*(pow(alpha, -n166*n8 + n51)*n154*n79/n163 + n59*n79)*(pow(alpha, -n166*n8 + n51)*n154*n50*n8/n163 + n140*n50)/n225 + pow(n207, n24)*n74*n89*xF[13]*(pow(alpha, n1*n29 - n166*n8)*n134*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n8)*pow(n163, n24)*n23*n31*pow(n54, n24)*n8*n86 + pow(alpha, -n166*n8 + n51)*n154*n23*n31*n8/n163 + n112*n134) + pow(n217, n24)*n74*n99*xF[6]*(pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n18*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86 + pow(alpha, -n166*n18 + n51)*n154*n18*n23*n31/n163 + n118*n31*n45) - n268*n74*xF[1]*(pow(alpha, -n13*n166 + n51)*n154*n77/n163 + n64*n77)*(pow(alpha, -n13*n166 + n51)*n13*n154*n50/n163 + n139*n50) + n269*n74*(pow(alpha, n1*n29 - n16*n166)*n16*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n16*n166)*pow(n163, n24)*n31*n43*pow(n54, n24)*n86 + pow(alpha, -n16*n166 + n51)*n154*n16*n23*n31/n163 + n116*n31*n43) - n270*n74*(pow(alpha, -n16*n166 + n51)*n154*n16*n2/n163 + n127*n2)*(pow(alpha, -n16*n166 + n51)*n154*n16*n50/n163 + n127*n50) + n271*n74*(pow(alpha, n1*n29 - n166*n17)*n119*pow(n163, n24)*n17*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n17)*n126*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n17 + n51)*n119*n154*n17/n163 + n126*n68) + n272*n74*(pow(alpha, -n166*n19 + n51)*n154*n82/n163 + n70*n82)*(pow(alpha, -n166*n19 + n51)*n154*n19*n50/n163 + n141*n50) + n273*n74*(pow(alpha, n1*n29 - n13*n166)*n119*n13*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n13*n166)*n122*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n13*n166 + n51)*n119*n13*n154/n163 + n122*n64) + n274*n74*(pow(alpha, n1*n29 - n166*n19)*n119*pow(n163, n24)*n19*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n19)*n131*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n19 + n51)*n119*n154*n19/n163 + n131*n70) + n275*n74*(pow(alpha, n1*n29 - n166*n20)*n119*pow(n163, n24)*n20*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n20)*pow(n163, n24)*n31*n47*pow(n54, n24)*n86 + pow(alpha, -n166*n20 + n51)*n119*n154*n20/n163 + n158) + n280 + n281 + n282 + n283 + n284 + n285 + n286 + n287 + n288 + n289 + n290 + n291 + n292 + n293 + n294 + n295 + n296 + n297 + n358 + n359 + n360 + n361 + n362 + n363 + n364 + n365 + n366 + n367 + n368 + n369 + n370 + n371 + n372 + n373 + n374 + n375) - n0*n280 - n0*n377 + 4.0*n125*n2*n253*n301*n74 - 4.0*n146*n319*n74/n221) + pow(-n29*(1.0*n125*n2*n253*n74*(pow(alpha, -n1*n166 + n51)*n1*n154*n2/n163 + n125*n2) + 0.5*n146*pow(n203, n24)*n74*(-pow(alpha, -n1*n166 + n51)*n142*n154/n163 + n110*n142) - 0.5*n146*n74*(pow(alpha, -n1*n166 + n51)*n1*n154*n2/n163 + n125*n2)*(pow(alpha, -n1*n166 + n51)*n0*n154*n2*n23/n163 + n0*n2*n23*n53)/n221 + n298 - 0.5*xTj*(-n101*n74*xF[8]*(pow(alpha, -n166*n20 + n51)*n154*n2*n20/n163 + n153)*(pow(alpha, -n166*n20 + n51)*n154*n20*n50/n163 + n145*n50)/n237 + n103*n248*n74*(pow(alpha, n1*n29 - n15*n166)*n119*n15*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n15*n166)*pow(n163, n24)*n31*n42*pow(n54, n24)*n86 + pow(alpha, -n15*n166 + n51)*n119*n15*n154/n163 + n162) + n103*n74*xF[3]*(pow(alpha, -n15*n166 + n51)*n15*n154*n2/n163 + n124*n2)*(pow(alpha, -n15*n166 + n51)*n15*n154*n50/n163 + n124*n50)/n232 + n104*pow(n206, n24)*n74*xF[12]*(pow(alpha, n1*n29 - n166*n7)*n119*pow(n163, n24)*pow(n54, n24)*n7*n86 - pow(alpha, n1*n29 - n166*n7)*pow(n163, n24)*n31*n34*pow(n54, n24)*n86 + pow(alpha, -n166*n7 + n51)*n119*n154*n7/n163 + n160) + n104*n254*n74*(pow(alpha, -n166*n7 + n51)*n154*n76/n163 + n58*n76)*(pow(alpha, -n166*n7 + n51)*n154*n50*n7/n163 + n50*n58*n7) + n105*n249*n74*(pow(alpha, -n166*n18 + n51)*n154*n18*n2/n163 + n123*n2)*(pow(alpha, -n166*n18 + n51)*n154*n18*n50/n163 + n123*n50) + n106*n250*n74*(pow(alpha, n1*n29 - n12*n166)*n119*n12*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n12*n166)*pow(n163, n24)*n31*n39*pow(n54, n24)*n86 + pow(alpha, -n12*n166 + n51)*n119*n12*n154/n163 + n155) + n106*n252*n74*(pow(alpha, -n12*n166 + n51)*n12*n154*n2/n163 + n128*n2)*(pow(alpha, -n12*n166 + n51)*n12*n154*n50/n163 + n128*n50) + n107*n251*n74*(pow(alpha, n1*n29 - n166*n5)*n119*pow(n163, n24)*n5*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n5)*pow(n163, n24)*n31*n32*pow(n54, n24)*n86 + pow(alpha, -n166*n5 + n51)*n119*n154*n5/n163 + n161) + n107*n255*n74*(pow(alpha, -n166*n5 + n51)*n154*n2*n5/n163 + n130*n2)*(pow(alpha, -n166*n5 + n51)*n154*n5*n50/n163 + n130*n50) + n108*n74*xF[0]*(pow(alpha, -n1*n166 + n51)*n1*n154*n2/n163 + n125*n2)*(pow(alpha, -n1*n166 + n51)*n0*n154*n2*n23/n163 + n0*n2*n23*n53)/n221 + n109*pow(n205, n24)*n74*xF[11]*(pow(alpha, n1*n29 - n166*n6)*n119*pow(n163, n24)*pow(n54, n24)*n6*n86 - pow(alpha, n1*n29 - n166*n6)*pow(n163, n24)*n31*n33*pow(n54, n24)*n86 + pow(alpha, -n166*n6 + n51)*n119*n154*n6/n163 + n157) + n109*n74*xF[11]*(pow(alpha, -n166*n6 + n51)*n154*n2*n6/n163 + n152)*(pow(alpha, -n166*n6 + n51)*n154*n50*n6/n163 + n50*n57*n6)/n223 + n121*pow(n210, n24)*n74*(pow(alpha, n1*n29 - n11*n166)*n11*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n11*n166)*pow(n163, n24)*n31*n38*pow(n54, n24)*n86 + pow(alpha, -n11*n166 + n51)*n11*n154*n23*n31/n163 + n114*n31*n38) - n121*n74*(pow(alpha, -n11*n166 + n51)*n11*n154*n2/n163 + n137*n2)*(pow(alpha, -n11*n166 + n51)*n11*n154*n50/n163 + n137*n50)/n228 + n132*pow(n208, n24)*n74*(pow(alpha, n1*n29 - n166*n9)*n143*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n9)*pow(n163, n24)*n23*n31*pow(n54, n24)*n86*n9 + pow(alpha, -n166*n9 + n51)*n154*n23*n31*n9/n163 + n113*n143) - n132*n74*(pow(alpha, -n166*n9 + n51)*n154*n2*n9/n163 + n129*n2)*(pow(alpha, -n166*n9 + n51)*n154*n50*n9/n163 + n129*n50)/n226 + n133*pow(n213, n24)*n74*(pow(alpha, n1*n29 - n14*n166)*n136*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n14*n166)*n14*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, -n14*n166 + n51)*n14*n154*n23*n31/n163 + n115*n136) - n133*n74*(pow(alpha, -n14*n166 + n51)*n154*n80/n163 + n65*n80)*(pow(alpha, -n14*n166 + n51)*n14*n154*n50/n163 + n14*n50*n65)/n231 - n138*n74*(pow(alpha, -n166*n17 + n51)*n154*n75/n163 + n68*n75)*(pow(alpha, -n166*n17 + n51)*n154*n17*n50/n163 + n17*n50*n68)/n234 + n146*pow(n203, n24)*n74*(-pow(alpha, -n1*n166 + n51)*n142*n154/n163 + n110*n142) + n148*pow(n209, n24)*n74*(pow(alpha, n1*n29 - n10*n166)*n10*n119*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n10*n166)*n135*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n10*n166 + n51)*n10*n119*n154/n163 + n135*n61) + n148*n74*(pow(alpha, -n10*n166 + n51)*n154*n81/n163 + n61*n81)*(pow(alpha, -n10*n166 + n51)*n10*n154*n50/n163 + n144*n50)/n227 + n149*pow(n220, n24)*n74*(pow(alpha, n1*n29 - n166*n21)*n119*pow(n163, n24)*n21*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n21)*pow(n163, n24)*n31*n48*pow(n54, n24)*n86 + pow(alpha, -n166*n21 + n51)*n119*n154*n21/n163 + n31*n48*n72) + n149*n74*(pow(alpha, -n166*n21 + n51)*n154*n78/n163 + n72*n78)*(pow(alpha, -n166*n21 + n51)*n154*n21*n50/n163 + n21*n50*n72)/n238 + n151*n74*(pow(alpha, -n166*n8 + n51)*n154*n79/n163 + n59*n79)*(pow(alpha, -n166*n8 + n51)*n154*n50*n8/n163 + n140*n50)/n225 + pow(n207, n24)*n74*n89*xF[13]*(pow(alpha, n1*n29 - n166*n8)*n134*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n8)*pow(n163, n24)*n23*n31*pow(n54, n24)*n8*n86 + pow(alpha, -n166*n8 + n51)*n154*n23*n31*n8/n163 + n112*n134) + pow(n217, n24)*n74*n99*xF[6]*(pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n18*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n166*n18)*pow(n163, n24)*n31*n45*pow(n54, n24)*n86 + pow(alpha, -n166*n18 + n51)*n154*n18*n23*n31/n163 + n118*n31*n45) - n268*n74*xF[1]*(pow(alpha, -n13*n166 + n51)*n154*n77/n163 + n64*n77)*(pow(alpha, -n13*n166 + n51)*n13*n154*n50/n163 + n139*n50) + n269*n74*(pow(alpha, n1*n29 - n16*n166)*n16*pow(n163, n24)*n23*n31*pow(n54, n24)*n86 + pow(alpha, n1*n29 - n16*n166)*pow(n163, n24)*n31*n43*pow(n54, n24)*n86 + pow(alpha, -n16*n166 + n51)*n154*n16*n23*n31/n163 + n116*n31*n43) - n270*n74*(pow(alpha, -n16*n166 + n51)*n154*n16*n2/n163 + n127*n2)*(pow(alpha, -n16*n166 + n51)*n154*n16*n50/n163 + n127*n50) + n271*n74*(pow(alpha, n1*n29 - n166*n17)*n119*pow(n163, n24)*n17*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n17)*n126*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n17 + n51)*n119*n154*n17/n163 + n126*n68) + n272*n74*(pow(alpha, -n166*n19 + n51)*n154*n82/n163 + n70*n82)*(pow(alpha, -n166*n19 + n51)*n154*n19*n50/n163 + n141*n50) + n273*n74*(pow(alpha, n1*n29 - n13*n166)*n119*n13*pow(n163, n24)*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n13*n166)*n122*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n13*n166 + n51)*n119*n13*n154/n163 + n122*n64) + n274*n74*(pow(alpha, n1*n29 - n166*n19)*n119*pow(n163, n24)*n19*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n19)*n131*pow(n163, n24)*pow(n54, n24)*n86 + pow(alpha, -n166*n19 + n51)*n119*n154*n19/n163 + n131*n70) + n275*n74*(pow(alpha, n1*n29 - n166*n20)*n119*pow(n163, n24)*n20*pow(n54, n24)*n86 - pow(alpha, n1*n29 - n166*n20)*pow(n163, n24)*n31*n47*pow(n54, n24)*n86 + pow(alpha, -n166*n20 + n51)*n119*n154*n20/n163 + n158) + n280 + n281 + n282 + n283 + n284 + n285 + n286 + n287 + n288 + n289 + n290 + n291 + n292 + n293 + n294 + n295 + n296 + n297 + n358 + n359 + n360 + n361 + n362 + n363 + n364 + n365 + n366 + n367 + n368 + n369 + n370 + n371 + n372 + n373 + n374 + n375)) - n406, -n0);
27504  NP_sqrt_base = fabs(NP_sqrt_base);
27505  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
27506  NT1 = n120*(n164 - log(-pow(alpha, NP1*n1)*n154 + 1));
27507  g0 = MW[1] - Mstar;
27508  g1 = MW[0] - Mstar;
27509  g2 = NT1 + 1;
27510  g3 = xPj - xTj;
27511  g4 = MW[10] - Mstar;
27512  g5 = MW[11] - Mstar;
27513  g6 = MW[12] - Mstar;
27514  g7 = MW[13] - Mstar;
27515  g8 = MW[14] - Mstar;
27516  g9 = MW[15] - Mstar;
27517  g10 = MW[16] - Mstar;
27518  g11 = MW[17] - Mstar;
27519  g12 = MW[2] - Mstar;
27520  g13 = MW[3] - Mstar;
27521  g14 = MW[4] - Mstar;
27522  g15 = MW[5] - Mstar;
27523  g16 = MW[6] - Mstar;
27524  g17 = MW[7] - Mstar;
27525  g18 = MW[8] - Mstar;
27526  g19 = MW[9] - Mstar;
27527  g20 = xF[0] - xTj;
27528  g21 = xF[0] - xPj;
27529  g22 = -xTj;
27530  g23 = 1.0*xF[4];
27531  g24 = 1.0*xF[16];
27532  g25 = xPj/xF[1];
27533  g26 = pow(alpha, -g1);
27534  g27 = pow(alpha, -g4);
27535  g28 = pow(alpha, -g5);
27536  g29 = pow(alpha, -g6);
27537  g30 = pow(alpha, -g7);
27538  g31 = pow(alpha, -g8);
27539  g32 = pow(alpha, -g9);
27540  g33 = pow(alpha, -g10);
27541  g34 = pow(alpha, -g11);
27542  g35 = pow(alpha, -g0);
27543  g36 = pow(alpha, -g12);
27544  g37 = pow(alpha, -g13);
27545  g38 = pow(alpha, -g14);
27546  g39 = pow(alpha, -g15);
27547  g40 = pow(alpha, -g16);
27548  g41 = pow(alpha, -g17);
27549  g42 = pow(alpha, -g18);
27550  g43 = pow(alpha, -g19);
27551  g44 = log(xF[0]/xF[1]);
27552  g45 = -g2;
27553  g46 = pow(alpha, NP1*g0);
27554  g47 = pow(alpha, NP1*g1);
27555  g48 = pow(alpha, NP1*g4);
27556  g49 = log(g26);
27557  g50 = pow(alpha, NP1*g5);
27558  g51 = pow(alpha, NP1*g6);
27559  g52 = pow(alpha, NP1*g7);
27560  g53 = pow(alpha, NP1*g8);
27561  g54 = pow(alpha, NP1*g9);
27562  g55 = pow(alpha, NP1*g10);
27563  g56 = pow(alpha, NP1*g11);
27564  g57 = pow(alpha, NP1*g12);
27565  g58 = pow(alpha, NP1*g13);
27566  g59 = pow(alpha, NP1*g14);
27567  g60 = pow(alpha, NP1*g15);
27568  g61 = pow(alpha, NP1*g16);
27569  g62 = pow(alpha, NP1*g17);
27570  g63 = pow(alpha, NP1*g18);
27571  g64 = pow(alpha, NP1*g19);
27572  g65 = -g44;
27573  g66 = g20/g3;
27574  g67 = g3/g20;
27575  g68 = -g46 + 1;
27576  g69 = -g46 + 1;
27577  g70 = -g47 + 1;
27578  g71 = -g48 + 1;
27579  g72 = -g50 + 1;
27580  g73 = -g51 + 1;
27581  g74 = -g52 + 1;
27582  g75 = -g53 + 1;
27583  g76 = -g54 + 1;
27584  g77 = -g55 + 1;
27585  g78 = -g56 + 1;
27586  g79 = -g57 + 1;
27587  g80 = -g58 + 1;
27588  g81 = -g59 + 1;
27589  g82 = -g60 + 1;
27590  g83 = -g61 + 1;
27591  g84 = -g62 + 1;
27592  g85 = -g63 + 1;
27593  g86 = -g64 + 1;
27594  g87 = -g47;
27595  g88 = -g48;
27596  g89 = -g50;
27597  g90 = -g51;
27598  g91 = -g52;
27599  g92 = -g53;
27600  g93 = -g54;
27601  g94 = -g55;
27602  g95 = -g56;
27603  g96 = -g57;
27604  g97 = -g58;
27605  g98 = -g59;
27606  g99 = -g60;
27607  g100 = -g61;
27608  g101 = -g62;
27609  g102 = -g63;
27610  g103 = -g64;
27611  g104 = -1.0*g44;
27612  g105 = -g3/g21;
27613  g106 = g21/(g3*xF[1]);
27614  g107 = g104*xF[0];
27615  g108 = g104*xF[10];
27616  g109 = g104*xF[11];
27617  g110 = g104*xF[12];
27618  g111 = g104*xF[13];
27619  g112 = g104*xF[14];
27620  g113 = g104*xF[15];
27621  g114 = g104*xF[16];
27622  g115 = g104*xF[17];
27623  g116 = g104*xF[1];
27624  g117 = g104*xF[2];
27625  g118 = g104*xF[3];
27626  g119 = g104*xF[4];
27627  g120 = g104*xF[5];
27628  g121 = g104*xF[6];
27629  g122 = g104*xF[7];
27630  g123 = g104*xF[8];
27631  g124 = g104*xF[9];
27632  g125 = pow(alpha, g0*g45) - 1;
27633  g126 = pow(alpha, g0*g45) - 1;
27634  g127 = pow(alpha, g1*g45) - 1;
27635  g128 = pow(alpha, g4*g45) - 1;
27636  g129 = pow(alpha, g45*g5) - 1;
27637  g130 = pow(alpha, g45*g6) - 1;
27638  g131 = pow(alpha, g45*g7) - 1;
27639  g132 = pow(alpha, g45*g8) - 1;
27640  g133 = pow(alpha, g45*g9) - 1;
27641  g134 = pow(alpha, g10*g45) - 1;
27642  g135 = pow(alpha, g11*g45) - 1;
27643  g136 = pow(alpha, g12*g45) - 1;
27644  g137 = pow(alpha, g13*g45) - 1;
27645  g138 = pow(alpha, g14*g45) - 1;
27646  g139 = pow(alpha, g15*g45) - 1;
27647  g140 = pow(alpha, g16*g45) - 1;
27648  g141 = pow(alpha, g17*g45) - 1;
27649  g142 = pow(alpha, g18*g45) - 1;
27650  g143 = pow(alpha, g19*g45) - 1;
27651  g144 = -pow(alpha, g1*g45);
27652  g145 = -pow(alpha, g4*g45);
27653  g146 = -pow(alpha, g45*g5);
27654  g147 = -pow(alpha, g45*g6);
27655  g148 = -pow(alpha, g45*g7);
27656  g149 = -pow(alpha, g45*g8);
27657  g150 = -pow(alpha, g45*g9);
27658  g151 = -pow(alpha, g10*g45);
27659  g152 = -pow(alpha, g11*g45);
27660  g153 = -pow(alpha, g12*g45);
27661  g154 = -pow(alpha, g13*g45);
27662  g155 = -pow(alpha, g14*g45);
27663  g156 = -pow(alpha, g15*g45);
27664  g157 = -pow(alpha, g16*g45);
27665  g158 = -pow(alpha, g17*g45);
27666  g159 = -pow(alpha, g18*g45);
27667  g160 = -pow(alpha, g19*g45);
27668  g161 = g126 + g69;
27669  g162 = -g144 - g47;
27670  g163 = -g145 - g48;
27671  g164 = -g146 - g50;
27672  g165 = -g147 - g51;
27673  g166 = -g148 - g52;
27674  g167 = -g149 - g53;
27675  g168 = -g150 - g54;
27676  g169 = -g151 - g55;
27677  g170 = -g152 - g56;
27678  g171 = -g153 - g57;
27679  g172 = -g154 - g58;
27680  g173 = -g155 - g59;
27681  g174 = -g156 - g60;
27682  g175 = -g157 - g61;
27683  g176 = -g158 - g62;
27684  g177 = -g159 - g63;
27685  g178 = -g160 - g64;
27686  g179 = pow(alpha, g1*g45) + g87;
27687  g180 = g126 + g69;
27688  g181 = pow(alpha, g4*g45) + g88;
27689  g182 = pow(alpha, g45*g5) + g89;
27690  g183 = pow(alpha, g45*g6) + g90;
27691  g184 = pow(alpha, g45*g7) + g91;
27692  g185 = pow(alpha, g45*g8) + g92;
27693  g186 = pow(alpha, g45*g9) + g93;
27694  g187 = pow(alpha, g10*g45) + g94;
27695  g188 = pow(alpha, g11*g45) + g95;
27696  g189 = pow(alpha, g12*g45) + g96;
27697  g190 = pow(alpha, g13*g45) + g97;
27698  g191 = pow(alpha, g14*g45) + g98;
27699  g192 = pow(alpha, g15*g45) + g99;
27700  g193 = pow(alpha, g16*g45) + g100;
27701  g194 = pow(alpha, g17*g45) + g101;
27702  g195 = pow(alpha, g18*g45) + g102;
27703  g196 = pow(alpha, g19*g45) + g103;
27704  g197 = xF[9]/g196;
27705  g198 = xF[8]/g195;
27706  g199 = xF[11]/g182;
27707  g200 = xF[1]/g180;
27708  g201 = xF[10]/g181;
27709  g202 = xF[17]/g188;
27710  g203 = xF[15]/g186;
27711  g204 = xF[3]/g190;
27712  g205 = xF[7]/g194;
27713  g206 = xF[12]/g183;
27714  g207 = xF[13]/g184;
27715  g208 = xF[6]/g193;
27716  g209 = xF[14]/g185;
27717  g210 = xF[5]/g192;
27718  g211 = xF[2]/g189;
27719  g212 = xF[0]/g179;
27720  g213 = xF[4]/g173;
27721  g214 = xF[17]/g170;
27722  g215 = xF[0]/g162;
27723  g216 = xF[16]/g169;
27724  g217 = xF[9]/g178;
27725  g218 = xF[12]/g165;
27726  g219 = xF[15]/g168;
27727  g220 = xF[6]/g175;
27728  g221 = xF[2]/g171;
27729  g222 = xF[13]/g166;
27730  g223 = xF[11]/g164;
27731  g224 = xF[3]/g172;
27732  g225 = xF[5]/g174;
27733  g226 = xF[1]/g161;
27734  g227 = xF[14]/g167;
27735  g228 = xF[8]/g177;
27736  g229 = xF[10]/g163;
27737  g230 = xF[7]/g176;
27738  g231 = g24/g169;
27739  g232 = 1.0*g215;
27740  g233 = 1.0*g218;
27741  g234 = 1.0*g219;
27742  g235 = 1.0*g220;
27743  g236 = 1.0*g222;
27744  g237 = 1.0*g221;
27745  g238 = 1.0*g225;
27746  g239 = 1.0*g227;
27747  g240 = 1.0*g223;
27748  g241 = 1.0*g228;
27749  g242 = 1.0*g214;
27750  g243 = 1.0*g229;
27751  g244 = 1.0*g217;
27752  g245 = 1.0*g224;
27753  g246 = 1.0*g226;
27754  g247 = 1.0*g230;
27755  g248 = g81/g173;
27756  g249 = g73/g165;
27757  g250 = g86/g178;
27758  g251 = g78/g170;
27759  g252 = g76/g168;
27760  g253 = g79/g171;
27761  g254 = g82/g174;
27762  g255 = g83/g175;
27763  g256 = g80/g172;
27764  g257 = g77/g169;
27765  g258 = g72/g164;
27766  g259 = g75/g167;
27767  g260 = g71/g163;
27768  g261 = g70/g162;
27769  g262 = g74/g166;
27770  g263 = g85/g177;
27771  g264 = g68/g161;
27772  g265 = g84/g176;
27773  g266 = g214*g78;
27774  g267 = g217*g86;
27775  g268 = g215*g70;
27776  g269 = g219*g76;
27777  g270 = g221*g79;
27778  g271 = g220*g83;
27779  g272 = g218*g73;
27780  g273 = g228*g85;
27781  g274 = g222*g74;
27782  g275 = g224*g80;
27783  g276 = g216*g77;
27784  g277 = g225*g82;
27785  g278 = g223*g72;
27786  g279 = g229*g71;
27787  g280 = g227*g75;
27788  g281 = g230*g84;
27789  g282 = g226*g68;
27790  g283 = g127/g162;
27791  g284 = g133/g168;
27792  g285 = g129/g164;
27793  g286 = g136/g171;
27794  g287 = g137/g172;
27795  g288 = g138/g173;
27796  g289 = g135/g170;
27797  g290 = g125/g161;
27798  g291 = g142/g177;
27799  g292 = g143/g178;
27800  g293 = g134/g169;
27801  g294 = g140/g175;
27802  g295 = g132/g167;
27803  g296 = g130/g165;
27804  g297 = g131/g166;
27805  g298 = g141/g176;
27806  g299 = g128/g163;
27807  g300 = g139/g174;
27808  g301 = g127*g215;
27809  g302 = g134*g216;
27810  g303 = g130*g218;
27811  g304 = g133*g219;
27812  g305 = g140*g220;
27813  g306 = g136*g221;
27814  g307 = g131*g222;
27815  g308 = g129*g223;
27816  g309 = g137*g224;
27817  g310 = g139*g225;
27818  g311 = g125*g226;
27819  g312 = g132*g227;
27820  g313 = g135*g214;
27821  g314 = g142*g228;
27822  g315 = g128*g229;
27823  g316 = g141*g230;
27824  g317 = g143*g217;
27825  g318 = log(g106*g180*g22/g69);
27826  g319 = log(g106*g161*g22/g68);
27827  g320 = log(g180*g25*g66/g126);
27828  g321 = 1.0*g318;
27829  g322 = log(g161*g25*g66/g125);
27830  g323 = 1.0*g320;
27831  g324 = g248*g319;
27832  g325 = g249*g319;
27833  g326 = g250*g319;
27834  g327 = g261*g319;
27835  g328 = g254*g319;
27836  g329 = g255*g319;
27837  g330 = g252*g319;
27838  g331 = g253*g319;
27839  g332 = g263*g319;
27840  g333 = g262*g319;
27841  g334 = g257*g319;
27842  g335 = g258*g319;
27843  g336 = g259*g319;
27844  g337 = g260*g319;
27845  g338 = g256*g319;
27846  g339 = g251*g319;
27847  g340 = g264*g319;
27848  g341 = g265*g319;
27849  g342 = g293*g322;
27850  g343 = g296*g322;
27851  g344 = g284*g322;
27852  g345 = g294*g322;
27853  g346 = g285*g322;
27854  g347 = g297*g322;
27855  g348 = g287*g322;
27856  g349 = g283*g322;
27857  g350 = g286*g322;
27858  g351 = g289*g322;
27859  g352 = g300*g322;
27860  g353 = g295*g322;
27861  g354 = g291*g322;
27862  g355 = g292*g322;
27863  g356 = g290*g322;
27864  g357 = g299*g322;
27865  g358 = g298*g322;
27866  g359 = g288*g322;
27867  g360 = g107 + g108 + g109 + g110 + g111 + g112 + g113 + g114 + g115 + g116 + g117 + g118 + g119 + g120 + g121 + g122 + g123 + g124;
27868  LpF = xF[0]*(g26 + 1.0)*(g327 + g349 + g65)/(g49*(g26 - 1.0)) + xF[10]*(g27 + 1.0)*(g337 + g357 + g65)/(g49*(g27 - 1.0)) + xF[11]*(g28 + 1.0)*(g335 + g346 + g65)/(g49*(g28 - 1.0)) + xF[12]*(g29 + 1.0)*(g325 + g343 + g65)/(g49*(g29 - 1.0)) + xF[13]*(g30 + 1.0)*(g333 + g347 + g65)/(g49*(g30 - 1.0)) + xF[14]*(g31 + 1.0)*(g336 + g353 + g65)/(g49*(g31 - 1.0)) + xF[15]*(g32 + 1.0)*(g330 + g344 + g65)/(g49*(g32 - 1.0)) + xF[16]*(g33 + 1.0)*(g334 + g342 + g65)/(g49*(g33 - 1.0)) + xF[17]*(g34 + 1.0)*(g339 + g351 + g65)/(g49*(g34 - 1.0)) + xF[1]*(g35 + 1.0)*(g340 + g356 + g65)/(g49*(g35 - 1.0)) + xF[2]*(g36 + 1.0)*(g331 + g350 + g65)/(g49*(g36 - 1.0)) + xF[3]*(g37 + 1.0)*(g338 + g348 + g65)/(g49*(g37 - 1.0)) + xF[4]*(g38 + 1.0)*(g324 + g359 + g65)/(g49*(g38 - 1.0)) + xF[5]*(g39 + 1.0)*(g328 + g352 + g65)/(g49*(g39 - 1.0)) + xF[6]*(g40 + 1.0)*(g329 + g345 + g65)/(g49*(g40 - 1.0)) + xF[7]*(g41 + 1.0)*(g341 + g358 + g65)/(g49*(g41 - 1.0)) + xF[8]*(g42 + 1.0)*(g332 + g354 + g65)/(g49*(g42 - 1.0)) + xF[9]*(g43 + 1.0)*(g326 + g355 + g65)/(g49*(g43 - 1.0));
27869  PpF = g66;
27870  TpF = -g21/g3;
27871  SWUpF = -g126*g200*g323 - g197*g321*(g103 + 1) - g197*g323*(pow(alpha, g19*g45) - 1) - g198*g321*(g102 + 1) - g198*g323*(pow(alpha, g18*g45) - 1) - g199*g321*(g89 + 1) - g199*g323*(pow(alpha, g45*g5) - 1) - g200*g321*g69 - g201*g321*(g88 + 1) - g201*g323*(pow(alpha, g4*g45) - 1) - g202*g321*(g95 + 1) - g202*g323*(pow(alpha, g11*g45) - 1) - g203*g321*(g93 + 1) - g203*g323*(pow(alpha, g45*g9) - 1) - g204*g321*(g97 + 1) - g204*g323*(pow(alpha, g13*g45) - 1) - g205*g321*(g101 + 1) - g205*g323*(pow(alpha, g17*g45) - 1) - g206*g321*(g90 + 1) - g206*g323*(pow(alpha, g45*g6) - 1) - g207*g321*(g91 + 1) - g207*g323*(pow(alpha, g45*g7) - 1) - g208*g321*(g100 + 1) - g208*g323*(pow(alpha, g16*g45) - 1) - g209*g321*(g92 + 1) - g209*g323*(pow(alpha, g45*g8) - 1) - g210*g321*(g99 + 1) - g210*g323*(pow(alpha, g15*g45) - 1) - g211*g321*(g96 + 1) - g211*g323*(pow(alpha, g12*g45) - 1) - g212*g321*(g87 + 1) - g212*g323*(pow(alpha, g1*g45) - 1) - g360 - g23*g318*(g98 + 1)/g191 - g23*g320*(pow(alpha, g14*g45) - 1)/g191 - g24*g318*(g94 + 1)/g187 - g24*g320*(pow(alpha, g10*g45) - 1)/g187;
27872  SWUpP = -g67*(g125*g246*g322 + g127*g232*g322 + g128*g243*g322 + g129*g240*g322 + g130*g233*g322 + g131*g236*g322 + g132*g239*g322 + g133*g234*g322 + g134*g231*g322 + g135*g242*g322 + g136*g237*g322 + g137*g245*g322 + g139*g238*g322 + g140*g235*g322 + g141*g247*g322 + g142*g241*g322 + g143*g244*g322 + g23*g324 + g23*g359 + g231*g319*g77 + g232*g319*g70 + g233*g319*g73 + g234*g319*g76 + g235*g319*g83 + g236*g319*g74 + g237*g319*g79 + g238*g319*g82 + g239*g319*g75 + g240*g319*g72 + g241*g319*g85 + g242*g319*g78 + g243*g319*g71 + g244*g319*g86 + g245*g319*g80 + g246*g319*g68 + g247*g319*g84 + g360);
27873  xP[0] = g301*g67;
27874  xP[1] = g311*g67;
27875  xP[2] = g306*g67;
27876  xP[3] = g309*g67;
27877  xP[4] = g138*g213*g67;
27878  xP[5] = g310*g67;
27879  xP[6] = g305*g67;
27880  xP[7] = g316*g67;
27881  xP[8] = g314*g67;
27882  xP[9] = g317*g67;
27883  xP[10] = g315*g67;
27884  xP[11] = g308*g67;
27885  xP[12] = g303*g67;
27886  xP[13] = g307*g67;
27887  xP[14] = g312*g67;
27888  xP[15] = g304*g67;
27889  xP[16] = g302*g67;
27890  xP[17] = g313*g67;
27891  xT[0] = g105*g268;
27892  xT[1] = g105*g282;
27893  xT[2] = g105*g270;
27894  xT[3] = g105*g275;
27895  xT[4] = g105*g213*g81;
27896  xT[5] = g105*g277;
27897  xT[6] = g105*g271;
27898  xT[7] = g105*g281;
27899  xT[8] = g105*g273;
27900  xT[9] = g105*g267;
27901  xT[10] = g105*g279;
27902  xT[11] = g105*g278;
27903  xT[12] = g105*g272;
27904  xT[13] = g105*g274;
27905  xT[14] = g105*g280;
27906  xT[15] = g105*g269;
27907  xT[16] = g105*g276;
27908  xT[17] = g105*g266;
27909  break;
27910  case 19:
27911  n0 = MW[0] - Mstar;
27912  n1 = log(alpha);
27913  n2 = xPj - xTj;
27914  n3 = xF[0] - xPj;
27915  n4 = MW[10] - Mstar;
27916  n5 = MW[11] - Mstar;
27917  n6 = MW[12] - Mstar;
27918  n7 = MW[13] - Mstar;
27919  n8 = MW[14] - Mstar;
27920  n9 = MW[15] - Mstar;
27921  n10 = MW[16] - Mstar;
27922  n11 = MW[17] - Mstar;
27923  n12 = MW[18] - Mstar;
27924  n13 = MW[1] - Mstar;
27925  n14 = MW[2] - Mstar;
27926  n15 = MW[3] - Mstar;
27927  n16 = MW[4] - Mstar;
27928  n17 = MW[5] - Mstar;
27929  n18 = MW[6] - Mstar;
27930  n19 = MW[7] - Mstar;
27931  n20 = MW[8] - Mstar;
27932  n21 = MW[9] - Mstar;
27933  n22 = log(xTj);
27934  n23 = -2;
27935  n24 = -n0;
27936  n25 = xF[0]*xPj;
27937  n26 = -Mstar;
27938  n27 = -NP0*n23;
27939  n28 = -xTj;
27940  n29 = pow(n0, -n23);
27941  n30 = pow(n1, -n23);
27942  n31 = pow(n4, -n23);
27943  n32 = pow(n5, -n23);
27944  n33 = pow(n6, -n23);
27945  n34 = pow(n7, -n23);
27946  n35 = pow(n8, -n23);
27947  n36 = pow(n9, -n23);
27948  n37 = pow(n10, -n23);
27949  n38 = pow(n11, -n23);
27950  n39 = pow(n12, -n23);
27951  n40 = pow(n13, -n23);
27952  n41 = pow(n14, -n23);
27953  n42 = pow(n15, -n23);
27954  n43 = pow(n16, -n23);
27955  n44 = pow(n17, -n23);
27956  n45 = pow(n18, -n23);
27957  n46 = pow(n19, -n23);
27958  n47 = pow(n20, -n23);
27959  n48 = pow(n21, -n23);
27960  n49 = Mstar*n1;
27961  n50 = -n1*n23;
27962  n51 = pow(alpha, NP0*n0);
27963  n52 = n25 + n28*xF[0];
27964  n53 = n25 + n28*xPj;
27965  n54 = pow(alpha, NP0*n4);
27966  n55 = pow(alpha, NP0*n5);
27967  n56 = pow(alpha, NP0*n6);
27968  n57 = pow(alpha, NP0*n7);
27969  n58 = pow(alpha, NP0*n8);
27970  n59 = pow(alpha, NP0*n9);
27971  n60 = pow(alpha, NP0*n10);
27972  n61 = pow(alpha, NP0*n11);
27973  n62 = pow(alpha, NP0*n12);
27974  n63 = pow(alpha, NP0*n13);
27975  n64 = pow(alpha, NP0*n14);
27976  n65 = pow(alpha, NP0*n15);
27977  n66 = pow(alpha, NP0*n16);
27978  n67 = pow(alpha, NP0*n17);
27979  n68 = pow(alpha, NP0*n18);
27980  n69 = pow(alpha, NP0*n19);
27981  n70 = pow(alpha, NP0*n20);
27982  n71 = pow(alpha, NP0*n21);
27983  n72 = -MW[0]*n1;
27984  n73 = n2/n3;
27985  n74 = n1*n12;
27986  n75 = n1*n7;
27987  n76 = n1*n14;
27988  n77 = n1*n9;
27989  n78 = -n51 + 1;
27990  n79 = -n54 + 1;
27991  n80 = pow(alpha, NP0*n23*n24);
27992  n81 = pow(n52, -n23);
27993  n82 = pow(n53, -n23);
27994  n83 = -n55 + 1;
27995  n84 = -n56 + 1;
27996  n85 = -n57 + 1;
27997  n86 = -n58 + 1;
27998  n87 = -n59 + 1;
27999  n88 = -n60 + 1;
28000  n89 = -n61 + 1;
28001  n90 = -n62 + 1;
28002  n91 = -n63 + 1;
28003  n92 = -n64 + 1;
28004  n93 = -n65 + 1;
28005  n94 = -n66 + 1;
28006  n95 = -n67 + 1;
28007  n96 = -n68 + 1;
28008  n97 = -n69 + 1;
28009  n98 = -n70 + 1;
28010  n99 = -n71 + 1;
28011  n100 = -n51;
28012  n101 = -n55;
28013  n102 = -n57;
28014  n103 = -n58;
28015  n104 = -n60;
28016  n105 = -n62;
28017  n106 = -n64;
28018  n107 = -n66;
28019  n108 = -n68;
28020  n109 = -n73;
28021  n110 = n51*xF[0];
28022  n111 = 1/(n0*n1);
28023  n112 = n88*xF[16];
28024  n113 = n1*n73;
28025  n114 = n15*n65;
28026  n115 = n93*xF[3];
28027  n116 = n87*xF[15];
28028  n117 = n30*n44;
28029  n118 = n1*n66;
28030  n119 = n29*n30;
28031  n120 = n99*xF[9];
28032  n121 = n96*xF[6];
28033  n122 = n58*n8;
28034  n123 = n97*xF[7];
28035  n124 = n1*n51;
28036  n125 = n30*n46;
28037  n126 = n86*xF[14];
28038  n127 = n92*xF[2];
28039  n128 = n30*n34;
28040  n129 = n11*n61;
28041  n130 = n21*n71;
28042  n131 = n79*xF[10];
28043  n132 = n85*xF[13];
28044  n133 = n78*xF[0];
28045  n134 = n30*n36;
28046  n135 = n30*n41;
28047  n136 = n20*n70;
28048  n137 = n30*n40;
28049  n138 = n10*n60;
28050  n139 = n13*n63;
28051  n140 = n30*n39;
28052  n141 = n4*n54;
28053  n142 = n56*n6;
28054  n143 = n84*xF[12];
28055  n144 = n95*xF[5];
28056  n145 = n17*n67;
28057  n146 = n18*n68;
28058  n147 = n19*n69;
28059  n148 = n5*n55;
28060  n149 = n30*n35;
28061  n150 = n59*n9;
28062  n151 = log((-1.0 + xPj/xF[0])/n2);
28063  n152 = -n143;
28064  n153 = n1*n148;
28065  n154 = n1*n129;
28066  n155 = n1*n146;
28067  n156 = n53/n52;
28068  n157 = n1*n142*xF[12];
28069  n158 = n146*n50;
28070  n159 = n1*n141*xF[10];
28071  n160 = n30*n38*n61;
28072  n161 = n30*n32*n55;
28073  n162 = n30*n47*n70;
28074  n163 = n30*n37*n60;
28075  n164 = n30*n42*n65;
28076  n165 = n30*n33*n56;
28077  n166 = n30*n43*n66;
28078  n167 = n30*n31*n54;
28079  n168 = n30*n45*n68;
28080  n169 = n100*n156 + 1;
28081  n170 = pow(n169, -n23);
28082  n171 = n151 + n22 + n49 + n72;
28083  n172 = n124*n156/n169;
28084  n173 = n0*n156*n30*n51/n169;
28085  n174 = n111*(n171 - log(n169)) + 1;
28086  n175 = pow(alpha, n0*n174);
28087  n176 = pow(alpha, n174*n4);
28088  n177 = pow(alpha, n174*n5);
28089  n178 = pow(alpha, n174*n6);
28090  n179 = pow(alpha, n174*n7);
28091  n180 = pow(alpha, n174*n8);
28092  n181 = pow(alpha, n174*n9);
28093  n182 = pow(alpha, n10*n174);
28094  n183 = pow(alpha, n11*n174);
28095  n184 = pow(alpha, n12*n174);
28096  n185 = pow(alpha, n13*n174);
28097  n186 = pow(alpha, n14*n174);
28098  n187 = pow(alpha, n15*n174);
28099  n188 = pow(alpha, n16*n174);
28100  n189 = pow(alpha, n17*n174);
28101  n190 = pow(alpha, n174*n18);
28102  n191 = pow(alpha, n174*n19);
28103  n192 = pow(alpha, n174*n20);
28104  n193 = pow(alpha, n174*n21);
28105  n194 = n6/n178;
28106  n195 = n12/n184;
28107  n196 = n19/n191;
28108  n197 = n21/n193;
28109  n198 = n11/n183;
28110  n199 = n15/n187;
28111  n200 = n18/n190;
28112  n201 = n8/n180;
28113  n202 = n20/n192;
28114  n203 = n5/n177;
28115  n204 = n13/n185;
28116  n205 = n14/n186;
28117  n206 = n16/n188;
28118  n207 = n9/n181;
28119  n208 = n17/n189;
28120  n209 = n4/n176;
28121  n210 = n10/n182;
28122  n211 = n7/n179;
28123  n212 = pow(alpha, n174*n24) + n78 - 1;
28124  n213 = n79 - 1 + 1.0/n176;
28125  n214 = n83 - 1 + 1.0/n177;
28126  n215 = n84 - 1 + 1.0/n178;
28127  n216 = n85 - 1 + 1.0/n179;
28128  n217 = n86 - 1 + 1.0/n180;
28129  n218 = n87 - 1 + 1.0/n181;
28130  n219 = n88 - 1 + 1.0/n182;
28131  n220 = n89 - 1 + 1.0/n183;
28132  n221 = n90 - 1 + 1.0/n184;
28133  n222 = n91 - 1 + 1.0/n185;
28134  n223 = n92 - 1 + 1.0/n186;
28135  n224 = n93 - 1 + 1.0/n187;
28136  n225 = n94 - 1 + 1.0/n188;
28137  n226 = n95 - 1 + 1.0/n189;
28138  n227 = n96 - 1 + 1.0/n190;
28139  n228 = n97 - 1 + 1.0/n191;
28140  n229 = n98 - 1 + 1.0/n192;
28141  n230 = n99 - 1 + 1.0/n193;
28142  n231 = pow(n212, -n23);
28143  n232 = pow(n213, -n23);
28144  n233 = pow(n214, -n23);
28145  n234 = pow(n215, -n23);
28146  n235 = pow(n216, -n23);
28147  n236 = pow(n217, -n23);
28148  n237 = pow(n218, -n23);
28149  n238 = pow(n219, -n23);
28150  n239 = pow(n220, -n23);
28151  n240 = pow(n221, -n23);
28152  n241 = pow(n222, -n23);
28153  n242 = pow(n223, -n23);
28154  n243 = pow(n224, -n23);
28155  n244 = pow(n225, -n23);
28156  n245 = pow(n226, -n23);
28157  n246 = pow(n227, -n23);
28158  n247 = pow(n228, -n23);
28159  n248 = pow(n229, -n23);
28160  n249 = pow(n230, -n23);
28161  n250 = pow(n212, 3);
28162  n251 = pow(n213, 3);
28163  n252 = pow(n214, 3);
28164  n253 = pow(n215, 3);
28165  n254 = pow(n216, 3);
28166  n255 = pow(n217, 3);
28167  n256 = pow(n218, 3);
28168  n257 = pow(n219, 3);
28169  n258 = pow(n220, 3);
28170  n259 = pow(n221, 3);
28171  n260 = pow(n222, 3);
28172  n261 = pow(n223, 3);
28173  n262 = pow(n224, 3);
28174  n263 = pow(n225, 3);
28175  n264 = pow(n226, 3);
28176  n265 = pow(n227, 3);
28177  n266 = pow(n228, 3);
28178  n267 = pow(n229, 3);
28179  n268 = pow(n230, 3);
28180  n269 = xF[11]/n214;
28181  n270 = xF[17]/n220;
28182  n271 = xF[14]/n217;
28183  n272 = xF[4]/n225;
28184  n273 = xF[8]/n229;
28185  n274 = xF[3]/n224;
28186  n275 = xF[16]/n219;
28187  n276 = xF[9]/n230;
28188  n277 = xF[12]/n215;
28189  n278 = xF[10]/n213;
28190  n279 = xF[6]/n227;
28191  n280 = xF[3]/n243;
28192  n281 = xF[17]/n239;
28193  n282 = -1/n247;
28194  n283 = n0*n1/n212;
28195  n284 = n67*xF[5]/n226;
28196  n285 = n63*xF[1]/n222;
28197  n286 = n62*xF[18]/n221;
28198  n287 = n69*xF[7]/n228;
28199  n288 = n57*xF[13]/n216;
28200  n289 = n64*xF[2]/n223;
28201  n290 = n59*xF[15]/n218;
28202  n291 = n83/n252;
28203  n292 = n91/n260;
28204  n293 = n78/n231;
28205  n294 = n83/n233;
28206  n295 = n94/n263;
28207  n296 = n144/n245;
28208  n297 = n90*xF[18]/n240;
28209  n298 = n91*xF[1]/n241;
28210  n299 = n94*xF[4]/n244;
28211  n300 = n89*xF[17]/n258;
28212  n301 = n90*xF[18]/n259;
28213  n302 = n98*xF[8]/n248;
28214  n303 = n276*n30*n48*n71;
28215  n304 = n0*n110*n113/n212;
28216  n305 = n110*n113*n24/n212;
28217  n306 = n110*n119*n73/n212;
28218  n307 = n167*n278*n73;
28219  n308 = n161*n269*n73;
28220  n309 = n165*n277*n73;
28221  n310 = n128*n288*n73;
28222  n311 = n149*n271*n58*n73;
28223  n312 = n134*n290*n73;
28224  n313 = n163*n275*n73;
28225  n314 = n160*n270*n73;
28226  n315 = n140*n286*n73;
28227  n316 = n137*n285*n73;
28228  n317 = n135*n289*n73;
28229  n318 = n164*n274*n73;
28230  n319 = n166*n272*n73;
28231  n320 = n117*n284*n73;
28232  n321 = n168*n279*n73;
28233  n322 = n125*n287*n73;
28234  n323 = n162*n273*n73;
28235  n324 = n303*n73;
28236  n325 = 0.5*n306;
28237  n326 = n156/(n169*n175);
28238  n327 = n326 + 1;
28239  n328 = n0*n124 + n0*n172/n175;
28240  n329 = n1*n141 + n172*n209;
28241  n330 = n153 + n172*n203;
28242  n331 = n1*n142 + n172*n194;
28243  n332 = n156*n51*n75/(n169*n179) + n57*n75;
28244  n333 = n1*n122 + n172*n201;
28245  n334 = n156*n51*n77/(n169*n181) + n59*n77;
28246  n335 = n1*n138 + n172*n210;
28247  n336 = n154 + n172*n198;
28248  n337 = n156*n51*n74/(n169*n184) + n62*n74;
28249  n338 = n1*n139 + n172*n204;
28250  n339 = n156*n51*n76/(n169*n186) + n64*n76;
28251  n340 = n1*n114 + n172*n199;
28252  n341 = n118*n16 + n172*n206;
28253  n342 = n1*n145 + n172*n208;
28254  n343 = n155 + n172*n200;
28255  n344 = n1*n147 + n172*n196;
28256  n345 = n1*n136 + n172*n202;
28257  n346 = n1*n130 + n172*n197;
28258  n347 = pow(n328, -n23);
28259  n348 = pow(n329, -n23);
28260  n349 = pow(n330, -n23);
28261  n350 = pow(n331, -n23);
28262  n351 = pow(n332, -n23);
28263  n352 = pow(n333, -n23);
28264  n353 = pow(n334, -n23);
28265  n354 = pow(n335, -n23);
28266  n355 = pow(n336, -n23);
28267  n356 = pow(n337, -n23);
28268  n357 = pow(n338, -n23);
28269  n358 = pow(n339, -n23);
28270  n359 = pow(n340, -n23);
28271  n360 = pow(n341, -n23);
28272  n361 = pow(n342, -n23);
28273  n362 = pow(n343, -n23);
28274  n363 = pow(n344, -n23);
28275  n364 = pow(n345, -n23);
28276  n365 = pow(n346, -n23);
28277  n366 = n330*xF[11];
28278  n367 = n338*xF[1];
28279  n368 = n341*xF[4];
28280  n369 = n345*xF[8];
28281  n370 = n124*n23*n24 + n172*n23*n24/n175;
28282  n371 = n114*n50 + n156*n199*n50*n51/n169;
28283  n372 = n129*n50 + n156*n198*n50*n51/n169;
28284  n373 = n349*xF[11];
28285  n374 = n357*xF[1];
28286  n375 = n360*xF[4];
28287  n376 = n100*n119*n326 + n100*n119;
28288  n377 = n336*n89;
28289  n378 = n331/n234;
28290  n379 = n328/n231;
28291  n380 = n339/n242;
28292  n381 = n346/n249;
28293  n382 = n329/n232;
28294  n383 = n332/n235;
28295  n384 = n333/n236;
28296  n385 = n334/n237;
28297  n386 = n335/n238;
28298  n387 = n344/n247;
28299  n388 = n359/n262;
28300  n389 = n365/n268;
28301  n390 = n362/n265;
28302  n391 = n353/n256;
28303  n392 = n351/n254;
28304  n393 = n352/n255;
28305  n394 = n363/n266;
28306  n395 = n347/n250;
28307  n396 = n358/n261;
28308  n397 = n350/n253;
28309  n398 = n361/n264;
28310  n399 = n348/n251;
28311  n400 = n354/n257;
28312  n401 = n364*n98*xF[8]/n267;
28313  n402 = n109*n133*n379;
28314  n403 = n133*n376/n231;
28315  n404 = n110*n113*n23*n24*(pow(alpha, NP0*n0 + n174*n24)*n0*n1*n156/n169 + n0*n124)/n231;
28316  n405 = n141*n50*n73*xF[10]*(pow(alpha, NP0*n0 - n174*n4)*n1*n156*n4/n169 + n1*n141)/n232;
28317  n406 = n148*n50*n73*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n1*n156*n5/n169 + n153)/n233;
28318  n407 = n142*n50*n73*xF[12]*(pow(alpha, NP0*n0 - n174*n6)*n1*n156*n6/n169 + n1*n142)/n234;
28319  n408 = n50*n57*n7*n73*xF[13]*(pow(alpha, NP0*n0 - n174*n7)*n156*n75/n169 + n57*n75)/n235;
28320  n409 = n122*n50*n73*xF[14]*(pow(alpha, NP0*n0 - n174*n8)*n1*n156*n8/n169 + n1*n122)/n236;
28321  n410 = n150*n50*n73*xF[15]*(pow(alpha, NP0*n0 - n174*n9)*n156*n77/n169 + n59*n77)/n237;
28322  n411 = n138*n50*n73*xF[16]*(pow(alpha, NP0*n0 - n10*n174)*n1*n10*n156/n169 + n1*n138)/n238;
28323  n412 = n129*n281*n50*n73*(pow(alpha, NP0*n0 - n11*n174)*n1*n11*n156/n169 + n154);
28324  n413 = n12*n50*n62*n73*xF[18]*(pow(alpha, NP0*n0 - n12*n174)*n156*n74/n169 + n62*n74)/n240;
28325  n414 = n139*n50*n73*xF[1]*(pow(alpha, NP0*n0 - n13*n174)*n1*n13*n156/n169 + n1*n139)/n241;
28326  n415 = n14*n50*n64*n73*xF[2]*(pow(alpha, NP0*n0 - n14*n174)*n156*n76/n169 + n64*n76)/n242;
28327  n416 = n114*n280*n50*n73*(pow(alpha, NP0*n0 - n15*n174)*n1*n15*n156/n169 + n1*n114);
28328  n417 = n16*n50*n66*n73*xF[4]*(pow(alpha, NP0*n0 - n16*n174)*n1*n156*n16/n169 + n118*n16)/n244;
28329  n418 = n145*n50*n73*xF[5]*(pow(alpha, NP0*n0 - n17*n174)*n1*n156*n17/n169 + n1*n145)/n245;
28330  n419 = n158*n73*xF[6]*(pow(alpha, NP0*n0 - n174*n18)*n1*n156*n18/n169 + n155)/n246;
28331  n420 = n147*n50*n73*xF[7]*(pow(alpha, NP0*n0 - n174*n19)*n1*n156*n19/n169 + n1*n147)/n247;
28332  n421 = n136*n50*n73*xF[8]*(pow(alpha, NP0*n0 - n174*n20)*n1*n156*n20/n169 + n1*n136)/n248;
28333  n422 = n130*n50*n73*xF[9]*(pow(alpha, NP0*n0 - n174*n21)*n1*n156*n21/n169 + n1*n130)/n249;
28334  n423 = 1.0*n0*n110*n113*n379;
28335  n424 = n403*n73;
28336  n425 = 0.5*n424;
28337  n426 = n304 + n402;
28338  n427 = n328*n370/n250;
28339  n428 = pow(alpha, n0*n27)*n0*n209*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n30*n31*n82/(n170*n176*n81) + n167 + n173*n209;
28340  n429 = pow(alpha, n0*n27)*n0*n194*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n30*n33*n82/(n170*n178*n81) + n165 + n173*n194;
28341  n430 = pow(alpha, n0*n27)*n128*n82/(n170*n179*n81) + pow(alpha, n0*n27)*n211*n24*n30*n82/(n170*n81) + n102*n128 + n156*n211*n24*n30*n51/n169;
28342  n431 = pow(alpha, n0*n27)*n149*n82/(n170*n180*n81) + pow(alpha, n0*n27)*n201*n24*n30*n82/(n170*n81) + n103*n149 + n156*n201*n24*n30*n51/n169;
28343  n432 = pow(alpha, n0*n27)*n0*n207*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n134*n82/(n170*n181*n81) + n134*n59 + n173*n207;
28344  n433 = pow(alpha, n0*n27)*n210*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27)*n30*n37*n82/(n170*n182*n81) + n104*n30*n37 + n156*n210*n24*n30*n51/n169;
28345  n434 = pow(alpha, n0*n27)*n0*n198*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n30*n38*n82/(n170*n183*n81) + n160 + n173*n198;
28346  n435 = pow(alpha, n0*n27)*n135*n82/(n170*n186*n81) + pow(alpha, n0*n27)*n205*n24*n30*n82/(n170*n81) + n106*n135 + n156*n205*n24*n30*n51/n169;
28347  n436 = pow(alpha, n0*n27)*n0*n199*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n30*n42*n82/(n170*n187*n81) + n164 + n173*n199;
28348  n437 = pow(alpha, n0*n27)*n200*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27)*n30*n45*n82/(n170*n190*n81) + n108*n30*n45 + n156*n200*n24*n30*n51/n169;
28349  n438 = pow(alpha, n0*n27)*n0*n197*n30*n82/(n170*n81) - pow(alpha, n0*n27)*n30*n48*n82/(n170*n193*n81) + n173*n197 + n30*n48*n71;
28350  n439 = n132*n73*(pow(alpha, n0*n27 - n174*n7)*n128*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n7)*n24*n30*n7*n82/(n170*n81) + n102*n128 + n156*n211*n24*n30*n51/n169)/n235;
28351  n440 = n126*n73*(pow(alpha, n0*n27 - n174*n8)*n149*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n8)*n24*n30*n8*n82/(n170*n81) + n103*n149 + n156*n201*n24*n30*n51/n169)/n236;
28352  n441 = n112*n73*(pow(alpha, n0*n27 - n10*n174)*n10*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n10*n174)*n30*n37*n82/(n170*n81) + n104*n30*n37 + n156*n210*n24*n30*n51/n169)/n238;
28353  n442 = n297*n73*(pow(alpha, n0*n27 - n12*n174)*n12*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n12*n174)*n140*n82/(n170*n81) + n105*n140 + n156*n195*n24*n30*n51/n169);
28354  n443 = n127*n73*(pow(alpha, n0*n27 - n14*n174)*n135*n82/(n170*n81) + pow(alpha, n0*n27 - n14*n174)*n14*n24*n30*n82/(n170*n81) + n106*n135 + n156*n205*n24*n30*n51/n169)/n242;
28355  n444 = n299*n73*(pow(alpha, n0*n27 - n16*n174)*n16*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n16*n174)*n30*n43*n82/(n170*n81) + n107*n30*n43 + n156*n206*n24*n30*n51/n169);
28356  n445 = n121*n73*(pow(alpha, n0*n27 - n174*n18)*n18*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n18)*n30*n45*n82/(n170*n81) + n108*n30*n45 + n156*n200*n24*n30*n51/n169)/n246;
28357  n446 = n109*n131*(pow(alpha, n0*n27 - n174*n4)*n0*n30*n4*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n4)*n30*n31*n82/(n170*n81) + n167 + n173*n209)/n232;
28358  n447 = n109*n294*xF[11]*(pow(alpha, n0*n27 - n174*n5)*n0*n30*n5*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n5)*n30*n32*n82/(n170*n81) + n161 + n173*n203);
28359  n448 = n109*n143*(pow(alpha, n0*n27 - n174*n6)*n0*n30*n6*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n6)*n30*n33*n82/(n170*n81) + n165 + n173*n194)/n234;
28360  n449 = n109*n116*(pow(alpha, n0*n27 - n174*n9)*n0*n30*n82*n9/(n170*n81) - pow(alpha, n0*n27 - n174*n9)*n134*n82/(n170*n81) + n134*n59 + n173*n207)/n237;
28361  n450 = n109*n281*n89*(pow(alpha, n0*n27 - n11*n174)*n0*n11*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n11*n174)*n30*n38*n82/(n170*n81) + n160 + n173*n198);
28362  n451 = n109*n298*(pow(alpha, n0*n27 - n13*n174)*n0*n13*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n13*n174)*n137*n82/(n170*n81) + n137*n63 + n173*n204);
28363  n452 = n109*n115*(pow(alpha, n0*n27 - n15*n174)*n0*n15*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n15*n174)*n30*n42*n82/(n170*n81) + n164 + n173*n199)/n243;
28364  n453 = n109*n296*(pow(alpha, n0*n27 - n17*n174)*n0*n17*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n17*n174)*n117*n82/(n170*n81) + n117*n67 + n173*n208);
28365  n454 = n109*n123*(pow(alpha, n0*n27 - n174*n19)*n0*n19*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n19)*n125*n82/(n170*n81) + n125*n69 + n173*n196)/n247;
28366  n455 = n109*n302*(pow(alpha, n0*n27 - n174*n20)*n0*n20*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n20)*n30*n47*n82/(n170*n81) + n162 + n173*n202);
28367  n456 = n109*n120*(pow(alpha, n0*n27 - n174*n21)*n0*n21*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n21)*n30*n48*n82/(n170*n81) + n173*n197 + n30*n48*n71)/n249;
28368  n457 = n325 + n423 + n425;
28369  n458 = n109*n112*n386 + n109*n115*n340/n243 + n109*n116*n385 + n109*n120*n381 + n109*n121*n343/n246 + n109*n123*n387 + n109*n126*n384 + n109*n127*n380 + n109*n131*n382 + n109*n132*n383 + n109*n143*n378 + n109*n281*n377 + n109*n294*n366 + n109*n296*n342 + n109*n297*n337 + n109*n298*n338 + n109*n299*n341 + n109*n302*n345 + n113*n114*n274 + n113*n122*n271 + n113*n129*n270 + n113*n130*n276 + n113*n136*n273 + n113*n138*n275 + n113*n139*xF[1]/n222 + n113*n141*n278 + n113*n142*n277 + n113*n145*xF[5]/n226 + n113*n146*n279 + n113*n147*xF[7]/n228 + n113*n148*n269 + n113*n16*n272*n66 + n286*n73*n74 + n288*n73*n75 + n289*n73*n76 + n290*n73*n77 + n426;
28370  n459 = n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n318 + n319 + n320 + n321 + n322 + n323 + n324 + n404 + n405 + n406 + n407 + n408 + n409 + n410 + n411 + n412 + n413 + n414 + n415 + n416 + n417 + n418 + n419 + n420 + n421 + n422 + n424 + n439 + n440 + n441 + n442 + n443 + n444 + n445 + n446 + n447 + n448 + n449 + n450 + n451 + n452 + n453 + n454 + n455 + n456;
28371  n460 = n109*n112*n335*(n138*n50 + n156*n210*n50*n51/n169)/n257 + n109*n115*n340*n371/n262 + n109*n116*n334*(n150*n50 + n156*n207*n50*n51/n169)/n256 + n109*n120*n346*(n130*n50 + n156*n197*n50*n51/n169)/n268 + n109*n121*n343*(n156*n200*n50*n51/n169 + n158)/n265 + n109*n123*n344*(n147*n50 + n156*n196*n50*n51/n169)/n266 + n109*n126*n333*(n122*n50 + n156*n201*n50*n51/n169)/n255 + n109*n127*n339*(n14*n50*n64 + n156*n205*n50*n51/n169)/n261 + n109*n131*n329*(n141*n50 + n156*n209*n50*n51/n169)/n251 + n109*n132*n332*(n156*n211*n50*n51/n169 + n50*n57*n7)/n254 + n109*n133*n427 + n109*n143*n331*(n142*n50 + n156*n194*n50*n51/n169)/n253 + n109*n144*n342*(n145*n50 + n156*n208*n50*n51/n169)/n264 + n109*n291*n366*(n148*n50 + n156*n203*n50*n51/n169) + n109*n292*n367*(n139*n50 + n156*n204*n50*n51/n169) + n109*n295*n368*(n156*n206*n50*n51/n169 + n16*n50*n66) + n109*n300*n336*n372 + n109*n301*n337*(n12*n50*n62 + n156*n195*n50*n51/n169) + n109*n369*n98*(n136*n50 + n156*n202*n50*n51/n169)/n267 + n459;
28372  NP_b = -n0*n110*n113*n293*n327 - n27*(1.0*n0*n110*n113*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)/n231 - 1.0*n133*n395*n73 + 0.5*n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n119*(-n25 + xPj*xTj)/(n169*n52) + n100*n119)/n231 + n325 - 0.5*xTj*(n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n0*n15*n156*n30/n169 + pow(alpha, n0*n27 - n15*n174)*n0*n15*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n15*n174)*n30*n42*n82/(n170*n81) + n164)/n243 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n0*n156*n30*n9/n169 + pow(alpha, n0*n27 - n174*n9)*n0*n30*n82*n9/(n170*n81) - pow(alpha, n0*n27 - n174*n9)*n134*n82/(n170*n81) + n134*n59)/n237 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n0*n156*n21*n30/n169 + pow(alpha, n0*n27 - n174*n21)*n0*n21*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n21)*n30*n48*n82/(n170*n81) + n30*n48*n71)/n249 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n0*n156*n19*n30/n169 + pow(alpha, n0*n27 - n174*n19)*n0*n19*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n19)*n125*n82/(n170*n81) + n125*n69)/n247 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n0*n156*n30*n4/n169 + pow(alpha, n0*n27 - n174*n4)*n0*n30*n4*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n4)*n30*n31*n82/(n170*n81) + n167)/n232 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n0*n156*n30*n6/n169 + pow(alpha, n0*n27 - n174*n6)*n0*n30*n6*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n6)*n30*n33*n82/(n170*n81) + n165)/n234 + n109*n281*n89*(pow(alpha, NP0*n0 - n11*n174)*n0*n11*n156*n30/n169 + pow(alpha, n0*n27 - n11*n174)*n0*n11*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n11*n174)*n30*n38*n82/(n170*n81) + n160) + n109*n294*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n0*n156*n30*n5/n169 + pow(alpha, n0*n27 - n174*n5)*n0*n30*n5*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n5)*n30*n32*n82/(n170*n81) + n161) + n109*n296*(pow(alpha, NP0*n0 - n17*n174)*n0*n156*n17*n30/n169 + pow(alpha, n0*n27 - n17*n174)*n0*n17*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n17*n174)*n117*n82/(n170*n81) + n117*n67) + n109*n298*(pow(alpha, NP0*n0 - n13*n174)*n0*n13*n156*n30/n169 + pow(alpha, n0*n27 - n13*n174)*n0*n13*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n13*n174)*n137*n82/(n170*n81) + n137*n63) + n109*n302*(pow(alpha, NP0*n0 - n174*n20)*n0*n156*n20*n30/n169 + pow(alpha, n0*n27 - n174*n20)*n0*n20*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n20)*n30*n47*n82/(n170*n81) + n162) + n112*n23*n400*n73 + n112*n73*(pow(alpha, NP0*n0 - n10*n174)*n10*n156*n24*n30/n169 + pow(alpha, n0*n27 - n10*n174)*n10*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n10*n174)*n30*n37*n82/(n170*n81) + n104*n30*n37)/n238 + n115*n23*n388*n73 + n116*n23*n391*n73 + n120*n23*n389*n73 + n121*n23*n390*n73 + n121*n73*(pow(alpha, NP0*n0 - n174*n18)*n156*n18*n24*n30/n169 + pow(alpha, n0*n27 - n174*n18)*n18*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n18)*n30*n45*n82/(n170*n81) + n108*n30*n45)/n246 + n123*n23*n394*n73 + n126*n23*n393*n73 + n126*n73*(pow(alpha, NP0*n0 - n174*n8)*n156*n24*n30*n8/n169 + pow(alpha, n0*n27 - n174*n8)*n149*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n8)*n24*n30*n8*n82/(n170*n81) + n103*n149)/n236 + n127*n23*n396*n73 + n127*n73*(pow(alpha, NP0*n0 - n14*n174)*n14*n156*n24*n30/n169 + pow(alpha, n0*n27 - n14*n174)*n135*n82/(n170*n81) + pow(alpha, n0*n27 - n14*n174)*n14*n24*n30*n82/(n170*n81) + n106*n135)/n242 + n131*n23*n399*n73 + n132*n23*n392*n73 + n132*n73*(pow(alpha, NP0*n0 - n174*n7)*n156*n24*n30*n7/n169 + pow(alpha, n0*n27 - n174*n7)*n128*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n7)*n24*n30*n7*n82/(n170*n81) + n102*n128)/n235 + n133*n23*n395*n73 + n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n119*(-n25 + xPj*xTj)/(n169*n52) + n100*n119)/n231 + n143*n23*n397*n73 + n144*n23*n398*n73 + n23*n291*n373*n73 + n23*n292*n374*n73 + n23*n295*n375*n73 + n23*n300*n355*n73 + n23*n301*n356*n73 + n23*n401*n73 + n297*n73*(pow(alpha, NP0*n0 - n12*n174)*n12*n156*n24*n30/n169 + pow(alpha, n0*n27 - n12*n174)*n12*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n12*n174)*n140*n82/(n170*n81) + n105*n140) + n299*n73*(pow(alpha, NP0*n0 - n16*n174)*n156*n16*n24*n30/n169 + pow(alpha, n0*n27 - n16*n174)*n16*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n16*n174)*n30*n43*n82/(n170*n81) + n107*n30*n43) + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n318 + n319 + n320 + n321 + n322 + n323 + n324 + n404 + n405 + n406 + n407 + n408 + n409 + n410 + n411 + n412 + n413 + n414 + n415 + n416 + n417 + n418 + n419 + n420 + n421 + n422)) - n305 - n73*xTj*(n1*n114*n274 + n1*n122*n271 + n1*n130*n276 + n1*n136*n273 + n1*n138*n275 + n1*n139*xF[1]/n222 + n1*n145*xF[5]/n226 + n1*n147*xF[7]/n228 + n110*n283 - n112*n386 - n115*n340/n243 - n116*n385 + n118*n16*n272 - n120*n381 - n121*n343/n246 + n123*n282*n344 - n126*n384 - n127*n380 - n131*n382 - n132*n383 - n133*n379 + n152*n378 + n153*n269 + n154*n270 + n155*n279 + n157/n215 + n159/n213 - n281*n377 + n286*n74 + n288*n75 + n289*n76 + n290*n77 - n294*n366 - n296*n342 - n297*n337 - n298*n338 - n299*n341 - n302*n345);
28373  NP_2a = -n73*(-pow(alpha, n0*n27)*n119*n133*n23*pow(n327, -n23)/n250 - 2.0*pow(alpha, n0*n27)*n119*n327*xF[0]/n231 + n100*n119*n133*(-1 + (-n25 + xPj*xTj)/(n169*n175*n52))/n231 - 1.0*n110*n119/n212 + 1.0*xTj*(n1*n110*n23*n24*(pow(alpha, NP0*n0 + n174*n24)*n0*n1*n156/n169 + n0*n124)/n231 + n110*n119/n212 + n112*n23*n400 + n112*(pow(alpha, n0*n27 - n10*n174)*n10*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n10*n174)*n30*n37*n82/(n170*n81) + n104*n30*n37 + n156*n210*n24*n30*n51/n169)/n238 + n114*n280*n50*(pow(alpha, NP0*n0 - n15*n174)*n1*n15*n156/n169 + n1*n114) + n115*n23*n388 - n115*(pow(alpha, n0*n27 - n15*n174)*n0*n15*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n15*n174)*n30*n42*n82/(n170*n81) + n164 + n173*n199)/n243 + n116*n23*n391 - n116*(pow(alpha, n0*n27 - n174*n9)*n0*n30*n82*n9/(n170*n81) - pow(alpha, n0*n27 - n174*n9)*n134*n82/(n170*n81) + n134*n59 + n173*n207)/n237 + n117*n284 + n12*n50*n62*xF[18]*(pow(alpha, NP0*n0 - n12*n174)*n156*n74/n169 + n62*n74)/n240 + n120*n23*n389 - n120*(pow(alpha, n0*n27 - n174*n21)*n0*n21*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n21)*n30*n48*n82/(n170*n81) + n173*n197 + n30*n48*n71)/n249 + n121*n23*n390 + n121*(pow(alpha, n0*n27 - n174*n18)*n18*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n18)*n30*n45*n82/(n170*n81) + n108*n30*n45 + n156*n200*n24*n30*n51/n169)/n246 + n122*n50*xF[14]*(pow(alpha, NP0*n0 - n174*n8)*n1*n156*n8/n169 + n1*n122)/n236 + n123*n23*n394 + n123*n282*(pow(alpha, n0*n27 - n174*n19)*n0*n19*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n19)*n125*n82/(n170*n81) + n125*n69 + n173*n196) + n125*n287 + n126*n23*n393 + n126*(pow(alpha, n0*n27 - n174*n8)*n149*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n8)*n24*n30*n8*n82/(n170*n81) + n103*n149 + n156*n201*n24*n30*n51/n169)/n236 + n127*n23*n396 + n127*(pow(alpha, n0*n27 - n14*n174)*n135*n82/(n170*n81) + pow(alpha, n0*n27 - n14*n174)*n14*n24*n30*n82/(n170*n81) + n106*n135 + n156*n205*n24*n30*n51/n169)/n242 + n128*n288 + n129*n281*n50*(pow(alpha, NP0*n0 - n11*n174)*n1*n11*n156/n169 + n154) + n130*n50*xF[9]*(pow(alpha, NP0*n0 - n174*n21)*n1*n156*n21/n169 + n1*n130)/n249 + n131*n23*n399 - n131*(pow(alpha, n0*n27 - n174*n4)*n0*n30*n4*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n4)*n30*n31*n82/(n170*n81) + n167 + n173*n209)/n232 + n132*n23*n392 + n132*(pow(alpha, n0*n27 - n174*n7)*n128*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n7)*n24*n30*n7*n82/(n170*n81) + n102*n128 + n156*n211*n24*n30*n51/n169)/n235 + n133*n23*n395 + n134*n290 + n135*n289 + n136*n50*xF[8]*(pow(alpha, NP0*n0 - n174*n20)*n1*n156*n20/n169 + n1*n136)/n248 + n137*n285 + n138*n50*xF[16]*(pow(alpha, NP0*n0 - n10*n174)*n1*n10*n156/n169 + n1*n138)/n238 + n139*n50*xF[1]*(pow(alpha, NP0*n0 - n13*n174)*n1*n13*n156/n169 + n1*n139)/n241 + n14*n50*n64*xF[2]*(pow(alpha, NP0*n0 - n14*n174)*n156*n76/n169 + n64*n76)/n242 + n140*n286 + n141*n50*xF[10]*(pow(alpha, NP0*n0 - n174*n4)*n1*n156*n4/n169 + n1*n141)/n232 + n142*n50*xF[12]*(pow(alpha, NP0*n0 - n174*n6)*n1*n156*n6/n169 + n1*n142)/n234 + n143*n23*n397 + n144*n23*n398 + n145*n50*xF[5]*(pow(alpha, NP0*n0 - n17*n174)*n1*n156*n17/n169 + n1*n145)/n245 + n147*n50*xF[7]*(pow(alpha, NP0*n0 - n174*n19)*n1*n156*n19/n169 + n1*n147)/n247 + n148*n50*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n1*n156*n5/n169 + n153)/n233 + n149*n271*n58 + n150*n50*xF[15]*(pow(alpha, NP0*n0 - n174*n9)*n156*n77/n169 + n59*n77)/n237 + n152*(pow(alpha, n0*n27 - n174*n6)*n0*n30*n6*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n6)*n30*n33*n82/(n170*n81) + n165 + n173*n194)/n234 + n158*xF[6]*(pow(alpha, NP0*n0 - n174*n18)*n1*n156*n18/n169 + n155)/n246 + n16*n50*n66*xF[4]*(pow(alpha, NP0*n0 - n16*n174)*n1*n156*n16/n169 + n118*n16)/n244 + n160*n270 + n161*n269 + n162*n273 + n163*n275 + n164*n274 + n165*n277 + n166*n272 + n167*n278 + n168*n279 + n23*n291*n373 + n23*n292*n374 + n23*n295*n375 + n23*n300*n355 + n23*n301*n356 + n23*n401 - n281*n89*(pow(alpha, n0*n27 - n11*n174)*n0*n11*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n11*n174)*n30*n38*n82/(n170*n81) + n160 + n173*n198) + n294*xF[11]*(pow(alpha, n0*n27 - n174*n5)*n24*n30*n5*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n5)*n30*n32*n82/(n170*n81) + n101*n30*n32 + n156*n203*n24*n30*n51/n169) - n296*(pow(alpha, n0*n27 - n17*n174)*n0*n17*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n17*n174)*n117*n82/(n170*n81) + n117*n67 + n173*n208) + n297*(pow(alpha, n0*n27 - n12*n174)*n12*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n12*n174)*n140*n82/(n170*n81) + n105*n140 + n156*n195*n24*n30*n51/n169) - n298*(pow(alpha, n0*n27 - n13*n174)*n0*n13*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n13*n174)*n137*n82/(n170*n81) + n137*n63 + n173*n204) + n299*(pow(alpha, n0*n27 - n16*n174)*n16*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n16*n174)*n30*n43*n82/(n170*n81) + n107*n30*n43 + n156*n206*n24*n30*n51/n169) - n302*(pow(alpha, n0*n27 - n174*n20)*n0*n20*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n20)*n30*n47*n82/(n170*n81) + n162 + n173*n202) + n303 + n403 + n50*n57*n7*xF[13]*(pow(alpha, NP0*n0 - n174*n7)*n156*n75/n169 + n57*n75)/n235));
28374  NP_sqrt_base = (NP0*(n28*(n109*n112*(pow(alpha, NP0*n0 - n10*n174)*n1*n10*n156/n169 + n1*n138)/n238 + n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n1*n15*n156/n169 + n1*n114)/n243 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n156*n77/n169 + n59*n77)/n237 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n1*n156*n21/n169 + n1*n130)/n249 + n109*n121*(pow(alpha, NP0*n0 - n174*n18)*n1*n156*n18/n169 + n155)/n246 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n1*n156*n19/n169 + n1*n147)/n247 + n109*n126*(pow(alpha, NP0*n0 - n174*n8)*n1*n156*n8/n169 + n1*n122)/n236 + n109*n127*(pow(alpha, NP0*n0 - n14*n174)*n156*n76/n169 + n64*n76)/n242 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n1*n156*n4/n169 + n1*n141)/n232 + n109*n132*(pow(alpha, NP0*n0 - n174*n7)*n156*n75/n169 + n57*n75)/n235 + n109*n133*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)/n231 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n1*n156*n6/n169 + n1*n142)/n234 + n109*n281*n89*(pow(alpha, NP0*n0 - n11*n174)*n1*n11*n156/n169 + n154) + n109*n294*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n1*n156*n5/n169 + n153) + n109*n296*(pow(alpha, NP0*n0 - n17*n174)*n1*n156*n17/n169 + n1*n145) + n109*n297*(pow(alpha, NP0*n0 - n12*n174)*n156*n74/n169 + n62*n74) + n109*n298*(pow(alpha, NP0*n0 - n13*n174)*n1*n13*n156/n169 + n1*n139) + n109*n299*(pow(alpha, NP0*n0 - n16*n174)*n1*n156*n16/n169 + n118*n16) + n109*n302*(pow(alpha, NP0*n0 - n174*n20)*n1*n156*n20/n169 + n1*n136) + n113*n114*n274 + n113*n122*n271 + n113*n129*n270 + n113*n130*n276 + n113*n136*n273 + n113*n138*n275 + n113*n139*xF[1]/n222 + n113*n141*n278 + n113*n142*n277 + n113*n145*xF[5]/n226 + n113*n146*n279 + n113*n147*xF[7]/n228 + n113*n148*n269 + n113*n16*n272*n66 + n286*n73*n74 + n288*n73*n75 + n289*n73*n76 + n290*n73*n77 + n304) + n426) + n133*n73/n212 + xTj*(n109*n112/n219 + n109*n115/n224 + n109*n116/n218 + n109*n120/n230 + n109*n121/n227 + n109*n123/n228 + n109*n126/n217 + n109*n127/n223 + n109*n131/n213 + n109*n132/n216 + n109*n133/n212 + n109*n143/n215 + n109*n144/n226 + n109*n269*n83 + n109*n270*n89 + n109*n272*n94 + n109*n273*n98 + n109*n91*xF[1]/n222 + n109*n90*xF[18]/n221) + pow(NP0, -n23)*(-1.0*n0*n110*n113*n379 + 0.5*n133*n427*n73 - 0.5*n306 - 0.5*n424 + 0.5*n460*xTj))*(4.0*n0*n110*n113*n379 - 4.0*n133*n395*n73 - n23*n28*(n109*n112*(pow(alpha, NP0*n0 - n10*n174)*n1*n10*n156/n169 + n1*n138)*(pow(alpha, NP0*n0 - n10*n174)*n10*n156*n50/n169 + n138*n50)/n257 + n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n1*n15*n156/n169 + n1*n114)*(pow(alpha, NP0*n0 - n15*n174)*n15*n156*n50/n169 + n114*n50)/n262 + n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n0*n15*n156*n30/n169 + pow(alpha, n0*n27 - n15*n174)*n0*n15*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n15*n174)*n30*n42*n82/(n170*n81) + n164)/n243 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n156*n77/n169 + n59*n77)*(pow(alpha, NP0*n0 - n174*n9)*n156*n50*n9/n169 + n150*n50)/n256 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n0*n156*n30*n9/n169 + pow(alpha, n0*n27 - n174*n9)*n0*n30*n82*n9/(n170*n81) - pow(alpha, n0*n27 - n174*n9)*n134*n82/(n170*n81) + n134*n59)/n237 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n1*n156*n21/n169 + n1*n130)*(pow(alpha, NP0*n0 - n174*n21)*n156*n21*n50/n169 + n130*n50)/n268 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n0*n156*n21*n30/n169 + pow(alpha, n0*n27 - n174*n21)*n0*n21*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n21)*n30*n48*n82/(n170*n81) + n30*n48*n71)/n249 + n109*n121*(pow(alpha, NP0*n0 - n174*n18)*n1*n156*n18/n169 + n155)*(pow(alpha, NP0*n0 - n174*n18)*n156*n18*n50/n169 + n158)/n265 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n1*n156*n19/n169 + n1*n147)*(pow(alpha, NP0*n0 - n174*n19)*n156*n19*n50/n169 + n147*n50)/n266 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n0*n156*n19*n30/n169 + pow(alpha, n0*n27 - n174*n19)*n0*n19*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n19)*n125*n82/(n170*n81) + n125*n69)/n247 + n109*n126*(pow(alpha, NP0*n0 - n174*n8)*n1*n156*n8/n169 + n1*n122)*(pow(alpha, NP0*n0 - n174*n8)*n156*n50*n8/n169 + n122*n50)/n255 + n109*n127*(pow(alpha, NP0*n0 - n14*n174)*n156*n76/n169 + n64*n76)*(pow(alpha, NP0*n0 - n14*n174)*n14*n156*n50/n169 + n14*n50*n64)/n261 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n1*n156*n4/n169 + n1*n141)*(pow(alpha, NP0*n0 - n174*n4)*n156*n4*n50/n169 + n141*n50)/n251 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n0*n156*n30*n4/n169 + pow(alpha, n0*n27 - n174*n4)*n0*n30*n4*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n4)*n30*n31*n82/(n170*n81) + n167)/n232 + n109*n132*(pow(alpha, NP0*n0 - n174*n7)*n156*n75/n169 + n57*n75)*(pow(alpha, NP0*n0 - n174*n7)*n156*n50*n7/n169 + n50*n57*n7)/n254 + n109*n133*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)*(pow(alpha, NP0*n0 - n0*n174)*n1*n156*n23*n24/n169 + n124*n23*n24)/n250 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n1*n156*n6/n169 + n1*n142)*(pow(alpha, NP0*n0 - n174*n6)*n156*n50*n6/n169 + n142*n50)/n253 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n0*n156*n30*n6/n169 + pow(alpha, n0*n27 - n174*n6)*n0*n30*n6*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n6)*n30*n33*n82/(n170*n81) + n165)/n234 + n109*n144*(pow(alpha, NP0*n0 - n17*n174)*n1*n156*n17/n169 + n1*n145)*(pow(alpha, NP0*n0 - n17*n174)*n156*n17*n50/n169 + n145*n50)/n264 + n109*n281*n89*(pow(alpha, NP0*n0 - n11*n174)*n0*n11*n156*n30/n169 + pow(alpha, n0*n27 - n11*n174)*n0*n11*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n11*n174)*n30*n38*n82/(n170*n81) + n160) + n109*n291*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n1*n156*n5/n169 + n153)*(pow(alpha, NP0*n0 - n174*n5)*n156*n5*n50/n169 + n148*n50) + n109*n292*xF[1]*(pow(alpha, NP0*n0 - n13*n174)*n1*n13*n156/n169 + n1*n139)*(pow(alpha, NP0*n0 - n13*n174)*n13*n156*n50/n169 + n139*n50) + n109*n294*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n0*n156*n30*n5/n169 + pow(alpha, n0*n27 - n174*n5)*n0*n30*n5*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n5)*n30*n32*n82/(n170*n81) + n161) + n109*n295*xF[4]*(pow(alpha, NP0*n0 - n16*n174)*n1*n156*n16/n169 + n118*n16)*(pow(alpha, NP0*n0 - n16*n174)*n156*n16*n50/n169 + n16*n50*n66) + n109*n296*(pow(alpha, NP0*n0 - n17*n174)*n0*n156*n17*n30/n169 + pow(alpha, n0*n27 - n17*n174)*n0*n17*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n17*n174)*n117*n82/(n170*n81) + n117*n67) + n109*n298*(pow(alpha, NP0*n0 - n13*n174)*n0*n13*n156*n30/n169 + pow(alpha, n0*n27 - n13*n174)*n0*n13*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n13*n174)*n137*n82/(n170*n81) + n137*n63) + n109*n300*(pow(alpha, NP0*n0 - n11*n174)*n1*n11*n156/n169 + n154)*(pow(alpha, NP0*n0 - n11*n174)*n11*n156*n50/n169 + n129*n50) + n109*n301*(pow(alpha, NP0*n0 - n12*n174)*n156*n74/n169 + n62*n74)*(pow(alpha, NP0*n0 - n12*n174)*n12*n156*n50/n169 + n12*n50*n62) + n109*n302*(pow(alpha, NP0*n0 - n174*n20)*n0*n156*n20*n30/n169 + pow(alpha, n0*n27 - n174*n20)*n0*n20*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n20)*n30*n47*n82/(n170*n81) + n162) + n109*n98*xF[8]*(pow(alpha, NP0*n0 - n174*n20)*n1*n156*n20/n169 + n1*n136)*(pow(alpha, NP0*n0 - n174*n20)*n156*n20*n50/n169 + n136*n50)/n267 + n112*n73*(pow(alpha, NP0*n0 - n10*n174)*n10*n156*n24*n30/n169 + pow(alpha, n0*n27 - n10*n174)*n10*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n10*n174)*n30*n37*n82/(n170*n81) + n104*n30*n37)/n238 + n121*n73*(pow(alpha, NP0*n0 - n174*n18)*n156*n18*n24*n30/n169 + pow(alpha, n0*n27 - n174*n18)*n18*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n18)*n30*n45*n82/(n170*n81) + n108*n30*n45)/n246 + n126*n73*(pow(alpha, NP0*n0 - n174*n8)*n156*n24*n30*n8/n169 + pow(alpha, n0*n27 - n174*n8)*n149*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n8)*n24*n30*n8*n82/(n170*n81) + n103*n149)/n236 + n127*n73*(pow(alpha, NP0*n0 - n14*n174)*n14*n156*n24*n30/n169 + pow(alpha, n0*n27 - n14*n174)*n135*n82/(n170*n81) + pow(alpha, n0*n27 - n14*n174)*n14*n24*n30*n82/(n170*n81) + n106*n135)/n242 + n132*n73*(pow(alpha, NP0*n0 - n174*n7)*n156*n24*n30*n7/n169 + pow(alpha, n0*n27 - n174*n7)*n128*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n7)*n24*n30*n7*n82/(n170*n81) + n102*n128)/n235 + n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n119*(-n25 + xPj*xTj)/(n169*n52) + n100*n119)/n231 + n297*n73*(pow(alpha, NP0*n0 - n12*n174)*n12*n156*n24*n30/n169 + pow(alpha, n0*n27 - n12*n174)*n12*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n12*n174)*n140*n82/(n170*n81) + n105*n140) + n299*n73*(pow(alpha, NP0*n0 - n16*n174)*n156*n16*n24*n30/n169 + pow(alpha, n0*n27 - n16*n174)*n16*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n16*n174)*n30*n43*n82/(n170*n81) + n107*n30*n43) + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n318 + n319 + n320 + n321 + n322 + n323 + n324 + n404 + n405 + n406 + n407 + n408 + n409 + n410 + n411 + n412 + n413 + n414 + n415 + n416 + n417 + n418 + n419 + n420 + n421 + n422) + 2.0*n306 + 2.0*n424) + pow(-n133*n379*n73 - n27*(1.0*n0*n110*n113*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)/n231 - 0.5*n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)*(pow(alpha, NP0*n0 - n0*n174)*n1*n156*n23*n24/n169 + n124*n23*n24)/n250 + 0.5*n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n119*(-n25 + xPj*xTj)/(n169*n52) + n100*n119)/n231 + n325 - 0.5*xTj*(n109*n112*(pow(alpha, NP0*n0 - n10*n174)*n1*n10*n156/n169 + n1*n138)*(pow(alpha, NP0*n0 - n10*n174)*n10*n156*n50/n169 + n138*n50)/n257 + n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n1*n15*n156/n169 + n1*n114)*(pow(alpha, NP0*n0 - n15*n174)*n15*n156*n50/n169 + n114*n50)/n262 + n109*n115*(pow(alpha, NP0*n0 - n15*n174)*n0*n15*n156*n30/n169 + pow(alpha, n0*n27 - n15*n174)*n0*n15*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n15*n174)*n30*n42*n82/(n170*n81) + n164)/n243 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n156*n77/n169 + n59*n77)*(pow(alpha, NP0*n0 - n174*n9)*n156*n50*n9/n169 + n150*n50)/n256 + n109*n116*(pow(alpha, NP0*n0 - n174*n9)*n0*n156*n30*n9/n169 + pow(alpha, n0*n27 - n174*n9)*n0*n30*n82*n9/(n170*n81) - pow(alpha, n0*n27 - n174*n9)*n134*n82/(n170*n81) + n134*n59)/n237 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n1*n156*n21/n169 + n1*n130)*(pow(alpha, NP0*n0 - n174*n21)*n156*n21*n50/n169 + n130*n50)/n268 + n109*n120*(pow(alpha, NP0*n0 - n174*n21)*n0*n156*n21*n30/n169 + pow(alpha, n0*n27 - n174*n21)*n0*n21*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n21)*n30*n48*n82/(n170*n81) + n30*n48*n71)/n249 + n109*n121*(pow(alpha, NP0*n0 - n174*n18)*n1*n156*n18/n169 + n155)*(pow(alpha, NP0*n0 - n174*n18)*n156*n18*n50/n169 + n158)/n265 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n1*n156*n19/n169 + n1*n147)*(pow(alpha, NP0*n0 - n174*n19)*n156*n19*n50/n169 + n147*n50)/n266 + n109*n123*(pow(alpha, NP0*n0 - n174*n19)*n0*n156*n19*n30/n169 + pow(alpha, n0*n27 - n174*n19)*n0*n19*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n19)*n125*n82/(n170*n81) + n125*n69)/n247 + n109*n126*(pow(alpha, NP0*n0 - n174*n8)*n1*n156*n8/n169 + n1*n122)*(pow(alpha, NP0*n0 - n174*n8)*n156*n50*n8/n169 + n122*n50)/n255 + n109*n127*(pow(alpha, NP0*n0 - n14*n174)*n156*n76/n169 + n64*n76)*(pow(alpha, NP0*n0 - n14*n174)*n14*n156*n50/n169 + n14*n50*n64)/n261 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n1*n156*n4/n169 + n1*n141)*(pow(alpha, NP0*n0 - n174*n4)*n156*n4*n50/n169 + n141*n50)/n251 + n109*n131*(pow(alpha, NP0*n0 - n174*n4)*n0*n156*n30*n4/n169 + pow(alpha, n0*n27 - n174*n4)*n0*n30*n4*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n4)*n30*n31*n82/(n170*n81) + n167)/n232 + n109*n132*(pow(alpha, NP0*n0 - n174*n7)*n156*n75/n169 + n57*n75)*(pow(alpha, NP0*n0 - n174*n7)*n156*n50*n7/n169 + n50*n57*n7)/n254 + n109*n133*(pow(alpha, NP0*n0 - n0*n174)*n0*n1*n156/n169 + n0*n124)*(pow(alpha, NP0*n0 - n0*n174)*n1*n156*n23*n24/n169 + n124*n23*n24)/n250 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n1*n156*n6/n169 + n1*n142)*(pow(alpha, NP0*n0 - n174*n6)*n156*n50*n6/n169 + n142*n50)/n253 + n109*n143*(pow(alpha, NP0*n0 - n174*n6)*n0*n156*n30*n6/n169 + pow(alpha, n0*n27 - n174*n6)*n0*n30*n6*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n6)*n30*n33*n82/(n170*n81) + n165)/n234 + n109*n144*(pow(alpha, NP0*n0 - n17*n174)*n1*n156*n17/n169 + n1*n145)*(pow(alpha, NP0*n0 - n17*n174)*n156*n17*n50/n169 + n145*n50)/n264 + n109*n281*n89*(pow(alpha, NP0*n0 - n11*n174)*n0*n11*n156*n30/n169 + pow(alpha, n0*n27 - n11*n174)*n0*n11*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n11*n174)*n30*n38*n82/(n170*n81) + n160) + n109*n291*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n1*n156*n5/n169 + n153)*(pow(alpha, NP0*n0 - n174*n5)*n156*n5*n50/n169 + n148*n50) + n109*n292*xF[1]*(pow(alpha, NP0*n0 - n13*n174)*n1*n13*n156/n169 + n1*n139)*(pow(alpha, NP0*n0 - n13*n174)*n13*n156*n50/n169 + n139*n50) + n109*n294*xF[11]*(pow(alpha, NP0*n0 - n174*n5)*n0*n156*n30*n5/n169 + pow(alpha, n0*n27 - n174*n5)*n0*n30*n5*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n5)*n30*n32*n82/(n170*n81) + n161) + n109*n295*xF[4]*(pow(alpha, NP0*n0 - n16*n174)*n1*n156*n16/n169 + n118*n16)*(pow(alpha, NP0*n0 - n16*n174)*n156*n16*n50/n169 + n16*n50*n66) + n109*n296*(pow(alpha, NP0*n0 - n17*n174)*n0*n156*n17*n30/n169 + pow(alpha, n0*n27 - n17*n174)*n0*n17*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n17*n174)*n117*n82/(n170*n81) + n117*n67) + n109*n298*(pow(alpha, NP0*n0 - n13*n174)*n0*n13*n156*n30/n169 + pow(alpha, n0*n27 - n13*n174)*n0*n13*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n13*n174)*n137*n82/(n170*n81) + n137*n63) + n109*n300*(pow(alpha, NP0*n0 - n11*n174)*n1*n11*n156/n169 + n154)*(pow(alpha, NP0*n0 - n11*n174)*n11*n156*n50/n169 + n129*n50) + n109*n301*(pow(alpha, NP0*n0 - n12*n174)*n156*n74/n169 + n62*n74)*(pow(alpha, NP0*n0 - n12*n174)*n12*n156*n50/n169 + n12*n50*n62) + n109*n302*(pow(alpha, NP0*n0 - n174*n20)*n0*n156*n20*n30/n169 + pow(alpha, n0*n27 - n174*n20)*n0*n20*n30*n82/(n170*n81) - pow(alpha, n0*n27 - n174*n20)*n30*n47*n82/(n170*n81) + n162) + n109*n98*xF[8]*(pow(alpha, NP0*n0 - n174*n20)*n1*n156*n20/n169 + n1*n136)*(pow(alpha, NP0*n0 - n174*n20)*n156*n20*n50/n169 + n136*n50)/n267 + n112*n73*(pow(alpha, NP0*n0 - n10*n174)*n10*n156*n24*n30/n169 + pow(alpha, n0*n27 - n10*n174)*n10*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n10*n174)*n30*n37*n82/(n170*n81) + n104*n30*n37)/n238 + n121*n73*(pow(alpha, NP0*n0 - n174*n18)*n156*n18*n24*n30/n169 + pow(alpha, n0*n27 - n174*n18)*n18*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n18)*n30*n45*n82/(n170*n81) + n108*n30*n45)/n246 + n126*n73*(pow(alpha, NP0*n0 - n174*n8)*n156*n24*n30*n8/n169 + pow(alpha, n0*n27 - n174*n8)*n149*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n8)*n24*n30*n8*n82/(n170*n81) + n103*n149)/n236 + n127*n73*(pow(alpha, NP0*n0 - n14*n174)*n14*n156*n24*n30/n169 + pow(alpha, n0*n27 - n14*n174)*n135*n82/(n170*n81) + pow(alpha, n0*n27 - n14*n174)*n14*n24*n30*n82/(n170*n81) + n106*n135)/n242 + n132*n73*(pow(alpha, NP0*n0 - n174*n7)*n156*n24*n30*n7/n169 + pow(alpha, n0*n27 - n174*n7)*n128*n82/(n170*n81) + pow(alpha, n0*n27 - n174*n7)*n24*n30*n7*n82/(n170*n81) + n102*n128)/n235 + n133*n73*(pow(alpha, NP0*n0 - n0*n174)*n119*(-n25 + xPj*xTj)/(n169*n52) + n100*n119)/n231 + n297*n73*(pow(alpha, NP0*n0 - n12*n174)*n12*n156*n24*n30/n169 + pow(alpha, n0*n27 - n12*n174)*n12*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n12*n174)*n140*n82/(n170*n81) + n105*n140) + n299*n73*(pow(alpha, NP0*n0 - n16*n174)*n156*n16*n24*n30/n169 + pow(alpha, n0*n27 - n16*n174)*n16*n24*n30*n82/(n170*n81) + pow(alpha, n0*n27 - n16*n174)*n30*n43*n82/(n170*n81) + n107*n30*n43) + n306 + n307 + n308 + n309 + n310 + n311 + n312 + n313 + n314 + n315 + n316 + n317 + n318 + n319 + n320 + n321 + n322 + n323 + n324 + n404 + n405 + n406 + n407 + n408 + n409 + n410 + n411 + n412 + n413 + n414 + n415 + n416 + n417 + n418 + n419 + n420 + n421 + n422)) - n305 - n458*xTj, -n23);
28375  NP_sqrt_base = fabs(NP_sqrt_base);
28376  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
28377  NT1 = n111*(n171 - log(-pow(alpha, NP1*n0)*n156 + 1));
28378  g0 = MW[1] - Mstar;
28379  g1 = MW[0] - Mstar;
28380  g2 = NT1 + 1;
28381  g3 = xPj - xTj;
28382  g4 = MW[10] - Mstar;
28383  g5 = MW[11] - Mstar;
28384  g6 = MW[12] - Mstar;
28385  g7 = MW[13] - Mstar;
28386  g8 = MW[14] - Mstar;
28387  g9 = MW[15] - Mstar;
28388  g10 = MW[16] - Mstar;
28389  g11 = MW[17] - Mstar;
28390  g12 = MW[18] - Mstar;
28391  g13 = MW[2] - Mstar;
28392  g14 = MW[3] - Mstar;
28393  g15 = MW[4] - Mstar;
28394  g16 = MW[5] - Mstar;
28395  g17 = MW[6] - Mstar;
28396  g18 = MW[7] - Mstar;
28397  g19 = MW[8] - Mstar;
28398  g20 = MW[9] - Mstar;
28399  g21 = xF[0] - xTj;
28400  g22 = xF[0] - xPj;
28401  g23 = -xTj;
28402  g24 = xPj/xF[1];
28403  g25 = pow(alpha, -g1);
28404  g26 = pow(alpha, -g4);
28405  g27 = pow(alpha, -g5);
28406  g28 = pow(alpha, -g6);
28407  g29 = pow(alpha, -g7);
28408  g30 = pow(alpha, -g8);
28409  g31 = pow(alpha, -g9);
28410  g32 = pow(alpha, -g10);
28411  g33 = pow(alpha, -g11);
28412  g34 = pow(alpha, -g12);
28413  g35 = pow(alpha, -g0);
28414  g36 = pow(alpha, -g13);
28415  g37 = pow(alpha, -g14);
28416  g38 = pow(alpha, -g15);
28417  g39 = pow(alpha, -g16);
28418  g40 = pow(alpha, -g17);
28419  g41 = pow(alpha, -g18);
28420  g42 = pow(alpha, -g19);
28421  g43 = pow(alpha, -g20);
28422  g44 = log(xF[0]/xF[1]);
28423  g45 = -g2;
28424  g46 = pow(alpha, NP1*g0);
28425  g47 = pow(alpha, NP1*g1);
28426  g48 = pow(alpha, NP1*g4);
28427  g49 = log(g25);
28428  g50 = pow(alpha, NP1*g5);
28429  g51 = pow(alpha, NP1*g6);
28430  g52 = pow(alpha, NP1*g7);
28431  g53 = pow(alpha, NP1*g8);
28432  g54 = pow(alpha, NP1*g9);
28433  g55 = pow(alpha, NP1*g10);
28434  g56 = pow(alpha, NP1*g11);
28435  g57 = pow(alpha, NP1*g12);
28436  g58 = pow(alpha, NP1*g13);
28437  g59 = pow(alpha, NP1*g14);
28438  g60 = pow(alpha, NP1*g15);
28439  g61 = pow(alpha, NP1*g16);
28440  g62 = pow(alpha, NP1*g17);
28441  g63 = pow(alpha, NP1*g18);
28442  g64 = pow(alpha, NP1*g19);
28443  g65 = pow(alpha, NP1*g20);
28444  g66 = -g44;
28445  g67 = g21/g3;
28446  g68 = g3/g21;
28447  g69 = -g46 + 1;
28448  g70 = -g46 + 1;
28449  g71 = -g47 + 1;
28450  g72 = -g58 + 1;
28451  g73 = -g59 + 1;
28452  g74 = -g60 + 1;
28453  g75 = -g61 + 1;
28454  g76 = -g62 + 1;
28455  g77 = -g63 + 1;
28456  g78 = -g64 + 1;
28457  g79 = -g65 + 1;
28458  g80 = -g48 + 1;
28459  g81 = -g50 + 1;
28460  g82 = -g51 + 1;
28461  g83 = -g52 + 1;
28462  g84 = -g53 + 1;
28463  g85 = -g54 + 1;
28464  g86 = -g55 + 1;
28465  g87 = -g56 + 1;
28466  g88 = -g57 + 1;
28467  g89 = -g47;
28468  g90 = -g48;
28469  g91 = -g50;
28470  g92 = -g51;
28471  g93 = -g52;
28472  g94 = -g53;
28473  g95 = -g54;
28474  g96 = -g55;
28475  g97 = -g56;
28476  g98 = -g57;
28477  g99 = -g58;
28478  g100 = -g59;
28479  g101 = -g60;
28480  g102 = -g61;
28481  g103 = -g62;
28482  g104 = -g63;
28483  g105 = -g64;
28484  g106 = -g65;
28485  g107 = -1.0*g44;
28486  g108 = -g3/g22;
28487  g109 = g22/(g3*xF[1]);
28488  g110 = pow(alpha, g0*g45) - 1;
28489  g111 = pow(alpha, g0*g45) - 1;
28490  g112 = pow(alpha, g1*g45) - 1;
28491  g113 = pow(alpha, g13*g45) - 1;
28492  g114 = pow(alpha, g14*g45) - 1;
28493  g115 = pow(alpha, g15*g45) - 1;
28494  g116 = pow(alpha, g16*g45) - 1;
28495  g117 = pow(alpha, g17*g45) - 1;
28496  g118 = pow(alpha, g18*g45) - 1;
28497  g119 = pow(alpha, g19*g45) - 1;
28498  g120 = pow(alpha, g20*g45) - 1;
28499  g121 = pow(alpha, g4*g45) - 1;
28500  g122 = pow(alpha, g45*g5) - 1;
28501  g123 = pow(alpha, g45*g6) - 1;
28502  g124 = pow(alpha, g45*g7) - 1;
28503  g125 = pow(alpha, g45*g8) - 1;
28504  g126 = pow(alpha, g45*g9) - 1;
28505  g127 = pow(alpha, g10*g45) - 1;
28506  g128 = pow(alpha, g11*g45) - 1;
28507  g129 = pow(alpha, g12*g45) - 1;
28508  g130 = -pow(alpha, g1*g45);
28509  g131 = -pow(alpha, g4*g45);
28510  g132 = -pow(alpha, g45*g5);
28511  g133 = -pow(alpha, g45*g6);
28512  g134 = -pow(alpha, g45*g7);
28513  g135 = -pow(alpha, g45*g8);
28514  g136 = -pow(alpha, g45*g9);
28515  g137 = -pow(alpha, g10*g45);
28516  g138 = -pow(alpha, g11*g45);
28517  g139 = -pow(alpha, g12*g45);
28518  g140 = -pow(alpha, g13*g45);
28519  g141 = -pow(alpha, g14*g45);
28520  g142 = -pow(alpha, g15*g45);
28521  g143 = -pow(alpha, g16*g45);
28522  g144 = -pow(alpha, g17*g45);
28523  g145 = -pow(alpha, g18*g45);
28524  g146 = -pow(alpha, g19*g45);
28525  g147 = -pow(alpha, g20*g45);
28526  g148 = g111 + g70;
28527  g149 = -g130 - g47;
28528  g150 = -g131 - g48;
28529  g151 = -g132 - g50;
28530  g152 = -g133 - g51;
28531  g153 = -g134 - g52;
28532  g154 = -g135 - g53;
28533  g155 = -g136 - g54;
28534  g156 = -g137 - g55;
28535  g157 = -g138 - g56;
28536  g158 = -g139 - g57;
28537  g159 = -g140 - g58;
28538  g160 = -g141 - g59;
28539  g161 = -g142 - g60;
28540  g162 = -g143 - g61;
28541  g163 = -g144 - g62;
28542  g164 = -g145 - g63;
28543  g165 = -g146 - g64;
28544  g166 = -g147 - g65;
28545  g167 = pow(alpha, g1*g45) + g89;
28546  g168 = g111 + g70;
28547  g169 = pow(alpha, g4*g45) + g90;
28548  g170 = pow(alpha, g45*g5) + g91;
28549  g171 = pow(alpha, g45*g6) + g92;
28550  g172 = pow(alpha, g45*g7) + g93;
28551  g173 = pow(alpha, g45*g8) + g94;
28552  g174 = pow(alpha, g45*g9) + g95;
28553  g175 = pow(alpha, g10*g45) + g96;
28554  g176 = pow(alpha, g11*g45) + g97;
28555  g177 = pow(alpha, g12*g45) + g98;
28556  g178 = pow(alpha, g13*g45) + g99;
28557  g179 = pow(alpha, g14*g45) + g100;
28558  g180 = pow(alpha, g15*g45) + g101;
28559  g181 = pow(alpha, g16*g45) + g102;
28560  g182 = pow(alpha, g17*g45) + g103;
28561  g183 = pow(alpha, g18*g45) + g104;
28562  g184 = pow(alpha, g19*g45) + g105;
28563  g185 = pow(alpha, g20*g45) + g106;
28564  g186 = xF[9]/g185;
28565  g187 = xF[8]/g184;
28566  g188 = xF[1]/g168;
28567  g189 = xF[3]/g179;
28568  g190 = xF[10]/g169;
28569  g191 = xF[17]/g176;
28570  g192 = xF[15]/g174;
28571  g193 = xF[16]/g175;
28572  g194 = xF[7]/g183;
28573  g195 = xF[4]/g180;
28574  g196 = xF[12]/g171;
28575  g197 = xF[13]/g172;
28576  g198 = xF[11]/g170;
28577  g199 = xF[6]/g182;
28578  g200 = xF[14]/g173;
28579  g201 = xF[5]/g181;
28580  g202 = xF[2]/g178;
28581  g203 = xF[18]/g177;
28582  g204 = xF[0]/g167;
28583  g205 = xF[17]/g157;
28584  g206 = xF[0]/g149;
28585  g207 = xF[15]/g155;
28586  g208 = xF[4]/g161;
28587  g209 = xF[2]/g159;
28588  g210 = xF[11]/g151;
28589  g211 = xF[18]/g158;
28590  g212 = xF[1]/g148;
28591  g213 = xF[13]/g153;
28592  g214 = xF[16]/g156;
28593  g215 = xF[3]/g160;
28594  g216 = xF[6]/g163;
28595  g217 = xF[14]/g154;
28596  g218 = xF[8]/g165;
28597  g219 = xF[12]/g152;
28598  g220 = xF[10]/g150;
28599  g221 = xF[7]/g164;
28600  g222 = xF[9]/g166;
28601  g223 = xF[5]/g162;
28602  g224 = g82/g152;
28603  g225 = g79/g166;
28604  g226 = g87/g157;
28605  g227 = g85/g155;
28606  g228 = g74/g161;
28607  g229 = g72/g159;
28608  g230 = g71/g149;
28609  g231 = g75/g162;
28610  g232 = g88/g158;
28611  g233 = g76/g163;
28612  g234 = g83/g153;
28613  g235 = g73/g160;
28614  g236 = g86/g156;
28615  g237 = g81/g151;
28616  g238 = g84/g154;
28617  g239 = g80/g150;
28618  g240 = g78/g165;
28619  g241 = g69/g148;
28620  g242 = g77/g164;
28621  g243 = g112/g149;
28622  g244 = g126/g155;
28623  g245 = g122/g151;
28624  g246 = g113/g159;
28625  g247 = g114/g160;
28626  g248 = g115/g161;
28627  g249 = g128/g157;
28628  g250 = g110/g148;
28629  g251 = g119/g165;
28630  g252 = g120/g166;
28631  g253 = g127/g156;
28632  g254 = g117/g163;
28633  g255 = g125/g154;
28634  g256 = g123/g152;
28635  g257 = g124/g153;
28636  g258 = g129/g158;
28637  g259 = g118/g164;
28638  g260 = g121/g150;
28639  g261 = g116/g162;
28640  g262 = log(g109*g168*g23/g70);
28641  g263 = log(g109*g148*g23/g69);
28642  g264 = log(g168*g24*g67/g111);
28643  g265 = 1.0*g262;
28644  g266 = log(g148*g24*g67/g110);
28645  g267 = 1.0*g264;
28646  g268 = -g107*xF[0] - g107*xF[10] - g107*xF[11] - g107*xF[12] - g107*xF[13] - g107*xF[14] - g107*xF[15] - g107*xF[16] - g107*xF[17] - g107*xF[18] - g107*xF[1] - g107*xF[2] - g107*xF[3] - g107*xF[4] - g107*xF[5] - g107*xF[6] - g107*xF[7] - g107*xF[8] - g107*xF[9] - g111*g188*g267 - g186*g265*(g106 + 1) - g186*g267*(pow(alpha, g20*g45) - 1) - g187*g265*(g105 + 1) - g187*g267*(pow(alpha, g19*g45) - 1) - g188*g265*g70 - g189*g265*(g100 + 1) - g189*g267*(pow(alpha, g14*g45) - 1) - g190*g265*(g90 + 1) - g190*g267*(pow(alpha, g4*g45) - 1) - g191*g265*(g97 + 1) - g191*g267*(pow(alpha, g11*g45) - 1) - g192*g265*(g95 + 1) - g192*g267*(pow(alpha, g45*g9) - 1) - g193*g265*(g96 + 1) - g193*g267*(pow(alpha, g10*g45) - 1) - g194*g265*(g104 + 1) - g194*g267*(pow(alpha, g18*g45) - 1) - g195*g265*(g101 + 1) - g195*g267*(pow(alpha, g15*g45) - 1) - g196*g265*(g92 + 1) - g196*g267*(pow(alpha, g45*g6) - 1) - g197*g265*(g93 + 1) - g197*g267*(pow(alpha, g45*g7) - 1) - g198*g265*(g91 + 1) - g198*g267*(pow(alpha, g45*g5) - 1) - g199*g265*(g103 + 1) - g199*g267*(pow(alpha, g17*g45) - 1) - g200*g265*(g94 + 1) - g200*g267*(pow(alpha, g45*g8) - 1) - g201*g265*(g102 + 1) - g201*g267*(pow(alpha, g16*g45) - 1) - g202*g265*(g99 + 1) - g202*g267*(pow(alpha, g13*g45) - 1) - g203*g265*(g98 + 1) - g203*g267*(pow(alpha, g12*g45) - 1) - g204*g265*(g89 + 1) - g204*g267*(pow(alpha, g1*g45) - 1);
28647  LpF = xF[0]*(g25 + 1.0)*(g230*g263 + g243*g266 + g66)/(g49*(g25 - 1.0)) + xF[10]*(g26 + 1.0)*(g239*g263 + g260*g266 + g66)/(g49*(g26 - 1.0)) + xF[11]*(g27 + 1.0)*(g237*g263 + g245*g266 + g66)/(g49*(g27 - 1.0)) + xF[12]*(g28 + 1.0)*(g224*g263 + g256*g266 + g66)/(g49*(g28 - 1.0)) + xF[13]*(g29 + 1.0)*(g234*g263 + g257*g266 + g66)/(g49*(g29 - 1.0)) + xF[14]*(g30 + 1.0)*(g238*g263 + g255*g266 + g66)/(g49*(g30 - 1.0)) + xF[15]*(g31 + 1.0)*(g227*g263 + g244*g266 + g66)/(g49*(g31 - 1.0)) + xF[16]*(g32 + 1.0)*(g236*g263 + g253*g266 + g66)/(g49*(g32 - 1.0)) + xF[17]*(g33 + 1.0)*(g226*g263 + g249*g266 + g66)/(g49*(g33 - 1.0)) + xF[18]*(g34 + 1.0)*(g232*g263 + g258*g266 + g66)/(g49*(g34 - 1.0)) + xF[1]*(g35 + 1.0)*(g241*g263 + g250*g266 + g66)/(g49*(g35 - 1.0)) + xF[2]*(g36 + 1.0)*(g229*g263 + g246*g266 + g66)/(g49*(g36 - 1.0)) + xF[3]*(g37 + 1.0)*(g235*g263 + g247*g266 + g66)/(g49*(g37 - 1.0)) + xF[4]*(g38 + 1.0)*(g228*g263 + g248*g266 + g66)/(g49*(g38 - 1.0)) + xF[5]*(g39 + 1.0)*(g231*g263 + g261*g266 + g66)/(g49*(g39 - 1.0)) + xF[6]*(g40 + 1.0)*(g233*g263 + g254*g266 + g66)/(g49*(g40 - 1.0)) + xF[7]*(g41 + 1.0)*(g242*g263 + g259*g266 + g66)/(g49*(g41 - 1.0)) + xF[8]*(g42 + 1.0)*(g240*g263 + g251*g266 + g66)/(g49*(g42 - 1.0)) + xF[9]*(g43 + 1.0)*(g225*g263 + g252*g266 + g66)/(g49*(g43 - 1.0));
28648  PpF = g67;
28649  TpF = -g22/g3;
28650  SWUpF = g268;
28651  SWUpP = g268*g68;
28652  xP[0] = g112*g206*g68;
28653  xP[1] = g110*g212*g68;
28654  xP[2] = g113*g209*g68;
28655  xP[3] = g114*g215*g68;
28656  xP[4] = g115*g208*g68;
28657  xP[5] = g116*g223*g68;
28658  xP[6] = g117*g216*g68;
28659  xP[7] = g118*g221*g68;
28660  xP[8] = g119*g218*g68;
28661  xP[9] = g120*g222*g68;
28662  xP[10] = g121*g220*g68;
28663  xP[11] = g122*g210*g68;
28664  xP[12] = g123*g219*g68;
28665  xP[13] = g124*g213*g68;
28666  xP[14] = g125*g217*g68;
28667  xP[15] = g126*g207*g68;
28668  xP[16] = g127*g214*g68;
28669  xP[17] = g128*g205*g68;
28670  xP[18] = g129*g211*g68;
28671  xT[0] = g108*g206*g71;
28672  xT[1] = g108*g212*g69;
28673  xT[2] = g108*g209*g72;
28674  xT[3] = g108*g215*g73;
28675  xT[4] = g108*g208*g74;
28676  xT[5] = g108*g223*g75;
28677  xT[6] = g108*g216*g76;
28678  xT[7] = g108*g221*g77;
28679  xT[8] = g108*g218*g78;
28680  xT[9] = g108*g222*g79;
28681  xT[10] = g108*g220*g80;
28682  xT[11] = g108*g210*g81;
28683  xT[12] = g108*g219*g82;
28684  xT[13] = g108*g213*g83;
28685  xT[14] = g108*g217*g84;
28686  xT[15] = g108*g207*g85;
28687  xT[16] = g108*g214*g86;
28688  xT[17] = g108*g205*g87;
28689  xT[18] = g108*g211*g88;
28690  break;
28691  case 20:
28692  n0 = MW[0] - Mstar;
28693  n1 = log(alpha);
28694  n2 = xPj - xTj;
28695  n3 = xF[0] - xPj;
28696  n4 = MW[10] - Mstar;
28697  n5 = MW[11] - Mstar;
28698  n6 = MW[12] - Mstar;
28699  n7 = MW[13] - Mstar;
28700  n8 = MW[14] - Mstar;
28701  n9 = MW[15] - Mstar;
28702  n10 = MW[16] - Mstar;
28703  n11 = MW[17] - Mstar;
28704  n12 = MW[18] - Mstar;
28705  n13 = MW[19] - Mstar;
28706  n14 = MW[1] - Mstar;
28707  n15 = MW[2] - Mstar;
28708  n16 = MW[3] - Mstar;
28709  n17 = MW[4] - Mstar;
28710  n18 = MW[5] - Mstar;
28711  n19 = MW[6] - Mstar;
28712  n20 = MW[7] - Mstar;
28713  n21 = MW[8] - Mstar;
28714  n22 = MW[9] - Mstar;
28715  n23 = log(xTj);
28716  n24 = -2;
28717  n25 = -n0;
28718  n26 = xF[0]*xPj;
28719  n27 = -Mstar;
28720  n28 = -n24*xF[4];
28721  n29 = -n24*xF[12];
28722  n30 = -n24*xF[11];
28723  n31 = 4.0*xF[0];
28724  n32 = -xTj;
28725  n33 = -n24*xF[0];
28726  n34 = -xPj;
28727  n35 = -n24*xF[1];
28728  n36 = -n24*xF[17];
28729  n37 = -MW[0];
28730  n38 = -NP0*n24;
28731  n39 = pow(n0, -n24);
28732  n40 = pow(n1, -n24);
28733  n41 = pow(n4, -n24);
28734  n42 = pow(n5, -n24);
28735  n43 = pow(n6, -n24);
28736  n44 = pow(n7, -n24);
28737  n45 = pow(n8, -n24);
28738  n46 = pow(n9, -n24);
28739  n47 = pow(n10, -n24);
28740  n48 = pow(n11, -n24);
28741  n49 = pow(n12, -n24);
28742  n50 = pow(n13, -n24);
28743  n51 = pow(n14, -n24);
28744  n52 = pow(n15, -n24);
28745  n53 = pow(n16, -n24);
28746  n54 = pow(n17, -n24);
28747  n55 = pow(n18, -n24);
28748  n56 = pow(n19, -n24);
28749  n57 = pow(n20, -n24);
28750  n58 = pow(n21, -n24);
28751  n59 = pow(n22, -n24);
28752  n60 = Mstar*n1;
28753  n61 = -n1*n24;
28754  n62 = NP0*n0;
28755  n63 = pow(alpha, n62);
28756  n64 = n26 + n32*xF[0];
28757  n65 = n26 + n32*xPj;
28758  n66 = pow(alpha, NP0*n4);
28759  n67 = pow(alpha, NP0*n5);
28760  n68 = pow(alpha, NP0*n6);
28761  n69 = pow(alpha, NP0*n7);
28762  n70 = pow(alpha, NP0*n8);
28763  n71 = pow(alpha, NP0*n9);
28764  n72 = pow(alpha, NP0*n10);
28765  n73 = pow(alpha, NP0*n11);
28766  n74 = pow(alpha, NP0*n12);
28767  n75 = pow(alpha, NP0*n13);
28768  n76 = pow(alpha, NP0*n14);
28769  n77 = pow(alpha, NP0*n15);
28770  n78 = pow(alpha, NP0*n16);
28771  n79 = pow(alpha, NP0*n17);
28772  n80 = pow(alpha, NP0*n18);
28773  n81 = pow(alpha, NP0*n19);
28774  n82 = pow(alpha, NP0*n20);
28775  n83 = pow(alpha, NP0*n21);
28776  n84 = pow(alpha, NP0*n22);
28777  n85 = n1*n37;
28778  n86 = n2/n3;
28779  n87 = n1*n18;
28780  n88 = -n40;
28781  n89 = n1*n7;
28782  n90 = n1*n15;
28783  n91 = n1*n9;
28784  n92 = n1*n21;
28785  n93 = n0*n22;
28786  n94 = n0*n18;
28787  n95 = n0*n12;
28788  n96 = -n63 + 1;
28789  n97 = -n66 + 1;
28790  n98 = pow(alpha, NP0*n24*n25);
28791  n99 = pow(n64, -n24);
28792  n100 = pow(n65, -n24);
28793  n101 = -n67 + 1;
28794  n102 = -n68 + 1;
28795  n103 = -n69 + 1;
28796  n104 = -n70 + 1;
28797  n105 = -n71 + 1;
28798  n106 = -n72 + 1;
28799  n107 = -n73 + 1;
28800  n108 = -n74 + 1;
28801  n109 = -n75 + 1;
28802  n110 = -n76 + 1;
28803  n111 = -n77 + 1;
28804  n112 = -n78 + 1;
28805  n113 = -n79 + 1;
28806  n114 = -n80 + 1;
28807  n115 = -n81 + 1;
28808  n116 = -n82 + 1;
28809  n117 = -n83 + 1;
28810  n118 = -n84 + 1;
28811  n119 = n96;
28812  n120 = n97;
28813  n121 = n101;
28814  n122 = n102;
28815  n123 = n103;
28816  n124 = n104;
28817  n125 = n105;
28818  n126 = n106;
28819  n127 = n107;
28820  n128 = n108;
28821  n129 = n109;
28822  n130 = n110;
28823  n131 = n111;
28824  n132 = n112;
28825  n133 = n113;
28826  n134 = n114;
28827  n135 = n115;
28828  n136 = n116;
28829  n137 = n117;
28830  n138 = n118;
28831  n139 = -n102;
28832  n140 = -n63;
28833  n141 = -n80;
28834  n142 = -n86;
28835  n143 = n69*xF[13];
28836  n144 = n74*xF[18];
28837  n145 = n83*xF[8];
28838  n146 = 1/(n0*n1);
28839  n147 = n77*xF[2];
28840  n148 = n17*n40;
28841  n149 = n106*xF[16];
28842  n150 = n101*xF[11];
28843  n151 = n134*xF[5];
28844  n152 = n108*xF[18];
28845  n153 = n40*n44;
28846  n154 = n16*n78;
28847  n155 = n126*xF[16];
28848  n156 = n105*xF[15];
28849  n157 = n19*n81;
28850  n158 = n0*n63;
28851  n159 = n40*n55;
28852  n160 = n1*n79;
28853  n161 = n11*n73;
28854  n162 = n118*xF[9];
28855  n163 = n4*n66;
28856  n164 = n116*xF[7];
28857  n165 = n132*xF[3];
28858  n166 = n127*xF[17];
28859  n167 = n136*xF[7];
28860  n168 = n133*xF[4];
28861  n169 = n13*n75;
28862  n170 = n111*xF[2];
28863  n171 = n40*n49;
28864  n172 = n130*xF[1];
28865  n173 = n70*n8;
28866  n174 = n40*n58;
28867  n175 = n138*xF[9];
28868  n176 = n103*xF[13];
28869  n177 = n125*xF[15];
28870  n178 = n124*xF[14];
28871  n179 = n119*xF[0];
28872  n180 = n40*n46;
28873  n181 = n40*n52;
28874  n182 = n10*n72;
28875  n183 = n131*xF[2];
28876  n184 = n104*xF[14];
28877  n185 = n22*n84;
28878  n186 = n114*xF[5];
28879  n187 = n110*xF[1];
28880  n188 = n14*n76;
28881  n189 = n123*xF[13];
28882  n190 = n135*xF[6];
28883  n191 = n129*xF[19];
28884  n192 = n12*n74;
28885  n193 = n20*n82;
28886  n194 = n71*n9;
28887  n195 = n120*xF[10];
28888  n196 = n137*xF[8];
28889  n197 = n117*xF[8];
28890  n198 = n128*xF[18];
28891  n199 = log((-1.0 + xPj/xF[0])/n2);
28892  n200 = n173*xF[14];
28893  n201 = n188*xF[1];
28894  n202 = n42*n67;
28895  n203 = n182*xF[16];
28896  n204 = n185*xF[9];
28897  n205 = n39*n63;
28898  n206 = n193*xF[7];
28899  n207 = n50*n75;
28900  n208 = n54*n79;
28901  n209 = n1*n158;
28902  n210 = n1*n163;
28903  n211 = n1*n5*n67;
28904  n212 = n1*n6*n68;
28905  n213 = n69*n89;
28906  n214 = n1*n173;
28907  n215 = n71*n91;
28908  n216 = n1*n182;
28909  n217 = n1*n161;
28910  n218 = n1*n192;
28911  n219 = n1*n169;
28912  n220 = n1*n188;
28913  n221 = n77*n90;
28914  n222 = n1*n154;
28915  n223 = n160*n17;
28916  n224 = n80*n87;
28917  n225 = n1*n157;
28918  n226 = n1*n193;
28919  n227 = n83*n92;
28920  n228 = n1*n185;
28921  n229 = n65/n64;
28922  n230 = n40*n98;
28923  n231 = n40*n41*n66;
28924  n232 = n40*n43*n68;
28925  n233 = n180*n71;
28926  n234 = n40*n48*n73;
28927  n235 = n40*n51*n76;
28928  n236 = n40*n53*n78;
28929  n237 = n159*n80;
28930  n238 = n40*n56*n81;
28931  n239 = n40*n57*n82;
28932  n240 = n174*n83;
28933  n241 = n40*n59*n84;
28934  n242 = n40*n45*n70;
28935  n243 = n40*n47*n72;
28936  n244 = n205*n40*xF[0];
28937  n245 = n239*xF[7];
28938  n246 = n238*xF[6];
28939  n247 = n236*xF[3];
28940  n248 = n208*n40*xF[4];
28941  n249 = n140*n229 + 1;
28942  n250 = -n229*n63 + 1;
28943  n251 = pow(n249, -n24);
28944  n252 = pow(n250, -n24);
28945  n253 = n1*n229*n63;
28946  n254 = n199 + n23 + n60 + n85;
28947  n255 = n40/n249;
28948  n256 = n100/(n252*n99);
28949  n257 = n0*n256;
28950  n258 = n146*(n254 - log(n249)) + 1;
28951  n259 = n146*(n254 - log(n250)) + 1;
28952  n260 = pow(alpha, n0*n258);
28953  n261 = pow(alpha, n258*n4);
28954  n262 = pow(alpha, n258*n5);
28955  n263 = pow(alpha, n258*n6);
28956  n264 = pow(alpha, n258*n7);
28957  n265 = pow(alpha, n258*n8);
28958  n266 = pow(alpha, n258*n9);
28959  n267 = pow(alpha, n10*n258);
28960  n268 = pow(alpha, n11*n258);
28961  n269 = pow(alpha, n12*n258);
28962  n270 = pow(alpha, n13*n258);
28963  n271 = pow(alpha, n14*n258);
28964  n272 = pow(alpha, n15*n258);
28965  n273 = pow(alpha, n16*n258);
28966  n274 = pow(alpha, n17*n258);
28967  n275 = pow(alpha, n18*n258);
28968  n276 = pow(alpha, n19*n258);
28969  n277 = pow(alpha, n20*n258);
28970  n278 = pow(alpha, n21*n258);
28971  n279 = pow(alpha, n22*n258);
28972  n280 = pow(alpha, -n259*n4);
28973  n281 = pow(alpha, -n259*n6);
28974  n282 = pow(alpha, -n259*n9);
28975  n283 = pow(alpha, -n11*n259);
28976  n284 = pow(alpha, -n14*n259);
28977  n285 = pow(alpha, -n16*n259);
28978  n286 = pow(alpha, -n18*n259);
28979  n287 = pow(alpha, -n19*n259);
28980  n288 = pow(alpha, -n20*n259);
28981  n289 = pow(alpha, -n21*n259);
28982  n290 = pow(alpha, -n22*n259);
28983  n291 = -1/n269;
28984  n292 = n7/n264;
28985  n293 = n22*n290;
28986  n294 = n6/n263;
28987  n295 = -1/n264;
28988  n296 = n13/n270;
28989  n297 = n20/n277;
28990  n298 = -1/n263;
28991  n299 = n281*n6;
28992  n300 = -1/n276;
28993  n301 = -1/n261;
28994  n302 = n11/n268;
28995  n303 = n16/n273;
28996  n304 = n19/n276;
28997  n305 = n8/n265;
28998  n306 = -1/n266;
28999  n307 = n21/n278;
29000  n308 = n10/n267;
29001  n309 = n20*n288;
29002  n310 = -1/n262;
29003  n311 = n5/n262;
29004  n312 = -1/n275;
29005  n313 = n16*n285;
29006  n314 = n14/n271;
29007  n315 = -1/n279;
29008  n316 = n15/n272;
29009  n317 = -1/n273;
29010  n318 = n17/n274;
29011  n319 = n19*n287;
29012  n320 = -1/n270;
29013  n321 = n9/n266;
29014  n322 = n18/n275;
29015  n323 = -1/n278;
29016  n324 = n4/n261;
29017  n325 = -1/n271;
29018  n326 = n282*n9;
29019  n327 = -1/n268;
29020  n328 = n14*n284;
29021  n329 = -1/n277;
29022  n330 = n21*n289;
29023  n331 = n280*n4;
29024  n332 = n11*n283;
29025  n333 = n47/n267;
29026  n334 = n54/n274;
29027  n335 = n45/n265;
29028  n336 = pow(alpha, n25*n258) + n96 - 1;
29029  n337 = n97 - 1 + 1.0/n261;
29030  n338 = n101 - 1 + 1.0/n262;
29031  n339 = n102 - 1 + 1.0/n263;
29032  n340 = n103 - 1 + 1.0/n264;
29033  n341 = n104 - 1 + 1.0/n265;
29034  n342 = n105 - 1 + 1.0/n266;
29035  n343 = n106 - 1 + 1.0/n267;
29036  n344 = n107 - 1 + 1.0/n268;
29037  n345 = n108 - 1 + 1.0/n269;
29038  n346 = n109 - 1 + 1.0/n270;
29039  n347 = n110 - 1 + 1.0/n271;
29040  n348 = n111 - 1 + 1.0/n272;
29041  n349 = n112 - 1 + 1.0/n273;
29042  n350 = n113 - 1 + 1.0/n274;
29043  n351 = n114 - 1 + 1.0/n275;
29044  n352 = n115 - 1 + 1.0/n276;
29045  n353 = n116 - 1 + 1.0/n277;
29046  n354 = n117 - 1 + 1.0/n278;
29047  n355 = n118 - 1 + 1.0/n279;
29048  n356 = n96 - 1 + 1.0/n260;
29049  n357 = -n301 + n97 - 1;
29050  n358 = n101 - n310 - 1;
29051  n359 = -n139 - n298 - 1;
29052  n360 = n103 - n295 - 1;
29053  n361 = n341;
29054  n362 = n105 - n306 - 1;
29055  n363 = n343;
29056  n364 = n107 - n327 - 1;
29057  n365 = n108 - n291 - 1;
29058  n366 = n109 - n320 - 1;
29059  n367 = n110 - n325 - 1;
29060  n368 = n348;
29061  n369 = n112 - n317 - 1;
29062  n370 = n350;
29063  n371 = n114 - n312 - 1;
29064  n372 = n115 - n300 - 1;
29065  n373 = n116 - n329 - 1;
29066  n374 = n117 - n323 - 1;
29067  n375 = n118 - n315 - 1;
29068  n376 = pow(n336, -n24);
29069  n377 = pow(n337, -n24);
29070  n378 = pow(n338, -n24);
29071  n379 = pow(n339, -n24);
29072  n380 = pow(n340, -n24);
29073  n381 = pow(n341, -n24);
29074  n382 = pow(n342, -n24);
29075  n383 = pow(n343, -n24);
29076  n384 = pow(n344, -n24);
29077  n385 = pow(n345, -n24);
29078  n386 = pow(n346, -n24);
29079  n387 = pow(n347, -n24);
29080  n388 = pow(n348, -n24);
29081  n389 = pow(n349, -n24);
29082  n390 = pow(n350, -n24);
29083  n391 = pow(n351, -n24);
29084  n392 = pow(n352, -n24);
29085  n393 = pow(n353, -n24);
29086  n394 = pow(n354, -n24);
29087  n395 = pow(n355, -n24);
29088  n396 = pow(n336, 3);
29089  n397 = pow(n337, 3);
29090  n398 = pow(n338, 3);
29091  n399 = pow(n339, 3);
29092  n400 = pow(n340, 3);
29093  n401 = pow(n341, 3);
29094  n402 = pow(n342, 3);
29095  n403 = pow(n343, 3);
29096  n404 = pow(n344, 3);
29097  n405 = pow(n345, 3);
29098  n406 = pow(n346, 3);
29099  n407 = pow(n347, 3);
29100  n408 = pow(n348, 3);
29101  n409 = pow(n349, 3);
29102  n410 = pow(n350, 3);
29103  n411 = pow(n351, 3);
29104  n412 = pow(n352, 3);
29105  n413 = pow(n353, 3);
29106  n414 = pow(n354, 3);
29107  n415 = pow(n355, 3);
29108  n416 = pow(n356, -n24);
29109  n417 = pow(n357, -n24);
29110  n418 = pow(n362, -n24);
29111  n419 = pow(n364, -n24);
29112  n420 = pow(n366, -n24);
29113  n421 = pow(n368, -n24);
29114  n422 = pow(n369, -n24);
29115  n423 = pow(n370, -n24);
29116  n424 = pow(n371, -n24);
29117  n425 = pow(n372, -n24);
29118  n426 = pow(n373, -n24);
29119  n427 = pow(n356, 3);
29120  n428 = xF[12]/n339;
29121  n429 = xF[17]/n344;
29122  n430 = 0.5/n336;
29123  n431 = xF[10]/n337;
29124  n432 = xF[11]/n338;
29125  n433 = xF[19]/n346;
29126  n434 = xF[0]/n336;
29127  n435 = xF[16]/n343;
29128  n436 = xF[14]/n341;
29129  n437 = xF[3]/n389;
29130  n438 = n1/n347;
29131  n439 = n1/n341;
29132  n440 = xF[17]/n384;
29133  n441 = xF[10]/n377;
29134  n442 = n1/n343;
29135  n443 = n1/n355;
29136  n444 = n1/n353;
29137  n445 = -1/n393;
29138  n446 = xF[0]/n416;
29139  n447 = n1/n376;
29140  n448 = n1*n12/n345;
29141  n449 = n147/n348;
29142  n450 = n96/n376;
29143  n451 = n113/n410;
29144  n452 = n186/n391;
29145  n453 = n115*xF[6]/n412;
29146  n454 = n187/n387;
29147  n455 = n113*xF[4]/n390;
29148  n456 = n107*xF[17]/n404;
29149  n457 = n102*xF[12]/n399;
29150  n458 = n197/n394;
29151  n459 = n97*xF[10]/n397;
29152  n460 = 1/(n249*n274);
29153  n461 = 1/(n249*n260);
29154  n462 = n12/(n249*n269);
29155  n463 = n22/(n249*n279);
29156  n464 = n293/n250;
29157  n465 = n299/n250;
29158  n466 = n241*xF[9]/n355;
29159  n467 = n235*xF[1]/n347;
29160  n468 = n319/n250;
29161  n469 = n309/n250;
29162  n470 = n313/n250;
29163  n471 = n328/n250;
29164  n472 = n331/n250;
29165  n473 = n332/n250;
29166  n474 = n1*n25*n434*n63*n86;
29167  n475 = n244*n86/n336;
29168  n476 = n231*n431*n86;
29169  n477 = n202*n40*n432*n86;
29170  n478 = n232*n428*n86;
29171  n479 = n143*n153*n86/n340;
29172  n480 = n242*n436*n86;
29173  n481 = n233*n86*xF[15]/n342;
29174  n482 = n243*n435*n86;
29175  n483 = n234*n429*n86;
29176  n484 = n144*n171*n86/n345;
29177  n485 = n207*n40*n433*n86;
29178  n486 = n467*n86;
29179  n487 = n181*n449*n86;
29180  n488 = n247*n86/n349;
29181  n489 = n248*n86/n350;
29182  n490 = n237*n86*xF[5]/n351;
29183  n491 = n246*n86/n352;
29184  n492 = n245*n86/n353;
29185  n493 = n145*n174*n86/n354;
29186  n494 = n466*n86;
29187  n495 = n244*n430*n86;
29188  n496 = n229*n461 + 1;
29189  n497 = n209*n229*n461 + n209;
29190  n498 = n210 + n253*n324/n249;
29191  n499 = n211 + n253*n311/n249;
29192  n500 = n212 + n253*n294/n249;
29193  n501 = n213 + n229*n63*n89/(n249*n264);
29194  n502 = n214 + n253*n305/n249;
29195  n503 = n215 + n229*n63*n91/(n249*n266);
29196  n504 = n216 + n253*n308/n249;
29197  n505 = n217 + n253*n302/n249;
29198  n506 = n218 + n253*n462;
29199  n507 = n219 + n253*n296/n249;
29200  n508 = n220 + n253*n314/n249;
29201  n509 = n221 + n229*n63*n90/(n249*n272);
29202  n510 = n222 + n253*n303/n249;
29203  n511 = n223 + n253*n318/n249;
29204  n512 = n224 + n229*n63*n87/(n249*n275);
29205  n513 = n225 + n253*n304/n249;
29206  n514 = n226 + n253*n297/n249;
29207  n515 = n227 + n229*n63*n92/(n249*n278);
29208  n516 = n228 + n253*n463;
29209  n517 = pow(n497, -n24);
29210  n518 = pow(n498, -n24);
29211  n519 = pow(n499, -n24);
29212  n520 = pow(n500, -n24);
29213  n521 = pow(n501, -n24);
29214  n522 = pow(n502, -n24);
29215  n523 = pow(n503, -n24);
29216  n524 = pow(n504, -n24);
29217  n525 = pow(n505, -n24);
29218  n526 = pow(n506, -n24);
29219  n527 = pow(n507, -n24);
29220  n528 = pow(n508, -n24);
29221  n529 = pow(n509, -n24);
29222  n530 = pow(n510, -n24);
29223  n531 = pow(n511, -n24);
29224  n532 = pow(n512, -n24);
29225  n533 = pow(n513, -n24);
29226  n534 = pow(n514, -n24);
29227  n535 = pow(n515, -n24);
29228  n536 = pow(n516, -n24);
29229  n537 = pow(alpha, n25*n259)*n209*n229/n250 + n209;
29230  n538 = n497*xF[0];
29231  n539 = n511*xF[4];
29232  n540 = n1*n24*n25*n63 + n24*n25*n253*n461;
29233  n541 = pow(n537, -n24);
29234  n542 = -n205*n229*n255/n260 - n205*n40;
29235  n543 = n205*n229*n461*n88 + n205*n88;
29236  n544 = n112*n510;
29237  n545 = n498*n97;
29238  n546 = n107*n505;
29239  n547 = n504/n383;
29240  n548 = n499/n378;
29241  n549 = n509/n388;
29242  n550 = n506/n385;
29243  n551 = n516/n395;
29244  n552 = n512/n391;
29245  n553 = n501/n380;
29246  n554 = n502/n381;
29247  n555 = n503/n382;
29248  n556 = n508/n387;
29249  n557 = n514/n393;
29250  n558 = n526/n405;
29251  n559 = n500*xF[12]/n379;
29252  n560 = n513*xF[6]/n392;
29253  n561 = n536/n415;
29254  n562 = n507*xF[19]/n386;
29255  n563 = n523/n402;
29256  n564 = n521/n400;
29257  n565 = n534/n413;
29258  n566 = n529/n408;
29259  n567 = n532/n411;
29260  n568 = n519/n398;
29261  n569 = n524/n403;
29262  n570 = n528/n407;
29263  n571 = n522/n401;
29264  n572 = n540/n396;
29265  n573 = n517*n96/n396;
29266  n574 = n112*n530*xF[3]/n409;
29267  n575 = n197*n535/n414;
29268  n576 = n109*n527*xF[19]/n406;
29269  n577 = n450*n538*n86;
29270  n578 = n179*n542/n416;
29271  n579 = n24*n25*n447*n63*n86*xF[0]*(pow(alpha, n25*n258 + n62)*n0*n1*n229/n249 + n209);
29272  n580 = n163*n441*n61*n86*(pow(alpha, -n258*n4 + n62)*n1*n229*n4/n249 + n210);
29273  n581 = n211*n30*n86*(pow(alpha, -n258*n5 + n62)*n1*n229*n5/n249 + n211)/n378;
29274  n582 = n212*n29*n86*(pow(alpha, -n258*n6 + n62)*n1*n229*n6/n249 + n212)/n379;
29275  n583 = n143*n61*n7*n86*(pow(alpha, -n258*n7 + n62)*n229*n89/n249 + n213)/n380;
29276  n584 = n200*n61*n86*(pow(alpha, -n258*n8 + n62)*n1*n229*n8/n249 + n214)/n381;
29277  n585 = n194*n61*n86*xF[15]*(pow(alpha, -n258*n9 + n62)*n229*n91/n249 + n215)/n382;
29278  n586 = n203*n61*n86*(pow(alpha, -n10*n258 + n62)*n1*n10*n229/n249 + n216)/n383;
29279  n587 = n217*n36*n86*(pow(alpha, -n11*n258 + n62)*n1*n11*n229/n249 + n217)/n384;
29280  n588 = n12*n144*n61*n86*(pow(alpha, -n12*n258 + n62)*n1*n12*n229/n249 + n218)/n385;
29281  n589 = n169*n61*n86*xF[19]*(pow(alpha, -n13*n258 + n62)*n1*n13*n229/n249 + n219)/n386;
29282  n590 = n220*n35*n86*(pow(alpha, -n14*n258 + n62)*n1*n14*n229/n249 + n220)/n387;
29283  n591 = n147*n15*n61*n86*(pow(alpha, -n15*n258 + n62)*n229*n90/n249 + n221)/n388;
29284  n592 = n154*n437*n61*n86*(pow(alpha, -n16*n258 + n62)*n1*n16*n229/n249 + n222);
29285  n593 = n223*n28*n86*(pow(alpha, -n17*n258 + n62)*n1*n17*n229/n249 + n223)/n390;
29286  n594 = n18*n61*n80*n86*xF[5]*(pow(alpha, -n18*n258 + n62)*n229*n87/n249 + n224)/n391;
29287  n595 = n157*n61*n86*xF[6]*(pow(alpha, -n19*n258 + n62)*n1*n19*n229/n249 + n225)/n392;
29288  n596 = n206*n61*n86*(pow(alpha, -n20*n258 + n62)*n1*n20*n229/n249 + n226)/n393;
29289  n597 = n145*n21*n61*n86*(pow(alpha, -n21*n258 + n62)*n229*n92/n249 + n227)/n394;
29290  n598 = n204*n61*n86*(pow(alpha, -n22*n258 + n62)*n1*n22*n229/n249 + n228)/n395;
29291  n599 = 1.0*n209*n538*n86/n376;
29292  n600 = n450*n543*n86*xF[0];
29293  n601 = 0.5*n600;
29294  n602 = pow(alpha, n0*n38)*n0*n100*n324*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n41*n88/(n251*n261*n99) + n158*n229*n255*n324 + n231;
29295  n603 = pow(alpha, n0*n38)*n0*n100*n294*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n43*n88/(n251*n263*n99) + n158*n229*n255*n294 + n232;
29296  n604 = pow(alpha, n0*n38)*n100*n153/(n251*n264*n99) + pow(alpha, n0*n38)*n100*n25*n292*n40/(n251*n99) + n229*n25*n255*n292*n63 + n44*n69*n88;
29297  n605 = pow(alpha, n0*n38)*n0*n100*n321*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n46*n88/(n251*n266*n99) + n158*n229*n255*n321 + n233;
29298  n606 = pow(alpha, n0*n38)*n100*n25*n308*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n333*n40/(n251*n99) + n229*n25*n255*n308*n63 + n47*n72*n88;
29299  n607 = pow(alpha, n0*n38)*n0*n100*n302*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n48*n88/(n251*n268*n99) + n158*n229*n255*n302 + n234;
29300  n608 = pow(alpha, n0*n38)*n100*n12*n25*n40/(n251*n269*n99) + pow(alpha, n0*n38)*n100*n171/(n251*n269*n99) + n12*n229*n25*n255*n63/n269 + n49*n74*n88;
29301  n609 = pow(alpha, n0*n38)*n100*n25*n296*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n40*n50/(n251*n270*n99) + n207*n88 + n229*n25*n255*n296*n63;
29302  n610 = pow(alpha, n0*n38)*n100*n181/(n251*n272*n99) + pow(alpha, n0*n38)*n100*n25*n316*n40/(n251*n99) + n229*n25*n255*n316*n63 + n52*n77*n88;
29303  n611 = pow(alpha, n0*n38)*n0*n100*n303*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n53*n88/(n251*n273*n99) + n158*n229*n255*n303 + n236;
29304  n612 = pow(alpha, n0*n38)*n0*n100*n304*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n56*n88/(n251*n276*n99) + n158*n229*n255*n304 + n238;
29305  n613 = pow(alpha, n0*n38)*n100*n40*n93/(n251*n279*n99) + pow(alpha, n0*n38)*n100*n59*n88/(n251*n279*n99) + n229*n255*n63*n93/n279 + n241;
29306  n614 = pow(alpha, n0*n38)*n100*n25*n311*n40/(n251*n99) + pow(alpha, n0*n38)*n100*n40*n42/(n251*n262*n99) + n202*n88 + n229*n25*n255*n311*n63;
29307  n615 = n184*(pow(alpha, n0*n38 - n258*n8)*n100*n25*n40*n8/(n251*n99) + pow(alpha, n0*n38 - n258*n8)*n100*n40*n45/(n251*n99) + n229*n25*n255*n305*n63 + n45*n70*n88)/n381;
29308  n616 = n176*n86*(pow(alpha, n0*n38 - n258*n7)*n100*n153/(n251*n99) + pow(alpha, n0*n38 - n258*n7)*n100*n25*n40*n7/(n251*n99) + n229*n25*n255*n292*n63 + n44*n69*n88)/n380;
29309  n617 = n615*n86;
29310  n618 = n149*n86*(pow(alpha, n0*n38 - n10*n258)*n10*n100*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n10*n258)*n100*n40*n47/(n251*n99) + n229*n25*n255*n308*n63 + n47*n72*n88)/n383;
29311  n619 = n152*n86*(pow(alpha, n0*n38 - n12*n258)*n100*n12*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n12*n258)*n100*n171/(n251*n99) + n12*n229*n25*n255*n63/n269 + n49*n74*n88)/n385;
29312  n620 = n109*n86*xF[19]*(pow(alpha, n0*n38 - n13*n258)*n100*n13*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n13*n258)*n100*n40*n50/(n251*n99) + n207*n88 + n229*n25*n255*n296*n63)/n386;
29313  n621 = n170*n86*(pow(alpha, n0*n38 - n15*n258)*n100*n15*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n15*n258)*n100*n181/(n251*n99) + n229*n25*n255*n316*n63 + n52*n77*n88)/n388;
29314  n622 = n455*n86*(pow(alpha, n0*n38 - n17*n258)*n100*n148*n25/(n251*n99) + pow(alpha, n0*n38 - n17*n258)*n100*n40*n54/(n251*n99) + n148*n229*n25*n460*n63 + n208*n88);
29315  n623 = n142*n441*n97*(pow(alpha, n0*n38 - n258*n4)*n0*n100*n4*n40/(n251*n99) + pow(alpha, n0*n38 - n258*n4)*n100*n41*n88/(n251*n99) + n158*n229*n255*n324 + n231);
29316  n624 = n139*n86*xF[12]*(pow(alpha, n0*n38 - n258*n6)*n0*n100*n40*n6/(n251*n99) + pow(alpha, n0*n38 - n258*n6)*n100*n43*n88/(n251*n99) + n158*n229*n255*n294 + n232)/n379;
29317  n625 = n142*n156*(pow(alpha, n0*n38 - n258*n9)*n0*n100*n40*n9/(n251*n99) + pow(alpha, n0*n38 - n258*n9)*n100*n46*n88/(n251*n99) + n158*n229*n255*n321 + n233)/n382;
29318  n626 = n107*n142*n440*(pow(alpha, n0*n38 - n11*n258)*n0*n100*n11*n40/(n251*n99) + pow(alpha, n0*n38 - n11*n258)*n100*n48*n88/(n251*n99) + n158*n229*n255*n302 + n234);
29319  n627 = n142*n454*(pow(alpha, n0*n38 - n14*n258)*n0*n100*n14*n40/(n251*n99) + pow(alpha, n0*n38 - n14*n258)*n100*n51*n88/(n251*n99) + n158*n229*n255*n314 + n235);
29320  n628 = n112*n142*n437*(pow(alpha, n0*n38 - n16*n258)*n0*n100*n16*n40/(n251*n99) + pow(alpha, n0*n38 - n16*n258)*n100*n53*n88/(n251*n99) + n158*n229*n255*n303 + n236);
29321  n629 = n142*n452*(pow(alpha, n0*n38 - n18*n258)*n100*n40*n94/(n251*n99) + pow(alpha, n0*n38 - n18*n258)*n100*n55*n88/(n251*n99) + n229*n255*n63*n94/n275 + n237);
29322  n630 = n115*n142*xF[6]*(pow(alpha, n0*n38 - n19*n258)*n0*n100*n19*n40/(n251*n99) + pow(alpha, n0*n38 - n19*n258)*n100*n56*n88/(n251*n99) + n158*n229*n255*n304 + n238)/n392;
29323  n631 = n142*n164*(pow(alpha, n0*n38 - n20*n258)*n0*n100*n20*n40/(n251*n99) + pow(alpha, n0*n38 - n20*n258)*n100*n57*n88/(n251*n99) + n158*n229*n255*n297 + n239)/n393;
29324  n632 = n142*n458*(pow(alpha, n0*n38 - n21*n258)*n0*n100*n21*n40/(n251*n99) + pow(alpha, n0*n38 - n21*n258)*n100*n58*n88/(n251*n99) + n158*n229*n255*n307 + n240);
29325  n633 = n142*n162*(pow(alpha, n0*n38 - n22*n258)*n100*n40*n93/(n251*n99) + pow(alpha, n0*n38 - n22*n258)*n100*n59*n88/(n251*n99) + n229*n255*n63*n93/n279 + n241)/n395;
29326  n634 = n495 + n599 + n601;
29327  n635 = xTj*(n109*n142*n562 + n115*n142*n560 + n139*n559*n86 + n142*n149*n547 + n142*n150*n548 + n142*n152*n550 + n142*n156*n555 + n142*n162*n551 + n142*n164*n557 + n142*n170*n549 + n142*n176*n553 + n142*n184*n554 + n142*n437*n544 + n142*n440*n546 + n142*n441*n545 + n142*n450*n538 + n142*n452*n512 + n142*n454*n508 + n142*n455*n511 + n142*n458*n515 + n143*n86*n89/n340 + n144*n448*n86 + n145*n86*n92/n354 + n200*n439*n86 + n201*n438*n86 + n203*n442*n86 + n204*n443*n86 + n206*n444*n86 + n209*n434*n86 + n210*n431*n86 + n211*n432*n86 + n212*n428*n86 + n215*n86*xF[15]/n342 + n217*n429*n86 + n219*n433*n86 + n222*n86*xF[3]/n349 + n223*n86*xF[4]/n350 + n224*n86*xF[5]/n351 + n225*n86*xF[6]/n352 + n449*n86*n90);
29328  n636 = n474 + n577 + n635;
29329  n637 = n475 + n476 + n477 + n478 + n479 + n480 + n481 + n482 + n483 + n484 + n485 + n486 + n487 + n488 + n489 + n490 + n491 + n492 + n493 + n494 + n579 + n580 + n581 + n582 + n583 + n584 + n585 + n586 + n587 + n588 + n589 + n590 + n591 + n592 + n593 + n594 + n595 + n596 + n597 + n598 + n600 + n616 + n617 + n618 + n619 + n620 + n621 + n622 + n623 + n624 + n625 + n626 + n627 + n628 + n629 + n630 + n631 + n632 + n633;
29330  n638 = n109*n142*n507*xF[19]*(n169*n61 + n229*n296*n61*n63/n249)/n406 + n139*n500*n86*xF[12]*(n229*n294*n61*n63/n249 + n6*n61*n68)/n399 + n142*n149*n504*(n182*n61 + n229*n308*n61*n63/n249)/n403 + n142*n150*n499*(n229*n311*n61*n63/n249 + n5*n61*n67)/n398 + n142*n152*n506*(n192*n61 + n229*n462*n61*n63)/n405 + n142*n156*n503*(n194*n61 + n229*n321*n61*n63/n249)/n402 + n142*n162*n516*(n185*n61 + n229*n463*n61*n63)/n415 + n142*n164*n514*(n193*n61 + n229*n297*n61*n63/n249)/n413 + n142*n170*n509*(n15*n61*n77 + n229*n316*n61*n63/n249)/n408 + n142*n176*n501*(n229*n292*n61*n63/n249 + n61*n69*n7)/n400 + n142*n184*n502*(n173*n61 + n229*n305*n61*n63/n249)/n401 + n142*n186*n512*(n18*n61*n80 + n229*n322*n61*n63/n249)/n411 + n142*n187*n508*(n188*n61 + n229*n314*n61*n63/n249)/n407 + n142*n197*n515*(n21*n61*n83 + n229*n307*n61*n63/n249)/n414 + n142*n451*n539*(n17*n61*n79 + n229*n318*n61*n63/n249) + n142*n453*n513*(n157*n61 + n229*n304*n61*n63/n249) + n142*n456*n505*(n161*n61 + n229*n302*n61*n63/n249) + n142*n459*n498*(n163*n61 + n229*n324*n61*n63/n249) + n142*n538*n572*n96 + n142*n544*xF[3]*(n154*n61 + n229*n303*n61*n63/n249)/n409 + n150*n86*(pow(alpha, n0*n38 - n258*n5)*n100*n25*n40*n5/(n251*n99) + pow(alpha, n0*n38 - n258*n5)*n100*n40*n42/(n251*n99) + n202*n88 + n229*n25*n255*n311*n63)/n378 + n637;
29331  NP_b = -n209*n450*n496*n86*xF[0] - n38*(1.0*n209*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n0*n1*n229/n249 + n209)/n376 + 0.5*n450*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n229*n39*n88/n249 + n205*n88) + n495 - 1.0*n573*n86*xF[0] - 0.5*xTj*(n107*n142*n440*(pow(alpha, n0*n38 - n11*n258)*n0*n100*n11*n40/(n251*n99) + pow(alpha, n0*n38 - n11*n258)*n100*n48*n88/(n251*n99) + pow(alpha, -n11*n258 + n62)*n0*n11*n229*n255 + n234) + n109*n86*xF[19]*(pow(alpha, n0*n38 - n13*n258)*n100*n13*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n13*n258)*n100*n40*n50/(n251*n99) + pow(alpha, -n13*n258 + n62)*n13*n229*n25*n255 + n207*n88)/n386 + n112*n142*n437*(pow(alpha, n0*n38 - n16*n258)*n0*n100*n16*n40/(n251*n99) + pow(alpha, n0*n38 - n16*n258)*n100*n53*n88/(n251*n99) + pow(alpha, -n16*n258 + n62)*n0*n16*n229*n255 + n236) + n115*n142*xF[6]*(pow(alpha, n0*n38 - n19*n258)*n0*n100*n19*n40/(n251*n99) + pow(alpha, n0*n38 - n19*n258)*n100*n56*n88/(n251*n99) + pow(alpha, -n19*n258 + n62)*n0*n19*n229*n255 + n238)/n392 + n139*n86*xF[12]*(pow(alpha, n0*n38 - n258*n6)*n0*n100*n40*n6/(n251*n99) + pow(alpha, n0*n38 - n258*n6)*n100*n43*n88/(n251*n99) + pow(alpha, -n258*n6 + n62)*n0*n229*n255*n6 + n232)/n379 + n142*n150*(pow(alpha, n0*n38 - n258*n5)*n0*n100*n40*n5/(n251*n99) + pow(alpha, n0*n38 - n258*n5)*n100*n42*n88/(n251*n99) + pow(alpha, -n258*n5 + n62)*n0*n229*n255*n5 + n202*n40)/n378 + n142*n156*(pow(alpha, n0*n38 - n258*n9)*n0*n100*n40*n9/(n251*n99) + pow(alpha, n0*n38 - n258*n9)*n100*n46*n88/(n251*n99) + pow(alpha, -n258*n9 + n62)*n0*n229*n255*n9 + n233)/n382 + n142*n162*(pow(alpha, n0*n38 - n22*n258)*n100*n40*n93/(n251*n99) + pow(alpha, n0*n38 - n22*n258)*n100*n59*n88/(n251*n99) + pow(alpha, -n22*n258 + n62)*n229*n255*n93 + n241)/n395 + n142*n164*(pow(alpha, n0*n38 - n20*n258)*n0*n100*n20*n40/(n251*n99) + pow(alpha, n0*n38 - n20*n258)*n100*n57*n88/(n251*n99) + pow(alpha, -n20*n258 + n62)*n0*n20*n229*n255 + n239)/n393 + n142*n441*n97*(pow(alpha, n0*n38 - n258*n4)*n0*n100*n4*n40/(n251*n99) + pow(alpha, n0*n38 - n258*n4)*n100*n41*n88/(n251*n99) + pow(alpha, -n258*n4 + n62)*n0*n229*n255*n4 + n231) + n142*n452*(pow(alpha, n0*n38 - n18*n258)*n100*n40*n94/(n251*n99) + pow(alpha, n0*n38 - n18*n258)*n100*n55*n88/(n251*n99) + pow(alpha, -n18*n258 + n62)*n229*n255*n94 + n237) + n142*n454*(pow(alpha, n0*n38 - n14*n258)*n0*n100*n14*n40/(n251*n99) + pow(alpha, n0*n38 - n14*n258)*n100*n51*n88/(n251*n99) + pow(alpha, -n14*n258 + n62)*n0*n14*n229*n255 + n235) + n142*n458*(pow(alpha, n0*n38 - n21*n258)*n0*n100*n21*n40/(n251*n99) + pow(alpha, n0*n38 - n21*n258)*n100*n58*n88/(n251*n99) + pow(alpha, -n21*n258 + n62)*n0*n21*n229*n255 + n240) + n149*n24*n569*n86 + n149*n86*(pow(alpha, n0*n38 - n10*n258)*n10*n100*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n10*n258)*n100*n40*n47/(n251*n99) + pow(alpha, -n10*n258 + n62)*n10*n229*n25*n255 + n47*n72*n88)/n383 + n150*n24*n568*n86 + n152*n24*n558*n86 + n152*n86*(pow(alpha, n0*n38 - n12*n258)*n100*n12*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n12*n258)*n100*n171/(n251*n99) + pow(alpha, -n12*n258 + n62)*n12*n229*n25*n255 + n49*n74*n88)/n385 + n156*n24*n563*n86 + n162*n24*n561*n86 + n164*n24*n565*n86 + n170*n24*n566*n86 + n170*n86*(pow(alpha, n0*n38 - n15*n258)*n100*n15*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n15*n258)*n100*n181/(n251*n99) + pow(alpha, -n15*n258 + n62)*n15*n229*n25*n255 + n52*n77*n88)/n388 + n176*n24*n564*n86 + n176*n86*(pow(alpha, n0*n38 - n258*n7)*n100*n153/(n251*n99) + pow(alpha, n0*n38 - n258*n7)*n100*n25*n40*n7/(n251*n99) + pow(alpha, -n258*n7 + n62)*n229*n25*n255*n7 + n44*n69*n88)/n380 + n184*n24*n571*n86 + n184*n86*(pow(alpha, n0*n38 - n258*n8)*n100*n25*n40*n8/(n251*n99) + pow(alpha, n0*n38 - n258*n8)*n100*n40*n45/(n251*n99) + pow(alpha, -n258*n8 + n62)*n229*n25*n255*n8 + n45*n70*n88)/n381 + n186*n24*n567*n86 + n187*n24*n570*n86 + n24*n451*n531*n86*xF[4] + n24*n453*n533*n86 + n24*n456*n525*n86 + n24*n457*n520*n86 + n24*n459*n518*n86 + n24*n573*n86*xF[0] + n24*n574*n86 + n24*n575*n86 + n24*n576*n86 + n450*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n229*n39*n88/n249 + n205*n88) + n455*n86*(pow(alpha, n0*n38 - n17*n258)*n100*n148*n25/(n251*n99) + pow(alpha, n0*n38 - n17*n258)*n100*n40*n54/(n251*n99) + pow(alpha, -n17*n258 + n62)*n148*n229*n25/n249 + n208*n88) + n475 + n476 + n477 + n478 + n479 + n480 + n481 + n482 + n483 + n484 + n485 + n486 + n487 + n488 + n489 + n490 + n491 + n492 + n493 + n494 + n579 + n580 + n581 + n582 + n583 + n584 + n585 + n586 + n587 + n588 + n589 + n590 + n591 + n592 + n593 + n594 + n595 + n596 + n597 + n598)) - n474 - n86*xTj*(-n109*n562 - n115*n560 + n139*n559 + n143*n89/n340 + n144*n448 + n145*n92/n354 - n149*n547 - n150*n548 - n152*n550 - n156*n555 - n162*n551 + n164*n445*n514 - n170*n549 - n176*n553 - n184*n554 + n200*n439 + n201*n438 + n203*n442 + n204*n443 + n206*n444 + n209*n434 + n210*n431 + n211*n432 + n212*n428 + n215*xF[15]/n342 + n217*n429 + n219*n433 + n222*xF[3]/n349 + n223*xF[4]/n350 + n224*xF[5]/n351 + n225*xF[6]/n352 - n437*n544 - n440*n546 - n441*n545 + n449*n90 - n450*n538 - n452*n512 - n454*n508 - n455*n511 - n458*n515);
29332  NP_2a = -n86*(pow(alpha, n0*n38)*n33*n39*n40*pow(n496, -n24)*n96/n396 - 2.0*pow(alpha, n0*n38)*n39*n40*n496*xF[0]/n376 + n205*n450*n88*xF[0]*(n461*(-n26 + xPj*xTj)/n64 - 1) - 1.0*n244/n336 + 1.0*xTj*(-n107*n440*(pow(alpha, n0*n38 - n11*n258)*n0*n100*n11*n40/(n251*n99) + pow(alpha, n0*n38 - n11*n258)*n100*n48*n88/(n251*n99) + n158*n229*n255*n302 + n234) + n109*xF[19]*(pow(alpha, n0*n38 - n13*n258)*n100*n13*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n13*n258)*n100*n40*n50/(n251*n99) + n207*n88 + n229*n25*n255*n296*n63)/n386 - n112*n437*(pow(alpha, n0*n38 - n16*n258)*n0*n100*n16*n40/(n251*n99) + pow(alpha, n0*n38 - n16*n258)*n100*n53*n88/(n251*n99) + n158*n229*n255*n303 + n236) - n115*xF[6]*(pow(alpha, n0*n38 - n19*n258)*n0*n100*n19*n40/(n251*n99) + pow(alpha, n0*n38 - n19*n258)*n100*n56*n88/(n251*n99) + n158*n229*n255*n304 + n238)/n392 + n12*n144*n61*(pow(alpha, -n12*n258 + n62)*n1*n12*n229/n249 + n218)/n385 + n139*xF[12]*(pow(alpha, n0*n38 - n258*n6)*n0*n100*n40*n6/(n251*n99) + pow(alpha, n0*n38 - n258*n6)*n100*n43*n88/(n251*n99) + n158*n229*n255*n294 + n232)/n379 + n143*n153/n340 + n143*n61*n7*(pow(alpha, -n258*n7 + n62)*n229*n89/n249 + n213)/n380 + n144*n171/n345 + n145*n174/n354 + n145*n21*n61*(pow(alpha, -n21*n258 + n62)*n229*n92/n249 + n227)/n394 + n147*n15*n61*(pow(alpha, -n15*n258 + n62)*n229*n90/n249 + n221)/n388 + n149*n24*n569 + n149*(pow(alpha, n0*n38 - n10*n258)*n10*n100*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n10*n258)*n100*n40*n47/(n251*n99) + n229*n25*n255*n308*n63 + n47*n72*n88)/n383 + n150*n24*n568 + n150*(pow(alpha, n0*n38 - n258*n5)*n100*n25*n40*n5/(n251*n99) + pow(alpha, n0*n38 - n258*n5)*n100*n40*n42/(n251*n99) + n202*n88 + n229*n25*n255*n311*n63)/n378 + n152*n24*n558 + n152*(pow(alpha, n0*n38 - n12*n258)*n100*n12*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n12*n258)*n100*n171/(n251*n99) + n12*n229*n25*n255*n63/n269 + n49*n74*n88)/n385 + n154*n437*n61*(pow(alpha, -n16*n258 + n62)*n1*n16*n229/n249 + n222) + n156*n24*n563 - n156*(pow(alpha, n0*n38 - n258*n9)*n0*n100*n40*n9/(n251*n99) + pow(alpha, n0*n38 - n258*n9)*n100*n46*n88/(n251*n99) + n158*n229*n255*n321 + n233)/n382 + n157*n61*xF[6]*(pow(alpha, -n19*n258 + n62)*n1*n19*n229/n249 + n225)/n392 + n162*n24*n561 - n162*(pow(alpha, n0*n38 - n22*n258)*n100*n40*n93/(n251*n99) + pow(alpha, n0*n38 - n22*n258)*n100*n59*n88/(n251*n99) + n229*n255*n63*n93/n279 + n241)/n395 + n163*n441*n61*(pow(alpha, -n258*n4 + n62)*n1*n229*n4/n249 + n210) + n164*n24*n565 + n164*n445*(pow(alpha, n0*n38 - n20*n258)*n0*n100*n20*n40/(n251*n99) + pow(alpha, n0*n38 - n20*n258)*n100*n57*n88/(n251*n99) + n158*n229*n255*n297 + n239) + n169*n61*xF[19]*(pow(alpha, -n13*n258 + n62)*n1*n13*n229/n249 + n219)/n386 + n170*n24*n566 + n170*(pow(alpha, n0*n38 - n15*n258)*n100*n15*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n15*n258)*n100*n181/(n251*n99) + n229*n25*n255*n316*n63 + n52*n77*n88)/n388 + n176*n24*n564 + n176*(pow(alpha, n0*n38 - n258*n7)*n100*n153/(n251*n99) + pow(alpha, n0*n38 - n258*n7)*n100*n25*n40*n7/(n251*n99) + n229*n25*n255*n292*n63 + n44*n69*n88)/n380 + n18*n61*n80*xF[5]*(pow(alpha, -n18*n258 + n62)*n229*n87/n249 + n224)/n391 + n181*n449 + n184*n24*n571 + n186*n24*n567 + n187*n24*n570 + n194*n61*xF[15]*(pow(alpha, -n258*n9 + n62)*n229*n91/n249 + n215)/n382 + n200*n61*(pow(alpha, -n258*n8 + n62)*n1*n229*n8/n249 + n214)/n381 + n202*n40*n432 + n203*n61*(pow(alpha, -n10*n258 + n62)*n1*n10*n229/n249 + n216)/n383 + n204*n61*(pow(alpha, -n22*n258 + n62)*n1*n22*n229/n249 + n228)/n395 + n206*n61*(pow(alpha, -n20*n258 + n62)*n1*n20*n229/n249 + n226)/n393 + n207*n40*n433 + n211*n30*(pow(alpha, -n258*n5 + n62)*n1*n229*n5/n249 + n211)/n378 + n212*n29*(pow(alpha, -n258*n6 + n62)*n1*n229*n6/n249 + n212)/n379 + n217*n36*(pow(alpha, -n11*n258 + n62)*n1*n11*n229/n249 + n217)/n384 + n220*n35*(pow(alpha, -n14*n258 + n62)*n1*n14*n229/n249 + n220)/n387 + n223*n28*(pow(alpha, -n17*n258 + n62)*n1*n17*n229/n249 + n223)/n390 + n231*n431 + n232*n428 + n233*xF[15]/n342 + n234*n429 + n237*xF[5]/n351 + n24*n25*n447*n63*xF[0]*(pow(alpha, n25*n258 + n62)*n0*n1*n229/n249 + n209) + n24*n451*n531*xF[4] + n24*n453*n533 + n24*n456*n525 + n24*n457*n520 + n24*n459*n518 + n24*n573*xF[0] + n24*n574 + n24*n575 + n24*n576 + n242*n436 + n243*n435 + n244/n336 + n245/n353 + n246/n352 + n247/n349 + n248/n350 - n441*n97*(pow(alpha, n0*n38 - n258*n4)*n0*n100*n4*n40/(n251*n99) + pow(alpha, n0*n38 - n258*n4)*n100*n41*n88/(n251*n99) + n158*n229*n255*n324 + n231) + n450*n543*xF[0] - n452*(pow(alpha, n0*n38 - n18*n258)*n100*n40*n94/(n251*n99) + pow(alpha, n0*n38 - n18*n258)*n100*n55*n88/(n251*n99) + n229*n255*n63*n94/n275 + n237) - n454*(pow(alpha, n0*n38 - n14*n258)*n0*n100*n14*n40/(n251*n99) + pow(alpha, n0*n38 - n14*n258)*n100*n51*n88/(n251*n99) + n158*n229*n255*n314 + n235) + n455*(pow(alpha, n0*n38 - n17*n258)*n100*n148*n25/(n251*n99) + pow(alpha, n0*n38 - n17*n258)*n100*n40*n54/(n251*n99) + n148*n229*n25*n460*n63 + n208*n88) - n458*(pow(alpha, n0*n38 - n21*n258)*n0*n100*n21*n40/(n251*n99) + pow(alpha, n0*n38 - n21*n258)*n100*n58*n88/(n251*n99) + n158*n229*n255*n307 + n240) + n466 + n467 + n615));
29333  NP_sqrt_base = (NP0*n636 + n142*n179/n356 + n32*(-n102*n86*xF[12]/(n102 - 1 + pow(alpha, -n6*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n107*n86*xF[17]/(n107 - 1 + pow(alpha, -n11*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n109*n86*xF[19]/(n109 - 1 + pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n112*n86*xF[3]/(n112 - 1 + pow(alpha, -n16*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n113*n86*xF[4]/(n113 - 1 + pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n115*n86*xF[6]/(n115 - 1 + pow(alpha, -n19*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n149*n86/(n106 - 1 + pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n150*n86/(n101 - 1 + pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n152*n86/(n108 - 1 + pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n156*n86/(n105 - 1 + pow(alpha, -n9*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n162*n86/(n118 - 1 + pow(alpha, -n22*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n164*n86/(n116 - 1 + pow(alpha, -n20*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n170*n86/(n111 - 1 + pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n176*n86/(n103 - 1 + pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n184*n86/(n104 - 1 + pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n186*n86/(n114 - 1 + pow(alpha, -n18*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n187*n86/(n110 - 1 + pow(alpha, -n14*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n197*n86/(n117 - 1 + pow(alpha, -n21*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) - n86*n96*xF[0]/(pow(alpha, n25*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)) + n96 - 1) - n86*n97*xF[10]/(n97 - 1 + pow(alpha, -n4*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)))) + pow(NP0, -n24)*(1.0*n209*n538*n86/n376 + 0.5*n475 - 0.5*n538*n572*n86*n96 + 0.5*n600 - 0.5*n638*xTj))*(n119*n31*n541*n86/n427 - 4.0*n209*n446*n86*(pow(alpha, n25*n259)*n0*n253/n250 + n0*n1*n63) + n24*n32*(n1*n24*n25*n63*n86*xF[0]*(n209 + pow(alpha, -n0*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n209*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n96 - 1 + pow(alpha, -n0*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n12*n144*n61*n86*(n218 + pow(alpha, -n12*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n12*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n108 - 1 + pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n121*n24*n86*xF[11]*pow(n211 + pow(alpha, -n5*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n5*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n101 - 1 + pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n121*n86*xF[11]*pow(n101 - 1 + pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n40*n5*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n42*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n202*n40 - pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n40*n5*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n122*n142*xF[12]*pow(-n139 - 1 + pow(alpha, -n6*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n6*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n40*n6*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n6*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n43*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n232 + pow(alpha, -n6*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n40*n6*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n122*n24*n86*xF[12]*pow(n212 + pow(alpha, -n6*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n6*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(-n139 - 1 + pow(alpha, -n6*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n142*n151*pow(n114 - 1 + pow(alpha, -n18*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n18*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n94*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n18*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n55*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n237 + pow(alpha, -n18*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n63*n94*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n165*pow(n112 - 1 + pow(alpha, -n16*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n16*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n16*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n16*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n53*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n236 + pow(alpha, -n16*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n16*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n166*pow(n107 - 1 + pow(alpha, -n11*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n11*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n11*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n11*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n48*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n234 + pow(alpha, -n11*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n11*n158*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n167*pow(n116 - 1 + pow(alpha, -n20*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n20*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n20*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n20*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n57*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n239 + pow(alpha, -n20*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n20*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n172*pow(n110 - 1 + pow(alpha, -n14*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n14*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n14*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n14*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n51*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n235 + pow(alpha, -n14*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n14*n158*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n175*pow(n118 - 1 + pow(alpha, -n22*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n22*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n93*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n22*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n59*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n241 + pow(alpha, -n22*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n63*n93*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n177*pow(n105 - 1 + pow(alpha, -n9*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n9*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n40*n9*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n9*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n46*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n233 + pow(alpha, -n9*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n40*n9*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n190*pow(n115 - 1 + pow(alpha, -n19*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n19*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n19*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n19*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n56*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n238 + pow(alpha, -n19*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n19*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n195*pow(n97 - 1 + pow(alpha, -n4*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n4*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n4*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n4*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n41*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n231 + pow(alpha, -n4*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n4*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n142*n196*pow(n117 - 1 + pow(alpha, -n21*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(pow(alpha, n0*n38)*pow(alpha, -n21*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n21*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + pow(alpha, n0*n38)*pow(alpha, -n21*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n58*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) + n240 + pow(alpha, -n21*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n21*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n143*n153*n86/(n103 - 1 + pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n143*n61*n7*n86*(n213 + pow(alpha, -n7*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n89*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n103 - 1 + pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n144*n171*n86/(n108 - 1 + pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n145*n174*n86/(n117 - 1 + pow(alpha, -n21*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n145*n21*n61*n86*(n227 + pow(alpha, -n21*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n92*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n117 - 1 + pow(alpha, -n21*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n147*n15*n61*n86*(n221 + pow(alpha, -n15*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n90*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n111 - 1 + pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n147*n181*n86/(n111 - 1 + pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n151*n24*n86*pow(n224 + pow(alpha, -n18*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n87*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n114 - 1 + pow(alpha, -n18*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n154*n61*n86*xF[3]*(n1*n16*n78 + pow(alpha, -n16*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n16*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n112 - 1 + pow(alpha, -n16*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n155*n24*n86*pow(n216 + pow(alpha, -n10*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n10*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n106 - 1 + pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n155*n86*pow(n106 - 1 + pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n10*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n47*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n243 - pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n10*n158*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n157*n61*n86*xF[6]*(n1*n19*n81 + pow(alpha, -n19*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n19*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n115 - 1 + pow(alpha, -n19*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n163*n61*n86*xF[10]*(n1*n4*n66 + pow(alpha, -n4*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n4*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n97 - 1 + pow(alpha, -n4*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n165*n24*n86*pow(n222 + pow(alpha, -n16*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n16*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n112 - 1 + pow(alpha, -n16*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n166*n24*n86*pow(n217 + pow(alpha, -n11*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n11*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n107 - 1 + pow(alpha, -n11*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n167*n24*n86*pow(n226 + pow(alpha, -n20*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n20*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n116 - 1 + pow(alpha, -n20*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n168*n24*n86*pow(n223 + pow(alpha, -n17*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n17*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n113 - 1 + pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n168*n86*pow(n113 - 1 + pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n148*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n54*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n208*n40 - pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n148*n158*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n169*n61*n86*xF[19]*(n1*n13*n75 + pow(alpha, -n13*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n13*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n109 - 1 + pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n172*n24*n86*pow(n220 + pow(alpha, -n14*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n14*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n110 - 1 + pow(alpha, -n14*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n175*n24*n86*pow(n228 + pow(alpha, -n22*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n22*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n118 - 1 + pow(alpha, -n22*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n177*n24*n86*pow(n215 + pow(alpha, -n9*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n91*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n105 - 1 + pow(alpha, -n9*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n178*n24*n86*pow(n214 + pow(alpha, -n8*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n63*n8*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n104 - 1 + pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n178*n86*pow(n104 - 1 + pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n40*n8*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n45*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n242 - pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n40*n8*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n179*n24*n86*pow(pow(alpha, n25*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n209*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + n209, -n24)/pow(n96 - 1 + pow(alpha, -n0*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n179*n86*(-n205*n40 - pow(alpha, -n0*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n205*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n96 - 1 + pow(alpha, -n0*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n18*n61*n80*n86*xF[5]*(n224 + pow(alpha, -n18*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n87*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n114 - 1 + pow(alpha, -n18*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n183*n24*n86*pow(n221 + pow(alpha, -n15*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n90*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n111 - 1 + pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n183*n86*pow(n111 - 1 + pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n15*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n52*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n181*n77 - pow(alpha, -n15*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n15*n158*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n189*n24*n86*pow(n213 + pow(alpha, -n7*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n89*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n103 - 1 + pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n189*n86*pow(n103 - 1 + pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n40*n7*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n44*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n153*n69 - pow(alpha, -n7*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n158*n40*n7*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n190*n24*n86*pow(n225 + pow(alpha, -n19*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n19*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n115 - 1 + pow(alpha, -n19*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n191*n24*n86*pow(n219 + pow(alpha, -n13*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n13*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n109 - 1 + pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n191*n86*pow(n109 - 1 + pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n0*n13*n40*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n50*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n207*n40 - pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n13*n158*n40*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n194*n61*n86*xF[15]*(n215 + pow(alpha, -n9*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n91*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n105 - 1 + pow(alpha, -n9*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n195*n24*n86*pow(n210 + pow(alpha, -n4*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n4*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n97 - 1 + pow(alpha, -n4*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n196*n24*n86*pow(n227 + pow(alpha, -n21*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n63*n92*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n117 - 1 + pow(alpha, -n21*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n198*n24*n86*pow(n218 + pow(alpha, -n12*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n12*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)), -n24)/pow(n108 - 1 + pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), 3) + n198*n86*pow(n108 - 1 + pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24)*(-pow(alpha, n0*n38)*pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n95*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - pow(alpha, n0*n38)*pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n49*n88*pow(n26 + n34*xTj, -n24)*pow(n26 - xF[0]*xTj, n24)*pow(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1, n24) - n171*n74 - pow(alpha, -n12*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n40*n63*n95*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1))) + n200*n61*n86*(n1*n70*n8 + pow(alpha, -n8*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n63*n8*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n104 - 1 + pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n202*n40*n86*xF[11]/(n101 - 1 + pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n203*n61*n86*(n1*n10*n72 + pow(alpha, -n10*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n10*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n106 - 1 + pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n204*n61*n86*(n1*n22*n84 + pow(alpha, -n22*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n22*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n118 - 1 + pow(alpha, -n22*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n206*n61*n86*(n1*n20*n82 + pow(alpha, -n20*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n20*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n116 - 1 + pow(alpha, -n20*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n207*n40*n86*xF[19]/(n109 - 1 + pow(alpha, -n13*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n211*n30*n86*(n1*n5*n67 + pow(alpha, -n5*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n5*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n101 - 1 + pow(alpha, -n5*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n212*n29*n86*(n1*n6*n68 + pow(alpha, -n6*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n6*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(-n139 - 1 + pow(alpha, -n6*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n217*n36*n86*(n1*n11*n73 + pow(alpha, -n11*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n11*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n107 - 1 + pow(alpha, -n11*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n220*n35*n86*(n1*n14*n76 + pow(alpha, -n14*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n14*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n110 - 1 + pow(alpha, -n14*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n223*n28*n86*(n1*n17*n79 + pow(alpha, -n17*(n146*(n254 - log(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))*n1*n17*n63*(n26 + n34*xTj)/((n26 - xF[0]*xTj)*(-n63*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)))*pow(n113 - 1 + pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)), n24) + n231*n86*xF[10]/(n97 - 1 + pow(alpha, -n4*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n232*n86*xF[12]/(-n139 - 1 + pow(alpha, -n6*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n233*n86*xF[15]/(n105 - 1 + pow(alpha, -n9*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n234*n86*xF[17]/(n107 - 1 + pow(alpha, -n11*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n235*n86*xF[1]/(n110 - 1 + pow(alpha, -n14*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n237*n86*xF[5]/(n114 - 1 + pow(alpha, -n18*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n241*n86*xF[9]/(n118 - 1 + pow(alpha, -n22*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n242*n86*xF[14]/(n104 - 1 + pow(alpha, -n8*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n243*n86*xF[16]/(n106 - 1 + pow(alpha, -n10*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n244*n86/(n96 - 1 + pow(alpha, -n0*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n245*n86/(n116 - 1 + pow(alpha, -n20*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n246*n86/(n115 - 1 + pow(alpha, -n19*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n247*n86/(n112 - 1 + pow(alpha, -n16*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1))) + n248*n86/(n113 - 1 + pow(alpha, -n17*(n146*(n254 - log(n140*(n26 + n34*xTj)/(n26 - xF[0]*xTj) + 1)) + 1)))) - 2.0*n244*n86/n356 - 2.0*n578*n86) + pow(-n38*(1.0*n209*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n0*n1*n229/n249 + n209)/n376 + 0.5*n450*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n229*n39*n88/n249 + n205*n88) + n495 - 0.5*xTj*(n107*n142*n440*(pow(alpha, n0*n38 - n11*n258)*n0*n100*n11*n40/(n251*n99) + pow(alpha, n0*n38 - n11*n258)*n100*n48*n88/(n251*n99) + pow(alpha, -n11*n258 + n62)*n0*n11*n229*n255 + n234) + n109*n142*xF[19]*(pow(alpha, -n13*n258 + n62)*n1*n13*n229/n249 + n219)*(pow(alpha, -n13*n258 + n62)*n13*n229*n61/n249 + n169*n61)/n406 + n109*n86*xF[19]*(pow(alpha, n0*n38 - n13*n258)*n100*n13*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n13*n258)*n100*n40*n50/(n251*n99) + pow(alpha, -n13*n258 + n62)*n13*n229*n25*n255 + n207*n88)/n386 + n112*n142*n437*(pow(alpha, n0*n38 - n16*n258)*n0*n100*n16*n40/(n251*n99) + pow(alpha, n0*n38 - n16*n258)*n100*n53*n88/(n251*n99) + pow(alpha, -n16*n258 + n62)*n0*n16*n229*n255 + n236) + n112*n142*xF[3]*(pow(alpha, -n16*n258 + n62)*n1*n16*n229/n249 + n222)*(pow(alpha, -n16*n258 + n62)*n16*n229*n61/n249 + n154*n61)/n409 + n115*n142*xF[6]*(pow(alpha, n0*n38 - n19*n258)*n0*n100*n19*n40/(n251*n99) + pow(alpha, n0*n38 - n19*n258)*n100*n56*n88/(n251*n99) + pow(alpha, -n19*n258 + n62)*n0*n19*n229*n255 + n238)/n392 + n139*n86*xF[12]*(pow(alpha, -n258*n6 + n62)*n1*n229*n6/n249 + n212)*(pow(alpha, -n258*n6 + n62)*n229*n6*n61/n249 + n6*n61*n68)/n399 + n139*n86*xF[12]*(pow(alpha, n0*n38 - n258*n6)*n0*n100*n40*n6/(n251*n99) + pow(alpha, n0*n38 - n258*n6)*n100*n43*n88/(n251*n99) + pow(alpha, -n258*n6 + n62)*n0*n229*n255*n6 + n232)/n379 + n142*n149*(pow(alpha, -n10*n258 + n62)*n1*n10*n229/n249 + n216)*(pow(alpha, -n10*n258 + n62)*n10*n229*n61/n249 + n182*n61)/n403 + n142*n150*(pow(alpha, -n258*n5 + n62)*n1*n229*n5/n249 + n211)*(pow(alpha, -n258*n5 + n62)*n229*n5*n61/n249 + n5*n61*n67)/n398 + n142*n152*(pow(alpha, -n12*n258 + n62)*n1*n12*n229/n249 + n218)*(pow(alpha, -n12*n258 + n62)*n12*n229*n61/n249 + n192*n61)/n405 + n142*n156*(pow(alpha, -n258*n9 + n62)*n229*n91/n249 + n215)*(pow(alpha, -n258*n9 + n62)*n229*n61*n9/n249 + n194*n61)/n402 + n142*n156*(pow(alpha, n0*n38 - n258*n9)*n0*n100*n40*n9/(n251*n99) + pow(alpha, n0*n38 - n258*n9)*n100*n46*n88/(n251*n99) + pow(alpha, -n258*n9 + n62)*n0*n229*n255*n9 + n233)/n382 + n142*n162*(pow(alpha, -n22*n258 + n62)*n1*n22*n229/n249 + n228)*(pow(alpha, -n22*n258 + n62)*n22*n229*n61/n249 + n185*n61)/n415 + n142*n162*(pow(alpha, n0*n38 - n22*n258)*n100*n40*n93/(n251*n99) + pow(alpha, n0*n38 - n22*n258)*n100*n59*n88/(n251*n99) + pow(alpha, -n22*n258 + n62)*n229*n255*n93 + n241)/n395 + n142*n164*(pow(alpha, -n20*n258 + n62)*n1*n20*n229/n249 + n226)*(pow(alpha, -n20*n258 + n62)*n20*n229*n61/n249 + n193*n61)/n413 + n142*n164*(pow(alpha, n0*n38 - n20*n258)*n0*n100*n20*n40/(n251*n99) + pow(alpha, n0*n38 - n20*n258)*n100*n57*n88/(n251*n99) + pow(alpha, -n20*n258 + n62)*n0*n20*n229*n255 + n239)/n393 + n142*n170*(pow(alpha, -n15*n258 + n62)*n229*n90/n249 + n221)*(pow(alpha, -n15*n258 + n62)*n15*n229*n61/n249 + n15*n61*n77)/n408 + n142*n176*(pow(alpha, -n258*n7 + n62)*n229*n89/n249 + n213)*(pow(alpha, -n258*n7 + n62)*n229*n61*n7/n249 + n61*n69*n7)/n400 + n142*n184*(pow(alpha, -n258*n8 + n62)*n1*n229*n8/n249 + n214)*(pow(alpha, -n258*n8 + n62)*n229*n61*n8/n249 + n173*n61)/n401 + n142*n186*(pow(alpha, -n18*n258 + n62)*n229*n87/n249 + n224)*(pow(alpha, -n18*n258 + n62)*n18*n229*n61/n249 + n18*n61*n80)/n411 + n142*n187*(pow(alpha, -n14*n258 + n62)*n1*n14*n229/n249 + n220)*(pow(alpha, -n14*n258 + n62)*n14*n229*n61/n249 + n188*n61)/n407 + n142*n197*(pow(alpha, -n21*n258 + n62)*n229*n92/n249 + n227)*(pow(alpha, -n21*n258 + n62)*n21*n229*n61/n249 + n21*n61*n83)/n414 + n142*n441*n97*(pow(alpha, n0*n38 - n258*n4)*n0*n100*n4*n40/(n251*n99) + pow(alpha, n0*n38 - n258*n4)*n100*n41*n88/(n251*n99) + pow(alpha, -n258*n4 + n62)*n0*n229*n255*n4 + n231) + n142*n451*xF[4]*(pow(alpha, -n17*n258 + n62)*n1*n17*n229/n249 + n223)*(pow(alpha, -n17*n258 + n62)*n17*n229*n61/n249 + n17*n61*n79) + n142*n452*(pow(alpha, n0*n38 - n18*n258)*n100*n40*n94/(n251*n99) + pow(alpha, n0*n38 - n18*n258)*n100*n55*n88/(n251*n99) + pow(alpha, -n18*n258 + n62)*n229*n255*n94 + n237) + n142*n453*(pow(alpha, -n19*n258 + n62)*n1*n19*n229/n249 + n225)*(pow(alpha, -n19*n258 + n62)*n19*n229*n61/n249 + n157*n61) + n142*n454*(pow(alpha, n0*n38 - n14*n258)*n0*n100*n14*n40/(n251*n99) + pow(alpha, n0*n38 - n14*n258)*n100*n51*n88/(n251*n99) + pow(alpha, -n14*n258 + n62)*n0*n14*n229*n255 + n235) + n142*n456*(pow(alpha, -n11*n258 + n62)*n1*n11*n229/n249 + n217)*(pow(alpha, -n11*n258 + n62)*n11*n229*n61/n249 + n161*n61) + n142*n458*(pow(alpha, n0*n38 - n21*n258)*n0*n100*n21*n40/(n251*n99) + pow(alpha, n0*n38 - n21*n258)*n100*n58*n88/(n251*n99) + pow(alpha, -n21*n258 + n62)*n0*n21*n229*n255 + n240) + n142*n459*(pow(alpha, -n258*n4 + n62)*n1*n229*n4/n249 + n210)*(pow(alpha, -n258*n4 + n62)*n229*n4*n61/n249 + n163*n61) + n142*n96*xF[0]*(pow(alpha, -n0*n258 + n62)*n0*n1*n229/n249 + n209)*(pow(alpha, -n0*n258 + n62)*n1*n229*n24*n25/n249 + n1*n24*n25*n63)/n396 + n149*n86*(pow(alpha, n0*n38 - n10*n258)*n10*n100*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n10*n258)*n100*n40*n47/(n251*n99) + pow(alpha, -n10*n258 + n62)*n10*n229*n25*n255 + n47*n72*n88)/n383 + n150*n86*(pow(alpha, n0*n38 - n258*n5)*n100*n25*n40*n5/(n251*n99) + pow(alpha, n0*n38 - n258*n5)*n100*n40*n42/(n251*n99) + pow(alpha, -n258*n5 + n62)*n229*n25*n255*n5 + n202*n88)/n378 + n152*n86*(pow(alpha, n0*n38 - n12*n258)*n100*n12*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n12*n258)*n100*n171/(n251*n99) + pow(alpha, -n12*n258 + n62)*n12*n229*n25*n255 + n49*n74*n88)/n385 + n170*n86*(pow(alpha, n0*n38 - n15*n258)*n100*n15*n25*n40/(n251*n99) + pow(alpha, n0*n38 - n15*n258)*n100*n181/(n251*n99) + pow(alpha, -n15*n258 + n62)*n15*n229*n25*n255 + n52*n77*n88)/n388 + n176*n86*(pow(alpha, n0*n38 - n258*n7)*n100*n153/(n251*n99) + pow(alpha, n0*n38 - n258*n7)*n100*n25*n40*n7/(n251*n99) + pow(alpha, -n258*n7 + n62)*n229*n25*n255*n7 + n44*n69*n88)/n380 + n184*n86*(pow(alpha, n0*n38 - n258*n8)*n100*n25*n40*n8/(n251*n99) + pow(alpha, n0*n38 - n258*n8)*n100*n40*n45/(n251*n99) + pow(alpha, -n258*n8 + n62)*n229*n25*n255*n8 + n45*n70*n88)/n381 + n450*n86*xF[0]*(pow(alpha, -n0*n258 + n62)*n229*n39*n88/n249 + n205*n88) + n455*n86*(pow(alpha, n0*n38 - n17*n258)*n100*n148*n25/(n251*n99) + pow(alpha, n0*n38 - n17*n258)*n100*n40*n54/(n251*n99) + pow(alpha, -n17*n258 + n62)*n148*n229*n25/n249 + n208*n88) + n475 + n476 + n477 + n478 + n479 + n480 + n481 + n482 + n483 + n484 + n485 + n486 + n487 + n488 + n489 + n490 + n491 + n492 + n493 + n494 + n579 + n580 + n581 + n582 + n583 + n584 + n585 + n586 + n587 + n588 + n589 + n590 + n591 + n592 + n593 + n594 + n595 + n596 + n597 + n598) - 0.5*n86*n96*xF[0]*(pow(alpha, -n0*n258 + n62)*n0*n1*n229/n249 + n209)*(pow(alpha, -n0*n258 + n62)*n1*n229*n24*n25/n249 + n1*n24*n25*n63)/n396) - n636, -n24);
29334  NP_sqrt_base = fabs(NP_sqrt_base);
29335  NP1 = (-NP_b - sqrt(NP_sqrt_base))/NP_2a;
29336  NT1 = n146*(n254 - log(-pow(alpha, NP1*n0)*n229 + 1));
29337  g0 = MW[1] - Mstar;
29338  g1 = MW[0] - Mstar;
29339  g2 = NT1 + 1;
29340  g3 = xPj - xTj;
29341  g4 = MW[10] - Mstar;
29342  g5 = MW[11] - Mstar;
29343  g6 = MW[12] - Mstar;
29344  g7 = MW[13] - Mstar;
29345  g8 = MW[14] - Mstar;
29346  g9 = MW[15] - Mstar;
29347  g10 = MW[16] - Mstar;
29348  g11 = MW[17] - Mstar;
29349  g12 = MW[18] - Mstar;
29350  g13 = MW[19] - Mstar;
29351  g14 = MW[2] - Mstar;
29352  g15 = MW[3] - Mstar;
29353  g16 = MW[4] - Mstar;
29354  g17 = MW[5] - Mstar;
29355  g18 = MW[6] - Mstar;
29356  g19 = MW[7] - Mstar;
29357  g20 = MW[8] - Mstar;
29358  g21 = MW[9] - Mstar;
29359  g22 = xF[0] - xTj;
29360  g23 = xF[0] - xPj;
29361  g24 = -xTj;
29362  g25 = xPj/xF[1];
29363  g26 = pow(alpha, -g1);
29364  g27 = pow(alpha, -g4);
29365  g28 = pow(alpha, -g5);
29366  g29 = pow(alpha, -g6);
29367  g30 = pow(alpha, -g7);
29368  g31 = pow(alpha, -g8);
29369  g32 = pow(alpha, -g9);
29370  g33 = pow(alpha, -g10);
29371  g34 = pow(alpha, -g11);
29372  g35 = pow(alpha, -g12);
29373  g36 = pow(alpha, -g13);
29374  g37 = pow(alpha, -g0);
29375  g38 = pow(alpha, -g14);
29376  g39 = pow(alpha, -g15);
29377  g40 = pow(alpha, -g16);
29378  g41 = pow(alpha, -g17);
29379  g42 = pow(alpha, -g18);
29380  g43 = pow(alpha, -g19);
29381  g44 = pow(alpha, -g20);
29382  g45 = pow(alpha, -g21);
29383  g46 = log(xF[0]/xF[1]);
29384  g47 = -g2;
29385  g48 = pow(alpha, NP1*g0);
29386  g49 = pow(alpha, NP1*g1);
29387  g50 = pow(alpha, NP1*g4);
29388  g51 = log(g26);
29389  g52 = pow(alpha, NP1*g5);
29390  g53 = pow(alpha, NP1*g6);
29391  g54 = pow(alpha, NP1*g7);
29392  g55 = pow(alpha, NP1*g8);
29393  g56 = pow(alpha, NP1*g9);
29394  g57 = pow(alpha, NP1*g10);
29395  g58 = pow(alpha, NP1*g11);
29396  g59 = pow(alpha, NP1*g12);
29397  g60 = pow(alpha, NP1*g13);
29398  g61 = pow(alpha, NP1*g14);
29399  g62 = pow(alpha, NP1*g15);
29400  g63 = pow(alpha, NP1*g16);
29401  g64 = pow(alpha, NP1*g17);
29402  g65 = pow(alpha, NP1*g18);
29403  g66 = pow(alpha, NP1*g19);
29404  g67 = pow(alpha, NP1*g20);
29405  g68 = pow(alpha, NP1*g21);
29406  g69 = -g46;
29407  g70 = g22/g3;
29408  g71 = g3/g22;
29409  g72 = -g48 + 1;
29410  g73 = -g48 + 1;
29411  g74 = -g49 + 1;
29412  g75 = -g61 + 1;
29413  g76 = -g62 + 1;
29414  g77 = -g63 + 1;
29415  g78 = -g64 + 1;
29416  g79 = -g65 + 1;
29417  g80 = -g66 + 1;
29418  g81 = -g67 + 1;
29419  g82 = -g68 + 1;
29420  g83 = -g50 + 1;
29421  g84 = -g52 + 1;
29422  g85 = -g53 + 1;
29423  g86 = -g54 + 1;
29424  g87 = -g55 + 1;
29425  g88 = -g56 + 1;
29426  g89 = -g57 + 1;
29427  g90 = -g58 + 1;
29428  g91 = -g59 + 1;
29429  g92 = -g60 + 1;
29430  g93 = -g49;
29431  g94 = -g50;
29432  g95 = -g52;
29433  g96 = -g53;
29434  g97 = -g54;
29435  g98 = -g55;
29436  g99 = -g56;
29437  g100 = -g57;
29438  g101 = -g58;
29439  g102 = -g59;
29440  g103 = -g60;
29441  g104 = -g61;
29442  g105 = -g62;
29443  g106 = -g63;
29444  g107 = -g64;
29445  g108 = -g65;
29446  g109 = -g66;
29447  g110 = -g67;
29448  g111 = -g68;
29449  g112 = -1.0*g46;
29450  g113 = -g3/g23;
29451  g114 = g23/(g3*xF[1]);
29452  g115 = pow(alpha, g0*g47) - 1;
29453  g116 = pow(alpha, g0*g47) - 1;
29454  g117 = pow(alpha, g1*g47) - 1;
29455  g118 = pow(alpha, g14*g47) - 1;
29456  g119 = pow(alpha, g15*g47) - 1;
29457  g120 = pow(alpha, g16*g47) - 1;
29458  g121 = pow(alpha, g17*g47) - 1;
29459  g122 = pow(alpha, g18*g47) - 1;
29460  g123 = pow(alpha, g19*g47) - 1;
29461  g124 = pow(alpha, g20*g47) - 1;
29462  g125 = pow(alpha, g21*g47) - 1;
29463  g126 = pow(alpha, g4*g47) - 1;
29464  g127 = pow(alpha, g47*g5) - 1;
29465  g128 = pow(alpha, g47*g6) - 1;
29466  g129 = pow(alpha, g47*g7) - 1;
29467  g130 = pow(alpha, g47*g8) - 1;
29468  g131 = pow(alpha, g47*g9) - 1;
29469  g132 = pow(alpha, g10*g47) - 1;
29470  g133 = pow(alpha, g11*g47) - 1;
29471  g134 = pow(alpha, g12*g47) - 1;
29472  g135 = pow(alpha, g13*g47) - 1;
29473  g136 = -pow(alpha, g1*g47);
29474  g137 = -pow(alpha, g4*g47);
29475  g138 = -pow(alpha, g47*g5);
29476  g139 = -pow(alpha, g47*g6);
29477  g140 = -pow(alpha, g47*g7);
29478  g141 = -pow(alpha, g47*g8);
29479  g142 = -pow(alpha, g47*g9);
29480  g143 = -pow(alpha, g10*g47);
29481  g144 = -pow(alpha, g11*g47);
29482  g145 = -pow(alpha, g12*g47);
29483  g146 = -pow(alpha, g13*g47);
29484  g147 = -pow(alpha, g14*g47);
29485  g148 = -pow(alpha, g15*g47);
29486  g149 = -pow(alpha, g16*g47);
29487  g150 = -pow(alpha, g17*g47);
29488  g151 = -pow(alpha, g18*g47);
29489  g152 = -pow(alpha, g19*g47);
29490  g153 = -pow(alpha, g20*g47);
29491  g154 = -pow(alpha, g21*g47);
29492  g155 = g116 + g73;
29493  g156 = -g136 - g49;
29494  g157 = -g137 - g50;
29495  g158 = -g138 - g52;
29496  g159 = -g139 - g53;
29497  g160 = -g140 - g54;
29498  g161 = -g141 - g55;
29499  g162 = -g142 - g56;
29500  g163 = -g143 - g57;
29501  g164 = -g144 - g58;
29502  g165 = -g145 - g59;
29503  g166 = -g146 - g60;
29504  g167 = -g147 - g61;
29505  g168 = -g148 - g62;
29506  g169 = -g149 - g63;
29507  g170 = -g150 - g64;
29508  g171 = -g151 - g65;
29509  g172 = -g152 - g66;
29510  g173 = -g153 - g67;
29511  g174 = -g154 - g68;
29512  g175 = pow(alpha, g1*g47) + g93;
29513  g176 = g116 + g73;
29514  g177 = pow(alpha, g4*g47) + g94;
29515  g178 = pow(alpha, g47*g5) + g95;
29516  g179 = pow(alpha, g47*g6) + g96;
29517  g180 = pow(alpha, g47*g7) + g97;
29518  g181 = pow(alpha, g47*g8) + g98;
29519  g182 = pow(alpha, g47*g9) + g99;
29520  g183 = pow(alpha, g10*g47) + g100;
29521  g184 = pow(alpha, g11*g47) + g101;
29522  g185 = pow(alpha, g12*g47) + g102;
29523  g186 = pow(alpha, g13*g47) + g103;
29524  g187 = pow(alpha, g14*g47) + g104;
29525  g188 = pow(alpha, g15*g47) + g105;
29526  g189 = pow(alpha, g16*g47) + g106;
29527  g190 = pow(alpha, g17*g47) + g107;
29528  g191 = pow(alpha, g18*g47) + g108;
29529  g192 = pow(alpha, g19*g47) + g109;
29530  g193 = pow(alpha, g20*g47) + g110;
29531  g194 = pow(alpha, g21*g47) + g111;
29532  g195 = xF[9]/g194;
29533  g196 = xF[8]/g193;
29534  g197 = xF[11]/g178;
29535  g198 = xF[1]/g176;
29536  g199 = xF[3]/g188;
29537  g200 = xF[10]/g177;
29538  g201 = xF[19]/g186;
29539  g202 = xF[17]/g184;
29540  g203 = xF[15]/g182;
29541  g204 = xF[16]/g183;
29542  g205 = xF[7]/g192;
29543  g206 = xF[4]/g189;
29544  g207 = xF[12]/g179;
29545  g208 = xF[13]/g180;
29546  g209 = xF[6]/g191;
29547  g210 = xF[14]/g181;
29548  g211 = xF[2]/g187;
29549  g212 = xF[5]/g190;
29550  g213 = xF[18]/g185;
29551  g214 = xF[0]/g175;
29552  g215 = xF[17]/g164;
29553  g216 = xF[0]/g156;
29554  g217 = xF[9]/g174;
29555  g218 = xF[4]/g169;
29556  g219 = xF[15]/g162;
29557  g220 = xF[2]/g167;
29558  g221 = xF[11]/g158;
29559  g222 = xF[18]/g165;
29560  g223 = xF[1]/g155;
29561  g224 = xF[13]/g160;
29562  g225 = xF[16]/g163;
29563  g226 = xF[3]/g168;
29564  g227 = xF[6]/g171;
29565  g228 = xF[14]/g161;
29566  g229 = xF[8]/g173;
29567  g230 = xF[12]/g159;
29568  g231 = xF[19]/g166;
29569  g232 = xF[10]/g157;
29570  g233 = xF[7]/g172;
29571  g234 = xF[5]/g170;
29572  g235 = g85/g159;
29573  g236 = g82/g174;
29574  g237 = g90/g164;
29575  g238 = g77/g169;
29576  g239 = g80/g172;
29577  g240 = g75/g167;
29578  g241 = g78/g170;
29579  g242 = g91/g165;
29580  g243 = g79/g171;
29581  g244 = g86/g160;
29582  g245 = g76/g168;
29583  g246 = g88/g162;
29584  g247 = g89/g163;
29585  g248 = g84/g158;
29586  g249 = g92/g166;
29587  g250 = g87/g161;
29588  g251 = g83/g157;
29589  g252 = g74/g156;
29590  g253 = g81/g173;
29591  g254 = g72/g155;
29592  g255 = g117/g156;
29593  g256 = g131/g162;
29594  g257 = g127/g158;
29595  g258 = g118/g167;
29596  g259 = g119/g168;
29597  g260 = g120/g169;
29598  g261 = g133/g164;
29599  g262 = g115/g155;
29600  g263 = g124/g173;
29601  g264 = g125/g174;
29602  g265 = g132/g163;
29603  g266 = g122/g171;
29604  g267 = g130/g161;
29605  g268 = g128/g159;
29606  g269 = g129/g160;
29607  g270 = g134/g165;
29608  g271 = g123/g172;
29609  g272 = g126/g157;
29610  g273 = g121/g170;
29611  g274 = g135/g166;
29612  g275 = log(g114*g176*g24/g73);
29613  g276 = log(g114*g155*g24/g72);
29614  g277 = log(g176*g25*g70/g116);
29615  g278 = 1.0*g275;
29616  g279 = log(g155*g25*g70/g115);
29617  g280 = 1.0*g277;
29618  g281 = -g112*xF[0] - g112*xF[10] - g112*xF[11] - g112*xF[12] - g112*xF[13] - g112*xF[14] - g112*xF[15] - g112*xF[16] - g112*xF[17] - g112*xF[18] - g112*xF[19] - g112*xF[1] - g112*xF[2] - g112*xF[3] - g112*xF[4] - g112*xF[5] - g112*xF[6] - g112*xF[7] - g112*xF[8] - g112*xF[9] - g116*g198*g280 - g195*g278*(g111 + 1) - g195*g280*(pow(alpha, g21*g47) - 1) - g196*g278*(g110 + 1) - g196*g280*(pow(alpha, g20*g47) - 1) - g197*g278*(g95 + 1) - g197*g280*(pow(alpha, g47*g5) - 1) - g198*g278*g73 - g199*g278*(g105 + 1) - g199*g280*(pow(alpha, g15*g47) - 1) - g200*g278*(g94 + 1) - g200*g280*(pow(alpha, g4*g47) - 1) - g201*g278*(g103 + 1) - g201*g280*(pow(alpha, g13*g47) - 1) - g202*g278*(g101 + 1) - g202*g280*(pow(alpha, g11*g47) - 1) - g203*g278*(g99 + 1) - g203*g280*(pow(alpha, g47*g9) - 1) - g204*g278*(g100 + 1) - g204*g280*(pow(alpha, g10*g47) - 1) - g205*g278*(g109 + 1) - g205*g280*(pow(alpha, g19*g47) - 1) - g206*g278*(g106 + 1) - g206*g280*(pow(alpha, g16*g47) - 1) - g207*g278*(g96 + 1) - g207*g280*(pow(alpha, g47*g6) - 1) - g208*g278*(g97 + 1) - g208*g280*(pow(alpha, g47*g7) - 1) - g209*g278*(g108 + 1) - g209*g280*(pow(alpha, g18*g47) - 1) - g210*g278*(g98 + 1) - g210*g280*(pow(alpha, g47*g8) - 1) - g211*g278*(g104 + 1) - g211*g280*(pow(alpha, g14*g47) - 1) - g212*g278*(g107 + 1) - g212*g280*(pow(alpha, g17*g47) - 1) - g213*g278*(g102 + 1) - g213*g280*(pow(alpha, g12*g47) - 1) - g214*g278*(g93 + 1) - g214*g280*(pow(alpha, g1*g47) - 1);
29619  LpF = xF[0]*(g26 + 1.0)*(g252*g276 + g255*g279 + g69)/(g51*(g26 - 1.0)) + xF[10]*(g27 + 1.0)*(g251*g276 + g272*g279 + g69)/(g51*(g27 - 1.0)) + xF[11]*(g28 + 1.0)*(g248*g276 + g257*g279 + g69)/(g51*(g28 - 1.0)) + xF[12]*(g29 + 1.0)*(g235*g276 + g268*g279 + g69)/(g51*(g29 - 1.0)) + xF[13]*(g30 + 1.0)*(g244*g276 + g269*g279 + g69)/(g51*(g30 - 1.0)) + xF[14]*(g31 + 1.0)*(g250*g276 + g267*g279 + g69)/(g51*(g31 - 1.0)) + xF[15]*(g32 + 1.0)*(g246*g276 + g256*g279 + g69)/(g51*(g32 - 1.0)) + xF[16]*(g33 + 1.0)*(g247*g276 + g265*g279 + g69)/(g51*(g33 - 1.0)) + xF[17]*(g34 + 1.0)*(g237*g276 + g261*g279 + g69)/(g51*(g34 - 1.0)) + xF[18]*(g35 + 1.0)*(g242*g276 + g270*g279 + g69)/(g51*(g35 - 1.0)) + xF[19]*(g36 + 1.0)*(g249*g276 + g274*g279 + g69)/(g51*(g36 - 1.0)) + xF[1]*(g37 + 1.0)*(g254*g276 + g262*g279 + g69)/(g51*(g37 - 1.0)) + xF[2]*(g38 + 1.0)*(g240*g276 + g258*g279 + g69)/(g51*(g38 - 1.0)) + xF[3]*(g39 + 1.0)*(g245*g276 + g259*g279 + g69)/(g51*(g39 - 1.0)) + xF[4]*(g40 + 1.0)*(g238*g276 + g260*g279 + g69)/(g51*(g40 - 1.0)) + xF[5]*(g41 + 1.0)*(g241*g276 + g273*g279 + g69)/(g51*(g41 - 1.0)) + xF[6]*(g42 + 1.0)*(g243*g276 + g266*g279 + g69)/(g51*(g42 - 1.0)) + xF[7]*(g43 + 1.0)*(g239*g276 + g271*g279 + g69)/(g51*(g43 - 1.0)) + xF[8]*(g44 + 1.0)*(g253*g276 + g263*g279 + g69)/(g51*(g44 - 1.0)) + xF[9]*(g45 + 1.0)*(g236*g276 + g264*g279 + g69)/(g51*(g45 - 1.0));
29620  PpF = g70;
29621  TpF = -g23/g3;
29622  SWUpF = g281;
29623  SWUpP = g281*g71;
29624  xP[0] = g117*g216*g71;
29625  xP[1] = g115*g223*g71;
29626  xP[2] = g118*g220*g71;
29627  xP[3] = g119*g226*g71;
29628  xP[4] = g120*g218*g71;
29629  xP[5] = g121*g234*g71;
29630  xP[6] = g122*g227*g71;
29631  xP[7] = g123*g233*g71;
29632  xP[8] = g124*g229*g71;
29633  xP[9] = g125*g217*g71;
29634  xP[10] = g126*g232*g71;
29635  xP[11] = g127*g221*g71;
29636  xP[12] = g128*g230*g71;
29637  xP[13] = g129*g224*g71;
29638  xP[14] = g130*g228*g71;
29639  xP[15] = g131*g219*g71;
29640  xP[16] = g132*g225*g71;
29641  xP[17] = g133*g215*g71;
29642  xP[18] = g134*g222*g71;
29643  xP[19] = g135*g231*g71;
29644  xT[0] = g113*g216*g74;
29645  xT[1] = g113*g223*g72;
29646  xT[2] = g113*g220*g75;
29647  xT[3] = g113*g226*g76;
29648  xT[4] = g113*g218*g77;
29649  xT[5] = g113*g234*g78;
29650  xT[6] = g113*g227*g79;
29651  xT[7] = g113*g233*g80;
29652  xT[8] = g113*g229*g81;
29653  xT[9] = g113*g217*g82;
29654  xT[10] = g113*g232*g83;
29655  xT[11] = g113*g221*g84;
29656  xT[12] = g113*g230*g85;
29657  xT[13] = g113*g224*g86;
29658  xT[14] = g113*g228*g87;
29659  xT[15] = g113*g219*g88;
29660  xT[16] = g113*g225*g89;
29661  xT[17] = g113*g215*g90;
29662  xT[18] = g113*g222*g91;
29663  xT[19] = g113*g231*g92;
29664  break;
29665 
29666  };
29667 
29668  i = 2;
29669  casc.mat_prod.comp[j] = xP[0];
29670  casc.mat_prod.comp[k] = xP[1];
29671  casc.mat_tail.comp[j] = xT[0];
29672  casc.mat_tail.comp[k] = xT[1];
29673  for(pyne::comp_iter ci = casc.mat_feed.comp.begin(); ci != casc.mat_feed.comp.end(); ci++)
29674  {
29675  nuc = (*ci).first;
29676  if (nuc == j || nuc == k)
29677  continue;
29678  casc.mat_prod.comp[nuc] = xP[i];
29679  casc.mat_tail.comp[nuc] = xT[i];
29680  i++;
29681  };
29682  // must renormalize to eliminate numerical error
29683  casc.mat_prod.norm_comp();
29684  casc.mat_tail.norm_comp();
29685  casc.mat_prod.mass = PpF;
29686  casc.mat_tail.mass = TpF;
29687 
29688  casc.N = NP1;
29689  casc.M = NT1;
29690  casc.l_t_per_feed = LpF;
29691  casc.swu_per_feed = SWUpF;
29692  casc.swu_per_prod = SWUpP;
29693 
29694  delete [] MW;
29695  delete [] xP;
29696  delete [] xF;
29697  delete [] xT;
29698 
29699  return casc;
29700 };
29701 //
29702 // end of src/enrichment_symbolic20.cpp
29703 //
29704 
29705 
29706 //
29707 // start of src/_decay.cpp
29708 //
29709 #ifdef PYNE_DECAY_IS_DUMMY
29710 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29711 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29712 // WARNING
29713 // This file has been auto generated
29714 // Do not modify directly. You have
29715 // been warned. This is that warning
29716 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29717 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29718 
29719 #ifndef PYNE_IS_AMALGAMATED
29720 #include "decay.h"
29721 #endif
29722 
29723 namespace pyne {
29724 namespace decayers {
29725 
29726 void decay_h(double t, std::map<int, double>::const_iterator &it, std::map<int, double> &outcomp, double (&out)[4]) {
29727  //using std::exp2;
29728  switch (it->first) {
29729  case 10010000: {
29730  out[0] += it->second;
29731  break;
29732  } case 10020000: {
29733  out[1] += it->second;
29734  break;
29735  } case 10030000: {
29736  double b0 = exp2(-2.572085e-09*t);
29737  out[2] += (it->second) * (b0);
29738  out[3] += (it->second) * (-1.000000e+00*b0 + 1.0);
29739  break;
29740  } default: {
29741  outcomp.insert(*it);
29742  break;
29743  }
29744  }
29745 }
29746 
29747 void decay_he(double t, std::map<int, double>::const_iterator &it, std::map<int, double> &outcomp, double (&out)[4]) {
29748  //using std::exp2;
29749  switch (it->first) {
29750  case 20030000: {
29751  out[3] += it->second;
29752  break;
29753  } default: {
29754  outcomp.insert(*it);
29755  break;
29756  }
29757  }
29758 }
29759 
29760 std::map<int, double> decay(std::map<int, double> comp, double t) {
29761  // setup
29762  using std::map;
29763  int nuc;
29764  int i = 0;
29765  double out [4] = {}; // init to zero
29766  map<int, double> outcomp;
29767 
29768  // body
29769  map<int, double>::const_iterator it = comp.begin();
29770  for (; it != comp.end(); ++it) {
29771  switch (nucname::znum(it->first)) {
29772  case 1:
29773  decay_h(t, it, outcomp, out);
29774  break;
29775  case 2:
29776  decay_he(t, it, outcomp, out);
29777  break;
29778  default:
29779  outcomp.insert(*it);
29780  break;
29781  }
29782  }
29783 
29784  // cleanup
29785  for (i = 0; i < 4; ++i)
29786  if (out[i] > 0.0)
29787  outcomp[all_nucs[i]] = out[i];
29788  return outcomp;
29789 }
29790 
29791 const int all_nucs [4] = {
29792  10010000, 10020000, 10030000, 20030000
29793 };
29794 
29795 } // namespace decayers
29796 } // namespace pyne
29797 
29798 #endif // PYNE_DECAY_IS_DUMMY//
29799 // end of src/_decay.cpp
29800 //
29801 
29802 
std::map< std::string, unsigned int > altnames
Mapping between alternative names for reactions and the reaction id.
Definition: pyne.cc:4344
unsigned int hash(std::string s)
Definition: pyne.cc:6323
std::vector< int > beta_parent(double energy, double error)
Definition: pyne.cc:12548
double prod_per_feed(double x_feed, double x_prod, double x_tail)
Computes the product per feed mass ratio for feed, product, and tails enrichments x_feed...
Definition: pyne.cc:18801
struct pyne::alpha alpha
a struct matching the &#39;/decay/alphas&#39; table in nuc_data.h5.
name_zz_t::iterator name_zz_iter
name and Z num iter type
Definition: pyne.h:812
static void _load_simple_xs_map(std::string energy)
Definition: pyne.cc:12865
comp_map::iterator comp_iter
Nuclide-mass composition iter type.
Definition: pyne.h:4777
std::map< std::pair< int, int >, decay > decay_data
Mapping from a pair of nuclides in id form to a struct containing data associated with the decay from...
Definition: pyne.cc:12013
A struct matching the dose factor table in nuc_data.h5.
Definition: pyne.h:1944
std::vector< double > ec_intensity(int parent)
Definition: pyne.cc:12635
Value & operator[](ArrayIndex index)
Access an array element (zero based index ).
Definition: pyne.cc:15391
double to_dbl(std::string s)
Converts a valid string to a float using atof().
Definition: pyne.cc:143
zz_group name_to_zz_group(name_group eg)
Converts a name group to a Z number group.
Definition: pyne.cc:2613
std::map< std::string, std::map< int, std::map< int, double > > > simple_xs_map
map<energy, map<nuclide, map<rx, xs> > >
Definition: pyne.cc:12861
Material()
empty constructor
Definition: pyne.cc:18016
int ensdf_to_id(const char *nuc)
Definition: pyne.cc:3734
std::map< unsigned int, std::string > id_name
Mapping from reaction ids to reaction names.
Definition: pyne.cc:4345
unsigned int UInt
Definition: pyne.h:2690
unsigned integer value
Definition: pyne.h:3140
void norm_comp()
Normalizes the mass values in the composition.
Definition: pyne.cc:17071
double x_prod_j
enrichment of the j-th isotope in the product stream
Definition: pyne.h:5172
struct pyne::material_data material_data
A stuct for reprensenting fundemental data in a material.
double yield_fast_err
fast yield error [fraction]
Definition: pyne.h:2071
bool operator>(const Value &other) const
Definition: pyne.cc:14946
std::string fluka_material_component(int fid, int nucid, std::string fluka_name)
Intermediate level call to prepare final info and call material_line(..)
Definition: pyne.cc:17681
std::string fluka_format_field(float field)
Convenience function to format a single fluka field.
Definition: pyne.cc:17734
std::vector< std::string > Members
Definition: pyne.h:3232
struct pyne::atomic atomic
Structure for atomic data.
std::map< int, atomic > atomic_data_map
Definition: pyne.cc:11571
comp_map mult_by_mass()
Returns a composition map that has been unnormalized by multiplying each mass weight by the actual ma...
Definition: pyne.cc:18111
double yield_thermal
thermal yield [fraction]
Definition: pyne.h:2068
Material set_range(int lower=0, int upper=10000000, double value=0.0)
Creates a new Material with the mass weights for all nuclides in the id range set to value...
Definition: pyne.cc:18440
std::map< int, double > q_val_map
Mapping from nuclides in id form to their q_values and the fraction of Q that comes from gammas...
Definition: pyne.cc:10600
name_group LAN
lanthanide name group
zz_group lan
lanthanide Z number group
Definition: pyne.cc:2626
double value
Definition: pyne.h:3141
Value get(ArrayIndex index, const Value &defaultValue) const
If the array contains at least index+1 elements, returns the element value, otherwise returns default...
Definition: pyne.cc:15472
Value(ValueType type=nullValue)
Create a default Value of the given type.
Definition: pyne.cc:14604
Cascade solve_symbolic(Cascade &orig_casc)
A multicomponent enrichment cascade solver using a symbolic solution to the mass flow rate equations...
Definition: pyne.cc:19268
Material decay(double t)
Decays this material for a given amount of time in seconds.
Definition: pyne.cc:18642
double ext_soil_dose(int nuc, int source)
Function for External Soil Dose Factors.
Definition: pyne.cc:10852
std::vector< std::pair< double, double > > gamma_energy(int parent)
Definition: pyne.cc:12232
double b(int nuc)
Computes the scattering length [cm] from the coherent and incoherent components.
Definition: pyne.cc:11180
void clear()
Remove all object members and array elements.
Definition: pyne.cc:15343
ValueIterator iterator
Definition: pyne.h:3233
std::ostream & operator<<(std::ostream &sout, const Value &root)
Output using the StyledStreamWriter.
Definition: pyne.cc:16810
bool allowComments_
true if comments are allowed. Default: true.
Definition: pyne.h:3084
name_t MA_array[10]
array of minor actinide names
Definition: pyne.cc:2645
double branch_ratio(std::pair< int, int > from_to)
Returns the branch ratio for a parent/child nuclide pair.
Definition: pyne.cc:11964
bool isConvertibleTo(ValueType other) const
Definition: pyne.cc:15245
std::string get_flag(char line[], int max_l)
Finds and returns the first white-space delimited token of a line.
Definition: pyne.cc:244
const_iterator end() const
Definition: pyne.cc:15792
std::vector< int > ecbp_parent(double energy, double error)
Definition: pyne.cc:12645
Custom exception for when an enrichment solver iteration has produced a NaN.
Definition: pyne.h:5347
Material expand_elements()
Returns a copy of the current material where all natural elements in the composition are expanded to ...
Definition: pyne.cc:18205
std::vector< std::pair< int, int > > gamma_from_to(int parent)
Definition: pyne.cc:12309
Writes a Value in JSON format in a human friendly way, to a stream rather than to a string...
Definition: pyne.h:4580
bool isnuclide(std::string nuc)
Definition: pyne.cc:2671
std::string source_string(int source)
Functions for Source Location in nuc_data.h5 and related Map Pointers.
Definition: pyne.cc:10765
std::string natural_naming(std::string name)
Calculates a version of the string name that is also a valid variable name.
Definition: pyne.cc:318
double sigma_f
Definition: pyne.cc:12851
Features()
Initialize the configuration like JsonConfig::allFeatures;.
Definition: pyne.cc:13191
std::map< int, double > decay(std::map< int, double > comp, double t)
Definition: decay.cpp:154417
std::string fluka_material_str(int id)
High level call to get details and call material_component(..)
Definition: pyne.cc:17648
bool isEqual(const SelfType &other) const
Definition: pyne.cc:14221
Json::LargestInt LargestInt
Definition: pyne.h:3241
bool operator<(const CapacityConstraint< T > &lhs, const CapacityConstraint< T > &rhs)
CapacityConstraint-CapacityConstraint comparison operator, allows usage in ordered containers...
Value removeMember(const char *key)
Remove and return the named member.
Definition: pyne.cc:15556
signed integer value
Definition: pyne.h:3139
double dose_ratio(int nuc, int source)
Dose Ratio.
Definition: pyne.cc:10826
double swu_per_feed(double x_feed, double x_prod, double x_tail)
Computes the swu per feed ratio for feed, product, and tails enrichments x_feed, x_prod, and x_tails.
Definition: pyne.cc:18817
static const LargestUInt maxLargestUInt
Maximum unsigned integer value that can be stored in a Json::Value.
Definition: pyne.h:3251
const char * c_str() const
Definition: pyne.h:3188
char Char
Definition: pyne.h:4249
int nist_to_id(const char *nuc)
Definition: pyne.cc:3455
std::string getComment(CommentPlacement placement) const
Include delimiters and embedded newlines.
Definition: pyne.cc:15746
void _insert_atomic_mass_map()
function to create mapping from nuclides in id form to their atomic masses
Definition: pyne.cc:6693
std::string last_char(std::string s)
Returns the last character in a string.
Definition: pyne.cc:293
Custom exception to be thrown in the event that a required file is not able to be found...
Definition: pyne.h:218
const double Bq_per_Ci
Becquerel per Curie.
Definition: pyne.cc:10363
Custom expection for declaring that a value represents one or more nuclides in one or more namig conv...
Definition: pyne.h:937
std::string dose_lung_model(int nuc, int source)
Lung Model.
Definition: pyne.cc:10951
bool operator!=(const Value &other) const
Definition: pyne.cc:14993
int alara_to_id(const char *nuc)
Definition: pyne.cc:3596
std::vector< double > beta_endpoint_energy(int parent)
Definition: pyne.cc:12533
complex type struct, matching PyTables definition
Definition: pyne.h:316
void _load_dose_map(std::map< int, dose > &dm, std::string source_path)
Loads the dose factor data from the nuc_data.h5 file into memory according to the user-input source...
Definition: pyne.cc:10704
std::map< std::string, std::string > get_data_checksums()
Definition: pyne.cc:10371
int metastable_id(int nuc, int m)
Returns the nuc_id of a metastable state.
Definition: pyne.cc:11813
int mcnp(int nuc)
Definition: pyne.cc:3197
UInt64 LargestUInt
Definition: pyne.h:2705
name_group MA
minor actinide name group
Cascade()
default constructors
Definition: pyne.cc:18710
static const LargestInt minLargestInt
Minimum signed integer value that can be stored in a Json::Value.
Definition: pyne.h:3247
double ingest_dose(int nuc, int source)
Functions for Ingestion Dose Factors and Fraction of activity that is absorbed by body fluids...
Definition: pyne.cc:10880
double asDouble() const
Definition: pyne.cc:15167
int nuc
nuclide in id form
Definition: pyne.h:2006
double sigma_s
Definition: pyne.cc:12846
Material del_range(int lower=0, int upper=10000000)
Creates a new Material with the all nuclides in the id range removed.
Definition: pyne.cc:18461
std::vector< double > beta_average_energy(int parent)
Definition: pyne.cc:12538
std::vector< std::pair< double, double > > gamma_total_intensity(int parent)
Definition: pyne.cc:12296
void decay_c(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition: decay.cpp:344
Json::Int Int
Definition: pyne.h:3236
std::string getFormatedErrorMessages() const
Returns a user friendly string that list errors in the parsed document.
Definition: pyne.cc:13924
double sigma_4n
Definition: pyne.cc:12858
Value key() const
Return either the index or the member name of the referenced value as a Value.
Definition: pyne.cc:14248
Experimental and untested: represents an element of the "path" to access a node.
Definition: pyne.h:3610
double coth(double x)
The hyperbolic cotangent function.
Definition: pyne.cc:368
std::vector< std::pair< double, double > > betas(int parent_state_id)
Definition: pyne.cc:12743
std::map< int, double > atomic_mass_map
Mapping from nuclides in id form to their atomic masses.
Definition: pyne.h:1857
Json::ArrayIndex ArrayIndex
Definition: pyne.h:3243
std::map< int, double > natural_abund_map
Mapping from nuclides in id form to their natural abundances.
Definition: pyne.h:1892
double yield_14MeV
14 MeV yield [fraction]
Definition: pyne.h:2072
double l_t_per_feed
Total flow rate per feed rate.
Definition: pyne.h:5179
const double barns_per_cm2
barns per cm^2
Definition: pyne.cc:10358
Material collapse_elements(std::set< int > exception_znum)
Definition: pyne.cc:18247
virtual std::string write(const Value &root)
Serialize a Value in JSON format.
Definition: pyne.cc:16331
Cascade default_uranium_cascade
a cascade instance with default values for a uranium enrichment.
int map_metastable[TOTAL_STATE_MAPS]
Definition: pyne.cc:1361
virtual std::string write(const Value &root)
Definition: pyne.cc:16260
Lightweight wrapper to tag static string.
Definition: pyne.h:3175
static const unsigned int unknown
Unknown size marker.
Definition: pyne.cc:14427
std::map< std::pair< int, unsigned int >, level_data > level_data_rx_map
Definition: pyne.cc:11711
ValueConstIterator const_iterator
Definition: pyne.h:3234
friend class Value
Definition: pyne.h:4149
double yield_fast
fast yield [fraction]
Definition: pyne.h:2080
double yield_thermal_err
thermal yield error [fraction]
Definition: pyne.h:2069
void * _fill_maps()
A helper function to set the contents of the variables in this library.
Definition: pyne.cc:4354
std::string fluka(int nuc)
Definition: pyne.cc:3269
double swu_per_prod
This is the SWU for 1 kg of Product material.
Definition: pyne.h:5181
std::string PYNE_DATA
Path to the directory containing the PyNE data.
Definition: pyne.cc:78
std::map< int, double > to_atom_dens()
Returns a mapping of the nuclides in this material to their atom densities.
Definition: pyne.cc:18563
int groundstate(int nuc)
Definition: pyne.h:1364
std::vector< std::pair< double, double > > decay_photon_branch_ratios(int parent)
Definition: pyne.cc:12123
bool isNull() const
Definition: pyne.cc:15663
Structure for atomic data.
Definition: pyne.h:2154
bool ternary_ge(int a, int b, int c)
Returns true if a <= b <= c and flase otherwise.
Definition: pyne.cc:305
int sza(int nuc)
Definition: pyne.cc:3636
struct pyne::ecbp ecbp
A struct matching the &#39;/decay/ecbp&#39; table in nuc_data.h5.
bool operator!() const
Return isNull()
Definition: pyne.cc:15337
double mass
mass (in arbitrary units) of the Material.
Definition: pyne.h:4954
bool USE_WARNINGS
Definition: pyne.cc:406
std::vector< std::pair< double, double > > xrays(int parent)
Definition: pyne.cc:12764
bool operator()(const std::pair< int, double > &lhs, const std::pair< int, double > &rhs) const
This operator compares the second item in a pair first.
Definition: pyne.cc:11418
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4, Reader::Char c5)
Definition: pyne.cc:13221
unsigned int ArrayIndex
Definition: pyne.h:2748
Cascade solve_numeric(Cascade &orig_casc, double tolerance=1.0E-7, int max_iter=100)
Finds the total flow rate (L) over the feed flow rate (F), the number of enriching stages (N)...
Definition: pyne.cc:19066
bool isValidIndex(ArrayIndex index) const
Return true if index < size().
Definition: pyne.cc:15480
std::string name(int nuc)
Definition: pyne.cc:2940
std::string to_lower(std::string s)
Returns an all lower case copy of the string.
Definition: pyne.cc:223
std::map< int, double > b_map
Mapping from nuclides in id form to their scattering length.
Definition: pyne.cc:10979
bool parse(const std::string &document, Value &root, bool collectComments=true)
Read a Value from a JSON document.
Definition: pyne.cc:13250
void _load_q_val_map()
Loads the q_value data from the nuc_data.h5 file into memory.
Definition: pyne.cc:10558
double gamma_frac(int nuc)
Definition: pyne.cc:10649
A stuct for reprensenting fundemental data in a material.
Definition: pyne.h:5101
double prod_per_tail(double x_feed, double x_prod, double x_tail)
Computes the product per tails mass ratio for feed, product, and tails enrichments x_feed...
Definition: pyne.cc:18797
std::string asString() const
Definition: pyne.cc:15006
const double N_A
Avogadro&#39;s Number.
Definition: pyne.cc:10357
static const UInt maxUInt
Maximum unsigned int value that can be stored in a Json::Value.
Definition: pyne.h:3258
#define JSON_ASSERT_MESSAGE(condition, message)
Definition: pyne.cc:14410
std::vector< std::pair< double, double > > decay_beta_branch_ratios(int parent)
Definition: pyne.cc:12144
std::vector< double > ecbp_endpoint_energy(int parent)
returns a list of electron capture/ beta plus decay endpoint energies from input parent nuclide ...
Definition: pyne.cc:12625
AllocatedType * allocate()
allocate space for an array of objectPerAllocation object.
Definition: pyne.cc:14022
std::map< std::string, unsigned int > name_id
Mapping from reaction names to reaction ids.
Definition: pyne.cc:4346
double Mstar
mass separation factor
Definition: pyne.h:5163
Represents a JSON value.
Definition: pyne.h:3224
void load_json(Json::Value)
Loads a JSON instance tree into this Material.
Definition: pyne.cc:17943
Json::Int64 Int64
Definition: pyne.h:3239
name_t FP_array[88]
array of fission product names
Definition: pyne.cc:2653
int sza_to_id(int nuc)
Definition: pyne.cc:3655
Material operator/(double)
Divides a material&#39;s mass.
Definition: pyne.cc:18688
xd_complex_t b_coherent(int nuc)
Finds the coherent scattering length [cm] for a nuclide nuc.
Definition: pyne.cc:11039
int id_to_state_id(int nuc_id)
Definition: pyne.cc:3704
void setComment(const char *comment, CommentPlacement placement)
Comments must be //... or /* ... */.
Definition: pyne.cc:15725
int id_from_level(int nuc, double level)
Returns the nuc_id of an energy level.
Definition: pyne.cc:11806
std::map< std::pair< int, double >, alpha > alpha_data
A vector of structs containing alpha data for access in memory.
Definition: pyne.cc:12402
double dose_fluid_frac(int nuc, int source)
Fluid Fraction.
Definition: pyne.cc:10902
Material operator+(double)
Adds mass to a material instance.
Definition: pyne.cc:18651
a struct matching the &#39;/neutron/wimsd_fission_product&#39; table in nuc_data.h5.
Definition: pyne.h:2055
name_t LAN_array[15]
array of lanthanide names
Definition: pyne.cc:2622
Configuration passed to reader and writer.
Definition: pyne.h:3062
std::map< unsigned int, unsigned int > mt_id
Mapping from MT numbers to reaction names.
Definition: pyne.cc:4348
const Value & resolve(const Value &root) const
Definition: pyne.cc:15989
void _load_atomic_mass_map_memory()
main function to be called when you whish to load the nuclide data into memory
Definition: pyne.cc:6658
static std::string alphabet
uppercase alphabetical characters
Definition: pyne.h:126
Material sub_elem(int element)
Creates a sub-Material of only the given element.
Definition: pyne.cc:18487
a comment placed on the line before a value
Definition: pyne.h:3150
void write_json(char *filename)
Writes the Material out to a JSON file.
Definition: pyne.cc:17994
zzname_t zz_fluka
nucid to fluka-name map
Definition: pyne.cc:2605
static std::string fluka_mat_strings[]
Definition: pyne.h:4788
int fluka_to_id(std::string name)
Definition: pyne.cc:3281
Custom exception for when a path is not found in an HDF5 file.
Definition: pyne.h:434
Data access functions.
Definition: pyne.h:2117
a struct matching the &#39;/decay/betas&#39; table in nuc_data.h5.
Definition: pyne.h:2405
double sigma_trit
Definition: pyne.cc:12855
static const UInt64 maxUInt64
Maximum unsigned 64 bits int value that can be stored in a Json::Value.
Definition: pyne.h:3265
bool contains_substring(std::string s, std::string substr)
Returns true if substr is in s.
Definition: pyne.cc:311
std::string doc(int x)
Definition: pyne.cc:6557
def memcpy(dest, src, size)
pyne::Material mat_prod
product material
Definition: pyne.h:5176
std::vector< int > gamma_parent(double energy, double error)
Definition: pyne.cc:12348
bool asBool() const
Definition: pyne.cc:15221
zzname_t get_zz_fluka()
Creates standard nucid to fluka-name mapping.
Definition: pyne.cc:2596
std::vector< int > beta_child(double energy, double error)
Definition: pyne.cc:12553
std::vector< std::pair< int, int > > gamma_parent_child(double energy, double error)
Definition: pyne.cc:12335
static const Int64 maxInt64
Maximum signed 64 bits int value that can be stored in a Json::Value.
Definition: pyne.h:3263
bool toggle_warnings()
Toggles warnings on and off.
Definition: pyne.cc:408
std::vector< int > ecbp_child(double energy, double error)
Definition: pyne.cc:12650
Material sub_fp()
Creates a sub-Material of only fission products.
Definition: pyne.cc:18521
double endftod_f(char *s)
Converts a string from ENDF format to a float.
Definition: pyne.cc:202
void _recompute_nm(Cascade &casc, double tolerance=1.0E-7)
So,ves for valid stage numbers N &nd M of a casc.
Definition: pyne.cc:18845
std::map< name_t, zz_t > name_zz_t
name and Z num map type
Definition: pyne.h:811
SelfType & operator=(const ValueIteratorBase &other)
Definition: pyne.cc:14324
long long int Int64
Definition: pyne.h:2701
std::string NUC_DATA_PATH
Path to the nuc_data.h5 file.
Definition: pyne.h:1848
bool isIntegral() const
Definition: pyne.cc:15687
a struct matching the q_value table in nuc_data.h5.
Definition: pyne.h:1917
bool not_fluka_builtin(std::string fluka_name)
Convenience function to tell whether a given name needs a material card.
Definition: pyne.cc:17615
void enableYAMLCompatibility()
Definition: pyne.cc:16254
Value & make(Value &root) const
Creates the "path" to access the specified node and returns a reference on the node.
Definition: pyne.cc:16035
Material sub_ma()
Creates a sub-Material of only minor actinides.
Definition: pyne.cc:18514
double feed_per_prod(double x_feed, double x_prod, double x_tail)
Computes the feed per product mass ratio for feed, product, and tails enrichments x_feed...
Definition: pyne.cc:18789
bool operator>=(const Value &other) const
Definition: pyne.cc:14941
std::map< std::pair< int, double >, beta > beta_data
A vector of structs containing beta data for access in memory.
Definition: pyne.cc:12479
Outputs a Value in JSON format without formatting (not human friendly).
Definition: pyne.h:4487
#define NUM_RX_NAMES
Number of reactions supported by default.
Definition: pyne.h:1419
int child(int nuc, unsigned int rx, std::string z="n")
Definition: pyne.cc:6594
static std::string codePointToUTF8(unsigned int cp)
Converts a unicode code-point to UTF-8.
Definition: pyne.cc:13087
double yield_fast
fast yield [fraction]
Definition: pyne.h:2070
a struct matching the &#39;/decay/alphas&#39; table in nuc_data.h5.
Definition: pyne.h:2380
void _recompute_prod_tail_mats(Cascade &casc)
This function takes a given initial guess number of enriching and stripping stages for a given compos...
Definition: pyne.cc:18899
Enrichment Component Class and Functions.
Definition: pyne.h:5147
void write_hdf5(char *filename, char *datapath, char *nucpath, float row=-0.0, int chunksize=100)
Writes this material out to an HDF5 file.
Definition: pyne.cc:17285
double alphastar_i(double alpha, double Mstar, double M_i)
Computes the nuclide-specific stage separation factor from the overall stage separation factor alpha...
Definition: pyne.cc:18839
std::map< zz_t, name_t > zzname_t
Z num to name map type.
Definition: pyne.h:816
const double Ci_per_Bq
Curies per Becquerel.
Definition: pyne.cc:10364
Cascade _fill_default_uranium_cascade()
Greates a cascade instance with default values for a uranium enrichment.
Definition: pyne.cc:18760
int state_id_to_id(int state)
Definition: pyne.cc:3683
zz_group act
actinide Z number group
Definition: pyne.cc:2633
std::map< std::pair< std::string, int >, unsigned int > offset_id
Mapping from particle type and offset pairs to reaction ids.
Definition: pyne.cc:4351
std::string name(int n)
Definition: pyne.cc:6367
static const Int minInt
Minimum signed int value that can be stored in a Json::Value.
Definition: pyne.h:3254
void normalize()
Normalizes the mass.
Definition: pyne.cc:18105
std::map< int, dose > genii_dose_map
Definition: pyne.cc:10795
void resize(ArrayIndex size)
Resize the array to size elements.
Definition: pyne.cc:15367
Value & operator=(const Value &other)
Definition: pyne.cc:14861
std::map< int, double > comp_map
Nuclide-mass composition map type.
Definition: pyne.h:4776
std::string valueToString(LargestInt value)
Definition: pyne.cc:16102
double yield_fast_err
fast yield error [fraction]
Definition: pyne.h:2081
void _load_comp_protocol1(hid_t db, std::string datapath, int row)
Loads the matrial composition from an HDF5 file according to the layout defined by protocol 1...
Definition: pyne.cc:17125
bool isMember(const char *key) const
Return true if the object has a member named key.
Definition: pyne.cc:15594
void _load_scattering_lengths()
Loads the scattering length data from the nuc_data.h5 file into memory.
Definition: pyne.cc:10982
Int64 LargestInt
Definition: pyne.h:2704
static const Value null
Definition: pyne.h:3245
static bool isControlCharacter(char ch)
Returns true if ch is a control character (in range [0,32[).
Definition: pyne.cc:13118
std::string to_str(int t)
Definition: pyne.cc:114
struct pyne::dose dose
A struct matching the dose factor table in nuc_data.h5.
a struct matching the &#39;/decay/decays&#39; table in nuc_data.h5.
Definition: pyne.h:2284
std::map< CZString, Value > ObjectValues
Definition: pyne.h:3297
std::string nist(int nuc)
Definition: pyne.cc:3402
double state_energy(int nuc)
Returns the excitation energy [MeV] of a nuc in a given state.
Definition: pyne.cc:11889
double yield_14MeV
14 MeV yield [fraction]
Definition: pyne.h:2082
BatchAllocator(unsigned int objectsPerPage=255)
Definition: pyne.cc:14002
std::map< std::pair< std::string, unsigned int >, int > id_offset
Mapping from particle type and reaction ids to offsets.
Definition: pyne.cc:4352
static const Int64 minInt64
Minimum signed 64 bits int value that can be stored in a Json::Value.
Definition: pyne.h:3261
std::string name_t
name type
Definition: pyne.h:808
double mass_density(double num_dens=-1.0, double apm=-1.0)
Computes, sets, and returns the mass density when num_dens is greater than or equal zero...
Definition: pyne.cc:18303
double inhale_dose(int nuc, int source)
Functions for Inhalation Dose Factors and Lung Model used to obtain dose factors. ...
Definition: pyne.cc:10929
double endftod_cpp(char *s)
Converts a string from ENDF format to a float.
Definition: pyne.cc:147
double sigma_alpha
Definition: pyne.cc:12852
int cinder_to_id(int nuc)
Definition: pyne.cc:3520
Reader()
Constructs a Reader allowing all features for parsing.
Definition: pyne.cc:13239
double mass
material mass
Definition: pyne.h:5102
std::vector< std::pair< double, double > > xrays()
Returns a list of x-rays average energies in keV and intensities in decays/s material unnormalized...
Definition: pyne.cc:18595
std::string zzllaaam(int nuc)
Definition: pyne.cc:3102
a struct matching the &#39;/decay/level_list&#39; table in nuc_data.h5.
Definition: pyne.h:2195
void _load_ndsfpy()
Loads the NDS fission product yield data from the nuc_data.h5 file into memory.
Definition: pyne.cc:11271
double sigma_gamma
Definition: pyne.cc:12850
AllocatedType Type
Definition: pyne.cc:14000
bool hasComment(CommentPlacement placement) const
Definition: pyne.cc:15741
#define TOTAL_STATE_MAPS
Definition: pyne.cc:437
void use_fast_endftod()
Definition: pyne.cc:212
bool isDouble() const
Definition: pyne.cc:15695
int cinder(int nuc)
Definition: pyne.cc:3492
A struct matching the &#39;/decay/ecbp&#39; table in nuc_data.h5.
Definition: pyne.h:2432
std::string slice_from_end(std::string s, int n=-1, int l=1)
Returns the slice of a string s using the negative index n and the length of the slice l...
Definition: pyne.cc:299
std::vector< std::pair< double, double > > ecbp_xrays(int parent)
Definition: pyne.cc:12660
std::vector< std::pair< double, double > > gamma_photon_intensity(int parent)
Definition: pyne.cc:12257
Json::UInt UInt
Definition: pyne.h:3235
#define JSON_ASSERT_UNREACHABLE
Definition: pyne.cc:14407
std::vector< std::pair< double, double > > normalize_radioactivity(std::vector< std::pair< double, double > > unnormed)
Takes a list of photon energies and intensities and normalizes them so the sum of the intensities is ...
Definition: pyne.cc:18624
double natural_abund(int nuc)
Returns the natural abundance of a nuclide nuc.
Definition: pyne.cc:10502
void _load_state_map()
Definition: pyne.cc:3677
std::vector< std::pair< double, double > > calculate_xray_data(int z, double k_conv, double l_conv)
Definition: pyne.cc:11666
double ext_air_dose(int nuc, int source)
Returns the dose factors of a nuclide.
Definition: pyne.cc:10803
std::vector< std::pair< double, double > > gamma_conversion_intensity(int parent)
Definition: pyne.cc:12283
bool isInt() const
Definition: pyne.cc:15675
unsigned int id(int x)
Definition: pyne.cc:6409
name_group ACT
actinide name group
comp_map comp
composition, maps nuclides in id form to normalized mass weights.
Definition: pyne.h:4953
static void uintToString(LargestUInt value, char *&current)
Converts an unsigned integer to string.
Definition: pyne.cc:13138
object value (collection of name/value pairs).
Definition: pyne.h:3145
static Features all()
A configuration that allows all features and assumes all strings are UTF-8.
Definition: pyne.cc:13198
std::pair< double, double > decay_photon_branch_ratio(std::pair< int, int >)
Definition: pyne.cc:12115
comp_map decay_heat()
Calculates the decay heat of a material based on the composition and each nuclide&#39;s mass...
Definition: pyne.cc:18136
bool value
Definition: pyne.h:3143
Json::LargestUInt LargestUInt
Definition: pyne.h:3242
name_group FP
fission product name group
name_t TRU_array[22]
array of transuranic names
Definition: pyne.cc:2636
std::string fluka_material_line(int znum, double atomic_mass, int fid, std::string fluka_name)
Format information into a FLUKA material card.
Definition: pyne.cc:17700
Custom exception for declaring a simple_xs request invalid.
Definition: pyne.h:2501
std::map< std::pair< int, double >, ecbp > ecbp_data
A vector of structs containing ecbp data for access in memory.
Definition: pyne.cc:12564
bool isNumeric() const
Definition: pyne.cc:15701
Material sub_lan()
Creates a sub-Material of only lanthanides.
Definition: pyne.cc:18494
UInt asUInt() const
Definition: pyne.cc:15064
xd_complex_t b_incoherent(int nuc)
Finds the incoherent scattering length [cm] for a nuclide nuc.
Definition: pyne.cc:11111
Material del_mat(std::set< int > nucset)
Creates a new Material with the all nuclides in nucset removed.
Definition: pyne.cc:18387
int to_int(std::string s)
Converts a string of digits to an int using atoi().
Definition: pyne.cc:139
void swap(Value &other)
Swap values.
Definition: pyne.cc:14868
Int64 asInt64() const
Definition: pyne.cc:15094
std::map< int, pyne::dose > & dose_source_map(int source)
Definition: pyne.cc:10777
name_zz_t fluka_zz
fluka-name to nucid map
Definition: pyne.cc:2592
Material sub_range(int lower=0, int upper=10000000)
Creates a sub-Material based on a range of id-form integers.
Definition: pyne.cc:18420
char UIntToStringBuffer[uintToStringBufferSize]
Definition: pyne.cc:13129
int parent(int nuc, unsigned int rx, std::string z="n")
Definition: pyne.cc:6621
CustomWriter(std::string opencurly="{", std::string closecurly="}", std::string opensquare="[", std::string closesquare="]", std::string colon=":", std::string comma=",", std::string indent=" ", int maxWidth=74)
Definition: pyne.cc:16867
double sigma_e
Definition: pyne.cc:12847
double alpha
stage separation factor
Definition: pyne.h:5162
ValueType
Type of the value held by a Value object.
Definition: pyne.h:3136
struct pyne::decay decay
a struct matching the &#39;/decay/decays&#39; table in nuc_data.h5.
double _deltaU_i_OverG(Cascade &casc, int i)
Solves for a stage separative power relevant to the ith component per unit of flow G...
Definition: pyne.cc:19051
std::map< int, xd_complex_t > b_coherent_map
Mapping from nuclides in id form to their coherent scattering length.
Definition: pyne.cc:10977
std::string toStyledString() const
Definition: pyne.cc:15754
struct pyne::gamma gamma
a struct matching the &#39;/decay/gammas&#39; table in nuc_data.h5.
double q_val(int nuc)
Returns the q_value of a nuclide nuc.
Definition: pyne.cc:10602
std::string to_upper(std::string s)
switches endftod to fast cpp version
Definition: pyne.cc:216
Cascade multicomponent(Cascade &orig_casc, char *solver, double tolerance=1.0E-7, int max_iter=100)
Definition: pyne.cc:19113
void decay_he(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition: decay.cpp:54
double sigma_3n
Definition: pyne.cc:12857
zz_group fp
fission product Z number group
Definition: pyne.cc:2663
double sigma_t
Definition: pyne.cc:12845
const double MeV_per_MJ
MeV per MJ.
Definition: pyne.cc:10362
struct pyne::level_data level_data
a struct matching the &#39;/decay/level_list&#39; table in nuc_data.h5.
a struct matching the &#39;/decay/gammas&#39; table in nuc_data.h5.
Definition: pyne.h:2322
comp_map dose_per_g(std::string dose_type, int source=0)
Caclulates the dose per gram using the composition of the the material, the dose type desired...
Definition: pyne.cc:18148
void _reset_xjs()
Sets x_feed_j to j-th value of mat_feed.
Definition: pyne.cc:18738
JSON (JavaScript Object Notation).
Definition: pyne.cc:13083
a comment just after a value on the same line
Definition: pyne.h:3151
static void releaseStringValue(char *value)
Free the string duplicated by duplicateStringValue().
Definition: pyne.cc:14453
void _load_atomic_mass_map()
Loads the atomic mass and natural abundance data from the nuc_data.h5 file into memory.
Definition: pyne.cc:10392
#define JSON_FAIL_MESSAGE(message)
Definition: pyne.cc:14409
int nuc
nuclide in id form
Definition: pyne.h:1945
std::string serpent(int nuc)
Definition: pyne.cc:3296
int mcnp_to_id(int nuc)
Definition: pyne.cc:3229
void _load_comp_protocol0(hid_t db, std::string datapath, int row)
Loads the matrial composition from an HDF5 file according to the layout defined by protocol 0...
Definition: pyne.cc:17087
Value & deref() const
Definition: pyne.cc:14151
static bool containsControlCharacter(const char *str)
Definition: pyne.cc:16093
std::istream & operator>>(std::istream &sin, Value &root)
Read from &#39;sin&#39; into &#39;root&#39;.
Definition: pyne.cc:13945
Json::UInt64 UInt64
Definition: pyne.h:3238
std::string mcnp(std::string frac_type="mass")
Return an mcnp input deck record as a string.
Definition: pyne.cc:17514
base class for Value iterators.
Definition: pyne.h:4019
std::set< std::string > fluka_builtin(pyne::fluka_mat_strings, pyne::fluka_mat_strings+pyne::FLUKA_MAT_NUM)
------------------------------------------------------------------------—// Create a set out of the ...
double sigma_deut
Definition: pyne.cc:12854
int map_nuc_ids[TOTAL_STATE_MAPS]
Definition: pyne.cc:439
double tail_per_feed(double x_feed, double x_prod, double x_tail)
Computes the tails per feed mass ratio for feed, product, and tails enrichments x_feed, x_prod, and x_tails.
Definition: pyne.cc:18805
int j
Component to enrich (U-235), id form.
Definition: pyne.h:5165
std::vector< int > alpha_child(double energy, double error)
Definition: pyne.cc:12469
std::map< std::pair< int, double >, level_data > level_data_lvl_map
Mapping from nuclides in id form to a struct containing data associated with that level...
Definition: pyne.cc:11709
Custom exception for invalid HDF5 protocol numbers.
Definition: pyne.h:5109
std::vector< std::pair< double, double > > gamma_xrays(int parent)
Definition: pyne.cc:12363
std::vector< double > beta_intensity(int parent)
Definition: pyne.cc:12543
CommentPlacement
Definition: pyne.h:3148
double slope(double x2, double y2, double x1, double y1)
Finds the slope of a line from the points (x1, y1) and (x2, y2).
Definition: pyne.cc:353
double N
number of enriching stages
Definition: pyne.h:5168
bool iselement(std::string nuc)
Definition: pyne.cc:2904
std::vector< T > data_access(double emin, double emax, size_t valoffset, std::map< std::pair< int, double >, U > &data)
Access data in a std::map<std::pair<int, double> for a range of values of the second member of the pa...
Definition: pyne.cc:11424
name_group TRU
transuranic name group
comp_map activity()
Calculates the activity of a material based on the composition and each nuclide&#39;s mass...
Definition: pyne.cc:18125
static std::string words
string of all valid word characters for variable names in programing languages.
Definition: pyne.h:128
double yield_14MeV_err
14 MeV yield error [fraction]
Definition: pyne.h:2083
std::vector< double > ecbp_average_energy(int parent)
Definition: pyne.cc:12630
virtual ~Writer()
Definition: pyne.cc:16241
zz_group ma
minor actinide Z number group
Definition: pyne.cc:2649
bool isString() const
Definition: pyne.cc:15707
name_zz_t name_zz
name to Z num map
Definition: pyne.cc:2426
std::map< std::pair< int, int >, ndsfpysub > ndsfpy_data
Definition: pyne.cc:11268
UInt index() const
Return the index of the referenced Value. -1 if it is not an arrayValue.
Definition: pyne.cc:14270
double swu_per_tail(double x_feed, double x_prod, double x_tail)
Computes the swu per tails ratio for feed, product, and tails enrichments x_feed, x_prod...
Definition: pyne.cc:18831
int zzllaaam_to_id(const char *nuc)
Definition: pyne.cc:3142
int Int
Definition: pyne.h:2689
double im
imaginary part
Definition: pyne.h:318
double yield_14MeV_err
14 MeV yield error [fraction]
Definition: pyne.h:2073
Path(const std::string &path, const PathArgument &a1=PathArgument(), const PathArgument &a2=PathArgument(), const PathArgument &a3=PathArgument(), const PathArgument &a4=PathArgument(), const PathArgument &a5=PathArgument())
Definition: pyne.cc:15914
std::map< unsigned int, std::string > labels
Mapping from reaction ids to labels (short descriptions).
Definition: pyne.cc:4349
ArrayIndex size() const
Number of values in array or object.
Definition: pyne.cc:15295
int nuc
Definition: pyne.cc:12844
double M
number of stripping stages
Definition: pyne.h:5169
std::vector< double > decay_branch_ratios(int parent)
Definition: pyne.cc:12110
std::set< std::string > names
Set of reaction names, must be valid variable names.
std::set< int > decay_children(int nuc)
Returns a set of decay children of a nuc.
Definition: pyne.cc:11843
a comment on the line after a value (only make sense for root value)
Definition: pyne.h:3152
const double cm2_per_barn
cm^2 per barn
Definition: pyne.cc:10359
name_zz_t get_fluka_zz()
Creates standard fluka-name to nucid mapping.
Definition: pyne.cc:2444
struct pyne::beta beta
a struct matching the &#39;/decay/betas&#39; table in nuc_data.h5.
zzname_t get_zz_name()
Creates standard Z number to name mapping.
Definition: pyne.cc:2430
void from_atom_frac(std::map< int, double > atom_fracs)
Sets the composition, mass, and atoms_per_molecule of this material to those calculated from atom_fra...
Definition: pyne.cc:18545
double swu_per_prod(double x_feed, double x_prod, double x_tail)
Computes the swu per product ratio for feed, product, and tails enrichments x_feed, x_prod, and x_tails.
Definition: pyne.cc:18824
std::string alara(int nuc)
Definition: pyne.cc:3544
static std::string digits
string of digit characters
Definition: pyne.h:124
void copy(const SelfType &other)
Definition: pyne.cc:14236
a struct matching the atomic_mass table in nuc_data.h5.
Definition: pyne.h:1860
int zzaaam(int nuc)
Definition: pyne.cc:3028
double yields
fission product yield, fraction [unitless]
Definition: pyne.h:2058
&#39;null&#39; value
Definition: pyne.h:3138
std::string fluka_compound_str(int id, std::string frac_type="mass")
Return FLUKA compound card and the material card for the named compound but not the material cards of...
Definition: pyne.cc:17758
std::vector< int > gamma_child(double energy, double error)
Definition: pyne.cc:12353
Custom exception for when an existing file is not in a valid HDF5 format.
Definition: pyne.h:370
std::string valueToQuotedString(const char *value)
Definition: pyne.cc:16182
Custom exception for declaring a value not to be of ambiquous reaction form.
Definition: pyne.h:1692
float asFloat() const
Definition: pyne.cc:15194
std::vector< double > bp_intensity(int parent)
Definition: pyne.cc:12640
name_group::iterator name_group_iter
name grouping iter type
Definition: pyne.h:831
void decay_br(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition: decay.cpp:7882
std::map< unsigned int, unsigned int > id_mt
Mapping from reaction ids to MT numbers.
Definition: pyne.cc:4347
a struct matching the &#39;/neutron/nds_fission_product&#39; table in nuc_data.h5
Definition: pyne.h:2065
LargestInt asLargestInt() const
Definition: pyne.cc:15147
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)
Definition: pyne.cc:13216
std::string capitalize(std::string s)
Returns a capitalized copy of the string.
Definition: pyne.cc:231
static hid_t PYTABLES_COMPLEX128
The HDF5 id for a complex data type compatible with PyTables generated data.
Definition: pyne.h:744
Int asInt() const
Definition: pyne.cc:15036
SelfType & operator=(const SelfType &other)
Definition: pyne.cc:14365
bool operator==(const CapacityConstraint< T > &lhs, const CapacityConstraint< T > &rhs)
CapacityConstraint-CapacityConstraint equality operator.
std::map< unsigned int, std::string > docs
Mapping from reaction ids to documentation strings (long descriptions).
Definition: pyne.cc:4350
~Material()
default destructor
Definition: pyne.cc:18081
UTF-8 string value.
Definition: pyne.h:3142
virtual std::string write(const Value &root)
Definition: pyne.cc:16888
int zzzaaa_to_id(int nuc)
Definition: pyne.cc:3085
static int FLUKA_MAT_NUM
Definition: pyne.h:4797
double re
real part
Definition: pyne.h:317
double value_func(double x)
Computes the value or separation potential of an assay x.
Definition: pyne.cc:18813
std::vector< std::pair< double, double > > photons(bool norm)
Returns a list of photon energies in keV and intensities in decays/s/atom material unnormalized...
Definition: pyne.cc:18614
static const Int maxInt
Maximum signed int value that can be stored in a Json::Value.
Definition: pyne.h:3256
bool operator<=(const Value &other) const
Definition: pyne.cc:14936
std::map< std::string, std::string > data_checksums
Mapping from nodes in nuc_data.h5 to hashes of nodes.
Definition: pyne.cc:10384
std::vector< double > alpha_energy(int parent)
Definition: pyne.cc:12455
void _insert_abund_map()
function to create mapping from nuclides in id form to their natural abundances
Definition: pyne.cc:10048
std::vector< std::pair< double, double > > gammas(int parent_state_id)
Returns a list of energies and intensities normalized to branching ratios.
Definition: pyne.cc:12703
bool empty() const
Return true if empty array, empty object, or null; otherwise, false.
Definition: pyne.cc:15328
void warning(std::string s)
Prints a warning message.
Definition: pyne.cc:413
double yield_thermal_err
thermal yield error [fraction]
Definition: pyne.h:2079
int snum(int nuc)
Definition: pyne.cc:3013
int serpent_to_id(const char *nuc)
Definition: pyne.cc:3352
void write(std::ostream &out, const Value &root)
Serialize a Value in JSON format.
Definition: pyne.cc:16574
double tail_per_prod(double x_feed, double x_prod, double x_tail)
Computes the tails per product mass ratio for feed, product, and tails enrichments x_feed...
Definition: pyne.cc:18809
void decay_h(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition: decay.cpp:26
zz_group tru
transuranic Z number group
Definition: pyne.cc:2641
const double pi
pi = 3.14159265359
Definition: pyne.cc:10356
static Features strictMode()
A configuration that is strictly compatible with the JSON specification.
Definition: pyne.cc:13204
void release(AllocatedType *object)
Release the object.
Definition: pyne.cc:14046
difference_type computeDistance(const SelfType &other) const
Definition: pyne.cc:14187
std::pair< double, double > decay_beta_branch_ratio(std::pair< int, int >)
Definition: pyne.cc:12136
const double MeV_per_K
MeV per Kelvin.
Definition: pyne.cc:10361
int id(int nuc)
Definition: pyne.cc:2716
std::map< std::pair< int, double >, gamma > gamma_data
Definition: pyne.cc:12157
int zzzaaa(int nuc)
Definition: pyne.cc:3066
Constant that specify the size of the buffer that must be passed to uintToString. ...
Definition: pyne.cc:13125
void from_json(char *filename)
Reads data from a JSON file at filename into this Material instance.
Definition: pyne.cc:17972
std::map< int, double > to_atom_frac()
Returns a mapping of the nuclides in this material to their atom fractions.
Definition: pyne.cc:18531
int znum(int nuc)
Definition: pyne.cc:2983
double half_life(int nuc)
Returns the half life for a nuclide nuc.
Definition: pyne.cc:11940
Json::Value dump_json()
Dumps the Material out to a JSON instance tree.
Definition: pyne.cc:17958
Material set_mat(std::set< int > nucset, double value)
Creates a new Material with the mass weights for all nuclides in nucset set to value.
Definition: pyne.cc:18351
LargestUInt asLargestUInt() const
Definition: pyne.cc:15157
std::vector< std::pair< double, double > > alphas(int parent_state_id)
Definition: pyne.cc:12724
name_t ACT_array[15]
array of actinide names
Definition: pyne.cc:2630
Unserialize a JSON document into a Value.
Definition: pyne.h:4246
std::map< int, int > state_id_map
Definition: pyne.cc:438
unsigned long long int UInt64
Definition: pyne.h:2702
double decay_const(int nuc)
Returns the decay constant for a nuclide nuc.
Definition: pyne.cc:11914
std::set< zz_t > zz_group
Z number grouping type (for testing containment)
Definition: pyne.h:834
double yield_thermal
thermal yield [fraction]
Definition: pyne.h:2078
unsigned int mt(int x)
Definition: pyne.cc:6461
The &#39;pyne&#39; namespace all PyNE functionality is included in.
Definition: decay.cpp:23
void write_text(char *filename)
Writes the Material out to a simple plaintext file readable by from_text().
Definition: pyne.cc:17905
double fpyield(std::pair< int, int > from_to, int source, bool get_error)
Returns the fission product yield for a parent/child nuclide pair.
Definition: pyne.cc:11338
std::string _names[NUM_RX_NAMES]
Raw array of reaction names.
Definition: pyne.cc:3766
std::map< int, xd_complex_t > b_incoherent_map
Mapping from nuclides in id form to their incoherent scattering length.
Definition: pyne.cc:10978
#define JSON_ASSERT(condition)
Definition: pyne.cc:14408
ValueType type() const
Definition: pyne.cc:14879
void _load_wimsdfpy()
Loads the WIMSD fission product yield data from the nuc_data.h5 file into memory. ...
Definition: pyne.cc:11220
double simple_xs(int nuc, int rx, std::string energy)
returns the microscopic cross section in barns for the specified nuclide, reaction, and energy group.
Definition: pyne.cc:12939
static const LargestInt maxLargestInt
Maximum signed integer value that can be stored in a Json::Value.
Definition: pyne.h:3249
std::vector< std::pair< double, double > > decay_half_lifes(int)
Definition: pyne.cc:12092
std::string fluka(int id, std::string frac_type="mass")
Return a fluka input deck MATERIAL card as a string.
Definition: pyne.cc:17623
std::vector< int > decay_data_children(int parent)
Definition: pyne.cc:12080
bool isBool() const
Definition: pyne.cc:15669
Material operator*(double)
Multiplies a material&#39;s mass.
Definition: pyne.cc:18681
int zzaaam_to_id(int nuc)
Definition: pyne.cc:3049
const double sec_per_day
seconds per day
Definition: pyne.cc:10360
Top-level enrichment functionality.
name_zz_t get_name_zz()
Creates standard name to Z number mapping.
Definition: pyne.cc:2306
std::string replace_all_substrings(std::string s, std::string substr, std::string repstr)
Replaces all instance of substr in s with repstr.
Definition: pyne.cc:281
static bool containsNewLine(Reader::Location begin, Reader::Location end)
Definition: pyne.cc:13227
A set of physical parameters used to specify an enrichment cascade.
Definition: pyne.h:5150
a struct matching the &#39;/neutron/scattering_lengths&#39; table in nuc_data.h5.
Definition: pyne.h:2005
double sigma_i
Definition: pyne.cc:12848
static char * duplicateStringValue(const char *value, unsigned int length=unknown)
Duplicates the specified string value.
Definition: pyne.cc:14438
void from_text(char *filename)
Reads data from a plaintext file at filename into this Material instance.
Definition: pyne.cc:17848
double sigma_2n
Definition: pyne.cc:12856
UInt64 asUInt64() const
Definition: pyne.cc:15120
Iterator for object and array value.
Definition: pyne.h:4147
enable_if< has_const_iterator< T >::value, typename T::const_iterator >::type end(const T &c)
int compare(const Value &other) const
Definition: pyne.cc:14885
Members getMemberNames() const
Return a list of the member names.
Definition: pyne.cc:15614
Material sub_tru()
Creates a sub-Material of only transuranics.
Definition: pyne.cc:18507
bool operator<(const Value &other) const
Definition: pyne.cc:14895
std::string label(int x)
Definition: pyne.cc:6521
std::map< int, dose > epa_dose_map
Mapping from int to dose for 3 sources.
Definition: pyne.cc:10793
double sigma_a
Definition: pyne.cc:12849
const Char * Location
Definition: pyne.h:4250
double feed_per_tail(double x_feed, double x_prod, double x_tail)
Computes the feed per tails mass ratio for feed, product, and tails enrichments x_feed, x_prod, and x_tails.
Definition: pyne.cc:18793
double atomic_mass(int nuc)
Returns the atomic mass of a nuclide nuc.
Definition: pyne.cc:10440
int anum(int nuc)
Definition: pyne.cc:2998
const int all_nucs[4141]
Definition: decay.cpp:154781
bool file_exists(std::string strfilename)
Returns true if the file can be found.
Definition: pyne.cc:376
bool isUInt() const
Definition: pyne.cc:15681
void pyne_start()
Initializes PyNE based on environment.
Definition: pyne.cc:81
zzname_t zz_name
Z num to name map.
Definition: pyne.cc:2439
void _load_data< level_data >()
bool isArray() const
Definition: pyne.cc:15713
Writes a Value in JSON format in a human friendly way.
Definition: pyne.h:4523
double(* endftod)(char *s)
endftod function pointer. defaults to fortran
Definition: pyne.cc:210
bool isObject() const
Definition: pyne.cc:15719
void from_hdf5(char *filename, char *datapath, int row=-1, int protocol=1)
Loads a material from an HDF5 file into this object.
Definition: pyne.cc:17230
Material composed of nuclides.
Definition: pyne.h:4800
std::string remove_characters(std::string s, std::string chars)
Removes all characters in the string chars from s.
Definition: pyne.cc:272
int nuc
nuclide in id form
Definition: pyne.h:1918
double sigma_proton
Definition: pyne.cc:12853
const char * memberName() const
Return the member name of the referenced Value. "" if it is not an objectValue.
Definition: pyne.cc:14285
const char * asCString() const
Definition: pyne.cc:14999
Custom exception for declaring a value not to be a valid reaction.
Definition: pyne.h:1603
StyledStreamWriter(std::string indentation="\)
Definition: pyne.cc:16566
Custom expection for declaring that a value does not follow a recognizable nuclide naming convention...
Definition: pyne.h:869
bool strictRoot_
true if root must be either an array or an object value. Default: false.
Definition: pyne.h:3087
double solve_line(double x, double x2, double y2, double x1, double y1)
Solves the equation for the line y = mx + b, given x and the points that form the line: (x1...
Definition: pyne.cc:359
Value & append(const Value &value)
Append value to array at the end.
Definition: pyne.cc:15536
std::string getFormattedErrorMessages() const
Returns a user friendly string that list errors in the parsed document.
Definition: pyne.cc:13930
bool operator==(const Value &other) const
Definition: pyne.cc:14951
const iterator for object and array value.
Definition: pyne.h:4089
Material sub_mat(std::set< int > nucset)
Creates a sub-Material with only the nuclides present in nucset.
Definition: pyne.cc:18323
int offset(int dz, int da, int ds=0)
A helper function to compute nuclide id offsets from z-, a-, and s- deltas.
Definition: pyne.h:1455
double molecular_mass(double apm=-1.0)
Calculates the atomic weight of this material based on the composition and the number of atoms per mo...
Definition: pyne.cc:18182
a struct for the nds data for fpyield
Definition: pyne.h:2077
Material sub_act()
Creates a sub-Material of only actinides.
Definition: pyne.cc:18501
double swu_per_feed
This is the SWU for 1 kg of Feed material.
Definition: pyne.h:5180
std::pair< double, double > decay_branch_ratio(std::pair< int, int >)
Definition: pyne.cc:12104
T get_array_index(hid_t dset, int n, hid_t dtype=H5T_NATIVE_DOUBLE)
Retrieves the nth index out of the dataset dset (which has an HDF5 datatype dtype).
Definition: pyne.h:473
double tanh(double x)
The hyperbolic tangent function.
Definition: pyne.cc:364
std::vector< int > alpha_parent(double energy, double error)
Definition: pyne.cc:12464
double get_comp_sum()
Computes the total mass stored in the composition.
Definition: pyne.cc:17060
enable_if< has_const_iterator< T >::value, typename T::const_iterator >::type begin(const T &c)
double x_tail_j
enrichment of the j-th isotope in the tails stream
Definition: pyne.h:5173
std::map< std::pair< int, int >, double > wimsdfpy_data
Mapping from nuclides in id form to their scattering length.
Definition: pyne.cc:11217
void * _
A dummy variable used when calling _fill_maps().
Definition: pyne.cc:6320
pyne::Material mat_feed
feed material
Definition: pyne.h:5175
std::set< name_t > name_group
name grouping type (for testing containment)
Definition: pyne.h:830
double x_feed_j
enrichment of the j-th isotope in the feed stream
Definition: pyne.h:5171
std::pair< double, double > decay_half_life(std::pair< int, int >)
Definition: pyne.cc:12086
std::map< int, double > gamma_frac_map
Definition: pyne.cc:10647
double number_density(double mass_dens=-1.0, double apm=-1.0)
Computes and returns the number density of the material using the mass density if mass_dens is greate...
Definition: pyne.cc:18312
std::vector< double > alpha_intensity(int parent)
Definition: pyne.cc:12459
#define isnan(x)
Definition: pyne.h:102
int k
Component to de-enrich, or strip (U-238), id form.
Definition: pyne.h:5166
pyne::Material mat_tail
tails material
Definition: pyne.h:5177
std::map< int, dose > doe_dose_map
Definition: pyne.cc:10794
~Cascade()
default destructor
Definition: pyne.cc:18734
bool path_exists(hid_t h5file, std::string path)
Determines if a path exists in an hdf5 file.
Definition: pyne.h:751
std::string remove_substring(std::string s, std::string substr)
Creates a copy of s with all instances of substr taken out.
Definition: pyne.cc:261
array value (ordered list)
Definition: pyne.h:3144
std::vector< std::pair< double, double > > gammas()
Returns a list of gamma-rays energies in keV and intensities in decays/s/atom material unnormalized...
Definition: pyne.cc:18576
const_iterator begin() const
Definition: pyne.cc:15761
Cascade _norm_comp_secant(Cascade &casc, double tolerance=1.0E-7, int max_iter=100)
This function solves the whole system of equations.
Definition: pyne.cc:18939