CYCLUS
Loading...
Searching...
No Matches
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
68extern "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
78std::string pyne::PYNE_DATA = "";
79std::string pyne::NUC_DATA_PATH = "";
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
114std::string pyne::to_str(int t) {
115 std::stringstream ss;
116 ss << t;
117 return ss.str();
118}
119
120std::string pyne::to_str(unsigned int t) {
121 std::stringstream ss;
122 ss << t;
123 return ss.str();
124}
125
126std::string pyne::to_str(double t) {
127 std::stringstream ss;
128 ss << t;
129 return ss.str();
130}
131
132std::string pyne::to_str(bool t) {
133 std::stringstream ss;
134 ss << t;
135 return ss.str();
136}
137
138
139int pyne::to_int(std::string s) {
140 return atoi( s.c_str() );
141}
142
143double pyne::to_dbl(std::string s) {
144 return strtod( s.c_str(), NULL );
145}
146
147double 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
202double 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
210double (*pyne::endftod)(char * s) = &pyne::endftod_f;
211
215
216std::string pyne::to_upper(std::string s) {
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
223std::string pyne::to_lower(std::string s) {
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
231std::string pyne::capitalize(std::string s) {
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
244std::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
261std::string pyne::remove_substring(std::string s, std::string substr) {
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
272std::string pyne::remove_characters(std::string s, std::string chars) {
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
281std::string pyne::replace_all_substrings(std::string s, std::string substr, std::string repstr) {
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
293std::string pyne::last_char(std::string s) {
294 // Returns the last character in a string.
295 return s.substr(s.length()-1, 1);
296}
297
298
299std::string pyne::slice_from_end(std::string s, int n, int l) {
300 // Returns the slice of a string using negative indices.
301 return s.substr(s.length()+n, l);
302}
303
304
305bool 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
311bool pyne::contains_substring(std::string s, std::string substr) {
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
318std::string pyne::natural_naming(std::string name) {
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
353double 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
359double 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
364double pyne::tanh(double x) {
365 return std::tanh(x);
366}
367
368double pyne::coth(double x) {
369 return 1.0 / std::tanh(x);
370}
371
372
373
374// File Helpers
375
376bool 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
407
412
413void pyne::warning(std::string s){
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
435namespace pyne {
436namespace nucname {
437#define TOTAL_STATE_MAPS 922
438std::map<int, int> state_id_map;
439int map_nuc_ids [TOTAL_STATE_MAPS] = {110240001,
440130240001,
441130260001,
442130320002,
443170340001,
444170380001,
445190380001,
446190380015,
447210420002,
448210430001,
449210440004,
450230440001,
451210450001,
452210460002,
453230460001,
454210500001,
455250500001,
456250520001,
457260520041,
458260530022,
459270540001,
460210560001,
461210560004,
462250580001,
463270580001,
464270580002,
465230600000,
466230600001,
467250600001,
468270600001,
469250620001,
470270620001,
471230640001,
472250640002,
473260650003,
474260670002,
475290670023,
476280690001,
477280690008,
478300690001,
479340690004,
480290700001,
481290700003,
482350700006,
483280710002,
484300710001,
485320710002,
486300730001,
487300730002,
488320730002,
489340730001,
490360730004,
491310740002,
492350740002,
493290750001,
494290750002,
495300750001,
496320750002,
497330750004,
498280760004,
499290760001,
500350760002,
501300770002,
502320770001,
503330770004,
504340770001,
505350770001,
506300780004,
507310780004,
508350780004,
509370780003,
510390780001,
511320790001,
512330790007,
513340790001,
514350790001,
515360790001,
516310800001,
517350800002,
518390800001,
519390800003,
520320810001,
521340810001,
522360810002,
523370810001,
524330820001,
525340820015,
526350820001,
527370820001,
528410820003,
529340830001,
530360830002,
531380830002,
532390830001,
533310840001,
534350840001,
535360840019,
536360840061,
537370840002,
538390840002,
539410840007,
540360850001,
541370850003,
542380850002,
543390850001,
544400850002,
545410850003,
546410850005,
547370860002,
548390860002,
549410860001,
550410860002,
551380870001,
552390870001,
553400870002,
554350880003,
555410880001,
556430880000,
557430880001,
558390890001,
559400890001,
560410890001,
561420890002,
562430890001,
563370900001,
564390900002,
565400900003,
566410900002,
567410900007,
568430900001,
569430900006,
570390910001,
571400910040,
572410910001,
573420910001,
574430910001,
575440910001,
576450910001,
577410920001,
578450920001,
579390930002,
580410930001,
581420930016,
582430930001,
583440930001,
584470940001,
585470940002,
586390970001,
587390970029,
588410970001,
589430970001,
590450970001,
591370980001,
592390980005,
593410980001,
594450980001,
595410990001,
596430990002,
597450990001,
598470990002,
599371000001,
600391000004,
601411000001,
602411000009,
603411000012,
604431000002,
605431000004,
606451000004,
607471000001,
608471010002,
609411020001,
610431020001,
611451020005,
612471020001,
613441030005,
614451030001,
615471030002,
616491030001,
617411040004,
618451040003,
619471040001,
620491040003,
621451050001,
622471050001,
623491050001,
624451060001,
625471060001,
626491060001,
627431070000,
628461070002,
629471070001,
630491070001,
631401080003,
632461090002,
633471090001,
634491090001,
635491090021,
636451100000,
637451100001,
638471100002,
639491100001,
640461110002,
641471110001,
642491110001,
643451120000,
644451120001,
645491120001,
646491120004,
647491120010,
648471130001,
649481130001,
650491130001,
651501130001,
652451140005,
653491140001,
654491140005,
655531140005,
656461150001,
657471150001,
658481150001,
659491150001,
660521150001,
661451160001,
662471160001,
663471160004,
664511160003,
665551160001,
666471180004,
667491180001,
668491180003,
669511180007,
670531180002,
671551180001,
672471190000,
673471190001,
674481190002,
675491190001,
676501190002,
677511190072,
678521190002,
679551190001,
680451200002,
681471200002,
682491200001,
683491200002,
684511200001,
685531200013,
686551200001,
687571200000,
688461210001,
689481210002,
690491210001,
691501210001,
692521210002,
693551210001,
694451220002,
695471220001,
696471220002,
697491220001,
698491220005,
699511220005,
700511220006,
701551220007,
702551220008,
703481230003,
704491230001,
705501230001,
706521230002,
707551230005,
708461240004,
709491240002,
710501240016,
711511240001,
712511240002,
713551240025,
714481250001,
715491250001,
716501250001,
717521250002,
718541250002,
719571250005,
720461260003,
721461260004,
722491260001,
723511260001,
724511260002,
725481270006,
726491270001,
727491270009,
728501270001,
729521270002,
730541270002,
731561270002,
732571270001,
733581270001,
734461280004,
735491280003,
736501280003,
737511280001,
738571280001,
739471290001,
740481290001,
741491290001,
742491290010,
743491290012,
744491290013,
745501290001,
746501290017,
747501290018,
748501290025,
749511290011,
750511290012,
751511290023,
752521290001,
753541290002,
754551290010,
755561290001,
756571290002,
757601290001,
758601290003,
759491300001,
760491300002,
761491300003,
762501300002,
763511300001,
764531300001,
765551300004,
766561300030,
767591300002,
768491310001,
769491310004,
770501310001,
771521310001,
772521310033,
773541310002,
774561310002,
775571310006,
776581310001,
777591310002,
778501320006,
779511320001,
780521320006,
781521320022,
782531320003,
783541320030,
784571320004,
785581320030,
786491330001,
787521330002,
788531330016,
789531330059,
790531330065,
791541330001,
792561330002,
793581330001,
794591330003,
795601330001,
796611330005,
797621330000,
798511340002,
799521340003,
800531340005,
801541340007,
802601340017,
803611340000,
804611340001,
805521350010,
806541350002,
807551350010,
808561350002,
809581350004,
810591350004,
811601350001,
812611350000,
813611350003,
814501360003,
815531360006,
816551360001,
817561360005,
818611360000,
819611360001,
820631360001,
821561370002,
822581370002,
823601370004,
824501380003,
825551380003,
826581380005,
827591380005,
828581390002,
829601390002,
830611390001,
831621390004,
832641390001,
833591400003,
834591400015,
835601400009,
836611400008,
837631400004,
838601410002,
839621410002,
840631410001,
841641410004,
842651410001,
843591420001,
844591420024,
845601420004,
846611420012,
847631420031,
848641420019,
849641420020,
850651420003,
851621430002,
852621430043,
853641430002,
854651430001,
855661430003,
856551440004,
857591440001,
858651440004,
859651440006,
860651440007,
861671440003,
862641450002,
863651450004,
864661450002,
865681450002,
866571460001,
867631460013,
868651460022,
869651460026,
870661460008,
871651470001,
872661470002,
873681470002,
874691470001,
875591480000,
876591480001,
877611480003,
878651480001,
879671480001,
880671480012,
881681480008,
882651490001,
883661490027,
884671490001,
885681490002,
886631500001,
887651500002,
888671500001,
889691500005,
890581510001,
891621510012,
892631510002,
893651510003,
894671510001,
895681510021,
896691510001,
897691510012,
898701510001,
899701510005,
900701510010,
901611520004,
902611520014,
903631520001,
904631520016,
905651520006,
906671520001,
907691520006,
908691520018,
909691520019,
910701520006,
911621530006,
912641530003,
913641530008,
914651530003,
915671530001,
916691530001,
917601540003,
918611540000,
919611540001,
920631540013,
921651540001,
922651540002,
923711540015,
924721540006,
925641550006,
926661550009,
927671550002,
928691550001,
929711550001,
930711550004,
931611560002,
932651560002,
933651560004,
934671560001,
935671560012,
936711560001,
937721560004,
938641570012,
939661570005,
940651580003,
941651580019,
942671580001,
943671580007,
944711580000,
945621590006,
946641590002,
947661590009,
948671590003,
949671600001,
950671600006,
951691600002,
952711600001,
953671610002,
954681610014,
955691610001,
956711610004,
957671620003,
958691620020,
959711620008,
960711620009,
961751620001,
962671630003,
963751630001,
964671640003,
965691640001,
966771640001,
967661650002,
968751650001,
969771650001,
970671660001,
971691660006,
972711660001,
973711660002,
974681670003,
975711670001,
976751670001,
977671680001,
978711680013,
979771680001,
980701690001,
981711690001,
982751690001,
983771690001,
984671700001,
985711700008,
986771700001,
987711710001,
988721710001,
989771710001,
990781710002,
991711720001,
992711720005,
993751720001,
994771720002,
995791720001,
996771730000,
997771730029,
998791730001,
999711740003,
1000771740001,
1001701750007,
1002711750053,
1003791750001,
1004701760005,
1005711760001,
1006731760012,
1007731760090,
1008791760001,
1009791760002,
1010691770000,
1011701770006,
1012711770029,
1013711770203,
1014721770048,
1015721770107,
1016791770002,
1017711780003,
1018721780005,
1019721780109,
1020731780000,
1021731780059,
1022731780094,
1023731780139,
1024711790006,
1025721790005,
1026721790046,
1027731790117,
1028741790002,
1029751790137,
1030791790007,
1031811790001,
1032711800010,
1033721800007,
1034731800002,
1035721810025,
1036721810078,
1037761810001,
1038811810002,
1039721820009,
1040721820026,
1041731820001,
1042731820029,
1043751820001,
1044761820029,
1045741830007,
1046751830058,
1047761830002,
1048781830001,
1049811830002,
1050721840005,
1051751840005,
1052771840007,
1053781840034,
1054791840003,
1055741850006,
1056781850002,
1057791850001,
1058801850004,
1059811850003,
1060751860004,
1061771860001,
1062811860000,
1063811860005,
1064831860001,
1065791870002,
1066801870001,
1067811870002,
1068821870001,
1069831870002,
1070751880007,
1071811880001,
1072761890001,
1073771890006,
1074771890084,
1075791890003,
1076801890002,
1077811890001,
1078821890001,
1079831890002,
1080831890003,
1081731900002,
1082741900006,
1083751900003,
1084761900032,
1085771900002,
1086771900037,
1087791900014,
1088811900000,
1089811900001,
1090811900006,
1091831900000,
1092831900001,
1093761910001,
1094771910003,
1095771910071,
1096791910004,
1097801910035,
1098811910002,
1099821910002,
1100831910002,
1101751920002,
1102751920003,
1103761920047,
1104761920112,
1105771920003,
1106771920015,
1107791920004,
1108791920015,
1109811920002,
1110811920008,
1111821920011,
1112821920014,
1113821920017,
1114821920020,
1115821920021,
1116831920001,
1117841920006,
1118851920000,
1119851920001,
1120771930002,
1121781930005,
1122791930004,
1123801930003,
1124811930002,
1125821930001,
1126831930001,
1127851930001,
1128851930002,
1129751940001,
1130751940002,
1131751940003,
1132771940007,
1133771940012,
1134791940003,
1135791940008,
1136811940001,
1137831940001,
1138831940002,
1139851940000,
1140851940001,
1141761950002,
1142761950004,
1143771950002,
1144781950007,
1145791950004,
1146791950055,
1147801950003,
1148811950002,
1149821950002,
1150831950001,
1151841950002,
1152851950001,
1153861950001,
1154751960001,
1155771960004,
1156791960003,
1157791960054,
1158811960006,
1159831960002,
1160831960003,
1161841960015,
1162761970001,
1163771970002,
1164781970009,
1165791970004,
1166801970004,
1167811970002,
1168821970002,
1169831970001,
1170841970002,
1171851970001,
1172861970001,
1173761980006,
1174761980010,
1175771980001,
1176791980050,
1177811980007,
1178811980012,
1179831980001,
1180831980003,
1181851980001,
1182871980001,
1183781990008,
1184791990006,
1185801990007,
1186811990003,
1187821990003,
1188831990001,
1189841990002,
1190861990001,
1191812000010,
1192832000001,
1193832000003,
1194852000001,
1195852000003,
1196802010013,
1197812010003,
1198822010004,
1199832010001,
1200842010003,
1201862010001,
1202872010001,
1203882010000,
1204782020003,
1205822020014,
1206852020001,
1207852020002,
1208872020001,
1209822030006,
1210822030053,
1211832030006,
1212842030005,
1213862030001,
1214882030001,
1215812040029,
1216822040021,
1217832040008,
1218832040038,
1219852040001,
1220872040001,
1221872040002,
1222802050008,
1223822050009,
1224842050010,
1225842050017,
1226882050001,
1227812060045,
1228832060016,
1229872060001,
1230872060002,
1231892060001,
1232812070002,
1233822070003,
1234832070036,
1235842070014,
1236862070007,
1237882070001,
1238802080004,
1239832080018,
1240802100002,
1241802100005,
1242832100002,
1243822110014,
1244832110021,
1245842110015,
1246852110076,
1247872110013,
1248872110019,
1249832120005,
1250832120012,
1251842120030,
1252852120004,
1253882130005,
1254852140006,
1255862140004,
1256862140005,
1257872140001,
1258902140004,
1259832150009,
1260862150013,
1261902150003,
1262872160001,
1263832170005,
1264892170010,
1265902170001,
1266912170001,
1267872180002,
1268922180001,
1269892220001,
1270912340002,
1271922350001,
1272932360001,
1273952360001,
1274942370003,
1275922380101,
1276932380128,
1277942380041,
1278942380044,
1279952380001,
1280942390090,
1281942390094,
1282952390011,
1283932400001,
1284942400102,
1285952400057,
1286962400002,
1287962400003,
1288942410106,
1289942410107,
1290952410075,
1291962410007,
1292932420007,
1293942420044,
1294942420045,
1295952420002,
1296952420141,
1297962420004,
1298962420005,
1299972420002,
1300972420003,
1301942440032,
1302952440001,
1303952440112,
1304952440113,
1305962440009,
1306962440013,
1307962440014,
1308972440004,
1309982440002,
1310942450024,
1311952450021,
1312962450061,
1313972450003,
13141012450001,
1315952460001,
1316952460008,
1317972460000,
1318982460002,
1319992460000,
13201012460000,
13211012460001,
13221002470001,
13231002470002,
1324972480001,
1325992500001,
13261002500001,
13271002500002,
13281022500001,
13291022510002,
13301002530008,
13311022530003,
13321022530030,
13331022530031,
13341022530032,
13351032530000,
13361032530001,
1337992540002,
13381012540000,
13391012540001,
13401022540011,
13411032550001,
13421032550027,
1343992560001,
13441002560022,
13451042560007,
13461042560009,
13471042560012,
13481042570002,
13491052570002,
13501012580001,
13511052580001,
13521042610001,
13531072620001,
13541062630003,
13551062650001,
13561082650001,
13571082670002,
13581102700001,
13591102710001,
13601082770001,
13621,
13631,
13641,
13651,
13661,
13671,
13682,
13691,
13701,
13711,
13721,
13731,
13741,
13751,
13761,
13771,
13781,
13791,
13801,
13811,
13821,
13832,
13841,
13851,
13862,
13871,
13882,
13891,
13901,
13911,
13921,
13931,
13941,
13951,
13961,
13971,
13981,
13992,
14001,
14011,
14021,
14032,
14041,
14051,
14061,
14071,
14081,
14092,
14101,
14111,
14121,
14131,
14141,
14151,
14162,
14171,
14181,
14191,
14201,
14211,
14221,
14231,
14241,
14251,
14261,
14271,
14281,
14291,
14301,
14311,
14321,
14331,
14341,
14351,
14361,
14371,
14381,
14391,
14401,
14412,
14421,
14431,
14441,
14451,
14461,
14471,
14481,
14491,
14501,
14511,
14521,
14531,
14541,
14551,
14561,
14571,
14582,
14591,
14601,
14611,
14621,
14631,
14641,
14651,
14661,
14671,
14682,
14691,
14701,
14711,
14721,
14731,
14741,
14751,
14761,
14771,
14781,
14792,
14801,
14811,
14821,
14831,
14841,
14851,
14861,
14871,
14882,
14893,
14901,
14912,
14921,
14931,
14941,
14951,
14961,
14971,
14981,
14991,
15001,
15011,
15021,
15031,
15041,
15051,
15061,
15072,
15081,
15092,
15101,
15111,
15121,
15131,
15141,
15151,
15161,
15171,
15181,
15191,
15201,
15211,
15221,
15231,
15242,
15253,
15261,
15272,
15281,
15291,
15301,
15311,
15321,
15331,
15341,
15351,
15361,
15371,
15381,
15391,
15401,
15411,
15421,
15431,
15441,
15451,
15461,
15471,
15481,
15491,
15501,
15511,
15521,
15531,
15541,
15551,
15561,
15572,
15581,
15592,
15601,
15611,
15621,
15631,
15641,
15651,
15662,
15671,
15682,
15693,
15701,
15711,
15721,
15731,
15741,
15751,
15762,
15771,
15781,
15791,
15801,
15811,
15821,
15831,
15841,
15852,
15861,
15871,
15881,
15891,
15902,
15911,
15921,
15931,
15941,
15952,
15961,
15971,
15981,
15991,
16001,
16011,
16021,
16031,
16041,
16052,
16061,
16071,
16081,
16091,
16101,
16111,
16121,
16131,
16141,
16151,
16161,
16171,
16182,
16191,
16202,
16211,
16222,
16231,
16242,
16251,
16261,
16271,
16281,
16291,
16301,
16311,
16321,
16331,
16342,
16351,
16361,
16371,
16381,
16391,
16401,
16411,
16421,
16432,
16441,
16451,
16462,
16471,
16481,
16491,
16501,
16511,
16521,
16531,
16541,
16551,
16561,
16571,
16581,
16591,
16601,
16611,
16621,
16631,
16642,
16653,
16664,
16671,
16682,
16693,
16704,
16711,
16722,
16733,
16741,
16751,
16761,
16771,
16781,
16791,
16802,
16811,
16822,
16833,
16841,
16851,
16861,
16871,
16881,
16891,
16901,
16912,
16921,
16931,
16942,
16951,
16961,
16971,
16981,
16991,
17001,
17011,
17021,
17032,
17041,
17051,
17061,
17071,
17081,
17091,
17101,
17112,
17123,
17131,
17141,
17151,
17161,
17171,
17181,
17191,
17201,
17211,
17221,
17231,
17241,
17252,
17261,
17271,
17281,
17291,
17301,
17311,
17321,
17331,
17341,
17352,
17361,
17371,
17381,
17391,
17401,
17412,
17421,
17431,
17441,
17451,
17461,
17471,
17481,
17491,
17501,
17511,
17521,
17531,
17541,
17551,
17562,
17571,
17581,
17591,
17601,
17611,
17621,
17631,
17641,
17651,
17662,
17671,
17681,
17691,
17701,
17712,
17721,
17731,
17742,
17751,
17761,
17771,
17781,
17791,
17801,
17811,
17821,
17831,
17841,
17851,
17861,
17871,
17881,
17891,
17901,
17911,
17921,
17931,
17941,
17951,
17961,
17971,
17982,
17992,
18001,
18011,
18022,
18031,
18041,
18051,
18061,
18071,
18081,
18091,
18101,
18111,
18121,
18131,
18141,
18151,
18161,
18171,
18181,
18192,
18201,
18212,
18223,
18231,
18242,
18251,
18262,
18271,
18281,
18291,
18302,
18313,
18321,
18331,
18341,
18352,
18361,
18371,
18381,
18391,
18401,
18411,
18421,
18431,
18442,
18451,
18461,
18471,
18481,
18491,
18501,
18511,
18522,
18531,
18541,
18552,
18561,
18572,
18581,
18591,
18602,
18611,
18621,
18632,
18641,
18652,
18661,
18671,
18681,
18691,
18701,
18711,
18722,
18731,
18741,
18751,
18761,
18771,
18781,
18791,
18801,
18811,
18821,
18831,
18841,
18851,
18861,
18871,
18881,
18891,
18901,
18911,
18921,
18931,
18941,
18952,
18961,
18971,
18981,
18991,
19001,
19011,
19021,
19031,
19041,
19051,
19061,
19071,
19081,
19091,
19101,
19111,
19121,
19131,
19142,
19151,
19161,
19171,
19181,
19192,
19201,
19211,
19221,
19231,
19241,
19251,
19261,
19271,
19281,
19291,
19301,
19312,
19321,
19331,
19341,
19351,
19361,
19372,
19381,
19391,
19401,
19412,
19421,
19432,
19443,
19454,
19461,
19471,
19482,
19491,
19501,
19511,
19521,
19531,
19541,
19551,
19561,
19572,
19583,
19591,
19601,
19611,
19622,
19631,
19642,
19651,
19661,
19671,
19681,
19691,
19701,
19711,
19721,
19731,
19741,
19751,
19761,
19771,
19781,
19791,
19801,
19811,
19821,
19831,
19841,
19852,
19861,
19871,
19881,
19891,
19901,
19911,
19921,
19931,
19941,
19951,
19962,
19971,
19981,
19991,
20001,
20011,
20022,
20031,
20041,
20051,
20061,
20071,
20082,
20091,
20101,
20112,
20123,
20131,
20142,
20151,
20161,
20172,
20181,
20191,
20201,
20211,
20221,
20231,
20242,
20251,
20262,
20271,
20282,
20291,
20302,
20311,
20322,
20331,
20342,
20353,
20364,
20375,
20381,
20391,
20401,
20412,
20421,
20431,
20441,
20451,
20461,
20471,
20481,
20491,
20502,
20511,
20522,
20533,
20541,
20552,
20561,
20572,
20581,
20591,
20602,
20611,
20622,
20631,
20642,
20651,
20661,
20671,
20682,
20691,
20701,
20711,
20721,
20731,
20741,
20751,
20761,
20771,
20781,
20792,
20801,
20811,
20822,
20831,
20841,
20851,
20861,
20871,
20881,
20891,
20901,
20911,
20921,
20931,
20941,
20951,
20962,
20971,
20981,
20991,
21002,
21011,
21022,
21031,
21041,
21051,
21061,
21071,
21081,
21091,
21101,
21111,
21121,
21131,
21141,
21152,
21161,
21172,
21181,
21191,
21201,
21211,
21221,
21231,
21241,
21251,
21261,
21271,
21281,
21292,
21301,
21311,
21322,
21331,
21341,
21351,
21361,
21371,
21381,
21391,
21402,
21411,
21421,
21432,
21441,
21451,
21461,
21472,
21481,
21491,
21501,
21511,
21522,
21531,
21541,
21551,
21561,
21571,
21581,
21591,
21601,
21611,
21621,
21632,
21641,
21651,
21661,
21671,
21681,
21691,
21702,
21711,
21722,
21732,
21741,
21751,
21761,
21771,
21782,
21791,
21801,
21811,
21821,
21831,
21841,
21851,
21861,
21871,
21881,
21891,
21901,
21911,
21921,
21931,
21941,
21951,
21961,
21971,
21981,
21991,
22002,
22011,
22021,
22031,
22041,
22051,
22061,
22071,
22081,
22092,
22101,
22112,
22121,
22131,
22142,
22151,
22162,
22171,
22182,
22191,
22202,
22211,
22222,
22231,
22241,
22252,
22263,
22271,
22282,
22293,
22301,
22311,
22321,
22331,
22341,
22351,
22361,
22371,
22382,
22391,
22401,
22411,
22421,
22432,
22442,
22451,
22461,
22471,
22481,
22492,
22501,
22511,
22521,
22531,
22542,
22553,
22564,
22571,
22581,
22591,
22601,
22612,
22621,
22631,
22642,
22651,
22661,
22671,
22682,
22693,
22701,
22711,
22721,
22731,
22741,
22751,
22761,
22771,
22781,
22791,
22801,
22811,
22821,
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
2623 "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu"};
2627 pyne::nucname::name_to_zz_group(pyne::nucname::LAN);
2628
2629// Actinides
2631 "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr"};
2634
2635// Transuarnics
2637 "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr", "Rf", "Db", "Sg", "Bh", "Hs", "Mt",
2638 "Ds", "Rg", "Cn", "Fl", "Lv"};
2642 pyne::nucname::name_to_zz_group(pyne::nucname::TRU);
2643
2644//Minor Actinides
2645pyne::nucname::name_t pyne::nucname::MA_array[10] = {"Np", "Am", "Cm", "Bk",
2646 "Cf", "Es", "Fm", "Md", "No", "Lr"};
2650 pyne::nucname::name_to_zz_group(pyne::nucname::MA);
2651
2652//Fission Products
2653pyne::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"};
2664 pyne::nucname::name_to_zz_group(pyne::nucname::FP);
2665
2666
2667/***************************/
2668/*** isnuclide functions ***/
2669/***************************/
2670
2671bool pyne::nucname::isnuclide(std::string nuc) {
2672 int n;
2673 try {
2674 n = id(nuc);
2675 }
2676 catch(NotANuclide) {
2677 return false;
2678 }
2680 return false;
2681 }
2682 return isnuclide(n);
2683}
2684
2685bool 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 }
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/********************/
2716int 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
2804int pyne::nucname::id(const char * nuc) {
2805 std::string newnuc (nuc);
2806 return id(newnuc);
2807}
2808
2809int pyne::nucname::id(std::string nuc) {
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
2848 std::string anum_str = pyne::remove_characters(nucstr, pyne::alphabet);
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
2861 std::string anum_str = pyne::remove_characters(nucstr, pyne::alphabet);
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
2904bool pyne::nucname::iselement(std::string nuc) {
2905 int n;
2906 try {
2907 n = id(nuc);
2908 }
2909 catch(NotANuclide) {
2910 return false;
2911 }
2912 return iselement(n);
2913}
2914
2915bool 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/**********************/
2940std::string pyne::nucname::name(int nuc) {
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
2969std::string pyne::nucname::name(const char * nuc) {
2970 std::string newnuc (nuc);
2971 return name(newnuc);
2972}
2973
2974
2975std::string pyne::nucname::name(std::string nuc) {
2976 return name(id(nuc));
2977}
2978
2979
2980/**********************/
2981/*** znum functions ***/
2982/**********************/
2984 return id(nuc) / 10000000;
2985}
2986
2987int pyne::nucname::znum(const char * nuc) {
2988 return id(nuc) / 10000000;
2989}
2990
2991int pyne::nucname::znum(std::string nuc) {
2992 return id(nuc) / 10000000;
2993}
2994
2995/**********************/
2996/*** anum functions ***/
2997/**********************/
2999 return (id(nuc) / 10000) % 1000;
3000}
3001
3002int pyne::nucname::anum(const char * nuc) {
3003 return (id(nuc) / 10000) % 1000;
3004}
3005
3006int pyne::nucname::anum(std::string nuc) {
3007 return (id(nuc) / 10000) % 1000;
3008}
3009
3010/**********************/
3011/*** snum functions ***/
3012/**********************/
3014 return id(nuc) % 10000;
3015}
3016
3017int pyne::nucname::snum(const char * nuc) {
3018 return id(nuc) % 10000;
3019}
3020
3021int pyne::nucname::snum(std::string nuc) {
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
3038int pyne::nucname::zzaaam(const char * nuc) {
3039 std::string newnuc (nuc);
3040 return zzaaam(newnuc);
3041}
3042
3043
3044int pyne::nucname::zzaaam(std::string nuc) {
3045 return zzaaam(id(nuc));
3046}
3047
3048
3050 return (nuc/10)*10000 + (nuc%10);
3051}
3052
3053
3054int pyne::nucname::zzaaam_to_id(const char * nuc) {
3055 return zzaaam_to_id(std::string(nuc));
3056}
3057
3058
3059int pyne::nucname::zzaaam_to_id(std::string nuc) {
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
3074int pyne::nucname::zzzaaa(const char * nuc) {
3075 std::string newnuc (nuc);
3076 return zzzaaa(newnuc);
3077}
3078
3079
3080int pyne::nucname::zzzaaa(std::string nuc) {
3081 return zzzaaa(id(nuc));
3082}
3083
3084
3086 return (nuc)*10000;
3087}
3088
3089
3090int pyne::nucname::zzzaaa_to_id(const char * nuc) {
3091 return zzzaaa_to_id(std::string(nuc));
3092}
3093
3094
3095int pyne::nucname::zzzaaa_to_id(std::string nuc) {
3096 return zzzaaa_to_id(pyne::to_int(nuc));
3097}
3098
3099/*************************/
3100/*** zzllaaam functions ***/
3101/*************************/
3102std::string pyne::nucname::zzllaaam(int nuc) {
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
3131std::string pyne::nucname::zzllaaam(const char * nuc) {
3132 std::string newnuc (nuc);
3133 return zzllaaam(newnuc);
3134}
3135
3136
3137std::string pyne::nucname::zzllaaam(std::string nuc) {
3138 return zzllaaam(id(nuc));
3139}
3140
3141
3142int pyne::nucname::zzllaaam_to_id(const char * nuc) {
3143 return zzllaaam_to_id(std::string(nuc));
3144}
3145
3146
3147int pyne::nucname::zzllaaam_to_id(std::string nuc) {
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
3165 std::string anum_str = pyne::remove_characters(nucstr, pyne::alphabet);
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/**********************/
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
3215int pyne::nucname::mcnp(const char * nuc) {
3216 std::string newnuc (nuc);
3217 return mcnp(newnuc);
3218}
3219
3220
3221
3222int pyne::nucname::mcnp(std::string nuc) {
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
3256int pyne::nucname::mcnp_to_id(const char * nuc) {
3257 return mcnp_to_id(std::string(nuc));
3258}
3259
3260
3261int pyne::nucname::mcnp_to_id(std::string nuc) {
3262 return mcnp_to_id(pyne::to_int(nuc));
3263}
3264
3265
3266/**********************/
3267/*** fluka functions ***/
3268/**********************/
3269std::string pyne::nucname::fluka(int nuc) {
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//
3281int pyne::nucname::fluka_to_id(std::string name) {
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/*************************/
3296std::string pyne::nucname::serpent(int nuc) {
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
3333std::string pyne::nucname::serpent(const char * nuc) {
3334 std::string newnuc (nuc);
3335 return serpent(newnuc);
3336}
3337
3338
3339std::string pyne::nucname::serpent(std::string nuc) {
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
3352int pyne::nucname::serpent_to_id(const char * nuc) {
3353 return serpent_to_id(std::string(nuc));
3354}
3355
3356
3357int pyne::nucname::serpent_to_id(std::string nuc) {
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
3369 std::string anum_str = pyne::remove_characters(nucstr, pyne::alphabet);
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/**********************/
3402std::string pyne::nucname::nist(int nuc) {
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
3436std::string pyne::nucname::nist(const char * nuc) {
3437 std::string newnuc (nuc);
3438 return nist(newnuc);
3439}
3440
3441
3442std::string pyne::nucname::nist(std::string nuc) {
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
3455int pyne::nucname::nist_to_id(const char * nuc) {
3456 return nist_to_id(std::string(nuc));
3457}
3458
3459int pyne::nucname::nist_to_id(std::string nuc) {
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
3468 std::string anum_str = pyne::remove_characters(nuc, pyne::alphabet);
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
3506int pyne::nucname::cinder(const char * nuc) {
3507 std::string newnuc (nuc);
3508 return cinder(newnuc);
3509}
3510
3511
3512
3513int pyne::nucname::cinder(std::string nuc) {
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
3529int pyne::nucname::cinder_to_id(const char * nuc) {
3530 return cinder_to_id(std::string(nuc));
3531}
3532
3533
3534int pyne::nucname::cinder_to_id(std::string nuc) {
3535 return cinder_to_id(pyne::to_int(nuc));
3536}
3537
3538
3539
3540
3541/**********************/
3542/*** ALARA functions ***/
3543/**********************/
3544std::string pyne::nucname::alara(int nuc) {
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
3576std::string pyne::nucname::alara(const char * nuc) {
3577 std::string newnuc (nuc);
3578 return alara(newnuc);
3579}
3580
3581
3582std::string pyne::nucname::alara(std::string nuc) {
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
3596int pyne::nucname::alara_to_id(const char * nuc) {
3597 return alara_to_id(std::string(nuc));
3598}
3599
3600
3601int pyne::nucname::alara_to_id(std::string nuc) {
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
3610 std::string anum_str = pyne::remove_characters(nuc, pyne::alphabet);
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/***********************/
3637 int nucid = id(nuc);
3638 int zzzaaa = nucid / 10000;
3639 int sss = nucid % 10000;
3640 return sss * 1000000 + zzzaaa;
3641}
3642
3643
3644int pyne::nucname::sza(const char * nuc) {
3645 std::string newnuc (nuc);
3646 return sza(newnuc);
3647}
3648
3649
3650int pyne::nucname::sza(std::string nuc) {
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
3666int pyne::nucname::sza_to_id(const char * nuc) {
3667 std::string newnuc (nuc);
3668 return sza_to_id(newnuc);
3669}
3670
3671
3672int pyne::nucname::sza_to_id(std::string nuc) {
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()) {
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()) {
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
3734int pyne::nucname::ensdf_to_id(const char * nuc) {
3735 return ensdf_to_id(std::string(nuc));
3736}
3737
3738int pyne::nucname::ensdf_to_id(std::string nuc) {
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 };
4340std::set<std::string> pyne::rxname::names(pyne::rxname::_names,
4342
4343
4344std::map<std::string, unsigned int> pyne::rxname::altnames;
4345std::map<unsigned int, std::string> pyne::rxname::id_name;
4346std::map<std::string, unsigned int> pyne::rxname::name_id;
4347std::map<unsigned int, unsigned int> pyne::rxname::id_mt;
4348std::map<unsigned int, unsigned int> pyne::rxname::mt_id;
4349std::map<unsigned int, std::string> pyne::rxname::labels;
4350std::map<unsigned int, std::string> pyne::rxname::docs;
4351std::map<std::pair<std::string, int>, unsigned int> pyne::rxname::offset_id;
4352std::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
6323unsigned int pyne::rxname::hash(std::string s) {
6324 return pyne::rxname::hash(s.c_str());
6325}
6326
6327unsigned 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
6343std::string pyne::rxname::name(char * s) {
6344 return pyne::rxname::name(std::string(s));
6345}
6346
6347std::string pyne::rxname::name(std::string s) {
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
6367std::string pyne::rxname::name(int n) {
6368 return pyne::rxname::name((unsigned int) n);
6369}
6370
6371std::string pyne::rxname::name(unsigned int n) {
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
6380std::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
6389std::string pyne::rxname::name(std::string from_nuc, int to_nuc, std::string z) {
6390 return pyne::rxname::name(pyne::nucname::id(from_nuc),
6391 pyne::nucname::id(to_nuc), z);
6392}
6393
6394std::string pyne::rxname::name(int from_nuc, std::string to_nuc, std::string z) {
6395 return pyne::rxname::name(pyne::nucname::id(from_nuc),
6396 pyne::nucname::id(to_nuc), z);
6397}
6398
6399std::string pyne::rxname::name(std::string from_nuc, std::string to_nuc, std::string z) {
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// **********************
6409unsigned int pyne::rxname::id(int x) {
6410 return name_id[pyne::rxname::name(x)];
6411}
6412
6413unsigned 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
6421unsigned int pyne::rxname::id(const char * x) {
6422 return name_id[pyne::rxname::name(x)];
6423}
6424
6425unsigned int pyne::rxname::id(std::string x) {
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
6433unsigned 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
6442unsigned 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
6447unsigned 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
6452unsigned 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// **********************
6461unsigned 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
6468unsigned 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
6475unsigned 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
6482unsigned int pyne::rxname::mt(std::string x) {
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
6489unsigned 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
6496unsigned 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
6503unsigned 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
6510unsigned 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// ***********************
6521std::string pyne::rxname::label(int x) {
6522 return labels[pyne::rxname::id(x)];
6523}
6524
6525std::string pyne::rxname::label(unsigned int x) {
6526 return labels[pyne::rxname::id(x)];
6527}
6528
6529std::string pyne::rxname::label(char * x) {
6530 return labels[pyne::rxname::id(x)];
6531}
6532
6533std::string pyne::rxname::label(std::string x) {
6534 return labels[pyne::rxname::id(x)];
6535}
6536
6537std::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
6541std::string pyne::rxname::label(int from_nuc, std::string to_nuc, std::string z) {
6542 return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6543}
6544
6545std::string pyne::rxname::label(std::string from_nuc, int to_nuc, std::string z) {
6546 return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6547}
6548
6549std::string pyne::rxname::label(std::string from_nuc, std::string to_nuc, std::string z) {
6550 return labels[pyne::rxname::id(from_nuc, to_nuc, z)];
6551}
6552
6553
6554// *********************
6555// *** doc functions ***
6556// *********************
6557std::string pyne::rxname::doc(int x) {
6558 return docs[pyne::rxname::id(x)];
6559}
6560
6561std::string pyne::rxname::doc(unsigned int x) {
6562 return docs[pyne::rxname::id(x)];
6563}
6564
6565std::string pyne::rxname::doc(char * x) {
6566 return docs[pyne::rxname::id(x)];
6567}
6568
6569std::string pyne::rxname::doc(std::string x) {
6570 return docs[pyne::rxname::id(x)];
6571}
6572
6573std::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
6577std::string pyne::rxname::doc(int from_nuc, std::string to_nuc, std::string z) {
6578 return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6579}
6580
6581std::string pyne::rxname::doc(std::string from_nuc, int to_nuc, std::string z) {
6582 return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6583}
6584
6585std::string pyne::rxname::doc(std::string from_nuc, std::string to_nuc, std::string z) {
6586 return docs[pyne::rxname::id(from_nuc, to_nuc, z)];
6587}
6588
6589
6590// ***********************
6591// *** child functions ***
6592// ***********************
6593
6594int 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
6605int pyne::rxname::child(int nuc, std::string rx, std::string z) {
6606 return child(nuc, id(rx), z);
6607}
6608
6609int pyne::rxname::child(std::string nuc, unsigned int rx, std::string z) {
6610 return child(pyne::nucname::id(nuc), rx, z);
6611}
6612
6613int pyne::rxname::child(std::string nuc, std::string rx, std::string z) {
6614 return child(pyne::nucname::id(nuc), id(rx), z);
6615}
6616
6617// ************************
6618// *** parent functions ***
6619// ************************
6620
6621int 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
6632int pyne::rxname::parent(int nuc, std::string rx, std::string z) {
6633 return parent(nuc, id(rx), z);
6634}
6635
6636int pyne::rxname::parent(std::string nuc, unsigned int rx, std::string z) {
6637 return parent(pyne::nucname::id(nuc), rx, z);
6638}
6639
6640int pyne::rxname::parent(std::string nuc, std::string rx, std::string z) {
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
10356const double pyne::pi = 3.14159265359;
10357const double pyne::N_A = 6.0221415e+23;
10358const double pyne::barns_per_cm2 = 1e24;
10359const double pyne::cm2_per_barn = 1e-24;
10360const double pyne::sec_per_day = 24.0 * 3600.0;
10361const double pyne::MeV_per_K = 8.617343e-11;
10362const double pyne::MeV_per_MJ = 6.2415096471204E+18;
10363const double pyne::Bq_per_Ci = 3.7e10;
10364const double pyne::Ci_per_Bq = 2.7027027e-11;
10365
10366
10367/********************************/
10368/*** data_checksums Functions ***/
10369/********************************/
10370
10371std::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
10384std::map<std::string, std::string> pyne::data_checksums =
10386
10387/*****************************/
10388/*** atomic_mass Functions ***/
10389/*****************************/
10390std::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
10440double 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
10484double pyne::atomic_mass(char * nuc) {
10485 int nuc_zz = nucname::id(nuc);
10486 return atomic_mass(nuc_zz);
10487}
10488
10489
10490double pyne::atomic_mass(std::string nuc) {
10491 int nuc_zz = nucname::id(nuc);
10492 return atomic_mass(nuc_zz);
10493}
10494
10495
10496/*******************************/
10497/*** natural_abund functions ***/
10498/*******************************/
10499
10500std::map<int, double> pyne::natural_abund_map = std::map<int, double>();
10501
10502double 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
10541double pyne::natural_abund(char * nuc) {
10542 int nuc_zz = nucname::id(nuc);
10543 return natural_abund(nuc_zz);
10544}
10545
10546
10547double pyne::natural_abund(std::string nuc) {
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
10600std::map<int, double> pyne::q_val_map = std::map<int, double>();
10601
10602double 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()) {
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
10631double pyne::q_val(const char * nuc) {
10632 int nuc_zz = nucname::id(nuc);
10633 return q_val(nuc_zz);
10634}
10635
10636
10637double pyne::q_val(std::string nuc) {
10638 int nuc_zz = nucname::id(nuc);
10639 return q_val(nuc_zz);
10640}
10641
10642
10643/****************************/
10644/*** gamma_frac functions ***/
10645/****************************/
10646
10647std::map<int, double> pyne::gamma_frac_map = std::map<int, double>();
10648
10649double 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()) {
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
10678double pyne::gamma_frac(const char * nuc) {
10679 int nuc_zz = nucname::id(nuc);
10680 return gamma_frac(nuc_zz);
10681}
10682
10683
10684double pyne::gamma_frac(std::string nuc) {
10685 int nuc_zz = nucname::id(nuc);
10686 return gamma_frac(nuc_zz);
10687}
10688
10689
10690/*****************************/
10691/*** Dose Factor Functions ***/
10692/*****************************/
10693/***************************************************************************
10694This data is from: [Exposure Scenarios and Unit Dose Factors for the Hanford
10695Immobilized Low-Activity Tank Waste Performance Assessment, ref.
10696HNF-SD-WM-TI-707 Rev. 1 December 1999] Appendix O of HNF-5636 [DATA PACKAGES
10697FOR THE HANFORD IMMOBILIZED LOW-ACTIVITY TANK WASTE PERFORMANCE ASSESSMENT:
106982001 VERSION]
10699
10700Liability Disclaimer: The PyNE Development Team shall not be liable for any
10701loss or injury resulting from decisions made with this data.
10702**************************************************************************/
10703
10704void 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
10765std::string source_string(int source) {
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
10777std::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) {
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
10793std::map<int, pyne::dose> pyne::epa_dose_map;
10794std::map<int, pyne::dose> pyne::doe_dose_map;
10795std::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
10803double 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
10814double 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
10820double 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
10826double 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
10837double 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
10843double 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
10852double 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
10863double 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
10869double 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
10880double 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
10891double pyne::ingest_dose(const char * nuc, int source) {
10892 int nuc_zz = nucname::id(nuc);
10893 return ingest_dose(nuc_zz, source);
10894}
10895
10896double 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
10902double 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
10913double 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
10918double 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
10929double 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
10940double pyne::inhale_dose(const char * nuc, int source) {
10941 int nuc_zz = nucname::id(nuc);
10942 return inhale_dose(nuc_zz, source);
10943}
10944
10945double 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
10951std::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
10962std::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
10968std::string pyne::dose_lung_model(std::string nuc, int source) {
10969 int nuc_zz = nucname::id(nuc);
10970 return dose_lung_model(nuc_zz, source);
10971}
10972
10973
10974/***********************************/
10975/*** scattering length functions ***/
10976/***********************************/
10977std::map<int, xd_complex_t> pyne::b_coherent_map = std::map<int, xd_complex_t>();
10978std::map<int, xd_complex_t> pyne::b_incoherent_map = std::map<int, xd_complex_t>();
10979std::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
11180double 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
11201double pyne::b(char * nuc) {
11202 int nucid = nucname::id(nuc);
11203 return b(nucid);
11204}
11205
11206
11207double 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//
11217std::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
11268std::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
11338double 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())) {
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
11393double 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
11398double 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
11403double 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
11418bool pyne::swapmapcompare::operator()(const std::pair<int, double>& lhs,
11419const std::pair<int, double>& rhs) const {
11420 return lhs.second<rhs.second || (!(rhs.second<lhs.second) &&
11421 lhs.first<rhs.first);
11422}
11423
11424template<typename T, typename U> std::vector<T> pyne::data_access(
11425double energy_min, double energy_max, size_t valoffset, std::map<std::pair<int,
11426double>, 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
11455template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11456double min, double max, size_t valoffset,
11457std::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
11478template<typename T, typename U> T pyne::data_access(std::pair<int, int>
11479from_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
11501template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11502size_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
11523template<typename T, typename U> std::vector<T> pyne::data_access(int parent,
11524size_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
11546template<typename U> double pyne::data_access(int nuc,
11547size_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
11571std::map<int, pyne::atomic> pyne::atomic_data_map;
11572
11573template<> 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
11665std::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
11709std::map<std::pair<int,double>, pyne::level_data> pyne::level_data_lvl_map;
11710std::map<std::pair<int,unsigned int>,
11712
11713
11714template<> 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//
11776int 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
11806int pyne::id_from_level(int nuc, double level){
11807 return id_from_level(nuc, level, " ");
11808}
11809//
11810// Metastable id data
11811//
11812
11813int 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
11835 return metastable_id(nuc, 1);
11836}
11837
11838//
11839// Decay children data
11840//
11841
11842
11843std::set<int> pyne::decay_children(int nuc) {
11844 // make sure spontaneous fission data is loaded
11845 if (wimsdfpy_data.empty())
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
11875std::set<int> pyne::decay_children(char * nuc)
11876{
11877 return decay_children(nucname::id(nuc));
11878}
11879
11880std::set<int> pyne::decay_children(std::string nuc)
11881{
11882 return decay_children(nucname::id(nuc));
11883}
11884
11885//
11886// Excitation state energy data
11887//
11888
11889double 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
11898double pyne::state_energy(char * nuc)
11899{
11900 return state_energy(nucname::id(nuc));
11901}
11902
11903
11904double pyne::state_energy(std::string nuc)
11905{
11906 return state_energy(nucname::id(nuc));
11907}
11908
11909
11910//
11911// Decay constant data
11912//
11913
11914double 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
11925double pyne::decay_const(char * nuc) {
11926 int nuc_zz = nucname::id(nuc);
11927 return decay_const(nuc_zz);
11928}
11929
11930
11931double pyne::decay_const(std::string nuc) {
11932 int nuc_zz = nucname::id(nuc);
11933 return decay_const(nuc_zz);
11934}
11935
11936
11937//
11938// Half-life data
11939//
11940double 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
11950double pyne::half_life(char * nuc) {
11951 int nuc_zz = nucname::id(nuc);
11952 return half_life(nuc_zz);
11953}
11954
11955double pyne::half_life(std::string nuc) {
11956 int nuc_zz = nucname::id(nuc);
11957 return half_life(nuc_zz);
11958}
11959
11960
11961//
11962// Branch ratio data
11963//
11964double 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())
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
11998double 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
12003double 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
12008double 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
12013std::map<std::pair<int, int>, pyne::decay> pyne::decay_data = \
12014 std::map<std::pair<int, int>, pyne::decay>();
12015
12016template<> 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
12080std::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
12086std::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
12092std::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
12104std::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
12110std::vector<double> pyne::decay_branch_ratios(int parent) {
12111 return data_access<double, decay>(parent, offsetof(decay,
12113}
12114
12115std::pair<double, double> pyne::decay_photon_branch_ratio(std::pair<int,int>
12116from_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
12123std::vector<std::pair<double, double> >pyne::decay_photon_branch_ratios(
12124int 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
12136std::pair<double, double> pyne::decay_beta_branch_ratio(std::pair<int,int>
12137from_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
12144std::vector<std::pair<double, double> >pyne::decay_beta_branch_ratios(
12145int 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
12157std::map<std::pair<int, double>, pyne::gamma> pyne::gamma_data;
12158
12159template<> 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
12232std::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
12244std::vector<std::pair<double, double> > pyne::gamma_energy(double energy,
12245double 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
12257std::vector<std::pair<double, double> > pyne::gamma_photon_intensity(
12258int 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
12270std::vector<std::pair<double, double> > pyne::gamma_photon_intensity(
12271double 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
12283std::vector<std::pair<double, double> > pyne::gamma_conversion_intensity(
12284int 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
12296std::vector<std::pair<double, double> > pyne::gamma_total_intensity(
12297int 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
12309std::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
12321std::vector<std::pair<int, int> > pyne::gamma_from_to(double energy,
12322double 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
12335std::vector<std::pair<int, int> > pyne::gamma_parent_child(double energy,
12336double 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
12348std::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
12353std::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
12358std::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
12363std::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
12402std::map<std::pair<int, double>, pyne::alpha> pyne::alpha_data;
12403
12404template<> 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
12455std::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}
12459std::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
12464std::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
12469std::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
12474std::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
12479std::map<std::pair<int, double>, pyne::beta> pyne::beta_data;
12480
12481template<> 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
12533std::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
12538std::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
12543std::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
12548std::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
12553std::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
12558std::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
12564std::map<std::pair<int, double>, pyne::ecbp> pyne::ecbp_data;
12565
12566template<> 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
12625std::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
12630std::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
12635std::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
12640std::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
12645std::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
12650std::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
12655std::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
12660std::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 =
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
12703std::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
12724std::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
12743std::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
12764std::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 =
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
12843typedef 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;
12851 double sigma_f;
12856 double sigma_2n;
12857 double sigma_3n;
12858 double sigma_4n;
12860
12861std::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.
12865static 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
12939double 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
12965double pyne::simple_xs(int nuc, std::string rx, std::string energy) {
12966 return pyne::simple_xs(nucname::id(nuc), rxname::id(rx), energy);
12967}
12968double pyne::simple_xs(std::string nuc, int rx, std::string energy) {
12969 return pyne::simple_xs(nucname::id(nuc), rxname::id(rx), energy);
12970}
12971double pyne::simple_xs(std::string nuc, std::string rx, std::string energy) {
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/*
12990The JsonCpp library's source code, including accompanying documentation,
12991tests and demonstration applications, are licensed under the following
12992conditions...
12993
12994The author (Baptiste Lepilleur) explicitly disclaims copyright in all
12995jurisdictions which recognize such a disclaimer. In such jurisdictions,
12996this software is released into the Public Domain.
12997
12998In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
129992010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
13000released under the terms of the MIT License (see below).
13001
13002In jurisdictions which recognize Public Domain property, the user of this
13003software may choose to accept it either as 1) Public Domain, 2) under the
13004conditions of the MIT License (see below), or 3) under the terms of dual
13005Public Domain/MIT License conditions described here, as they choose.
13006
13007The MIT License is about as close to Public Domain as a license can get, and is
13008described in clear, concise terms at:
13009
13010 http://en.wikipedia.org/wiki/MIT_License
13011
13012The full text of the MIT License follows:
13013
13014========================================================================
13015Copyright (c) 2007-2010 Baptiste Lepilleur
13016
13017Permission is hereby granted, free of charge, to any person
13018obtaining a copy of this software and associated documentation
13019files (the "Software"), to deal in the Software without
13020restriction, including without limitation the rights to use, copy,
13021modify, merge, publish, distribute, sublicense, and/or sell copies
13022of the Software, and to permit persons to whom the Software is
13023furnished to do so, subject to the following conditions:
13024
13025The above copyright notice and this permission notice shall be
13026included in all copies or substantial portions of the Software.
13027
13028THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13029EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13030MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
13031NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
13032BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
13033ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
13034CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
13035SOFTWARE.
13036========================================================================
13037(END LICENSE TEXT)
13038
13039The MIT license is compatible with both the GPL and commercial
13040software, affording one all of the rights of Public Domain with the
13041minor nuisance of being required to keep the above copyright notice
13042and license text in the source code. Note also that by accepting the
13043Public Domain "license" you can re-license your copy using whatever
13044license 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
13083namespace Json {
13084
13085/// Converts a unicode code-point to UTF-8.
13086static inline std::string
13087codePointToUTF8(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[).
13117static inline bool
13119 return ch > 0 && ch <= 0x1F;
13120}
13121
13122
13123enum {
13124 /// Constant that specify the size of the buffer that must be passed to uintToString.
13125 uintToStringBufferSize = 3*sizeof(LargestUInt)+1
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 */
13137static 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
13186namespace Json {
13187
13188// Implementation of class Features
13189// ////////////////////////////////
13190
13191Features::Features()
13192 : allowComments_( true )
13193 , strictRoot_( false ) {
13194}
13195
13196
13197Features
13199 return Features();
13200}
13201
13202
13203Features
13205 Features features;
13206 features.allowComments_ = false;
13207 features.strictRoot_ = true;
13208 return features;
13209}
13210
13211// Implementation of class Reader
13212// ////////////////////////////////
13213
13214
13215static inline bool
13217 return c == c1 || c == c2 || c == c3 || c == c4;
13218}
13219
13220static inline bool
13222 return c == c1 || c == c2 || c == c3 || c == c4 || c == c5;
13223}
13224
13225
13226static 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
13244Reader::Reader( const Features &features )
13245 : features_( features ) {
13246}
13247
13248
13249bool
13250Reader::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
13260bool
13261Reader::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
13276bool
13277Reader::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
13316bool
13317Reader::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
13363void
13364Reader::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
13376bool
13377Reader::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
13385bool
13386Reader::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
13458void
13459Reader::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
13470bool
13471Reader::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
13484bool
13485Reader::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
13510void
13511Reader::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
13527bool
13528Reader::readCStyleComment() {
13529 while ( current_ != end_ ) {
13530 Char c = getNextChar();
13531 if ( c == '*' && *current_ == '/' )
13532 break;
13533 }
13534 return getNextChar() == '/';
13535}
13536
13537
13538bool
13539Reader::readCppStyleComment() {
13540 while ( current_ != end_ ) {
13541 Char c = getNextChar();
13542 if ( c == '\r' || c == '\n' )
13543 break;
13544 }
13545 return true;
13546}
13547
13548
13549void
13550Reader::readNumber() {
13551 while ( current_ != end_ ) {
13552 if ( !(*current_ >= '0' && *current_ <= '9') &&
13553 !in( *current_, '.', 'e', 'E', '+', '-' ) )
13554 break;
13555 ++current_;
13556 }
13557}
13558
13559bool
13560Reader::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
13573bool
13574Reader::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
13628bool
13629Reader::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
13666bool
13667Reader::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)
13685 : Value::maxLargestUInt;
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
13715bool
13716Reader::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
13738bool
13739Reader::decodeString( Token &token ) {
13740 std::string decoded;
13741 if ( !decodeString( token, decoded ) )
13742 return false;
13743 currentValue() = decoded;
13744 return true;
13745}
13746
13747
13748bool
13749Reader::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
13788bool
13789Reader::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
13812bool
13813Reader::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
13836bool
13837Reader::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
13849bool
13850Reader::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
13864bool
13865Reader::addErrorAndRecover( const std::string &message,
13866 Token &token,
13867 TokenType skipUntilToken ) {
13868 addError( message, token );
13869 return recoverFromError( skipUntilToken );
13870}
13871
13872
13873Value &
13874Reader::currentValue() {
13875 return *(nodes_.top());
13876}
13877
13878
13880Reader::getNextChar() {
13881 if ( current_ == end_ )
13882 return 0;
13883 return *current_++;
13884}
13885
13886
13887void
13888Reader::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
13912std::string
13913Reader::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
13923std::string
13927
13928
13929std::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
13945std::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
13982namespace 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 */
13996template<typename AllocatedType
13997 ,const unsigned int objectPerAllocation>
13999public:
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
14052private:
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
14109namespace 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
14133ValueIteratorBase::ValueIteratorBase( const Value::ObjectValues::iterator &current )
14134 : current_( current )
14135 , isNull_( false ) {
14136}
14137#else
14138ValueIteratorBase::ValueIteratorBase( const ValueInternalArray::IteratorState &state )
14139 : isArray_( true ) {
14140 iterator_.array_ = state;
14141}
14142
14143
14144ValueIteratorBase::ValueIteratorBase( const ValueInternalMap::IteratorState &state )
14145 : isArray_( false ) {
14146 iterator_.map_ = state;
14147}
14148#endif
14149
14150Value &
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
14162void
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
14174void
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
14220bool
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
14235void
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
14247Value
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
14269UInt
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
14284const 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
14307
14308
14309#ifndef JSON_VALUE_USE_INTERNAL_MAP
14310ValueConstIterator::ValueConstIterator( const Value::ObjectValues::iterator &current )
14311 : ValueIteratorBase( current ) {
14312}
14313#else
14314ValueConstIterator::ValueConstIterator( const ValueInternalArray::IteratorState &state )
14315 : ValueIteratorBase( state ) {
14316}
14317
14318ValueConstIterator::ValueConstIterator( const ValueInternalMap::IteratorState &state )
14319 : ValueIteratorBase( state ) {
14320}
14321#endif
14322
14323ValueConstIterator &
14325 copy( other );
14326 return *this;
14327}
14328
14329
14330// //////////////////////////////////////////////////////////////////
14331// //////////////////////////////////////////////////////////////////
14332// //////////////////////////////////////////////////////////////////
14333// class ValueIterator
14334// //////////////////////////////////////////////////////////////////
14335// //////////////////////////////////////////////////////////////////
14336// //////////////////////////////////////////////////////////////////
14337
14340
14341
14342#ifndef JSON_VALUE_USE_INTERNAL_MAP
14343ValueIterator::ValueIterator( const Value::ObjectValues::iterator &current )
14344 : ValueIteratorBase( current ) {
14345}
14346#else
14347ValueIterator::ValueIterator( const ValueInternalArray::IteratorState &state )
14348 : ValueIteratorBase( state ) {
14349}
14350
14351ValueIterator::ValueIterator( const ValueInternalMap::IteratorState &state )
14352 : ValueIteratorBase( state ) {
14353}
14354#endif
14355
14357 : ValueIteratorBase( other ) {
14358}
14359
14361 : ValueIteratorBase( other ) {
14362}
14363
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
14412namespace Json {
14413
14414const Value Value::null;
14415const Int Value::minInt = Int( ~(UInt(-1)/2) );
14416const Int Value::maxInt = Int( UInt(-1)/2 );
14417const UInt Value::maxUInt = UInt(-1);
14418const Int64 Value::minInt64 = Int64( ~(UInt64(-1)/2) );
14419const Int64 Value::maxInt64 = Int64( UInt64(-1)/2 );
14420const UInt64 Value::maxUInt64 = UInt64(-1);
14424
14425
14426/// Unknown size marker
14427static 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 */
14437static inline char *
14438duplicateStringValue( 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 */
14452static inline void
14453releaseStringValue( 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
14477namespace Json {
14478
14479// //////////////////////////////////////////////////////////////////
14480// //////////////////////////////////////////////////////////////////
14481// //////////////////////////////////////////////////////////////////
14482// class Value::CommentInfo
14483// //////////////////////////////////////////////////////////////////
14484// //////////////////////////////////////////////////////////////////
14485// //////////////////////////////////////////////////////////////////
14486
14487
14488Value::CommentInfo::CommentInfo()
14489 : comment_( 0 ) {
14490}
14491
14492Value::CommentInfo::~CommentInfo() {
14493 if ( comment_ )
14494 releaseStringValue( comment_ );
14495}
14496
14497
14498void
14499Value::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
14521Value::CZString::CZString( ArrayIndex index )
14522 : cstr_( 0 )
14523 , index_( index ) {
14524}
14525
14526Value::CZString::CZString( const char *cstr, DuplicationPolicy allocate )
14527 : cstr_( allocate == duplicate ? duplicateStringValue(cstr)
14528 : cstr )
14529 , index_( allocate ) {
14530}
14531
14532Value::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
14540Value::CZString::~CZString() {
14541 if ( cstr_ && index_ == duplicate )
14542 releaseStringValue( const_cast<char *>( cstr_ ) );
14543}
14544
14545void
14546Value::CZString::swap( CZString &other ) {
14547 std::swap( cstr_, other.cstr_ );
14548 std::swap( index_, other.index_ );
14549}
14550
14551Value::CZString &
14552Value::CZString::operator =( const CZString &other ) {
14553 CZString temp( other );
14554 swap( temp );
14555 return *this;
14556}
14557
14558bool
14559Value::CZString::operator<( const CZString &other ) const {
14560 if ( cstr_ )
14561 return strcmp( cstr_, other.cstr_ ) < 0;
14562 return index_ < other.index_;
14563}
14564
14565bool
14566Value::CZString::operator==( const CZString &other ) const {
14567 if ( cstr_ )
14568 return strcmp( cstr_, other.cstr_ ) == 0;
14569 return index_ == other.index_;
14570}
14571
14572
14574Value::CZString::index() const {
14575 return index_;
14576}
14577
14578
14579const char *
14580Value::CZString::c_str() const {
14581 return cstr_;
14582}
14583
14584bool
14585Value::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 */
14604Value::Value( ValueType type )
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
14692Value::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
14702Value::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
14714Value::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
14728Value::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
14754Value::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
14766Value::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
14777Value::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
14860Value &
14861Value::operator=( const Value &other ) {
14862 Value temp( other );
14863 swap( temp );
14864 return *this;
14865}
14866
14867void
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
14878ValueType
14880 return type_;
14881}
14882
14883
14884int
14885Value::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
14894bool
14895Value::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
14935bool
14936Value::operator <=( const Value &other ) const {
14937 return !(other < *this);
14938}
14939
14940bool
14941Value::operator >=( const Value &other ) const {
14942 return !(*this < other);
14943}
14944
14945bool
14946Value::operator >( const Value &other ) const {
14947 return other < *this;
14948}
14949
14950bool
14951Value::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
14992bool
14993Value::operator !=( const Value &other ) const
14994{
14995 return !( *this == other );
14996}
14997
14998const char *
15000 JSON_ASSERT( type_ == stringValue );
15001 return value_.string_;
15002}
15003
15004
15005std::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
15027CppTL::ConstString
15028Value::asConstString() const
15029{
15030 return CppTL::ConstString( asString().c_str() );
15031}
15032# endif
15033
15034
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
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
15148#if defined(JSON_NO_INT64)
15149 return asInt();
15150#else
15151 return asInt64();
15152#endif
15153}
15154
15155
15158#if defined(JSON_NO_INT64)
15159 return asUInt();
15160#else
15161 return asUInt64();
15162#endif
15163}
15164
15165
15166double
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
15193float
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
15220bool
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
15244bool
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
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
15327bool
15329 if ( isNull() || isArray() || isObject() )
15330 return size() == 0u;
15331 else
15332 return false;
15333}
15334
15335
15336bool
15338 return isNull();
15339}
15340
15341
15342void
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
15366void
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
15390Value &
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
15410Value &
15411Value::operator[]( int index ) {
15412 JSON_ASSERT( index >= 0 );
15413 return (*this)[ ArrayIndex(index) ];
15414}
15415
15416
15417const 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
15435const Value &
15436Value::operator[]( int index ) const {
15437 JSON_ASSERT( index >= 0 );
15438 return (*this)[ ArrayIndex(index) ];
15439}
15440
15441
15442Value &
15443Value::operator[]( const char *key ) {
15444 return resolveReference( key, false );
15445}
15446
15447
15448Value &
15449Value::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
15471Value
15473 const Value &defaultValue ) const {
15474 const Value *value = &((*this)[index]);
15475 return value == &null ? defaultValue : *value;
15476}
15477
15478
15479bool
15481 return index < size();
15482}
15483
15484
15485
15486const Value &
15487Value::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
15504Value &
15505Value::operator[]( const std::string &key ) {
15506 return (*this)[ key.c_str() ];
15507}
15508
15509
15510const Value &
15511Value::operator[]( const std::string &key ) const {
15512 return (*this)[ key.c_str() ];
15513}
15514
15515Value &
15517 return resolveReference( key, true );
15518}
15519
15520
15521# ifdef JSON_USE_CPPTL
15522Value &
15523Value::operator[]( const CppTL::ConstString &key ) {
15524 return (*this)[ key.c_str() ];
15525}
15526
15527
15528const Value &
15529Value::operator[]( const CppTL::ConstString &key ) const {
15530 return (*this)[ key.c_str() ];
15531}
15532# endif
15533
15534
15535Value &
15536Value::append( const Value &value ) {
15537 return (*this)[size()] = value;
15538}
15539
15540
15541Value
15542Value::get( const char *key,
15543 const Value &defaultValue ) const {
15544 const Value *value = &((*this)[key]);
15545 return value == &null ? defaultValue : *value;
15546}
15547
15548
15549Value
15550Value::get( const std::string &key,
15551 const Value &defaultValue ) const {
15552 return get( key.c_str(), defaultValue );
15553}
15554
15555Value
15556Value::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
15580Value
15581Value::removeMember( const std::string &key ) {
15582 return removeMember( key.c_str() );
15583}
15584
15585# ifdef JSON_USE_CPPTL
15586Value
15587Value::get( const CppTL::ConstString &key,
15588 const Value &defaultValue ) const {
15589 return get( key.c_str(), defaultValue );
15590}
15591# endif
15592
15593bool
15594Value::isMember( const char *key ) const {
15595 const Value *value = &((*this)[key]);
15596 return value != &null;
15597}
15598
15599
15600bool
15601Value::isMember( const std::string &key ) const {
15602 return isMember( key.c_str() );
15603}
15604
15605
15606# ifdef JSON_USE_CPPTL
15607bool
15608Value::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
15662bool
15664 return type_ == nullValue;
15665}
15666
15667
15668bool
15670 return type_ == booleanValue;
15671}
15672
15673
15674bool
15676 return type_ == intValue;
15677}
15678
15679
15680bool
15682 return type_ == uintValue;
15683}
15684
15685
15686bool
15688 return type_ == intValue
15689 || type_ == uintValue
15690 || type_ == booleanValue;
15691}
15692
15693
15694bool
15696 return type_ == realValue;
15697}
15698
15699
15700bool
15702 return isIntegral() || isDouble();
15703}
15704
15705
15706bool
15708 return type_ == stringValue;
15709}
15710
15711
15712bool
15714 return type_ == nullValue || type_ == arrayValue;
15715}
15716
15717
15718bool
15720 return type_ == nullValue || type_ == objectValue;
15721}
15722
15723
15724void
15725Value::setComment( const char *comment,
15726 CommentPlacement placement ) {
15727 if ( !comments_ )
15728 comments_ = new CommentInfo[numberOfCommentPlacement];
15729 comments_[placement].setComment( comment );
15730}
15731
15732
15733void
15734Value::setComment( const std::string &comment,
15735 CommentPlacement placement ) {
15736 setComment( comment.c_str(), placement );
15737}
15738
15739
15740bool
15742 return comments_ != 0 && comments_[placement].comment_ != 0;
15743}
15744
15745std::string
15747 if ( hasComment(placement) )
15748 return comments_[placement].comment_;
15749 return "";
15750}
15751
15752
15753std::string
15755 StyledWriter writer;
15756 return writer.write( *this );
15757}
15758
15759
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
15792Value::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
15901 : key_( key )
15902 , kind_( kindKey ) {
15903}
15904
15905
15906PathArgument::PathArgument( const std::string &key )
15907 : key_( key.c_str() )
15908 , kind_( kindKey ) {
15909}
15910
15911// class Path
15912// //////////////////////////////////////////////////////////////////
15913
15914Path::Path( const std::string &path,
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
15930void
15931Path::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
15966void
15967Path::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
15981void
15982Path::invalidPath( const std::string &path,
15983 int location ) {
15984 // Error: invalid path.
15985}
15986
15987
15988const Value &
15989Path::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
16012Value
16013Path::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
16034Value &
16035Path::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
16091namespace Json {
16092
16093static bool containsControlCharacter( const char* str ) {
16094 while ( *str ) {
16095 if ( isControlCharacter( *(str++) ) )
16096 return true;
16097 }
16098 return false;
16099}
16100
16101
16102std::string valueToString( LargestInt value ) {
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
16116std::string valueToString( LargestUInt value ) {
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
16126std::string valueToString( Int value )
16127{
16128 return valueToString( LargestInt(value) );
16129}
16130
16131
16132std::string valueToString( UInt value ) {
16133 return valueToString( LargestUInt(value) );
16134}
16135
16136#endif // # if defined(JSON_HAS_INT64)
16137
16138
16139std::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
16178std::string valueToString( bool value ) {
16179 return value ? "true" : "false";
16180}
16181
16182std::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// //////////////////////////////////////////////////////////////////
16243
16244
16245// Class FastWriter
16246// //////////////////////////////////////////////////////////////////
16247
16249 : yamlCompatiblityEnabled_( false ) {
16250}
16251
16252
16253void
16255 yamlCompatiblityEnabled_ = true;
16256}
16257
16258
16259std::string
16260FastWriter::write( const Value &root ) {
16261 document_ = "";
16262 writeValue( root );
16263 document_ += "\n";
16264 return document_;
16265}
16266
16267
16268void
16269FastWriter::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
16330std::string
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
16343void
16344StyledWriter::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
16399void
16400StyledWriter::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
16443bool
16444StyledWriter::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
16470void
16471StyledWriter::pushValue( const std::string &value ) {
16472 if ( addChildValues_ )
16473 childValues_.push_back( value );
16474 else
16475 document_ += value;
16476}
16477
16478
16479void
16480StyledWriter::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
16493void
16494StyledWriter::writeWithIndent( const std::string &value ) {
16495 writeIndent();
16496 document_ += value;
16497}
16498
16499
16500void
16501StyledWriter::indent() {
16502 indentString_ += std::string( indentSize_, ' ' );
16503}
16504
16505
16506void
16507StyledWriter::unindent() {
16508 assert( int(indentString_.size()) >= indentSize_ );
16509 indentString_.resize( indentString_.size() - indentSize_ );
16510}
16511
16512
16513void
16514StyledWriter::writeCommentBeforeValue( const Value &root ) {
16515 if ( !root.hasComment( commentBefore ) )
16516 return;
16517 document_ += normalizeEOL( root.getComment( commentBefore ) );
16518 document_ += "\n";
16519}
16520
16521
16522void
16523StyledWriter::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
16535bool
16536StyledWriter::hasCommentForValue( const Value &value ) {
16537 return value.hasComment( commentBefore )
16538 || value.hasComment( commentAfterOnSameLine )
16539 || value.hasComment( commentAfter );
16540}
16541
16542
16543std::string
16544StyledWriter::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
16573void
16574StyledStreamWriter::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
16586void
16587StyledStreamWriter::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
16641void
16642StyledStreamWriter::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
16686bool
16687StyledStreamWriter::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
16713void
16714StyledStreamWriter::pushValue( const std::string &value ) {
16715 if ( addChildValues_ )
16716 childValues_.push_back( value );
16717 else
16718 *document_ << value;
16719}
16720
16721
16722void
16723StyledStreamWriter::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
16740void
16741StyledStreamWriter::writeWithIndent( const std::string &value ) {
16742 writeIndent();
16743 *document_ << value;
16744}
16745
16746
16747void
16748StyledStreamWriter::indent() {
16749 indentString_ += indentation_;
16750}
16751
16752
16753void
16754StyledStreamWriter::unindent() {
16755 assert( indentString_.size() >= indentation_.size() );
16756 indentString_.resize( indentString_.size() - indentation_.size() );
16757}
16758
16759
16760void
16761StyledStreamWriter::writeCommentBeforeValue( const Value &root ) {
16762 if ( !root.hasComment( commentBefore ) )
16763 return;
16764 *document_ << normalizeEOL( root.getComment( commentBefore ) );
16765 *document_ << "\n";
16766}
16767
16768
16769void
16770StyledStreamWriter::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
16782bool
16783StyledStreamWriter::hasCommentForValue( const Value &value ) {
16784 return value.hasComment( commentBefore )
16785 || value.hasComment( commentAfterOnSameLine )
16786 || value.hasComment( commentAfter );
16787}
16788
16789
16790std::string
16791StyledStreamWriter::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
16810std::ostream& operator<<( std::ostream &sout, const Value &root ) {
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/**********************************************************************
16836Copyright (c) 2013 by Matt Swain <m.swain@me.com>
16837
16838The MIT License
16839
16840Permission is hereby granted, free of charge, to any person obtaining a copy
16841of this software and associated documentation files (the "Software"), to deal
16842in the Software without restriction, including without limitation the rights
16843to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16844copies of the Software, and to permit persons to whom the Software is
16845furnished to do so, subject to the following conditions:
16846
16847The above copyright notice and this permission notice shall be included in
16848all copies or substantial portions of the Software.
16849
16850THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16851IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16852FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16853AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16854LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16855OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
16856THE SOFTWARE.
16857
16858***********************************************************************/
16859
16860#ifndef PYNE_IS_AMALGAMATED
16861 #include "json.h"
16862 #include "jsoncustomwriter.h"
16863#endif
16864
16865namespace Json {
16866
16867CustomWriter::CustomWriter( std::string opencurly,
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
16887std::string
16889{
16890 document_ = "";
16891 indentString_ = "";
16892 writeValue( root, document_, false );
16893 document_ += "\n";
16894 return document_;
16895}
16896
16897
16898void
16899CustomWriter::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
17012void
17013CustomWriter::indent()
17014{
17015 indentString_ += indent_;
17016}
17017
17018
17019void
17020CustomWriter::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
17052template 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
17087void 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
17125void 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
17230void 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
17238void 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
17285void 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
17294void pyne::Material::write_hdf5(std::string filename, std::string datapath,
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
17514std::string pyne::Material::mcnp(std::string frac_type) {
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.
17609
17610///---------------------------------------------------------------------------//
17611/// not_fluka_builtin
17612///---------------------------------------------------------------------------//
17613/// Convenience function
17614/// This is written as a negative because that is what we care about
17615bool pyne::Material::not_fluka_builtin(std::string fluka_name) {
17616 return (fluka_builtin.find(fluka_name) == fluka_builtin.end());
17617}
17618
17619///---------------------------------------------------------------------------//
17620/// fluka
17621///---------------------------------------------------------------------------//
17622/// Main external call
17623std::string pyne::Material::fluka(int id, std::string frac_type) {
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
17681std::string pyne::Material::fluka_material_component(int fid, int nucid,
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
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
17734std::string pyne::Material::fluka_format_field(float field) {
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
17758std::string pyne::Material::fluka_compound_str(int id, std::string frac_type) {
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
17848void pyne::Material::from_text(char * filename) {
17849 std::string fname (filename);
17850 from_text(fname);
17851}
17852
17853
17854void pyne::Material::from_text(std::string filename) {
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
17905void pyne::Material::write_text(char * filename) {
17906 std::string fname (filename);
17907 write_text(fname);
17908}
17909
17910
17911void pyne::Material::write_text(std::string filename) {
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
17972void pyne::Material::from_json(char * filename) {
17973 std::string fname (filename);
17974 from_json(fname);
17975}
17976
17977void pyne::Material::from_json(std::string filename) {
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
17994void pyne::Material::write_json(char * filename) {
17995 std::string fname (filename);
17996 write_json(fname);
17997}
17998
17999void pyne::Material::write_json(std::string filename) {
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
18025pyne::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
18039pyne::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
18060pyne::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
18083
18084
18085
18086/*--- Method definitions ---*/
18087
18088
18089std::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.
18101std::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
18126 pyne::comp_map act;
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
18148pyne::comp_map pyne::Material::dose_per_g(std::string dose_type, int source) {
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
18303double 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
18312double 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
18338pyne::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
18351pyne::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
18373pyne::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
18404pyne::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
18440pyne::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
18531std::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
18545void 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
18563std::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
18576std::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
18595std::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
18614std::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
18624std::vector<std::pair<double, double> > pyne::Material::normalize_radioactivity(
18625std::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
18705namespace pyne_enr = pyne::enrichment;
18706
18707/*********************************/
18708/*** Enrichment Helper Classes ***/
18709/*********************************/
18710pyne_enr::Cascade::Cascade() {
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
18734pyne_enr::Cascade::~Cascade() {
18735}
18736
18737
18738void pyne_enr::Cascade::_reset_xjs() {
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
18758namespace 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
18789double 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
18793double 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
18797double 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
18801double 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
18805double 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
18809double 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
18813double pyne_enr::value_func(double x) {
18814 return (2 * x - 1) * log(x / (1 - x));
18815}
18816
18817double 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
18824double 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
18831double 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
18839double 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
18845void 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
29723namespace pyne {
29724namespace decayers {
29725
29726void 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
29747void 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
29760std::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
29791const 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
AllocatedType Type
Definition pyne.cc:14000
AllocatedType * allocate()
allocate space for an array of objectPerAllocation object.
Definition pyne.cc:14022
BatchAllocator(unsigned int objectsPerPage=255)
Definition pyne.cc:14002
void release(AllocatedType *object)
Release the object.
Definition pyne.cc:14046
virtual std::string write(const Value &root)
Definition pyne.cc:16888
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
Outputs a Value in JSON format without formatting (not human friendly).
Definition pyne.h:4488
void enableYAMLCompatibility()
Definition pyne.cc:16254
virtual std::string write(const Value &root)
Definition pyne.cc:16260
Configuration passed to reader and writer.
Definition pyne.h:3063
bool strictRoot_
true if root must be either an array or an object value. Default: false.
Definition pyne.h:3087
bool allowComments_
true if comments are allowed. Default: true.
Definition pyne.h:3084
static Features all()
A configuration that allows all features and assumes all strings are UTF-8.
Definition pyne.cc:13198
Features()
Initialize the configuration like JsonConfig::allFeatures;.
Definition pyne.cc:13191
static Features strictMode()
A configuration that is strictly compatible with the JSON specification.
Definition pyne.cc:13204
Experimental and untested: represents an element of the "path" to access a node.
Definition pyne.h:3611
Value & make(Value &root) const
Creates the "path" to access the specified node and returns a reference on the node.
Definition pyne.cc:16035
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
const Value & resolve(const Value &root) const
Definition pyne.cc:15989
Unserialize a JSON document into a Value.
Definition pyne.h:4247
Reader()
Constructs a Reader allowing all features for parsing.
Definition pyne.cc:13239
std::string getFormatedErrorMessages() const
Returns a user friendly string that list errors in the parsed document.
Definition pyne.cc:13924
char Char
Definition pyne.h:4249
const Char * Location
Definition pyne.h:4250
std::string getFormattedErrorMessages() const
Returns a user friendly string that list errors in the parsed document.
Definition pyne.cc:13930
bool parse(const std::string &document, Value &root, bool collectComments=true)
Read a Value from a JSON document.
Definition pyne.cc:13250
Lightweight wrapper to tag static string.
Definition pyne.h:3176
const char * c_str() const
Definition pyne.h:3188
Writes a Value in JSON format in a human friendly way, to a stream rather than to a string.
Definition pyne.h:4581
void write(std::ostream &out, const Value &root)
Serialize a Value in JSON format.
Definition pyne.cc:16574
StyledStreamWriter(std::string indentation="\t")
Definition pyne.cc:16566
Writes a Value in JSON format in a human friendly way.
Definition pyne.h:4524
virtual std::string write(const Value &root)
Serialize a Value in JSON format.
Definition pyne.cc:16331
const iterator for object and array value.
Definition pyne.h:4090
SelfType & operator=(const ValueIteratorBase &other)
Definition pyne.cc:14324
base class for Value iterators.
Definition pyne.h:4020
bool isEqual(const SelfType &other) const
Definition pyne.cc:14221
Value key() const
Return either the index or the member name of the referenced value as a Value.
Definition pyne.cc:14248
void copy(const SelfType &other)
Definition pyne.cc:14236
UInt index() const
Return the index of the referenced Value. -1 if it is not an arrayValue.
Definition pyne.cc:14270
const char * memberName() const
Return the member name of the referenced Value. "" if it is not an objectValue.
Definition pyne.cc:14285
Value & deref() const
Definition pyne.cc:14151
difference_type computeDistance(const SelfType &other) const
Definition pyne.cc:14187
Iterator for object and array value.
Definition pyne.h:4148
SelfType & operator=(const SelfType &other)
Definition pyne.cc:14365
Represents a JSON value.
Definition pyne.h:3225
const_iterator begin() const
Definition pyne.cc:15761
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
bool empty() const
Return true if empty array, empty object, or null; otherwise, false.
Definition pyne.cc:15328
std::map< CZString, Value > ObjectValues
Definition pyne.h:3297
Json::UInt UInt
Definition pyne.h:3235
UInt64 asUInt64() const
Definition pyne.cc:15120
ArrayIndex size() const
Number of values in array or object.
Definition pyne.cc:15295
bool isArray() const
Definition pyne.cc:15713
const char * asCString() const
Definition pyne.cc:14999
bool operator==(const Value &other) const
Definition pyne.cc:14951
Json::ArrayIndex ArrayIndex
Definition pyne.h:3243
Json::Int64 Int64
Definition pyne.h:3239
Json::LargestInt LargestInt
Definition pyne.h:3241
void setComment(const char *comment, CommentPlacement placement)
Comments must be //... or /* ... *‍/.
Definition pyne.cc:15725
ValueIterator iterator
Definition pyne.h:3233
std::string toStyledString() const
Definition pyne.cc:15754
const_iterator end() const
Definition pyne.cc:15792
bool operator<=(const Value &other) const
Definition pyne.cc:14936
static const Int64 maxInt64
Maximum signed 64 bits int value that can be stored in a Json::Value.
Definition pyne.h:3263
bool operator>(const Value &other) const
Definition pyne.cc:14946
bool isDouble() const
Definition pyne.cc:15695
void clear()
Remove all object members and array elements.
Definition pyne.cc:15343
static const Value null
Definition pyne.h:3245
Int asInt() const
Definition pyne.cc:15036
bool hasComment(CommentPlacement placement) const
Definition pyne.cc:15741
Json::LargestUInt LargestUInt
Definition pyne.h:3242
bool isString() const
Definition pyne.cc:15707
bool operator!() const
Return isNull()
Definition pyne.cc:15337
UInt asUInt() const
Definition pyne.cc:15064
Members getMemberNames() const
Return a list of the member names.
Definition pyne.cc:15614
Value & operator[](ArrayIndex index)
Access an array element (zero based index ).
Definition pyne.cc:15391
static const Int minInt
Minimum signed int value that can be stored in a Json::Value.
Definition pyne.h:3254
Value & append(const Value &value)
Append value to array at the end.
Definition pyne.cc:15536
static const Int64 minInt64
Minimum signed 64 bits int value that can be stored in a Json::Value.
Definition pyne.h:3261
bool operator!=(const Value &other) const
Definition pyne.cc:14993
static const LargestInt maxLargestInt
Maximum signed integer value that can be stored in a Json::Value.
Definition pyne.h:3249
Json::UInt64 UInt64
Definition pyne.h:3238
ValueType type() const
Definition pyne.cc:14879
bool isObject() const
Definition pyne.cc:15719
static const LargestUInt maxLargestUInt
Maximum unsigned integer value that can be stored in a Json::Value.
Definition pyne.h:3251
std::string getComment(CommentPlacement placement) const
Include delimiters and embedded newlines.
Definition pyne.cc:15746
static const Int maxInt
Maximum signed int value that can be stored in a Json::Value.
Definition pyne.h:3256
void resize(ArrayIndex size)
Resize the array to size elements.
Definition pyne.cc:15367
Value removeMember(const char *key)
Remove and return the named member.
Definition pyne.cc:15556
Int64 asInt64() const
Definition pyne.cc:15094
void swap(Value &other)
Swap values.
Definition pyne.cc:14868
bool operator<(const Value &other) const
Definition pyne.cc:14895
std::string asString() const
Definition pyne.cc:15006
LargestInt asLargestInt() const
Definition pyne.cc:15147
bool isBool() const
Definition pyne.cc:15669
bool isIntegral() const
Definition pyne.cc:15687
bool asBool() const
Definition pyne.cc:15221
bool isUInt() const
Definition pyne.cc:15681
bool isNull() const
Definition pyne.cc:15663
Json::Int Int
Definition pyne.h:3236
bool isValidIndex(ArrayIndex index) const
Return true if index < size().
Definition pyne.cc:15480
std::vector< std::string > Members
Definition pyne.h:3232
static const UInt maxUInt
Maximum unsigned int value that can be stored in a Json::Value.
Definition pyne.h:3258
LargestUInt asLargestUInt() const
Definition pyne.cc:15157
bool isMember(const char *key) const
Return true if the object has a member named key.
Definition pyne.cc:15594
Value(ValueType type=nullValue)
Create a default Value of the given type.
Definition pyne.cc:14604
Value & operator=(const Value &other)
Definition pyne.cc:14861
static const UInt64 maxUInt64
Maximum unsigned 64 bits int value that can be stored in a Json::Value.
Definition pyne.h:3265
int compare(const Value &other) const
Definition pyne.cc:14885
bool isConvertibleTo(ValueType other) const
Definition pyne.cc:15245
float asFloat() const
Definition pyne.cc:15194
static const LargestInt minLargestInt
Minimum signed integer value that can be stored in a Json::Value.
Definition pyne.h:3247
ValueConstIterator const_iterator
Definition pyne.h:3234
bool isNumeric() const
Definition pyne.cc:15701
double asDouble() const
Definition pyne.cc:15167
bool operator>=(const Value &other) const
Definition pyne.cc:14941
bool isInt() const
Definition pyne.cc:15675
virtual ~Writer()
Definition pyne.cc:16241
Custom exception for when an existing file is not in a valid HDF5 format.
Definition pyne.h:371
Custom exception for when a path is not found in an HDF5 file.
Definition pyne.h:435
Custom exception to be thrown in the event that a required file is not able to be found.
Definition pyne.h:219
Custom exception for declaring a simple_xs request invalid.
Definition pyne.h:2501
Custom exception for invalid HDF5 protocol numbers.
Definition pyne.h:5110
Material composed of nuclides.
Definition pyne.h:4801
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< 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
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
Material decay(double t)
Decays this material for a given amount of time in seconds.
Definition pyne.cc:18642
void norm_comp()
Normalizes the mass values in the composition.
Definition pyne.cc:17071
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
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::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
void from_text(char *filename)
Reads data from a plaintext file at filename into this Material instance.
Definition pyne.cc:17848
comp_map comp
composition, maps nuclides in id form to normalized mass weights.
Definition pyne.h:4953
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
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
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
Material del_mat(std::set< int > nucset)
Creates a new Material with the all nuclides in nucset removed.
Definition pyne.cc:18387
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
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_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
void load_json(Json::Value)
Loads a JSON instance tree into this Material.
Definition pyne.cc:17943
Material sub_mat(std::set< int > nucset)
Creates a sub-Material with only the nuclides present in nucset.
Definition pyne.cc:18323
Material sub_fp()
Creates a sub-Material of only fission products.
Definition pyne.cc:18521
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
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
Material operator*(double)
Multiplies a material's mass.
Definition pyne.cc:18681
std::string fluka(int id, std::string frac_type="mass")
Return a fluka input deck MATERIAL card as a string.
Definition pyne.cc:17623
double get_comp_sum()
Computes the total mass stored in the composition.
Definition pyne.cc:17060
void write_text(char *filename)
Writes the Material out to a simple plaintext file readable by from_text().
Definition pyne.cc:17905
double mass
mass (in arbitrary units) of the Material.
Definition pyne.h:4954
void from_json(char *filename)
Reads data from a JSON file at filename into this Material instance.
Definition pyne.cc:17972
Material collapse_elements(std::set< int > exception_znum)
Definition pyne.cc:18247
std::map< int, double > to_atom_frac()
Returns a mapping of the nuclides in this material to their atom fractions.
Definition pyne.cc:18531
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 _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
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
bool not_fluka_builtin(std::string fluka_name)
Convenience function to tell whether a given name needs a material card.
Definition pyne.cc:17615
Material operator+(double)
Adds mass to a material instance.
Definition pyne.cc:18651
Material sub_ma()
Creates a sub-Material of only minor actinides.
Definition pyne.cc:18514
Material sub_elem(int element)
Creates a sub-Material of only the given element.
Definition pyne.cc:18487
comp_map activity()
Calculates the activity of a material based on the composition and each nuclide's mass,...
Definition pyne.cc:18125
Material sub_tru()
Creates a sub-Material of only transuranics.
Definition pyne.cc:18507
void write_json(char *filename)
Writes the Material out to a JSON file.
Definition pyne.cc:17994
std::string fluka_format_field(float field)
Convenience function to format a single fluka field.
Definition pyne.cc:17734
std::string mcnp(std::string frac_type="mass")
Return an mcnp input deck record as a string.
Definition pyne.cc:17514
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
Material operator/(double)
Divides a material's mass.
Definition pyne.cc:18688
void normalize()
Normalizes the mass.
Definition pyne.cc:18105
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
Material sub_lan()
Creates a sub-Material of only lanthanides.
Definition pyne.cc:18494
Material sub_act()
Creates a sub-Material of only actinides.
Definition pyne.cc:18501
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
std::map< int, double > to_atom_dens()
Returns a mapping of the nuclides in this material to their atom densities.
Definition pyne.cc:18563
~Material()
default destructor
Definition pyne.cc:18081
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
std::string fluka_material_str(int id)
High level call to get details and call material_component(..)
Definition pyne.cc:17648
Json::Value dump_json()
Dumps the Material out to a JSON instance tree.
Definition pyne.cc:17958
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
Material()
empty constructor
Definition pyne.cc:18016
comp_map decay_heat()
Calculates the decay heat of a material based on the composition and each nuclide's mass,...
Definition pyne.cc:18136
A set of physical parameters used to specify an enrichment cascade.
Definition pyne.h:5151
double swu_per_feed
This is the SWU for 1 kg of Feed material.
Definition pyne.h:5180
double l_t_per_feed
Total flow rate per feed rate.
Definition pyne.h:5179
pyne::Material mat_tail
tails material
Definition pyne.h:5177
int j
Component to enrich (U-235), id form.
Definition pyne.h:5165
double x_feed_j
enrichment of the j-th isotope in the feed stream
Definition pyne.h:5171
double x_tail_j
enrichment of the j-th isotope in the tails stream
Definition pyne.h:5173
double alpha
stage separation factor
Definition pyne.h:5162
double N
number of enriching stages
Definition pyne.h:5168
double M
number of stripping stages
Definition pyne.h:5169
double Mstar
mass separation factor
Definition pyne.h:5163
double swu_per_prod
This is the SWU for 1 kg of Product material.
Definition pyne.h:5181
int k
Component to de-enrich, or strip (U-238), id form.
Definition pyne.h:5166
pyne::Material mat_feed
feed material
Definition pyne.h:5175
pyne::Material mat_prod
product material
Definition pyne.h:5176
double x_prod_j
enrichment of the j-th isotope in the product stream
Definition pyne.h:5172
Custom exception for when an enrichment solver iteration has produced a NaN.
Definition pyne.h:5348
Custom expection for declaring that a value represents one or more nuclides in one or more namig conv...
Definition pyne.h:938
Custom expection for declaring that a value does not follow a recognizable nuclide naming convention.
Definition pyne.h:870
Custom exception for declaring a value not to be of ambiquous reaction form.
Definition pyne.h:1693
Custom exception for declaring a value not to be a valid reaction.
Definition pyne.h:1604
Data access functions.
Definition pyne.h:2117
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
Top-level enrichment functionality.
JSON (JavaScript Object Notation).
Definition pyne.cc:13083
unsigned long long int UInt64
Definition pyne.h:2702
static bool isControlCharacter(char ch)
Returns true if ch is a control character (in range [0,32[).
Definition pyne.cc:13118
int Int
Definition pyne.h:2689
@ uintToStringBufferSize
Constant that specify the size of the buffer that must be passed to uintToString.
Definition pyne.cc:13125
Int64 LargestInt
Definition pyne.h:2704
std::istream & operator>>(std::istream &sin, Value &root)
Read from 'sin' into 'root'.
Definition pyne.cc:13945
static bool containsNewLine(Reader::Location begin, Reader::Location end)
Definition pyne.cc:13227
CommentPlacement
Definition pyne.h:3149
@ commentAfterOnSameLine
a comment just after a value on the same line
Definition pyne.h:3151
@ commentBefore
a comment placed on the line before a value
Definition pyne.h:3150
@ numberOfCommentPlacement
Definition pyne.h:3153
@ commentAfter
a comment on the line after a value (only make sense for root value)
Definition pyne.h:3152
static const unsigned int unknown
Unknown size marker.
Definition pyne.cc:14427
char UIntToStringBuffer[uintToStringBufferSize]
Definition pyne.cc:13129
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)
Definition pyne.cc:13216
ValueType
Type of the value held by a Value object.
Definition pyne.h:3137
@ booleanValue
bool value
Definition pyne.h:3143
@ nullValue
'null' value
Definition pyne.h:3138
@ stringValue
UTF-8 string value.
Definition pyne.h:3142
@ realValue
double value
Definition pyne.h:3141
@ arrayValue
array value (ordered list)
Definition pyne.h:3144
@ intValue
signed integer value
Definition pyne.h:3139
@ objectValue
object value (collection of name/value pairs).
Definition pyne.h:3145
@ uintValue
unsigned integer value
Definition pyne.h:3140
unsigned int UInt
Definition pyne.h:2690
unsigned int ArrayIndex
Definition pyne.h:2751
std::ostream & operator<<(std::ostream &sout, const Value &root)
Output using the StyledStreamWriter.
Definition pyne.cc:16810
std::string valueToString(LargestInt value)
Definition pyne.cc:16102
static bool containsControlCharacter(const char *str)
Definition pyne.cc:16093
std::string valueToQuotedString(const char *value)
Definition pyne.cc:16182
long long int Int64
Definition pyne.h:2701
static void uintToString(LargestUInt value, char *&current)
Converts an unsigned integer to string.
Definition pyne.cc:13138
static void releaseStringValue(char *value)
Free the string duplicated by duplicateStringValue().
Definition pyne.cc:14453
static char * duplicateStringValue(const char *value, unsigned int length=unknown)
Duplicates the specified string value.
Definition pyne.cc:14438
static std::string codePointToUTF8(unsigned int cp)
Converts a unicode code-point to UTF-8.
Definition pyne.cc:13087
UInt64 LargestUInt
Definition pyne.h:2705
static hid_t PYTABLES_COMPLEX128
The HDF5 id for a complex data type compatible with PyTables generated data.
Definition pyne.h:744
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
bool path_exists(hid_t h5file, std::string path)
Determines if a path exists in an hdf5 file.
Definition pyne.h:751
memcpy(dest, src, size)
enable_if< has_const_iterator< T >::value, typenameT::const_iterator >::type begin(const T &c)
enable_if< has_const_iterator< T >::value, typenameT::const_iterator >::type end(const T &c)
void decay_he(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition decay.cpp:54
std::map< int, double > decay(std::map< int, double > comp, double t)
Definition decay.cpp:154417
const int all_nucs[4141]
Definition decay.cpp:154781
void decay_h(double t, std::map< int, double >::const_iterator &it, std::map< int, double > &outcomp, double(&out)[4141])
Definition decay.cpp:26
Enrichment Component Class and Functions.
Definition pyne.h:5147
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
Cascade multicomponent(Cascade &orig_casc, char *solver, double tolerance=1.0E-7, int max_iter=100)
Definition pyne.cc:19113
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
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
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
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
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,...
Definition pyne.cc:18824
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
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
Cascade default_uranium_cascade
a cascade instance with default values for a uranium enrichment.
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,...
Definition pyne.cc:18817
double value_func(double x)
Computes the value or separation potential of an assay x.
Definition pyne.cc:18813
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,...
Definition pyne.cc:18805
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
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,...
Definition pyne.cc:18793
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
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
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
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
Cascade _fill_default_uranium_cascade()
Greates a cascade instance with default values for a uranium enrichment.
Definition pyne.cc:18760
name_t LAN_array[15]
array of lanthanide names
Definition pyne.cc:2622
int mcnp_to_id(int nuc)
Definition pyne.cc:3229
zz_group name_to_zz_group(name_group eg)
Converts a name group to a Z number group.
Definition pyne.cc:2613
zzname_t get_zz_fluka()
Creates standard nucid to fluka-name mapping.
Definition pyne.cc:2596
int id(int nuc)
Definition pyne.cc:2716
int alara_to_id(const char *nuc)
Definition pyne.cc:3596
std::map< int, int > state_id_map
Definition pyne.cc:438
name_zz_t get_fluka_zz()
Creates standard fluka-name to nucid mapping.
Definition pyne.cc:2444
name_t MA_array[10]
array of minor actinide names
Definition pyne.cc:2645
int znum(int nuc)
Definition pyne.cc:2983
int sza_to_id(int nuc)
Definition pyne.cc:3655
std::set< zz_t > zz_group
Z number grouping type (for testing containment)
Definition pyne.h:834
int zzzaaa(int nuc)
Definition pyne.cc:3066
name_group LAN
lanthanide name group
name_group MA
minor actinide name group
int map_nuc_ids[TOTAL_STATE_MAPS]
Definition pyne.cc:439
zz_group act
actinide Z number group
Definition pyne.cc:2633
int map_metastable[TOTAL_STATE_MAPS]
Definition pyne.cc:1361
int nist_to_id(const char *nuc)
Definition pyne.cc:3455
name_group ACT
actinide name group
int sza(int nuc)
Definition pyne.cc:3636
name_t FP_array[88]
array of fission product names
Definition pyne.cc:2653
zz_group lan
lanthanide Z number group
Definition pyne.cc:2626
std::map< name_t, zz_t > name_zz_t
name and Z num map type
Definition pyne.h:811
name_t ACT_array[15]
array of actinide names
Definition pyne.cc:2630
int cinder_to_id(int nuc)
Definition pyne.cc:3520
std::string alara(int nuc)
Definition pyne.cc:3544
int anum(int nuc)
Definition pyne.cc:2998
zzname_t zz_fluka
nucid to fluka-name map
Definition pyne.cc:2605
int zzzaaa_to_id(int nuc)
Definition pyne.cc:3085
zzname_t zz_name
Z num to name map.
Definition pyne.cc:2439
std::string name(int nuc)
Definition pyne.cc:2940
int cinder(int nuc)
Definition pyne.cc:3492
name_zz_t fluka_zz
fluka-name to nucid map
Definition pyne.cc:2592
int groundstate(int nuc)
Definition pyne.h:1364
name_group::iterator name_group_iter
name grouping iter type
Definition pyne.h:831
std::set< name_t > name_group
name grouping type (for testing containment)
Definition pyne.h:830
name_zz_t name_zz
name to Z num map
Definition pyne.cc:2426
name_zz_t get_name_zz()
Creates standard name to Z number mapping.
Definition pyne.cc:2306
int zzaaam_to_id(int nuc)
Definition pyne.cc:3049
int state_id_to_id(int state)
Definition pyne.cc:3683
bool isnuclide(std::string nuc)
Definition pyne.cc:2671
int fluka_to_id(std::string name)
Definition pyne.cc:3281
int mcnp(int nuc)
Definition pyne.cc:3197
bool iselement(std::string nuc)
Definition pyne.cc:2904
int serpent_to_id(const char *nuc)
Definition pyne.cc:3352
void _load_state_map()
Definition pyne.cc:3677
int id_to_state_id(int nuc_id)
Definition pyne.cc:3704
std::string zzllaaam(int nuc)
Definition pyne.cc:3102
name_t TRU_array[22]
array of transuranic names
Definition pyne.cc:2636
std::string nist(int nuc)
Definition pyne.cc:3402
int zzaaam(int nuc)
Definition pyne.cc:3028
name_group FP
fission product name group
std::string fluka(int nuc)
Definition pyne.cc:3269
zz_group ma
minor actinide Z number group
Definition pyne.cc:2649
int snum(int nuc)
Definition pyne.cc:3013
int zzllaaam_to_id(const char *nuc)
Definition pyne.cc:3142
std::map< zz_t, name_t > zzname_t
Z num to name map type.
Definition pyne.h:816
std::string serpent(int nuc)
Definition pyne.cc:3296
int ensdf_to_id(const char *nuc)
Definition pyne.cc:3734
name_group TRU
transuranic name group
name_zz_t::iterator name_zz_iter
name and Z num iter type
Definition pyne.h:812
std::string name_t
name type
Definition pyne.h:808
zzname_t get_zz_name()
Creates standard Z number to name mapping.
Definition pyne.cc:2430
zz_group tru
transuranic Z number group
Definition pyne.cc:2641
zz_group fp
fission product Z number group
Definition pyne.cc:2663
std::map< unsigned int, std::string > labels
Mapping from reaction ids to labels (short descriptions).
Definition pyne.cc:4349
std::map< unsigned int, std::string > docs
Mapping from reaction ids to documentation strings (long descriptions).
Definition pyne.cc:4350
std::set< std::string > names
Set of reaction names, must be valid variable names.
std::map< unsigned int, std::string > id_name
Mapping from reaction ids to reaction names.
Definition pyne.cc:4345
int child(int nuc, unsigned int rx, std::string z="n")
Definition pyne.cc:6594
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
std::string name(int n)
Definition pyne.cc:6367
void * _fill_maps()
A helper function to set the contents of the variables in this library.
Definition pyne.cc:4354
std::map< std::string, unsigned int > name_id
Mapping from reaction names to reaction ids.
Definition pyne.cc:4346
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::map< std::string, unsigned int > altnames
Mapping between alternative names for reactions and the reaction id.
Definition pyne.cc:4344
std::string doc(int x)
Definition pyne.cc:6557
std::string _names[NUM_RX_NAMES]
Raw array of reaction names.
Definition pyne.cc:3766
unsigned int hash(std::string s)
Definition pyne.cc:6323
std::map< unsigned int, unsigned int > id_mt
Mapping from reaction ids to MT numbers.
Definition pyne.cc:4347
int parent(int nuc, unsigned int rx, std::string z="n")
Definition pyne.cc:6621
unsigned int id(int x)
Definition pyne.cc:6409
void * _
A dummy variable used when calling _fill_maps().
Definition pyne.cc:6320
std::map< unsigned int, unsigned int > mt_id
Mapping from MT numbers to reaction names.
Definition pyne.cc:4348
unsigned int mt(int x)
Definition pyne.cc:6461
std::string label(int x)
Definition pyne.cc:6521
std::map< std::pair< std::string, unsigned int >, int > id_offset
Mapping from particle type and reaction ids to offsets.
Definition pyne.cc:4352
The 'pyne' namespace all PyNE functionality is included in.
Definition decay.cpp:23
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
double ext_air_dose(int nuc, int source)
Returns the dose factors of a nuclide.
Definition pyne.cc:10803
std::vector< int > ecbp_parent(double energy, double error)
Definition pyne.cc:12645
double coth(double x)
The hyperbolic cotangent function.
Definition pyne.cc:368
std::vector< std::pair< double, double > > gamma_xrays(int parent)
Definition pyne.cc:12363
std::map< std::pair< int, int >, ndsfpysub > ndsfpy_data
Definition pyne.cc:11268
std::string to_str(int t)
Definition pyne.cc:114
std::vector< int > beta_child(double energy, double error)
Definition pyne.cc:12553
std::vector< std::pair< double, double > > gamma_energy(int parent)
Definition pyne.cc:12232
const double cm2_per_barn
cm^2 per barn
Definition pyne.cc:10359
std::vector< std::pair< double, double > > xrays(int parent)
Definition pyne.cc:12764
std::map< std::string, std::string > data_checksums
Mapping from nodes in nuc_data.h5 to hashes of nodes.
Definition pyne.cc:10384
double ext_soil_dose(int nuc, int source)
Function for External Soil Dose Factors.
Definition pyne.cc:10852
std::vector< std::pair< double, double > > decay_half_lifes(int)
Definition pyne.cc:12092
int id_from_level(int nuc, double level)
Returns the nuc_id of an energy level.
Definition pyne.cc:11806
struct pyne::decay decay
a struct matching the '/decay/decays' table in nuc_data.h5.
std::map< int, xd_complex_t > b_incoherent_map
Mapping from nuclides in id form to their incoherent scattering length.
Definition pyne.cc:10978
double b(int nuc)
Computes the scattering length [cm] from the coherent and incoherent components.
Definition pyne.cc:11180
std::vector< double > decay_branch_ratios(int parent)
Definition pyne.cc:12110
double endftod_f(char *s)
Converts a string from ENDF format to a float.
Definition pyne.cc:202
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
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
std::vector< double > beta_endpoint_energy(int parent)
Definition pyne.cc:12533
std::map< std::pair< int, int >, double > wimsdfpy_data
Mapping from nuclides in id form to their scattering length.
Definition pyne.cc:11217
std::vector< std::pair< double, double > > ecbp_xrays(int parent)
Definition pyne.cc:12660
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::pair< double, double > decay_beta_branch_ratio(std::pair< int, int >)
Definition pyne.cc:12136
int metastable_id(int nuc, int m)
Returns the nuc_id of a metastable state.
Definition pyne.cc:11813
xd_complex_t b_incoherent(int nuc)
Finds the incoherent scattering length [cm] for a nuclide nuc.
Definition pyne.cc:11111
void use_fast_endftod()
Definition pyne.cc:212
void _load_wimsdfpy()
Loads the WIMSD fission product yield data from the nuc_data.h5 file into memory.
Definition pyne.cc:11220
std::vector< int > alpha_parent(double energy, double error)
Definition pyne.cc:12464
std::pair< double, double > decay_branch_ratio(std::pair< int, int >)
Definition pyne.cc:12104
const double sec_per_day
seconds per day
Definition pyne.cc:10360
void pyne_start()
Initializes PyNE based on environment.
Definition pyne.cc:81
const double pi
pi = 3.14159265359
Definition pyne.cc:10356
const double Bq_per_Ci
Becquerel per Curie.
Definition pyne.cc:10363
std::map< std::pair< int, double >, ecbp > ecbp_data
A vector of structs containing ecbp data for access in memory.
Definition pyne.cc:12564
const double N_A
Avogadro's Number.
Definition pyne.cc:10357
double endftod_cpp(char *s)
Converts a string from ENDF format to a float.
Definition pyne.cc:147
double dose_ratio(int nuc, int source)
Dose Ratio.
Definition pyne.cc:10826
void _load_q_val_map()
Loads the q_value data from the nuc_data.h5 file into memory.
Definition pyne.cc:10558
static std::string digits
string of digit characters
Definition pyne.h:124
std::vector< int > decay_data_children(int parent)
Definition pyne.cc:12080
std::vector< int > beta_parent(double energy, double error)
Definition pyne.cc:12548
std::pair< double, double > decay_photon_branch_ratio(std::pair< int, int >)
Definition pyne.cc:12115
std::map< std::pair< int, double >, alpha > alpha_data
A vector of structs containing alpha data for access in memory.
Definition pyne.cc:12402
struct pyne::ecbp ecbp
A struct matching the '/decay/ecbp' table in nuc_data.h5.
static std::string alphabet
uppercase alphabetical characters
Definition pyne.h:126
std::vector< std::pair< double, double > > decay_photon_branch_ratios(int parent)
Definition pyne.cc:12123
void _load_scattering_lengths()
Loads the scattering length data from the nuc_data.h5 file into memory.
Definition pyne.cc:10982
std::map< std::pair< int, double >, gamma > gamma_data
Definition pyne.cc:12157
double tanh(double x)
The hyperbolic tangent function.
Definition pyne.cc:364
std::map< std::pair< int, double >, beta > beta_data
A vector of structs containing beta data for access in memory.
Definition pyne.cc:12479
bool ternary_ge(int a, int b, int c)
Returns true if a <= b <= c and flase otherwise.
Definition pyne.cc:305
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
double to_dbl(std::string s)
Converts a valid string to a float using atof().
Definition pyne.cc:143
void _insert_abund_map()
function to create mapping from nuclides in id form to their natural abundances
Definition pyne.cc:10048
double decay_const(int nuc)
Returns the decay constant for a nuclide nuc.
Definition pyne.cc:11914
bool toggle_warnings()
Toggles warnings on and off.
Definition pyne.cc:408
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
std::string PYNE_DATA
Path to the directory containing the PyNE data.
Definition pyne.cc:78
void _insert_atomic_mass_map()
function to create mapping from nuclides in id form to their atomic masses
Definition pyne.cc:6693
std::map< std::string, std::string > get_data_checksums()
Definition pyne.cc:10371
struct pyne::material_data material_data
A stuct for reprensenting fundemental data in a material.
std::vector< double > beta_intensity(int parent)
Definition pyne.cc:12543
std::map< int, double > comp_map
Nuclide-mass composition map type.
Definition pyne.h:4776
std::string capitalize(std::string s)
Returns a capitalized copy of the string.
Definition pyne.cc:231
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
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
std::map< int, dose > doe_dose_map
Definition pyne.cc:10794
std::vector< double > alpha_intensity(int parent)
Definition pyne.cc:12459
const double MeV_per_MJ
MeV per MJ.
Definition pyne.cc:10362
static std::string words
string of all valid word characters for variable names in programing languages.
Definition pyne.h:128
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
xd_complex_t b_coherent(int nuc)
Finds the coherent scattering length [cm] for a nuclide nuc.
Definition pyne.cc:11039
std::vector< int > gamma_parent(double energy, double error)
Definition pyne.cc:12348
std::string last_char(std::string s)
Returns the last character in a string.
Definition pyne.cc:293
std::map< int, dose > genii_dose_map
Definition pyne.cc:10795
std::set< int > decay_children(int nuc)
Returns a set of decay children of a nuc.
Definition pyne.cc:11843
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 half_life(int nuc)
Returns the half life for a nuclide nuc.
Definition pyne.cc:11940
double dose_fluid_frac(int nuc, int source)
Fluid Fraction.
Definition pyne.cc:10902
std::vector< double > alpha_energy(int parent)
Definition pyne.cc:12455
double q_val(int nuc)
Returns the q_value of a nuclide nuc.
Definition pyne.cc:10602
struct pyne::gamma gamma
a struct matching the '/decay/gammas' table in nuc_data.h5.
std::string to_upper(std::string s)
switches endftod to fast cpp version
Definition pyne.cc:216
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
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 natural_abund(int nuc)
Returns the natural abundance of a nuclide nuc.
Definition pyne.cc:10502
std::map< int, double > natural_abund_map
Mapping from nuclides in id form to their natural abundances.
Definition pyne.h:1892
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
std::map< int, double > gamma_frac_map
Definition pyne.cc:10647
double(* endftod)(char *s)
endftod function pointer. defaults to fortran
Definition pyne.cc:210
struct pyne::beta beta
a struct matching the '/decay/betas' table in nuc_data.h5.
double atomic_mass(int nuc)
Returns the atomic mass of a nuclide nuc.
Definition pyne.cc:10440
bool USE_WARNINGS
Definition pyne.cc:406
bool contains_substring(std::string s, std::string substr)
Returns true if substr is in s.
Definition pyne.cc:311
std::vector< double > ecbp_average_energy(int parent)
Definition pyne.cc:12630
static int FLUKA_MAT_NUM
Definition pyne.h:4797
double inhale_dose(int nuc, int source)
Functions for Inhalation Dose Factors and Lung Model used to obtain dose factors.
Definition pyne.cc:10929
std::vector< double > beta_average_energy(int parent)
Definition pyne.cc:12538
std::map< int, double > b_map
Mapping from nuclides in id form to their scattering length.
Definition pyne.cc:10979
std::vector< std::pair< int, int > > gamma_parent_child(double energy, double error)
Definition pyne.cc:12335
std::ostream & operator<<(std::ostream &os, Material mat)
Converts a Material to a string stream representation for canonical writing.
std::vector< std::pair< int, int > > gamma_from_to(int parent)
Definition pyne.cc:12309
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
void warning(std::string s)
Prints a warning message.
Definition pyne.cc:413
double simple_xs(int nuc, int rx, std::string energy)
returns the microscopic cross section in barns for the specified nuclide, reaction,...
Definition pyne.cc:12939
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
int to_int(std::string s)
Converts a string of digits to an int using atoi().
Definition pyne.cc:139
std::string NUC_DATA_PATH
Path to the nuc_data.h5 file.
Definition pyne.h:1848
std::map< int, atomic > atomic_data_map
Definition pyne.cc:11571
std::vector< int > ecbp_child(double energy, double error)
Definition pyne.cc:12650
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
std::vector< int > gamma_child(double energy, double error)
Definition pyne.cc:12353
std::vector< double > ec_intensity(int parent)
Definition pyne.cc:12635
std::pair< double, double > decay_half_life(std::pair< int, int >)
Definition pyne.cc:12086
void _load_data< level_data >()
std::map< int, dose > epa_dose_map
Mapping from int to dose for 3 sources.
Definition pyne.cc:10793
const double barns_per_cm2
barns per cm^2
Definition pyne.cc:10358
bool file_exists(std::string strfilename)
Returns true if the file can be found.
Definition pyne.cc:376
std::map< int, double > atomic_mass_map
Mapping from nuclides in id form to their atomic masses.
Definition pyne.h:1857
std::vector< int > alpha_child(double energy, double error)
Definition pyne.cc:12469
std::string to_lower(std::string s)
Returns an all lower case copy of the string.
Definition pyne.cc:223
struct pyne::level_data level_data
a struct matching the '/decay/level_list' table in nuc_data.h5.
struct pyne::dose dose
A struct matching the dose factor table in nuc_data.h5.
struct pyne::alpha alpha
a struct matching the '/decay/alphas' table in nuc_data.h5.
double state_energy(int nuc)
Returns the excitation energy [MeV] of a nuc in a given state.
Definition pyne.cc:11889
struct pyne::atomic atomic
Structure for atomic data.
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
std::map< std::pair< int, unsigned int >, level_data > level_data_rx_map
Definition pyne.cc:11711
std::string remove_characters(std::string s, std::string chars)
Removes all characters in the string chars from s.
Definition pyne.cc:272
std::vector< double > bp_intensity(int parent)
Definition pyne.cc:12640
std::vector< std::pair< double, double > > gamma_conversion_intensity(int parent)
Definition pyne.cc:12283
double gamma_frac(int nuc)
Definition pyne.cc:10649
std::vector< std::pair< double, double > > decay_beta_branch_ratios(int parent)
Definition pyne.cc:12144
std::string dose_lung_model(int nuc, int source)
Lung Model.
Definition pyne.cc:10951
std::vector< std::pair< double, double > > gamma_total_intensity(int parent)
Definition pyne.cc:12296
std::vector< std::pair< double, double > > betas(int parent_state_id)
Definition pyne.cc:12743
comp_map::iterator comp_iter
Nuclide-mass composition iter type.
Definition pyne.h:4777
static std::string fluka_mat_strings[]
Definition pyne.h:4788
const double MeV_per_K
MeV per Kelvin.
Definition pyne.cc:10361
double branch_ratio(std::pair< int, int > from_to)
Returns the branch ratio for a parent/child nuclide pair.
Definition pyne.cc:11964
std::vector< std::pair< double, double > > gamma_photon_intensity(int parent)
Definition pyne.cc:12257
const double Ci_per_Bq
Curies per Becquerel.
Definition pyne.cc:10364
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
void _load_ndsfpy()
Loads the NDS fission product yield data from the nuc_data.h5 file into memory.
Definition pyne.cc:11271
std::vector< std::pair< double, double > > alphas(int parent_state_id)
Definition pyne.cc:12724
std::vector< std::pair< double, double > > calculate_xray_data(int z, double k_conv, double l_conv)
Definition pyne.cc:11666
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
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
#define JSON_ASSERT(condition)
Definition pyne.cc:14408
std::set< std::string > fluka_builtin(pyne::fluka_mat_strings, pyne::fluka_mat_strings+pyne::FLUKA_MAT_NUM)
------------------------------------------------------------------------—// Create a set out of the s...
std::string source_string(int source)
Functions for Source Location in nuc_data.h5 and related Map Pointers.
Definition pyne.cc:10765
static void _load_simple_xs_map(std::string energy)
Definition pyne.cc:12865
#define JSON_FAIL_MESSAGE(message)
Definition pyne.cc:14409
#define TOTAL_STATE_MAPS
Definition pyne.cc:437
struct simple_xs simple_xs
#define JSON_ASSERT_UNREACHABLE
Definition pyne.cc:14407
std::map< int, pyne::dose > & dose_source_map(int source)
Definition pyne.cc:10777
#define JSON_ASSERT_MESSAGE(condition, message)
Definition pyne.cc:14410
#define isnan(x)
Definition pyne.h:102
#define NUM_RX_NAMES
Number of reactions supported by default.
Definition pyne.h:1419
a struct matching the '/decay/alphas' table in nuc_data.h5.
Definition pyne.h:2380
a struct matching the atomic_mass table in nuc_data.h5.
Definition pyne.h:1860
Structure for atomic data.
Definition pyne.h:2154
a struct matching the '/decay/betas' table in nuc_data.h5.
Definition pyne.h:2405
a struct matching the '/decay/decays' table in nuc_data.h5.
Definition pyne.h:2284
A struct matching the dose factor table in nuc_data.h5.
Definition pyne.h:1944
int nuc
nuclide in id form
Definition pyne.h:1945
A struct matching the '/decay/ecbp' table in nuc_data.h5.
Definition pyne.h:2432
a struct matching the '/decay/gammas' table in nuc_data.h5.
Definition pyne.h:2322
a struct matching the '/decay/level_list' table in nuc_data.h5.
Definition pyne.h:2195
int nuc_id
state id of nuclide
Definition pyne.h:2196
A stuct for reprensenting fundemental data in a material.
Definition pyne.h:5101
double mass
material mass
Definition pyne.h:5102
a struct matching the '/neutron/nds_fission_product' table in nuc_data.h5
Definition pyne.h:2065
double yield_fast_err
fast yield error [fraction]
Definition pyne.h:2071
double yield_14MeV_err
14 MeV yield error [fraction]
Definition pyne.h:2073
double yield_14MeV
14 MeV yield [fraction]
Definition pyne.h:2072
double yield_thermal
thermal yield [fraction]
Definition pyne.h:2068
double yield_fast
fast yield [fraction]
Definition pyne.h:2070
double yield_thermal_err
thermal yield error [fraction]
Definition pyne.h:2069
a struct for the nds data for fpyield
Definition pyne.h:2077
double yield_14MeV_err
14 MeV yield error [fraction]
Definition pyne.h:2083
double yield_thermal
thermal yield [fraction]
Definition pyne.h:2078
double yield_thermal_err
thermal yield error [fraction]
Definition pyne.h:2079
double yield_fast_err
fast yield error [fraction]
Definition pyne.h:2081
double yield_fast
fast yield [fraction]
Definition pyne.h:2080
double yield_14MeV
14 MeV yield [fraction]
Definition pyne.h:2082
a struct matching the q_value table in nuc_data.h5.
Definition pyne.h:1917
int nuc
nuclide in id form
Definition pyne.h:1918
a struct matching the '/neutron/scattering_lengths' table in nuc_data.h5.
Definition pyne.h:2005
int nuc
nuclide in id form
Definition pyne.h:2006
a struct matching the '/neutron/wimsd_fission_product' table in nuc_data.h5.
Definition pyne.h:2055
double yields
fission product yield, fraction [unitless]
Definition pyne.h:2058
double sigma_deut
Definition pyne.cc:12854
double sigma_4n
Definition pyne.cc:12858
double sigma_f
Definition pyne.cc:12851
double sigma_gamma
Definition pyne.cc:12850
double sigma_3n
Definition pyne.cc:12857
double sigma_t
Definition pyne.cc:12845
int nuc
Definition pyne.cc:12844
double sigma_i
Definition pyne.cc:12848
double sigma_2n
Definition pyne.cc:12856
double sigma_a
Definition pyne.cc:12849
double sigma_s
Definition pyne.cc:12846
double sigma_alpha
Definition pyne.cc:12852
double sigma_trit
Definition pyne.cc:12855
double sigma_e
Definition pyne.cc:12847
double sigma_proton
Definition pyne.cc:12853
complex type struct, matching PyTables definition
Definition pyne.h:316
double im
imaginary part
Definition pyne.h:318
double re
real part
Definition pyne.h:317