mathjs.js 1.4 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026
  1. import {
  2. _extends
  3. } from "./chunk-KBUAZBQ3.js";
  4. import {
  5. _defineProperty
  6. } from "./chunk-WNF2IDJY.js";
  7. import {
  8. __commonJS,
  9. __export,
  10. __toESM
  11. } from "./chunk-4EOJPDL2.js";
  12. // node_modules/complex.js/complex.js
  13. var require_complex = __commonJS({
  14. "node_modules/complex.js/complex.js"(exports, module) {
  15. (function(root) {
  16. "use strict";
  17. var cosh4 = Math.cosh || function(x) {
  18. return Math.abs(x) < 1e-9 ? 1 - x : (Math.exp(x) + Math.exp(-x)) * 0.5;
  19. };
  20. var sinh4 = Math.sinh || function(x) {
  21. return Math.abs(x) < 1e-9 ? x : (Math.exp(x) - Math.exp(-x)) * 0.5;
  22. };
  23. var cosm1 = function(x) {
  24. var b = Math.PI / 4;
  25. if (-b > x || x > b) {
  26. return Math.cos(x) - 1;
  27. }
  28. var xx = x * x;
  29. return xx * (xx * (xx * (xx * (xx * (xx * (xx * (xx / 20922789888e3 - 1 / 87178291200) + 1 / 479001600) - 1 / 3628800) + 1 / 40320) - 1 / 720) + 1 / 24) - 1 / 2);
  30. };
  31. var hypot3 = function(x, y) {
  32. var a = Math.abs(x);
  33. var b = Math.abs(y);
  34. if (a < 3e3 && b < 3e3) {
  35. return Math.sqrt(a * a + b * b);
  36. }
  37. if (a < b) {
  38. a = b;
  39. b = x / y;
  40. } else {
  41. b = y / x;
  42. }
  43. return a * Math.sqrt(1 + b * b);
  44. };
  45. var parser_exit = function() {
  46. throw SyntaxError("Invalid Param");
  47. };
  48. function logHypot(a, b) {
  49. var _a = Math.abs(a);
  50. var _b = Math.abs(b);
  51. if (a === 0) {
  52. return Math.log(_b);
  53. }
  54. if (b === 0) {
  55. return Math.log(_a);
  56. }
  57. if (_a < 3e3 && _b < 3e3) {
  58. return Math.log(a * a + b * b) * 0.5;
  59. }
  60. a = a / 2;
  61. b = b / 2;
  62. return 0.5 * Math.log(a * a + b * b) + Math.LN2;
  63. }
  64. var parse2 = function(a, b) {
  65. var z = { "re": 0, "im": 0 };
  66. if (a === void 0 || a === null) {
  67. z["re"] = z["im"] = 0;
  68. } else if (b !== void 0) {
  69. z["re"] = a;
  70. z["im"] = b;
  71. } else
  72. switch (typeof a) {
  73. case "object":
  74. if ("im" in a && "re" in a) {
  75. z["re"] = a["re"];
  76. z["im"] = a["im"];
  77. } else if ("abs" in a && "arg" in a) {
  78. if (!Number.isFinite(a["abs"]) && Number.isFinite(a["arg"])) {
  79. return Complex3["INFINITY"];
  80. }
  81. z["re"] = a["abs"] * Math.cos(a["arg"]);
  82. z["im"] = a["abs"] * Math.sin(a["arg"]);
  83. } else if ("r" in a && "phi" in a) {
  84. if (!Number.isFinite(a["r"]) && Number.isFinite(a["phi"])) {
  85. return Complex3["INFINITY"];
  86. }
  87. z["re"] = a["r"] * Math.cos(a["phi"]);
  88. z["im"] = a["r"] * Math.sin(a["phi"]);
  89. } else if (a.length === 2) {
  90. z["re"] = a[0];
  91. z["im"] = a[1];
  92. } else {
  93. parser_exit();
  94. }
  95. break;
  96. case "string":
  97. z["im"] = /* void */
  98. z["re"] = 0;
  99. var tokens = a.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);
  100. var plus = 1;
  101. var minus = 0;
  102. if (tokens === null) {
  103. parser_exit();
  104. }
  105. for (var i2 = 0; i2 < tokens.length; i2++) {
  106. var c = tokens[i2];
  107. if (c === " " || c === " " || c === "\n") {
  108. } else if (c === "+") {
  109. plus++;
  110. } else if (c === "-") {
  111. minus++;
  112. } else if (c === "i" || c === "I") {
  113. if (plus + minus === 0) {
  114. parser_exit();
  115. }
  116. if (tokens[i2 + 1] !== " " && !isNaN(tokens[i2 + 1])) {
  117. z["im"] += parseFloat((minus % 2 ? "-" : "") + tokens[i2 + 1]);
  118. i2++;
  119. } else {
  120. z["im"] += parseFloat((minus % 2 ? "-" : "") + "1");
  121. }
  122. plus = minus = 0;
  123. } else {
  124. if (plus + minus === 0 || isNaN(c)) {
  125. parser_exit();
  126. }
  127. if (tokens[i2 + 1] === "i" || tokens[i2 + 1] === "I") {
  128. z["im"] += parseFloat((minus % 2 ? "-" : "") + c);
  129. i2++;
  130. } else {
  131. z["re"] += parseFloat((minus % 2 ? "-" : "") + c);
  132. }
  133. plus = minus = 0;
  134. }
  135. }
  136. if (plus + minus > 0) {
  137. parser_exit();
  138. }
  139. break;
  140. case "number":
  141. z["im"] = 0;
  142. z["re"] = a;
  143. break;
  144. default:
  145. parser_exit();
  146. }
  147. if (isNaN(z["re"]) || isNaN(z["im"])) {
  148. }
  149. return z;
  150. };
  151. function Complex3(a, b) {
  152. if (!(this instanceof Complex3)) {
  153. return new Complex3(a, b);
  154. }
  155. var z = parse2(a, b);
  156. this["re"] = z["re"];
  157. this["im"] = z["im"];
  158. }
  159. Complex3.prototype = {
  160. "re": 0,
  161. "im": 0,
  162. /**
  163. * Calculates the sign of a complex number, which is a normalized complex
  164. *
  165. * @returns {Complex}
  166. */
  167. "sign": function() {
  168. var abs3 = this["abs"]();
  169. return new Complex3(
  170. this["re"] / abs3,
  171. this["im"] / abs3
  172. );
  173. },
  174. /**
  175. * Adds two complex numbers
  176. *
  177. * @returns {Complex}
  178. */
  179. "add": function(a, b) {
  180. var z = new Complex3(a, b);
  181. if (this["isInfinite"]() && z["isInfinite"]()) {
  182. return Complex3["NAN"];
  183. }
  184. if (this["isInfinite"]() || z["isInfinite"]()) {
  185. return Complex3["INFINITY"];
  186. }
  187. return new Complex3(
  188. this["re"] + z["re"],
  189. this["im"] + z["im"]
  190. );
  191. },
  192. /**
  193. * Subtracts two complex numbers
  194. *
  195. * @returns {Complex}
  196. */
  197. "sub": function(a, b) {
  198. var z = new Complex3(a, b);
  199. if (this["isInfinite"]() && z["isInfinite"]()) {
  200. return Complex3["NAN"];
  201. }
  202. if (this["isInfinite"]() || z["isInfinite"]()) {
  203. return Complex3["INFINITY"];
  204. }
  205. return new Complex3(
  206. this["re"] - z["re"],
  207. this["im"] - z["im"]
  208. );
  209. },
  210. /**
  211. * Multiplies two complex numbers
  212. *
  213. * @returns {Complex}
  214. */
  215. "mul": function(a, b) {
  216. var z = new Complex3(a, b);
  217. if (this["isInfinite"]() && z["isZero"]() || this["isZero"]() && z["isInfinite"]()) {
  218. return Complex3["NAN"];
  219. }
  220. if (this["isInfinite"]() || z["isInfinite"]()) {
  221. return Complex3["INFINITY"];
  222. }
  223. if (z["im"] === 0 && this["im"] === 0) {
  224. return new Complex3(this["re"] * z["re"], 0);
  225. }
  226. return new Complex3(
  227. this["re"] * z["re"] - this["im"] * z["im"],
  228. this["re"] * z["im"] + this["im"] * z["re"]
  229. );
  230. },
  231. /**
  232. * Divides two complex numbers
  233. *
  234. * @returns {Complex}
  235. */
  236. "div": function(a, b) {
  237. var z = new Complex3(a, b);
  238. if (this["isZero"]() && z["isZero"]() || this["isInfinite"]() && z["isInfinite"]()) {
  239. return Complex3["NAN"];
  240. }
  241. if (this["isInfinite"]() || z["isZero"]()) {
  242. return Complex3["INFINITY"];
  243. }
  244. if (this["isZero"]() || z["isInfinite"]()) {
  245. return Complex3["ZERO"];
  246. }
  247. a = this["re"];
  248. b = this["im"];
  249. var c = z["re"];
  250. var d = z["im"];
  251. var t, x;
  252. if (0 === d) {
  253. return new Complex3(a / c, b / c);
  254. }
  255. if (Math.abs(c) < Math.abs(d)) {
  256. x = c / d;
  257. t = c * x + d;
  258. return new Complex3(
  259. (a * x + b) / t,
  260. (b * x - a) / t
  261. );
  262. } else {
  263. x = d / c;
  264. t = d * x + c;
  265. return new Complex3(
  266. (a + b * x) / t,
  267. (b - a * x) / t
  268. );
  269. }
  270. },
  271. /**
  272. * Calculate the power of two complex numbers
  273. *
  274. * @returns {Complex}
  275. */
  276. "pow": function(a, b) {
  277. var z = new Complex3(a, b);
  278. a = this["re"];
  279. b = this["im"];
  280. if (z["isZero"]()) {
  281. return Complex3["ONE"];
  282. }
  283. if (z["im"] === 0) {
  284. if (b === 0 && a > 0) {
  285. return new Complex3(Math.pow(a, z["re"]), 0);
  286. } else if (a === 0) {
  287. switch ((z["re"] % 4 + 4) % 4) {
  288. case 0:
  289. return new Complex3(Math.pow(b, z["re"]), 0);
  290. case 1:
  291. return new Complex3(0, Math.pow(b, z["re"]));
  292. case 2:
  293. return new Complex3(-Math.pow(b, z["re"]), 0);
  294. case 3:
  295. return new Complex3(0, -Math.pow(b, z["re"]));
  296. }
  297. }
  298. }
  299. if (a === 0 && b === 0 && z["re"] > 0 && z["im"] >= 0) {
  300. return Complex3["ZERO"];
  301. }
  302. var arg2 = Math.atan2(b, a);
  303. var loh = logHypot(a, b);
  304. a = Math.exp(z["re"] * loh - z["im"] * arg2);
  305. b = z["im"] * loh + z["re"] * arg2;
  306. return new Complex3(
  307. a * Math.cos(b),
  308. a * Math.sin(b)
  309. );
  310. },
  311. /**
  312. * Calculate the complex square root
  313. *
  314. * @returns {Complex}
  315. */
  316. "sqrt": function() {
  317. var a = this["re"];
  318. var b = this["im"];
  319. var r = this["abs"]();
  320. var re2, im2;
  321. if (a >= 0) {
  322. if (b === 0) {
  323. return new Complex3(Math.sqrt(a), 0);
  324. }
  325. re2 = 0.5 * Math.sqrt(2 * (r + a));
  326. } else {
  327. re2 = Math.abs(b) / Math.sqrt(2 * (r - a));
  328. }
  329. if (a <= 0) {
  330. im2 = 0.5 * Math.sqrt(2 * (r - a));
  331. } else {
  332. im2 = Math.abs(b) / Math.sqrt(2 * (r + a));
  333. }
  334. return new Complex3(re2, b < 0 ? -im2 : im2);
  335. },
  336. /**
  337. * Calculate the complex exponent
  338. *
  339. * @returns {Complex}
  340. */
  341. "exp": function() {
  342. var tmp = Math.exp(this["re"]);
  343. if (this["im"] === 0) {
  344. }
  345. return new Complex3(
  346. tmp * Math.cos(this["im"]),
  347. tmp * Math.sin(this["im"])
  348. );
  349. },
  350. /**
  351. * Calculate the complex exponent and subtracts one.
  352. *
  353. * This may be more accurate than `Complex(x).exp().sub(1)` if
  354. * `x` is small.
  355. *
  356. * @returns {Complex}
  357. */
  358. "expm1": function() {
  359. var a = this["re"];
  360. var b = this["im"];
  361. return new Complex3(
  362. Math.expm1(a) * Math.cos(b) + cosm1(b),
  363. Math.exp(a) * Math.sin(b)
  364. );
  365. },
  366. /**
  367. * Calculate the natural log
  368. *
  369. * @returns {Complex}
  370. */
  371. "log": function() {
  372. var a = this["re"];
  373. var b = this["im"];
  374. if (b === 0 && a > 0) {
  375. }
  376. return new Complex3(
  377. logHypot(a, b),
  378. Math.atan2(b, a)
  379. );
  380. },
  381. /**
  382. * Calculate the magnitude of the complex number
  383. *
  384. * @returns {number}
  385. */
  386. "abs": function() {
  387. return hypot3(this["re"], this["im"]);
  388. },
  389. /**
  390. * Calculate the angle of the complex number
  391. *
  392. * @returns {number}
  393. */
  394. "arg": function() {
  395. return Math.atan2(this["im"], this["re"]);
  396. },
  397. /**
  398. * Calculate the sine of the complex number
  399. *
  400. * @returns {Complex}
  401. */
  402. "sin": function() {
  403. var a = this["re"];
  404. var b = this["im"];
  405. return new Complex3(
  406. Math.sin(a) * cosh4(b),
  407. Math.cos(a) * sinh4(b)
  408. );
  409. },
  410. /**
  411. * Calculate the cosine
  412. *
  413. * @returns {Complex}
  414. */
  415. "cos": function() {
  416. var a = this["re"];
  417. var b = this["im"];
  418. return new Complex3(
  419. Math.cos(a) * cosh4(b),
  420. -Math.sin(a) * sinh4(b)
  421. );
  422. },
  423. /**
  424. * Calculate the tangent
  425. *
  426. * @returns {Complex}
  427. */
  428. "tan": function() {
  429. var a = 2 * this["re"];
  430. var b = 2 * this["im"];
  431. var d = Math.cos(a) + cosh4(b);
  432. return new Complex3(
  433. Math.sin(a) / d,
  434. sinh4(b) / d
  435. );
  436. },
  437. /**
  438. * Calculate the cotangent
  439. *
  440. * @returns {Complex}
  441. */
  442. "cot": function() {
  443. var a = 2 * this["re"];
  444. var b = 2 * this["im"];
  445. var d = Math.cos(a) - cosh4(b);
  446. return new Complex3(
  447. -Math.sin(a) / d,
  448. sinh4(b) / d
  449. );
  450. },
  451. /**
  452. * Calculate the secant
  453. *
  454. * @returns {Complex}
  455. */
  456. "sec": function() {
  457. var a = this["re"];
  458. var b = this["im"];
  459. var d = 0.5 * cosh4(2 * b) + 0.5 * Math.cos(2 * a);
  460. return new Complex3(
  461. Math.cos(a) * cosh4(b) / d,
  462. Math.sin(a) * sinh4(b) / d
  463. );
  464. },
  465. /**
  466. * Calculate the cosecans
  467. *
  468. * @returns {Complex}
  469. */
  470. "csc": function() {
  471. var a = this["re"];
  472. var b = this["im"];
  473. var d = 0.5 * cosh4(2 * b) - 0.5 * Math.cos(2 * a);
  474. return new Complex3(
  475. Math.sin(a) * cosh4(b) / d,
  476. -Math.cos(a) * sinh4(b) / d
  477. );
  478. },
  479. /**
  480. * Calculate the complex arcus sinus
  481. *
  482. * @returns {Complex}
  483. */
  484. "asin": function() {
  485. var a = this["re"];
  486. var b = this["im"];
  487. var t1 = new Complex3(
  488. b * b - a * a + 1,
  489. -2 * a * b
  490. )["sqrt"]();
  491. var t2 = new Complex3(
  492. t1["re"] - b,
  493. t1["im"] + a
  494. )["log"]();
  495. return new Complex3(t2["im"], -t2["re"]);
  496. },
  497. /**
  498. * Calculate the complex arcus cosinus
  499. *
  500. * @returns {Complex}
  501. */
  502. "acos": function() {
  503. var a = this["re"];
  504. var b = this["im"];
  505. var t1 = new Complex3(
  506. b * b - a * a + 1,
  507. -2 * a * b
  508. )["sqrt"]();
  509. var t2 = new Complex3(
  510. t1["re"] - b,
  511. t1["im"] + a
  512. )["log"]();
  513. return new Complex3(Math.PI / 2 - t2["im"], t2["re"]);
  514. },
  515. /**
  516. * Calculate the complex arcus tangent
  517. *
  518. * @returns {Complex}
  519. */
  520. "atan": function() {
  521. var a = this["re"];
  522. var b = this["im"];
  523. if (a === 0) {
  524. if (b === 1) {
  525. return new Complex3(0, Infinity);
  526. }
  527. if (b === -1) {
  528. return new Complex3(0, -Infinity);
  529. }
  530. }
  531. var d = a * a + (1 - b) * (1 - b);
  532. var t1 = new Complex3(
  533. (1 - b * b - a * a) / d,
  534. -2 * a / d
  535. ).log();
  536. return new Complex3(-0.5 * t1["im"], 0.5 * t1["re"]);
  537. },
  538. /**
  539. * Calculate the complex arcus cotangent
  540. *
  541. * @returns {Complex}
  542. */
  543. "acot": function() {
  544. var a = this["re"];
  545. var b = this["im"];
  546. if (b === 0) {
  547. return new Complex3(Math.atan2(1, a), 0);
  548. }
  549. var d = a * a + b * b;
  550. return d !== 0 ? new Complex3(
  551. a / d,
  552. -b / d
  553. ).atan() : new Complex3(
  554. a !== 0 ? a / 0 : 0,
  555. b !== 0 ? -b / 0 : 0
  556. ).atan();
  557. },
  558. /**
  559. * Calculate the complex arcus secant
  560. *
  561. * @returns {Complex}
  562. */
  563. "asec": function() {
  564. var a = this["re"];
  565. var b = this["im"];
  566. if (a === 0 && b === 0) {
  567. return new Complex3(0, Infinity);
  568. }
  569. var d = a * a + b * b;
  570. return d !== 0 ? new Complex3(
  571. a / d,
  572. -b / d
  573. ).acos() : new Complex3(
  574. a !== 0 ? a / 0 : 0,
  575. b !== 0 ? -b / 0 : 0
  576. ).acos();
  577. },
  578. /**
  579. * Calculate the complex arcus cosecans
  580. *
  581. * @returns {Complex}
  582. */
  583. "acsc": function() {
  584. var a = this["re"];
  585. var b = this["im"];
  586. if (a === 0 && b === 0) {
  587. return new Complex3(Math.PI / 2, Infinity);
  588. }
  589. var d = a * a + b * b;
  590. return d !== 0 ? new Complex3(
  591. a / d,
  592. -b / d
  593. ).asin() : new Complex3(
  594. a !== 0 ? a / 0 : 0,
  595. b !== 0 ? -b / 0 : 0
  596. ).asin();
  597. },
  598. /**
  599. * Calculate the complex sinh
  600. *
  601. * @returns {Complex}
  602. */
  603. "sinh": function() {
  604. var a = this["re"];
  605. var b = this["im"];
  606. return new Complex3(
  607. sinh4(a) * Math.cos(b),
  608. cosh4(a) * Math.sin(b)
  609. );
  610. },
  611. /**
  612. * Calculate the complex cosh
  613. *
  614. * @returns {Complex}
  615. */
  616. "cosh": function() {
  617. var a = this["re"];
  618. var b = this["im"];
  619. return new Complex3(
  620. cosh4(a) * Math.cos(b),
  621. sinh4(a) * Math.sin(b)
  622. );
  623. },
  624. /**
  625. * Calculate the complex tanh
  626. *
  627. * @returns {Complex}
  628. */
  629. "tanh": function() {
  630. var a = 2 * this["re"];
  631. var b = 2 * this["im"];
  632. var d = cosh4(a) + Math.cos(b);
  633. return new Complex3(
  634. sinh4(a) / d,
  635. Math.sin(b) / d
  636. );
  637. },
  638. /**
  639. * Calculate the complex coth
  640. *
  641. * @returns {Complex}
  642. */
  643. "coth": function() {
  644. var a = 2 * this["re"];
  645. var b = 2 * this["im"];
  646. var d = cosh4(a) - Math.cos(b);
  647. return new Complex3(
  648. sinh4(a) / d,
  649. -Math.sin(b) / d
  650. );
  651. },
  652. /**
  653. * Calculate the complex coth
  654. *
  655. * @returns {Complex}
  656. */
  657. "csch": function() {
  658. var a = this["re"];
  659. var b = this["im"];
  660. var d = Math.cos(2 * b) - cosh4(2 * a);
  661. return new Complex3(
  662. -2 * sinh4(a) * Math.cos(b) / d,
  663. 2 * cosh4(a) * Math.sin(b) / d
  664. );
  665. },
  666. /**
  667. * Calculate the complex sech
  668. *
  669. * @returns {Complex}
  670. */
  671. "sech": function() {
  672. var a = this["re"];
  673. var b = this["im"];
  674. var d = Math.cos(2 * b) + cosh4(2 * a);
  675. return new Complex3(
  676. 2 * cosh4(a) * Math.cos(b) / d,
  677. -2 * sinh4(a) * Math.sin(b) / d
  678. );
  679. },
  680. /**
  681. * Calculate the complex asinh
  682. *
  683. * @returns {Complex}
  684. */
  685. "asinh": function() {
  686. var tmp = this["im"];
  687. this["im"] = -this["re"];
  688. this["re"] = tmp;
  689. var res = this["asin"]();
  690. this["re"] = -this["im"];
  691. this["im"] = tmp;
  692. tmp = res["re"];
  693. res["re"] = -res["im"];
  694. res["im"] = tmp;
  695. return res;
  696. },
  697. /**
  698. * Calculate the complex acosh
  699. *
  700. * @returns {Complex}
  701. */
  702. "acosh": function() {
  703. var res = this["acos"]();
  704. if (res["im"] <= 0) {
  705. var tmp = res["re"];
  706. res["re"] = -res["im"];
  707. res["im"] = tmp;
  708. } else {
  709. var tmp = res["im"];
  710. res["im"] = -res["re"];
  711. res["re"] = tmp;
  712. }
  713. return res;
  714. },
  715. /**
  716. * Calculate the complex atanh
  717. *
  718. * @returns {Complex}
  719. */
  720. "atanh": function() {
  721. var a = this["re"];
  722. var b = this["im"];
  723. var noIM = a > 1 && b === 0;
  724. var oneMinus = 1 - a;
  725. var onePlus = 1 + a;
  726. var d = oneMinus * oneMinus + b * b;
  727. var x = d !== 0 ? new Complex3(
  728. (onePlus * oneMinus - b * b) / d,
  729. (b * oneMinus + onePlus * b) / d
  730. ) : new Complex3(
  731. a !== -1 ? a / 0 : 0,
  732. b !== 0 ? b / 0 : 0
  733. );
  734. var temp = x["re"];
  735. x["re"] = logHypot(x["re"], x["im"]) / 2;
  736. x["im"] = Math.atan2(x["im"], temp) / 2;
  737. if (noIM) {
  738. x["im"] = -x["im"];
  739. }
  740. return x;
  741. },
  742. /**
  743. * Calculate the complex acoth
  744. *
  745. * @returns {Complex}
  746. */
  747. "acoth": function() {
  748. var a = this["re"];
  749. var b = this["im"];
  750. if (a === 0 && b === 0) {
  751. return new Complex3(0, Math.PI / 2);
  752. }
  753. var d = a * a + b * b;
  754. return d !== 0 ? new Complex3(
  755. a / d,
  756. -b / d
  757. ).atanh() : new Complex3(
  758. a !== 0 ? a / 0 : 0,
  759. b !== 0 ? -b / 0 : 0
  760. ).atanh();
  761. },
  762. /**
  763. * Calculate the complex acsch
  764. *
  765. * @returns {Complex}
  766. */
  767. "acsch": function() {
  768. var a = this["re"];
  769. var b = this["im"];
  770. if (b === 0) {
  771. return new Complex3(
  772. a !== 0 ? Math.log(a + Math.sqrt(a * a + 1)) : Infinity,
  773. 0
  774. );
  775. }
  776. var d = a * a + b * b;
  777. return d !== 0 ? new Complex3(
  778. a / d,
  779. -b / d
  780. ).asinh() : new Complex3(
  781. a !== 0 ? a / 0 : 0,
  782. b !== 0 ? -b / 0 : 0
  783. ).asinh();
  784. },
  785. /**
  786. * Calculate the complex asech
  787. *
  788. * @returns {Complex}
  789. */
  790. "asech": function() {
  791. var a = this["re"];
  792. var b = this["im"];
  793. if (this["isZero"]()) {
  794. return Complex3["INFINITY"];
  795. }
  796. var d = a * a + b * b;
  797. return d !== 0 ? new Complex3(
  798. a / d,
  799. -b / d
  800. ).acosh() : new Complex3(
  801. a !== 0 ? a / 0 : 0,
  802. b !== 0 ? -b / 0 : 0
  803. ).acosh();
  804. },
  805. /**
  806. * Calculate the complex inverse 1/z
  807. *
  808. * @returns {Complex}
  809. */
  810. "inverse": function() {
  811. if (this["isZero"]()) {
  812. return Complex3["INFINITY"];
  813. }
  814. if (this["isInfinite"]()) {
  815. return Complex3["ZERO"];
  816. }
  817. var a = this["re"];
  818. var b = this["im"];
  819. var d = a * a + b * b;
  820. return new Complex3(a / d, -b / d);
  821. },
  822. /**
  823. * Returns the complex conjugate
  824. *
  825. * @returns {Complex}
  826. */
  827. "conjugate": function() {
  828. return new Complex3(this["re"], -this["im"]);
  829. },
  830. /**
  831. * Gets the negated complex number
  832. *
  833. * @returns {Complex}
  834. */
  835. "neg": function() {
  836. return new Complex3(-this["re"], -this["im"]);
  837. },
  838. /**
  839. * Ceils the actual complex number
  840. *
  841. * @returns {Complex}
  842. */
  843. "ceil": function(places) {
  844. places = Math.pow(10, places || 0);
  845. return new Complex3(
  846. Math.ceil(this["re"] * places) / places,
  847. Math.ceil(this["im"] * places) / places
  848. );
  849. },
  850. /**
  851. * Floors the actual complex number
  852. *
  853. * @returns {Complex}
  854. */
  855. "floor": function(places) {
  856. places = Math.pow(10, places || 0);
  857. return new Complex3(
  858. Math.floor(this["re"] * places) / places,
  859. Math.floor(this["im"] * places) / places
  860. );
  861. },
  862. /**
  863. * Ceils the actual complex number
  864. *
  865. * @returns {Complex}
  866. */
  867. "round": function(places) {
  868. places = Math.pow(10, places || 0);
  869. return new Complex3(
  870. Math.round(this["re"] * places) / places,
  871. Math.round(this["im"] * places) / places
  872. );
  873. },
  874. /**
  875. * Compares two complex numbers
  876. *
  877. * **Note:** new Complex(Infinity).equals(Infinity) === false
  878. *
  879. * @returns {boolean}
  880. */
  881. "equals": function(a, b) {
  882. var z = new Complex3(a, b);
  883. return Math.abs(z["re"] - this["re"]) <= Complex3["EPSILON"] && Math.abs(z["im"] - this["im"]) <= Complex3["EPSILON"];
  884. },
  885. /**
  886. * Clones the actual object
  887. *
  888. * @returns {Complex}
  889. */
  890. "clone": function() {
  891. return new Complex3(this["re"], this["im"]);
  892. },
  893. /**
  894. * Gets a string of the actual complex number
  895. *
  896. * @returns {string}
  897. */
  898. "toString": function() {
  899. var a = this["re"];
  900. var b = this["im"];
  901. var ret = "";
  902. if (this["isNaN"]()) {
  903. return "NaN";
  904. }
  905. if (this["isInfinite"]()) {
  906. return "Infinity";
  907. }
  908. if (Math.abs(a) < Complex3["EPSILON"]) {
  909. a = 0;
  910. }
  911. if (Math.abs(b) < Complex3["EPSILON"]) {
  912. b = 0;
  913. }
  914. if (b === 0) {
  915. return ret + a;
  916. }
  917. if (a !== 0) {
  918. ret += a;
  919. ret += " ";
  920. if (b < 0) {
  921. b = -b;
  922. ret += "-";
  923. } else {
  924. ret += "+";
  925. }
  926. ret += " ";
  927. } else if (b < 0) {
  928. b = -b;
  929. ret += "-";
  930. }
  931. if (1 !== b) {
  932. ret += b;
  933. }
  934. return ret + "i";
  935. },
  936. /**
  937. * Returns the actual number as a vector
  938. *
  939. * @returns {Array}
  940. */
  941. "toVector": function() {
  942. return [this["re"], this["im"]];
  943. },
  944. /**
  945. * Returns the actual real value of the current object
  946. *
  947. * @returns {number|null}
  948. */
  949. "valueOf": function() {
  950. if (this["im"] === 0) {
  951. return this["re"];
  952. }
  953. return null;
  954. },
  955. /**
  956. * Determines whether a complex number is not on the Riemann sphere.
  957. *
  958. * @returns {boolean}
  959. */
  960. "isNaN": function() {
  961. return isNaN(this["re"]) || isNaN(this["im"]);
  962. },
  963. /**
  964. * Determines whether or not a complex number is at the zero pole of the
  965. * Riemann sphere.
  966. *
  967. * @returns {boolean}
  968. */
  969. "isZero": function() {
  970. return this["im"] === 0 && this["re"] === 0;
  971. },
  972. /**
  973. * Determines whether a complex number is not at the infinity pole of the
  974. * Riemann sphere.
  975. *
  976. * @returns {boolean}
  977. */
  978. "isFinite": function() {
  979. return isFinite(this["re"]) && isFinite(this["im"]);
  980. },
  981. /**
  982. * Determines whether or not a complex number is at the infinity pole of the
  983. * Riemann sphere.
  984. *
  985. * @returns {boolean}
  986. */
  987. "isInfinite": function() {
  988. return !(this["isNaN"]() || this["isFinite"]());
  989. }
  990. };
  991. Complex3["ZERO"] = new Complex3(0, 0);
  992. Complex3["ONE"] = new Complex3(1, 0);
  993. Complex3["I"] = new Complex3(0, 1);
  994. Complex3["PI"] = new Complex3(Math.PI, 0);
  995. Complex3["E"] = new Complex3(Math.E, 0);
  996. Complex3["INFINITY"] = new Complex3(Infinity, Infinity);
  997. Complex3["NAN"] = new Complex3(NaN, NaN);
  998. Complex3["EPSILON"] = 1e-15;
  999. if (typeof define === "function" && define["amd"]) {
  1000. define([], function() {
  1001. return Complex3;
  1002. });
  1003. } else if (typeof exports === "object") {
  1004. Object.defineProperty(Complex3, "__esModule", { "value": true });
  1005. Complex3["default"] = Complex3;
  1006. Complex3["Complex"] = Complex3;
  1007. module["exports"] = Complex3;
  1008. } else {
  1009. root["Complex"] = Complex3;
  1010. }
  1011. })(exports);
  1012. }
  1013. });
  1014. // node_modules/fraction.js/fraction.js
  1015. var require_fraction = __commonJS({
  1016. "node_modules/fraction.js/fraction.js"(exports, module) {
  1017. (function(root) {
  1018. "use strict";
  1019. var MAX_CYCLE_LEN = 2e3;
  1020. var P3 = {
  1021. "s": 1,
  1022. "n": 0,
  1023. "d": 1
  1024. };
  1025. function assign2(n, s) {
  1026. if (isNaN(n = parseInt(n, 10))) {
  1027. throw Fraction3["InvalidParameter"];
  1028. }
  1029. return n * s;
  1030. }
  1031. function newFraction(n, d) {
  1032. if (d === 0) {
  1033. throw Fraction3["DivisionByZero"];
  1034. }
  1035. var f = Object.create(Fraction3.prototype);
  1036. f["s"] = n < 0 ? -1 : 1;
  1037. n = n < 0 ? -n : n;
  1038. var a = gcd2(n, d);
  1039. f["n"] = n / a;
  1040. f["d"] = d / a;
  1041. return f;
  1042. }
  1043. function factorize(num) {
  1044. var factors = {};
  1045. var n = num;
  1046. var i2 = 2;
  1047. var s = 4;
  1048. while (s <= n) {
  1049. while (n % i2 === 0) {
  1050. n /= i2;
  1051. factors[i2] = (factors[i2] || 0) + 1;
  1052. }
  1053. s += 1 + 2 * i2++;
  1054. }
  1055. if (n !== num) {
  1056. if (n > 1)
  1057. factors[n] = (factors[n] || 0) + 1;
  1058. } else {
  1059. factors[num] = (factors[num] || 0) + 1;
  1060. }
  1061. return factors;
  1062. }
  1063. var parse2 = function(p1, p2) {
  1064. var n = 0, d = 1, s = 1;
  1065. var v = 0, w = 0, x = 0, y = 1, z = 1;
  1066. var A = 0, B = 1;
  1067. var C = 1, D = 1;
  1068. var N = 1e7;
  1069. var M;
  1070. if (p1 === void 0 || p1 === null) {
  1071. } else if (p2 !== void 0) {
  1072. n = p1;
  1073. d = p2;
  1074. s = n * d;
  1075. if (n % 1 !== 0 || d % 1 !== 0) {
  1076. throw Fraction3["NonIntegerParameter"];
  1077. }
  1078. } else
  1079. switch (typeof p1) {
  1080. case "object": {
  1081. if ("d" in p1 && "n" in p1) {
  1082. n = p1["n"];
  1083. d = p1["d"];
  1084. if ("s" in p1)
  1085. n *= p1["s"];
  1086. } else if (0 in p1) {
  1087. n = p1[0];
  1088. if (1 in p1)
  1089. d = p1[1];
  1090. } else {
  1091. throw Fraction3["InvalidParameter"];
  1092. }
  1093. s = n * d;
  1094. break;
  1095. }
  1096. case "number": {
  1097. if (p1 < 0) {
  1098. s = p1;
  1099. p1 = -p1;
  1100. }
  1101. if (p1 % 1 === 0) {
  1102. n = p1;
  1103. } else if (p1 > 0) {
  1104. if (p1 >= 1) {
  1105. z = Math.pow(10, Math.floor(1 + Math.log(p1) / Math.LN10));
  1106. p1 /= z;
  1107. }
  1108. while (B <= N && D <= N) {
  1109. M = (A + C) / (B + D);
  1110. if (p1 === M) {
  1111. if (B + D <= N) {
  1112. n = A + C;
  1113. d = B + D;
  1114. } else if (D > B) {
  1115. n = C;
  1116. d = D;
  1117. } else {
  1118. n = A;
  1119. d = B;
  1120. }
  1121. break;
  1122. } else {
  1123. if (p1 > M) {
  1124. A += C;
  1125. B += D;
  1126. } else {
  1127. C += A;
  1128. D += B;
  1129. }
  1130. if (B > N) {
  1131. n = C;
  1132. d = D;
  1133. } else {
  1134. n = A;
  1135. d = B;
  1136. }
  1137. }
  1138. }
  1139. n *= z;
  1140. } else if (isNaN(p1) || isNaN(p2)) {
  1141. d = n = NaN;
  1142. }
  1143. break;
  1144. }
  1145. case "string": {
  1146. B = p1.match(/\d+|./g);
  1147. if (B === null)
  1148. throw Fraction3["InvalidParameter"];
  1149. if (B[A] === "-") {
  1150. s = -1;
  1151. A++;
  1152. } else if (B[A] === "+") {
  1153. A++;
  1154. }
  1155. if (B.length === A + 1) {
  1156. w = assign2(B[A++], s);
  1157. } else if (B[A + 1] === "." || B[A] === ".") {
  1158. if (B[A] !== ".") {
  1159. v = assign2(B[A++], s);
  1160. }
  1161. A++;
  1162. if (A + 1 === B.length || B[A + 1] === "(" && B[A + 3] === ")" || B[A + 1] === "'" && B[A + 3] === "'") {
  1163. w = assign2(B[A], s);
  1164. y = Math.pow(10, B[A].length);
  1165. A++;
  1166. }
  1167. if (B[A] === "(" && B[A + 2] === ")" || B[A] === "'" && B[A + 2] === "'") {
  1168. x = assign2(B[A + 1], s);
  1169. z = Math.pow(10, B[A + 1].length) - 1;
  1170. A += 3;
  1171. }
  1172. } else if (B[A + 1] === "/" || B[A + 1] === ":") {
  1173. w = assign2(B[A], s);
  1174. y = assign2(B[A + 2], 1);
  1175. A += 3;
  1176. } else if (B[A + 3] === "/" && B[A + 1] === " ") {
  1177. v = assign2(B[A], s);
  1178. w = assign2(B[A + 2], s);
  1179. y = assign2(B[A + 4], 1);
  1180. A += 5;
  1181. }
  1182. if (B.length <= A) {
  1183. d = y * z;
  1184. s = /* void */
  1185. n = x + d * v + z * w;
  1186. break;
  1187. }
  1188. }
  1189. default:
  1190. throw Fraction3["InvalidParameter"];
  1191. }
  1192. if (d === 0) {
  1193. throw Fraction3["DivisionByZero"];
  1194. }
  1195. P3["s"] = s < 0 ? -1 : 1;
  1196. P3["n"] = Math.abs(n);
  1197. P3["d"] = Math.abs(d);
  1198. };
  1199. function modpow(b, e3, m) {
  1200. var r = 1;
  1201. for (; e3 > 0; b = b * b % m, e3 >>= 1) {
  1202. if (e3 & 1) {
  1203. r = r * b % m;
  1204. }
  1205. }
  1206. return r;
  1207. }
  1208. function cycleLen(n, d) {
  1209. for (; d % 2 === 0; d /= 2) {
  1210. }
  1211. for (; d % 5 === 0; d /= 5) {
  1212. }
  1213. if (d === 1)
  1214. return 0;
  1215. var rem = 10 % d;
  1216. var t = 1;
  1217. for (; rem !== 1; t++) {
  1218. rem = rem * 10 % d;
  1219. if (t > MAX_CYCLE_LEN)
  1220. return 0;
  1221. }
  1222. return t;
  1223. }
  1224. function cycleStart(n, d, len) {
  1225. var rem1 = 1;
  1226. var rem2 = modpow(10, len, d);
  1227. for (var t = 0; t < 300; t++) {
  1228. if (rem1 === rem2)
  1229. return t;
  1230. rem1 = rem1 * 10 % d;
  1231. rem2 = rem2 * 10 % d;
  1232. }
  1233. return 0;
  1234. }
  1235. function gcd2(a, b) {
  1236. if (!a)
  1237. return b;
  1238. if (!b)
  1239. return a;
  1240. while (1) {
  1241. a %= b;
  1242. if (!a)
  1243. return b;
  1244. b %= a;
  1245. if (!b)
  1246. return a;
  1247. }
  1248. }
  1249. ;
  1250. function Fraction3(a, b) {
  1251. parse2(a, b);
  1252. if (this instanceof Fraction3) {
  1253. a = gcd2(P3["d"], P3["n"]);
  1254. this["s"] = P3["s"];
  1255. this["n"] = P3["n"] / a;
  1256. this["d"] = P3["d"] / a;
  1257. } else {
  1258. return newFraction(P3["s"] * P3["n"], P3["d"]);
  1259. }
  1260. }
  1261. Fraction3["DivisionByZero"] = new Error("Division by Zero");
  1262. Fraction3["InvalidParameter"] = new Error("Invalid argument");
  1263. Fraction3["NonIntegerParameter"] = new Error("Parameters must be integer");
  1264. Fraction3.prototype = {
  1265. "s": 1,
  1266. "n": 0,
  1267. "d": 1,
  1268. /**
  1269. * Calculates the absolute value
  1270. *
  1271. * Ex: new Fraction(-4).abs() => 4
  1272. **/
  1273. "abs": function() {
  1274. return newFraction(this["n"], this["d"]);
  1275. },
  1276. /**
  1277. * Inverts the sign of the current fraction
  1278. *
  1279. * Ex: new Fraction(-4).neg() => 4
  1280. **/
  1281. "neg": function() {
  1282. return newFraction(-this["s"] * this["n"], this["d"]);
  1283. },
  1284. /**
  1285. * Adds two rational numbers
  1286. *
  1287. * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30
  1288. **/
  1289. "add": function(a, b) {
  1290. parse2(a, b);
  1291. return newFraction(
  1292. this["s"] * this["n"] * P3["d"] + P3["s"] * this["d"] * P3["n"],
  1293. this["d"] * P3["d"]
  1294. );
  1295. },
  1296. /**
  1297. * Subtracts two rational numbers
  1298. *
  1299. * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30
  1300. **/
  1301. "sub": function(a, b) {
  1302. parse2(a, b);
  1303. return newFraction(
  1304. this["s"] * this["n"] * P3["d"] - P3["s"] * this["d"] * P3["n"],
  1305. this["d"] * P3["d"]
  1306. );
  1307. },
  1308. /**
  1309. * Multiplies two rational numbers
  1310. *
  1311. * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111
  1312. **/
  1313. "mul": function(a, b) {
  1314. parse2(a, b);
  1315. return newFraction(
  1316. this["s"] * P3["s"] * this["n"] * P3["n"],
  1317. this["d"] * P3["d"]
  1318. );
  1319. },
  1320. /**
  1321. * Divides two rational numbers
  1322. *
  1323. * Ex: new Fraction("-17.(345)").inverse().div(3)
  1324. **/
  1325. "div": function(a, b) {
  1326. parse2(a, b);
  1327. return newFraction(
  1328. this["s"] * P3["s"] * this["n"] * P3["d"],
  1329. this["d"] * P3["n"]
  1330. );
  1331. },
  1332. /**
  1333. * Clones the actual object
  1334. *
  1335. * Ex: new Fraction("-17.(345)").clone()
  1336. **/
  1337. "clone": function() {
  1338. return newFraction(this["s"] * this["n"], this["d"]);
  1339. },
  1340. /**
  1341. * Calculates the modulo of two rational numbers - a more precise fmod
  1342. *
  1343. * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)
  1344. **/
  1345. "mod": function(a, b) {
  1346. if (isNaN(this["n"]) || isNaN(this["d"])) {
  1347. return new Fraction3(NaN);
  1348. }
  1349. if (a === void 0) {
  1350. return newFraction(this["s"] * this["n"] % this["d"], 1);
  1351. }
  1352. parse2(a, b);
  1353. if (0 === P3["n"] && 0 === this["d"]) {
  1354. throw Fraction3["DivisionByZero"];
  1355. }
  1356. return newFraction(
  1357. this["s"] * (P3["d"] * this["n"]) % (P3["n"] * this["d"]),
  1358. P3["d"] * this["d"]
  1359. );
  1360. },
  1361. /**
  1362. * Calculates the fractional gcd of two rational numbers
  1363. *
  1364. * Ex: new Fraction(5,8).gcd(3,7) => 1/56
  1365. */
  1366. "gcd": function(a, b) {
  1367. parse2(a, b);
  1368. return newFraction(gcd2(P3["n"], this["n"]) * gcd2(P3["d"], this["d"]), P3["d"] * this["d"]);
  1369. },
  1370. /**
  1371. * Calculates the fractional lcm of two rational numbers
  1372. *
  1373. * Ex: new Fraction(5,8).lcm(3,7) => 15
  1374. */
  1375. "lcm": function(a, b) {
  1376. parse2(a, b);
  1377. if (P3["n"] === 0 && this["n"] === 0) {
  1378. return newFraction(0, 1);
  1379. }
  1380. return newFraction(P3["n"] * this["n"], gcd2(P3["n"], this["n"]) * gcd2(P3["d"], this["d"]));
  1381. },
  1382. /**
  1383. * Calculates the ceil of a rational number
  1384. *
  1385. * Ex: new Fraction('4.(3)').ceil() => (5 / 1)
  1386. **/
  1387. "ceil": function(places) {
  1388. places = Math.pow(10, places || 0);
  1389. if (isNaN(this["n"]) || isNaN(this["d"])) {
  1390. return new Fraction3(NaN);
  1391. }
  1392. return newFraction(Math.ceil(places * this["s"] * this["n"] / this["d"]), places);
  1393. },
  1394. /**
  1395. * Calculates the floor of a rational number
  1396. *
  1397. * Ex: new Fraction('4.(3)').floor() => (4 / 1)
  1398. **/
  1399. "floor": function(places) {
  1400. places = Math.pow(10, places || 0);
  1401. if (isNaN(this["n"]) || isNaN(this["d"])) {
  1402. return new Fraction3(NaN);
  1403. }
  1404. return newFraction(Math.floor(places * this["s"] * this["n"] / this["d"]), places);
  1405. },
  1406. /**
  1407. * Rounds a rational numbers
  1408. *
  1409. * Ex: new Fraction('4.(3)').round() => (4 / 1)
  1410. **/
  1411. "round": function(places) {
  1412. places = Math.pow(10, places || 0);
  1413. if (isNaN(this["n"]) || isNaN(this["d"])) {
  1414. return new Fraction3(NaN);
  1415. }
  1416. return newFraction(Math.round(places * this["s"] * this["n"] / this["d"]), places);
  1417. },
  1418. /**
  1419. * Gets the inverse of the fraction, means numerator and denominator are exchanged
  1420. *
  1421. * Ex: new Fraction([-3, 4]).inverse() => -4 / 3
  1422. **/
  1423. "inverse": function() {
  1424. return newFraction(this["s"] * this["d"], this["n"]);
  1425. },
  1426. /**
  1427. * Calculates the fraction to some rational exponent, if possible
  1428. *
  1429. * Ex: new Fraction(-1,2).pow(-3) => -8
  1430. */
  1431. "pow": function(a, b) {
  1432. parse2(a, b);
  1433. if (P3["d"] === 1) {
  1434. if (P3["s"] < 0) {
  1435. return newFraction(Math.pow(this["s"] * this["d"], P3["n"]), Math.pow(this["n"], P3["n"]));
  1436. } else {
  1437. return newFraction(Math.pow(this["s"] * this["n"], P3["n"]), Math.pow(this["d"], P3["n"]));
  1438. }
  1439. }
  1440. if (this["s"] < 0)
  1441. return null;
  1442. var N = factorize(this["n"]);
  1443. var D = factorize(this["d"]);
  1444. var n = 1;
  1445. var d = 1;
  1446. for (var k in N) {
  1447. if (k === "1")
  1448. continue;
  1449. if (k === "0") {
  1450. n = 0;
  1451. break;
  1452. }
  1453. N[k] *= P3["n"];
  1454. if (N[k] % P3["d"] === 0) {
  1455. N[k] /= P3["d"];
  1456. } else
  1457. return null;
  1458. n *= Math.pow(k, N[k]);
  1459. }
  1460. for (var k in D) {
  1461. if (k === "1")
  1462. continue;
  1463. D[k] *= P3["n"];
  1464. if (D[k] % P3["d"] === 0) {
  1465. D[k] /= P3["d"];
  1466. } else
  1467. return null;
  1468. d *= Math.pow(k, D[k]);
  1469. }
  1470. if (P3["s"] < 0) {
  1471. return newFraction(d, n);
  1472. }
  1473. return newFraction(n, d);
  1474. },
  1475. /**
  1476. * Check if two rational numbers are the same
  1477. *
  1478. * Ex: new Fraction(19.6).equals([98, 5]);
  1479. **/
  1480. "equals": function(a, b) {
  1481. parse2(a, b);
  1482. return this["s"] * this["n"] * P3["d"] === P3["s"] * P3["n"] * this["d"];
  1483. },
  1484. /**
  1485. * Check if two rational numbers are the same
  1486. *
  1487. * Ex: new Fraction(19.6).equals([98, 5]);
  1488. **/
  1489. "compare": function(a, b) {
  1490. parse2(a, b);
  1491. var t = this["s"] * this["n"] * P3["d"] - P3["s"] * P3["n"] * this["d"];
  1492. return (0 < t) - (t < 0);
  1493. },
  1494. "simplify": function(eps) {
  1495. if (isNaN(this["n"]) || isNaN(this["d"])) {
  1496. return this;
  1497. }
  1498. eps = eps || 1e-3;
  1499. var thisABS = this["abs"]();
  1500. var cont = thisABS["toContinued"]();
  1501. for (var i2 = 1; i2 < cont.length; i2++) {
  1502. var s = newFraction(cont[i2 - 1], 1);
  1503. for (var k = i2 - 2; k >= 0; k--) {
  1504. s = s["inverse"]()["add"](cont[k]);
  1505. }
  1506. if (s["sub"](thisABS)["abs"]().valueOf() < eps) {
  1507. return s["mul"](this["s"]);
  1508. }
  1509. }
  1510. return this;
  1511. },
  1512. /**
  1513. * Check if two rational numbers are divisible
  1514. *
  1515. * Ex: new Fraction(19.6).divisible(1.5);
  1516. */
  1517. "divisible": function(a, b) {
  1518. parse2(a, b);
  1519. return !(!(P3["n"] * this["d"]) || this["n"] * P3["d"] % (P3["n"] * this["d"]));
  1520. },
  1521. /**
  1522. * Returns a decimal representation of the fraction
  1523. *
  1524. * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183
  1525. **/
  1526. "valueOf": function() {
  1527. return this["s"] * this["n"] / this["d"];
  1528. },
  1529. /**
  1530. * Returns a string-fraction representation of a Fraction object
  1531. *
  1532. * Ex: new Fraction("1.'3'").toFraction(true) => "4 1/3"
  1533. **/
  1534. "toFraction": function(excludeWhole) {
  1535. var whole, str = "";
  1536. var n = this["n"];
  1537. var d = this["d"];
  1538. if (this["s"] < 0) {
  1539. str += "-";
  1540. }
  1541. if (d === 1) {
  1542. str += n;
  1543. } else {
  1544. if (excludeWhole && (whole = Math.floor(n / d)) > 0) {
  1545. str += whole;
  1546. str += " ";
  1547. n %= d;
  1548. }
  1549. str += n;
  1550. str += "/";
  1551. str += d;
  1552. }
  1553. return str;
  1554. },
  1555. /**
  1556. * Returns a latex representation of a Fraction object
  1557. *
  1558. * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}"
  1559. **/
  1560. "toLatex": function(excludeWhole) {
  1561. var whole, str = "";
  1562. var n = this["n"];
  1563. var d = this["d"];
  1564. if (this["s"] < 0) {
  1565. str += "-";
  1566. }
  1567. if (d === 1) {
  1568. str += n;
  1569. } else {
  1570. if (excludeWhole && (whole = Math.floor(n / d)) > 0) {
  1571. str += whole;
  1572. n %= d;
  1573. }
  1574. str += "\\frac{";
  1575. str += n;
  1576. str += "}{";
  1577. str += d;
  1578. str += "}";
  1579. }
  1580. return str;
  1581. },
  1582. /**
  1583. * Returns an array of continued fraction elements
  1584. *
  1585. * Ex: new Fraction("7/8").toContinued() => [0,1,7]
  1586. */
  1587. "toContinued": function() {
  1588. var t;
  1589. var a = this["n"];
  1590. var b = this["d"];
  1591. var res = [];
  1592. if (isNaN(a) || isNaN(b)) {
  1593. return res;
  1594. }
  1595. do {
  1596. res.push(Math.floor(a / b));
  1597. t = a % b;
  1598. a = b;
  1599. b = t;
  1600. } while (a !== 1);
  1601. return res;
  1602. },
  1603. /**
  1604. * Creates a string representation of a fraction with all digits
  1605. *
  1606. * Ex: new Fraction("100.'91823'").toString() => "100.(91823)"
  1607. **/
  1608. "toString": function(dec) {
  1609. var N = this["n"];
  1610. var D = this["d"];
  1611. if (isNaN(N) || isNaN(D)) {
  1612. return "NaN";
  1613. }
  1614. dec = dec || 15;
  1615. var cycLen = cycleLen(N, D);
  1616. var cycOff = cycleStart(N, D, cycLen);
  1617. var str = this["s"] < 0 ? "-" : "";
  1618. str += N / D | 0;
  1619. N %= D;
  1620. N *= 10;
  1621. if (N)
  1622. str += ".";
  1623. if (cycLen) {
  1624. for (var i2 = cycOff; i2--; ) {
  1625. str += N / D | 0;
  1626. N %= D;
  1627. N *= 10;
  1628. }
  1629. str += "(";
  1630. for (var i2 = cycLen; i2--; ) {
  1631. str += N / D | 0;
  1632. N %= D;
  1633. N *= 10;
  1634. }
  1635. str += ")";
  1636. } else {
  1637. for (var i2 = dec; N && i2--; ) {
  1638. str += N / D | 0;
  1639. N %= D;
  1640. N *= 10;
  1641. }
  1642. }
  1643. return str;
  1644. }
  1645. };
  1646. if (typeof define === "function" && define["amd"]) {
  1647. define([], function() {
  1648. return Fraction3;
  1649. });
  1650. } else if (typeof exports === "object") {
  1651. Object.defineProperty(Fraction3, "__esModule", { "value": true });
  1652. Fraction3["default"] = Fraction3;
  1653. Fraction3["Fraction"] = Fraction3;
  1654. module["exports"] = Fraction3;
  1655. } else {
  1656. root["Fraction"] = Fraction3;
  1657. }
  1658. })(exports);
  1659. }
  1660. });
  1661. // node_modules/javascript-natural-sort/naturalSort.js
  1662. var require_naturalSort = __commonJS({
  1663. "node_modules/javascript-natural-sort/naturalSort.js"(exports, module) {
  1664. module.exports = function naturalSort2(a, b) {
  1665. "use strict";
  1666. var re2 = /(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi, sre = /(^[ ]*|[ ]*$)/g, dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/, hre = /^0x[0-9a-f]+$/i, ore = /^0/, i2 = function(s) {
  1667. return naturalSort2.insensitive && ("" + s).toLowerCase() || "" + s;
  1668. }, x = i2(a).replace(sre, "") || "", y = i2(b).replace(sre, "") || "", xN = x.replace(re2, "\0$1\0").replace(/\0$/, "").replace(/^\0/, "").split("\0"), yN = y.replace(re2, "\0$1\0").replace(/\0$/, "").replace(/^\0/, "").split("\0"), xD = parseInt(x.match(hre), 16) || xN.length !== 1 && x.match(dre) && Date.parse(x), yD = parseInt(y.match(hre), 16) || xD && y.match(dre) && Date.parse(y) || null, oFxNcL, oFyNcL;
  1669. if (yD) {
  1670. if (xD < yD) {
  1671. return -1;
  1672. } else if (xD > yD) {
  1673. return 1;
  1674. }
  1675. }
  1676. for (var cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
  1677. oFxNcL = !(xN[cLoc] || "").match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
  1678. oFyNcL = !(yN[cLoc] || "").match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
  1679. if (isNaN(oFxNcL) !== isNaN(oFyNcL)) {
  1680. return isNaN(oFxNcL) ? 1 : -1;
  1681. } else if (typeof oFxNcL !== typeof oFyNcL) {
  1682. oFxNcL += "";
  1683. oFyNcL += "";
  1684. }
  1685. if (oFxNcL < oFyNcL) {
  1686. return -1;
  1687. }
  1688. if (oFxNcL > oFyNcL) {
  1689. return 1;
  1690. }
  1691. }
  1692. return 0;
  1693. };
  1694. }
  1695. });
  1696. // node_modules/escape-latex/dist/index.js
  1697. var require_dist = __commonJS({
  1698. "node_modules/escape-latex/dist/index.js"(exports, module) {
  1699. "use strict";
  1700. var _extends2 = Object.assign || function(target) {
  1701. for (var i2 = 1; i2 < arguments.length; i2++) {
  1702. var source = arguments[i2];
  1703. for (var key in source) {
  1704. if (Object.prototype.hasOwnProperty.call(source, key)) {
  1705. target[key] = source[key];
  1706. }
  1707. }
  1708. }
  1709. return target;
  1710. };
  1711. var defaultEscapes = {
  1712. "{": "\\{",
  1713. "}": "\\}",
  1714. "\\": "\\textbackslash{}",
  1715. "#": "\\#",
  1716. $: "\\$",
  1717. "%": "\\%",
  1718. "&": "\\&",
  1719. "^": "\\textasciicircum{}",
  1720. _: "\\_",
  1721. "~": "\\textasciitilde{}"
  1722. };
  1723. var formatEscapes = {
  1724. "–": "\\--",
  1725. "—": "\\---",
  1726. " ": "~",
  1727. " ": "\\qquad{}",
  1728. "\r\n": "\\newline{}",
  1729. "\n": "\\newline{}"
  1730. };
  1731. var defaultEscapeMapFn = function defaultEscapeMapFn2(defaultEscapes2, formatEscapes2) {
  1732. return _extends2({}, defaultEscapes2, formatEscapes2);
  1733. };
  1734. module.exports = function(str) {
  1735. var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref$preserveFormatti = _ref.preserveFormatting, preserveFormatting = _ref$preserveFormatti === void 0 ? false : _ref$preserveFormatti, _ref$escapeMapFn = _ref.escapeMapFn, escapeMapFn = _ref$escapeMapFn === void 0 ? defaultEscapeMapFn : _ref$escapeMapFn;
  1736. var runningStr = String(str);
  1737. var result = "";
  1738. var escapes = escapeMapFn(_extends2({}, defaultEscapes), preserveFormatting ? _extends2({}, formatEscapes) : {});
  1739. var escapeKeys = Object.keys(escapes);
  1740. var _loop = function _loop2() {
  1741. var specialCharFound = false;
  1742. escapeKeys.forEach(function(key, index2) {
  1743. if (specialCharFound) {
  1744. return;
  1745. }
  1746. if (runningStr.length >= key.length && runningStr.slice(0, key.length) === key) {
  1747. result += escapes[escapeKeys[index2]];
  1748. runningStr = runningStr.slice(key.length, runningStr.length);
  1749. specialCharFound = true;
  1750. }
  1751. });
  1752. if (!specialCharFound) {
  1753. result += runningStr.slice(0, 1);
  1754. runningStr = runningStr.slice(1, runningStr.length);
  1755. }
  1756. };
  1757. while (runningStr) {
  1758. _loop();
  1759. }
  1760. return result;
  1761. };
  1762. }
  1763. });
  1764. // node_modules/seedrandom/lib/alea.js
  1765. var require_alea = __commonJS({
  1766. "node_modules/seedrandom/lib/alea.js"(exports, module) {
  1767. (function(global, module2, define2) {
  1768. function Alea(seed) {
  1769. var me = this, mash = Mash();
  1770. me.next = function() {
  1771. var t = 2091639 * me.s0 + me.c * 23283064365386963e-26;
  1772. me.s0 = me.s1;
  1773. me.s1 = me.s2;
  1774. return me.s2 = t - (me.c = t | 0);
  1775. };
  1776. me.c = 1;
  1777. me.s0 = mash(" ");
  1778. me.s1 = mash(" ");
  1779. me.s2 = mash(" ");
  1780. me.s0 -= mash(seed);
  1781. if (me.s0 < 0) {
  1782. me.s0 += 1;
  1783. }
  1784. me.s1 -= mash(seed);
  1785. if (me.s1 < 0) {
  1786. me.s1 += 1;
  1787. }
  1788. me.s2 -= mash(seed);
  1789. if (me.s2 < 0) {
  1790. me.s2 += 1;
  1791. }
  1792. mash = null;
  1793. }
  1794. function copy(f, t) {
  1795. t.c = f.c;
  1796. t.s0 = f.s0;
  1797. t.s1 = f.s1;
  1798. t.s2 = f.s2;
  1799. return t;
  1800. }
  1801. function impl(seed, opts) {
  1802. var xg = new Alea(seed), state = opts && opts.state, prng = xg.next;
  1803. prng.int32 = function() {
  1804. return xg.next() * 4294967296 | 0;
  1805. };
  1806. prng.double = function() {
  1807. return prng() + (prng() * 2097152 | 0) * 11102230246251565e-32;
  1808. };
  1809. prng.quick = prng;
  1810. if (state) {
  1811. if (typeof state == "object")
  1812. copy(state, xg);
  1813. prng.state = function() {
  1814. return copy(xg, {});
  1815. };
  1816. }
  1817. return prng;
  1818. }
  1819. function Mash() {
  1820. var n = 4022871197;
  1821. var mash = function(data) {
  1822. data = String(data);
  1823. for (var i2 = 0; i2 < data.length; i2++) {
  1824. n += data.charCodeAt(i2);
  1825. var h = 0.02519603282416938 * n;
  1826. n = h >>> 0;
  1827. h -= n;
  1828. h *= n;
  1829. n = h >>> 0;
  1830. h -= n;
  1831. n += h * 4294967296;
  1832. }
  1833. return (n >>> 0) * 23283064365386963e-26;
  1834. };
  1835. return mash;
  1836. }
  1837. if (module2 && module2.exports) {
  1838. module2.exports = impl;
  1839. } else if (define2 && define2.amd) {
  1840. define2(function() {
  1841. return impl;
  1842. });
  1843. } else {
  1844. this.alea = impl;
  1845. }
  1846. })(
  1847. exports,
  1848. typeof module == "object" && module,
  1849. // present in node.js
  1850. typeof define == "function" && define
  1851. // present with an AMD loader
  1852. );
  1853. }
  1854. });
  1855. // node_modules/seedrandom/lib/xor128.js
  1856. var require_xor128 = __commonJS({
  1857. "node_modules/seedrandom/lib/xor128.js"(exports, module) {
  1858. (function(global, module2, define2) {
  1859. function XorGen(seed) {
  1860. var me = this, strseed = "";
  1861. me.x = 0;
  1862. me.y = 0;
  1863. me.z = 0;
  1864. me.w = 0;
  1865. me.next = function() {
  1866. var t = me.x ^ me.x << 11;
  1867. me.x = me.y;
  1868. me.y = me.z;
  1869. me.z = me.w;
  1870. return me.w ^= me.w >>> 19 ^ t ^ t >>> 8;
  1871. };
  1872. if (seed === (seed | 0)) {
  1873. me.x = seed;
  1874. } else {
  1875. strseed += seed;
  1876. }
  1877. for (var k = 0; k < strseed.length + 64; k++) {
  1878. me.x ^= strseed.charCodeAt(k) | 0;
  1879. me.next();
  1880. }
  1881. }
  1882. function copy(f, t) {
  1883. t.x = f.x;
  1884. t.y = f.y;
  1885. t.z = f.z;
  1886. t.w = f.w;
  1887. return t;
  1888. }
  1889. function impl(seed, opts) {
  1890. var xg = new XorGen(seed), state = opts && opts.state, prng = function() {
  1891. return (xg.next() >>> 0) / 4294967296;
  1892. };
  1893. prng.double = function() {
  1894. do {
  1895. var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21);
  1896. } while (result === 0);
  1897. return result;
  1898. };
  1899. prng.int32 = xg.next;
  1900. prng.quick = prng;
  1901. if (state) {
  1902. if (typeof state == "object")
  1903. copy(state, xg);
  1904. prng.state = function() {
  1905. return copy(xg, {});
  1906. };
  1907. }
  1908. return prng;
  1909. }
  1910. if (module2 && module2.exports) {
  1911. module2.exports = impl;
  1912. } else if (define2 && define2.amd) {
  1913. define2(function() {
  1914. return impl;
  1915. });
  1916. } else {
  1917. this.xor128 = impl;
  1918. }
  1919. })(
  1920. exports,
  1921. typeof module == "object" && module,
  1922. // present in node.js
  1923. typeof define == "function" && define
  1924. // present with an AMD loader
  1925. );
  1926. }
  1927. });
  1928. // node_modules/seedrandom/lib/xorwow.js
  1929. var require_xorwow = __commonJS({
  1930. "node_modules/seedrandom/lib/xorwow.js"(exports, module) {
  1931. (function(global, module2, define2) {
  1932. function XorGen(seed) {
  1933. var me = this, strseed = "";
  1934. me.next = function() {
  1935. var t = me.x ^ me.x >>> 2;
  1936. me.x = me.y;
  1937. me.y = me.z;
  1938. me.z = me.w;
  1939. me.w = me.v;
  1940. return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t ^ t << 1)) | 0;
  1941. };
  1942. me.x = 0;
  1943. me.y = 0;
  1944. me.z = 0;
  1945. me.w = 0;
  1946. me.v = 0;
  1947. if (seed === (seed | 0)) {
  1948. me.x = seed;
  1949. } else {
  1950. strseed += seed;
  1951. }
  1952. for (var k = 0; k < strseed.length + 64; k++) {
  1953. me.x ^= strseed.charCodeAt(k) | 0;
  1954. if (k == strseed.length) {
  1955. me.d = me.x << 10 ^ me.x >>> 4;
  1956. }
  1957. me.next();
  1958. }
  1959. }
  1960. function copy(f, t) {
  1961. t.x = f.x;
  1962. t.y = f.y;
  1963. t.z = f.z;
  1964. t.w = f.w;
  1965. t.v = f.v;
  1966. t.d = f.d;
  1967. return t;
  1968. }
  1969. function impl(seed, opts) {
  1970. var xg = new XorGen(seed), state = opts && opts.state, prng = function() {
  1971. return (xg.next() >>> 0) / 4294967296;
  1972. };
  1973. prng.double = function() {
  1974. do {
  1975. var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21);
  1976. } while (result === 0);
  1977. return result;
  1978. };
  1979. prng.int32 = xg.next;
  1980. prng.quick = prng;
  1981. if (state) {
  1982. if (typeof state == "object")
  1983. copy(state, xg);
  1984. prng.state = function() {
  1985. return copy(xg, {});
  1986. };
  1987. }
  1988. return prng;
  1989. }
  1990. if (module2 && module2.exports) {
  1991. module2.exports = impl;
  1992. } else if (define2 && define2.amd) {
  1993. define2(function() {
  1994. return impl;
  1995. });
  1996. } else {
  1997. this.xorwow = impl;
  1998. }
  1999. })(
  2000. exports,
  2001. typeof module == "object" && module,
  2002. // present in node.js
  2003. typeof define == "function" && define
  2004. // present with an AMD loader
  2005. );
  2006. }
  2007. });
  2008. // node_modules/seedrandom/lib/xorshift7.js
  2009. var require_xorshift7 = __commonJS({
  2010. "node_modules/seedrandom/lib/xorshift7.js"(exports, module) {
  2011. (function(global, module2, define2) {
  2012. function XorGen(seed) {
  2013. var me = this;
  2014. me.next = function() {
  2015. var X = me.x, i2 = me.i, t, v, w;
  2016. t = X[i2];
  2017. t ^= t >>> 7;
  2018. v = t ^ t << 24;
  2019. t = X[i2 + 1 & 7];
  2020. v ^= t ^ t >>> 10;
  2021. t = X[i2 + 3 & 7];
  2022. v ^= t ^ t >>> 3;
  2023. t = X[i2 + 4 & 7];
  2024. v ^= t ^ t << 7;
  2025. t = X[i2 + 7 & 7];
  2026. t = t ^ t << 13;
  2027. v ^= t ^ t << 9;
  2028. X[i2] = v;
  2029. me.i = i2 + 1 & 7;
  2030. return v;
  2031. };
  2032. function init(me2, seed2) {
  2033. var j, w, X = [];
  2034. if (seed2 === (seed2 | 0)) {
  2035. w = X[0] = seed2;
  2036. } else {
  2037. seed2 = "" + seed2;
  2038. for (j = 0; j < seed2.length; ++j) {
  2039. X[j & 7] = X[j & 7] << 15 ^ seed2.charCodeAt(j) + X[j + 1 & 7] << 13;
  2040. }
  2041. }
  2042. while (X.length < 8)
  2043. X.push(0);
  2044. for (j = 0; j < 8 && X[j] === 0; ++j)
  2045. ;
  2046. if (j == 8)
  2047. w = X[7] = -1;
  2048. else
  2049. w = X[j];
  2050. me2.x = X;
  2051. me2.i = 0;
  2052. for (j = 256; j > 0; --j) {
  2053. me2.next();
  2054. }
  2055. }
  2056. init(me, seed);
  2057. }
  2058. function copy(f, t) {
  2059. t.x = f.x.slice();
  2060. t.i = f.i;
  2061. return t;
  2062. }
  2063. function impl(seed, opts) {
  2064. if (seed == null)
  2065. seed = +new Date();
  2066. var xg = new XorGen(seed), state = opts && opts.state, prng = function() {
  2067. return (xg.next() >>> 0) / 4294967296;
  2068. };
  2069. prng.double = function() {
  2070. do {
  2071. var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21);
  2072. } while (result === 0);
  2073. return result;
  2074. };
  2075. prng.int32 = xg.next;
  2076. prng.quick = prng;
  2077. if (state) {
  2078. if (state.x)
  2079. copy(state, xg);
  2080. prng.state = function() {
  2081. return copy(xg, {});
  2082. };
  2083. }
  2084. return prng;
  2085. }
  2086. if (module2 && module2.exports) {
  2087. module2.exports = impl;
  2088. } else if (define2 && define2.amd) {
  2089. define2(function() {
  2090. return impl;
  2091. });
  2092. } else {
  2093. this.xorshift7 = impl;
  2094. }
  2095. })(
  2096. exports,
  2097. typeof module == "object" && module,
  2098. // present in node.js
  2099. typeof define == "function" && define
  2100. // present with an AMD loader
  2101. );
  2102. }
  2103. });
  2104. // node_modules/seedrandom/lib/xor4096.js
  2105. var require_xor4096 = __commonJS({
  2106. "node_modules/seedrandom/lib/xor4096.js"(exports, module) {
  2107. (function(global, module2, define2) {
  2108. function XorGen(seed) {
  2109. var me = this;
  2110. me.next = function() {
  2111. var w = me.w, X = me.X, i2 = me.i, t, v;
  2112. me.w = w = w + 1640531527 | 0;
  2113. v = X[i2 + 34 & 127];
  2114. t = X[i2 = i2 + 1 & 127];
  2115. v ^= v << 13;
  2116. t ^= t << 17;
  2117. v ^= v >>> 15;
  2118. t ^= t >>> 12;
  2119. v = X[i2] = v ^ t;
  2120. me.i = i2;
  2121. return v + (w ^ w >>> 16) | 0;
  2122. };
  2123. function init(me2, seed2) {
  2124. var t, v, i2, j, w, X = [], limit = 128;
  2125. if (seed2 === (seed2 | 0)) {
  2126. v = seed2;
  2127. seed2 = null;
  2128. } else {
  2129. seed2 = seed2 + "\0";
  2130. v = 0;
  2131. limit = Math.max(limit, seed2.length);
  2132. }
  2133. for (i2 = 0, j = -32; j < limit; ++j) {
  2134. if (seed2)
  2135. v ^= seed2.charCodeAt((j + 32) % seed2.length);
  2136. if (j === 0)
  2137. w = v;
  2138. v ^= v << 10;
  2139. v ^= v >>> 15;
  2140. v ^= v << 4;
  2141. v ^= v >>> 13;
  2142. if (j >= 0) {
  2143. w = w + 1640531527 | 0;
  2144. t = X[j & 127] ^= v + w;
  2145. i2 = 0 == t ? i2 + 1 : 0;
  2146. }
  2147. }
  2148. if (i2 >= 128) {
  2149. X[(seed2 && seed2.length || 0) & 127] = -1;
  2150. }
  2151. i2 = 127;
  2152. for (j = 4 * 128; j > 0; --j) {
  2153. v = X[i2 + 34 & 127];
  2154. t = X[i2 = i2 + 1 & 127];
  2155. v ^= v << 13;
  2156. t ^= t << 17;
  2157. v ^= v >>> 15;
  2158. t ^= t >>> 12;
  2159. X[i2] = v ^ t;
  2160. }
  2161. me2.w = w;
  2162. me2.X = X;
  2163. me2.i = i2;
  2164. }
  2165. init(me, seed);
  2166. }
  2167. function copy(f, t) {
  2168. t.i = f.i;
  2169. t.w = f.w;
  2170. t.X = f.X.slice();
  2171. return t;
  2172. }
  2173. ;
  2174. function impl(seed, opts) {
  2175. if (seed == null)
  2176. seed = +new Date();
  2177. var xg = new XorGen(seed), state = opts && opts.state, prng = function() {
  2178. return (xg.next() >>> 0) / 4294967296;
  2179. };
  2180. prng.double = function() {
  2181. do {
  2182. var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21);
  2183. } while (result === 0);
  2184. return result;
  2185. };
  2186. prng.int32 = xg.next;
  2187. prng.quick = prng;
  2188. if (state) {
  2189. if (state.X)
  2190. copy(state, xg);
  2191. prng.state = function() {
  2192. return copy(xg, {});
  2193. };
  2194. }
  2195. return prng;
  2196. }
  2197. if (module2 && module2.exports) {
  2198. module2.exports = impl;
  2199. } else if (define2 && define2.amd) {
  2200. define2(function() {
  2201. return impl;
  2202. });
  2203. } else {
  2204. this.xor4096 = impl;
  2205. }
  2206. })(
  2207. exports,
  2208. // window object or global
  2209. typeof module == "object" && module,
  2210. // present in node.js
  2211. typeof define == "function" && define
  2212. // present with an AMD loader
  2213. );
  2214. }
  2215. });
  2216. // node_modules/seedrandom/lib/tychei.js
  2217. var require_tychei = __commonJS({
  2218. "node_modules/seedrandom/lib/tychei.js"(exports, module) {
  2219. (function(global, module2, define2) {
  2220. function XorGen(seed) {
  2221. var me = this, strseed = "";
  2222. me.next = function() {
  2223. var b = me.b, c = me.c, d = me.d, a = me.a;
  2224. b = b << 25 ^ b >>> 7 ^ c;
  2225. c = c - d | 0;
  2226. d = d << 24 ^ d >>> 8 ^ a;
  2227. a = a - b | 0;
  2228. me.b = b = b << 20 ^ b >>> 12 ^ c;
  2229. me.c = c = c - d | 0;
  2230. me.d = d << 16 ^ c >>> 16 ^ a;
  2231. return me.a = a - b | 0;
  2232. };
  2233. me.a = 0;
  2234. me.b = 0;
  2235. me.c = 2654435769 | 0;
  2236. me.d = 1367130551;
  2237. if (seed === Math.floor(seed)) {
  2238. me.a = seed / 4294967296 | 0;
  2239. me.b = seed | 0;
  2240. } else {
  2241. strseed += seed;
  2242. }
  2243. for (var k = 0; k < strseed.length + 20; k++) {
  2244. me.b ^= strseed.charCodeAt(k) | 0;
  2245. me.next();
  2246. }
  2247. }
  2248. function copy(f, t) {
  2249. t.a = f.a;
  2250. t.b = f.b;
  2251. t.c = f.c;
  2252. t.d = f.d;
  2253. return t;
  2254. }
  2255. ;
  2256. function impl(seed, opts) {
  2257. var xg = new XorGen(seed), state = opts && opts.state, prng = function() {
  2258. return (xg.next() >>> 0) / 4294967296;
  2259. };
  2260. prng.double = function() {
  2261. do {
  2262. var top = xg.next() >>> 11, bot = (xg.next() >>> 0) / 4294967296, result = (top + bot) / (1 << 21);
  2263. } while (result === 0);
  2264. return result;
  2265. };
  2266. prng.int32 = xg.next;
  2267. prng.quick = prng;
  2268. if (state) {
  2269. if (typeof state == "object")
  2270. copy(state, xg);
  2271. prng.state = function() {
  2272. return copy(xg, {});
  2273. };
  2274. }
  2275. return prng;
  2276. }
  2277. if (module2 && module2.exports) {
  2278. module2.exports = impl;
  2279. } else if (define2 && define2.amd) {
  2280. define2(function() {
  2281. return impl;
  2282. });
  2283. } else {
  2284. this.tychei = impl;
  2285. }
  2286. })(
  2287. exports,
  2288. typeof module == "object" && module,
  2289. // present in node.js
  2290. typeof define == "function" && define
  2291. // present with an AMD loader
  2292. );
  2293. }
  2294. });
  2295. // browser-external:crypto
  2296. var require_crypto = __commonJS({
  2297. "browser-external:crypto"(exports, module) {
  2298. module.exports = Object.create(new Proxy({}, {
  2299. get(_, key) {
  2300. if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") {
  2301. console.warn(`Module "crypto" has been externalized for browser compatibility. Cannot access "crypto.${key}" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`);
  2302. }
  2303. }
  2304. }));
  2305. }
  2306. });
  2307. // node_modules/seedrandom/seedrandom.js
  2308. var require_seedrandom = __commonJS({
  2309. "node_modules/seedrandom/seedrandom.js"(exports, module) {
  2310. (function(global, pool, math2) {
  2311. var width = 256, chunks = 6, digits2 = 52, rngname = "random", startdenom = math2.pow(width, chunks), significance = math2.pow(2, digits2), overflow = significance * 2, mask = width - 1, nodecrypto;
  2312. function seedrandom2(seed, options, callback) {
  2313. var key = [];
  2314. options = options == true ? { entropy: true } : options || {};
  2315. var shortseed = mixkey(flatten3(
  2316. options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed,
  2317. 3
  2318. ), key);
  2319. var arc4 = new ARC4(key);
  2320. var prng = function() {
  2321. var n = arc4.g(chunks), d = startdenom, x = 0;
  2322. while (n < significance) {
  2323. n = (n + x) * width;
  2324. d *= width;
  2325. x = arc4.g(1);
  2326. }
  2327. while (n >= overflow) {
  2328. n /= 2;
  2329. d /= 2;
  2330. x >>>= 1;
  2331. }
  2332. return (n + x) / d;
  2333. };
  2334. prng.int32 = function() {
  2335. return arc4.g(4) | 0;
  2336. };
  2337. prng.quick = function() {
  2338. return arc4.g(4) / 4294967296;
  2339. };
  2340. prng.double = prng;
  2341. mixkey(tostring(arc4.S), pool);
  2342. return (options.pass || callback || function(prng2, seed2, is_math_call, state) {
  2343. if (state) {
  2344. if (state.S) {
  2345. copy(state, arc4);
  2346. }
  2347. prng2.state = function() {
  2348. return copy(arc4, {});
  2349. };
  2350. }
  2351. if (is_math_call) {
  2352. math2[rngname] = prng2;
  2353. return seed2;
  2354. } else
  2355. return prng2;
  2356. })(
  2357. prng,
  2358. shortseed,
  2359. "global" in options ? options.global : this == math2,
  2360. options.state
  2361. );
  2362. }
  2363. function ARC4(key) {
  2364. var t, keylen = key.length, me = this, i2 = 0, j = me.i = me.j = 0, s = me.S = [];
  2365. if (!keylen) {
  2366. key = [keylen++];
  2367. }
  2368. while (i2 < width) {
  2369. s[i2] = i2++;
  2370. }
  2371. for (i2 = 0; i2 < width; i2++) {
  2372. s[i2] = s[j = mask & j + key[i2 % keylen] + (t = s[i2])];
  2373. s[j] = t;
  2374. }
  2375. (me.g = function(count2) {
  2376. var t2, r = 0, i3 = me.i, j2 = me.j, s2 = me.S;
  2377. while (count2--) {
  2378. t2 = s2[i3 = mask & i3 + 1];
  2379. r = r * width + s2[mask & (s2[i3] = s2[j2 = mask & j2 + t2]) + (s2[j2] = t2)];
  2380. }
  2381. me.i = i3;
  2382. me.j = j2;
  2383. return r;
  2384. })(width);
  2385. }
  2386. function copy(f, t) {
  2387. t.i = f.i;
  2388. t.j = f.j;
  2389. t.S = f.S.slice();
  2390. return t;
  2391. }
  2392. ;
  2393. function flatten3(obj, depth) {
  2394. var result = [], typ = typeof obj, prop;
  2395. if (depth && typ == "object") {
  2396. for (prop in obj) {
  2397. try {
  2398. result.push(flatten3(obj[prop], depth - 1));
  2399. } catch (e3) {
  2400. }
  2401. }
  2402. }
  2403. return result.length ? result : typ == "string" ? obj : obj + "\0";
  2404. }
  2405. function mixkey(seed, key) {
  2406. var stringseed = seed + "", smear, j = 0;
  2407. while (j < stringseed.length) {
  2408. key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);
  2409. }
  2410. return tostring(key);
  2411. }
  2412. function autoseed() {
  2413. try {
  2414. var out;
  2415. if (nodecrypto && (out = nodecrypto.randomBytes)) {
  2416. out = out(width);
  2417. } else {
  2418. out = new Uint8Array(width);
  2419. (global.crypto || global.msCrypto).getRandomValues(out);
  2420. }
  2421. return tostring(out);
  2422. } catch (e3) {
  2423. var browser = global.navigator, plugins = browser && browser.plugins;
  2424. return [+new Date(), global, plugins, global.screen, tostring(pool)];
  2425. }
  2426. }
  2427. function tostring(a) {
  2428. return String.fromCharCode.apply(0, a);
  2429. }
  2430. mixkey(math2.random(), pool);
  2431. if (typeof module == "object" && module.exports) {
  2432. module.exports = seedrandom2;
  2433. try {
  2434. nodecrypto = require_crypto();
  2435. } catch (ex) {
  2436. }
  2437. } else if (typeof define == "function" && define.amd) {
  2438. define(function() {
  2439. return seedrandom2;
  2440. });
  2441. } else {
  2442. math2["seed" + rngname] = seedrandom2;
  2443. }
  2444. })(
  2445. // global: `self` in browsers (including strict mode and web workers),
  2446. // otherwise `this` in Node and other environments
  2447. typeof self !== "undefined" ? self : exports,
  2448. [],
  2449. // pool: entropy pool starts empty
  2450. Math
  2451. // math: package containing random, pow, and seedrandom
  2452. );
  2453. }
  2454. });
  2455. // node_modules/seedrandom/index.js
  2456. var require_seedrandom2 = __commonJS({
  2457. "node_modules/seedrandom/index.js"(exports, module) {
  2458. var alea = require_alea();
  2459. var xor128 = require_xor128();
  2460. var xorwow = require_xorwow();
  2461. var xorshift7 = require_xorshift7();
  2462. var xor4096 = require_xor4096();
  2463. var tychei = require_tychei();
  2464. var sr = require_seedrandom();
  2465. sr.alea = alea;
  2466. sr.xor128 = xor128;
  2467. sr.xorwow = xorwow;
  2468. sr.xorshift7 = xorshift7;
  2469. sr.xor4096 = xor4096;
  2470. sr.tychei = tychei;
  2471. module.exports = sr;
  2472. }
  2473. });
  2474. // node_modules/tiny-emitter/index.js
  2475. var require_tiny_emitter = __commonJS({
  2476. "node_modules/tiny-emitter/index.js"(exports, module) {
  2477. function E() {
  2478. }
  2479. E.prototype = {
  2480. on: function(name302, callback, ctx) {
  2481. var e3 = this.e || (this.e = {});
  2482. (e3[name302] || (e3[name302] = [])).push({
  2483. fn: callback,
  2484. ctx
  2485. });
  2486. return this;
  2487. },
  2488. once: function(name302, callback, ctx) {
  2489. var self2 = this;
  2490. function listener() {
  2491. self2.off(name302, listener);
  2492. callback.apply(ctx, arguments);
  2493. }
  2494. ;
  2495. listener._ = callback;
  2496. return this.on(name302, listener, ctx);
  2497. },
  2498. emit: function(name302) {
  2499. var data = [].slice.call(arguments, 1);
  2500. var evtArr = ((this.e || (this.e = {}))[name302] || []).slice();
  2501. var i2 = 0;
  2502. var len = evtArr.length;
  2503. for (i2; i2 < len; i2++) {
  2504. evtArr[i2].fn.apply(evtArr[i2].ctx, data);
  2505. }
  2506. return this;
  2507. },
  2508. off: function(name302, callback) {
  2509. var e3 = this.e || (this.e = {});
  2510. var evts = e3[name302];
  2511. var liveEvents = [];
  2512. if (evts && callback) {
  2513. for (var i2 = 0, len = evts.length; i2 < len; i2++) {
  2514. if (evts[i2].fn !== callback && evts[i2].fn._ !== callback)
  2515. liveEvents.push(evts[i2]);
  2516. }
  2517. }
  2518. liveEvents.length ? e3[name302] = liveEvents : delete e3[name302];
  2519. return this;
  2520. }
  2521. };
  2522. module.exports = E;
  2523. module.exports.TinyEmitter = E;
  2524. }
  2525. });
  2526. // node_modules/mathjs/lib/esm/core/config.js
  2527. var DEFAULT_CONFIG = {
  2528. // minimum relative difference between two compared values,
  2529. // used by all comparison functions
  2530. epsilon: 1e-12,
  2531. // type of default matrix output. Choose 'matrix' (default) or 'array'
  2532. matrix: "Matrix",
  2533. // type of default number output. Choose 'number' (default) 'BigNumber', or 'Fraction
  2534. number: "number",
  2535. // number of significant digits in BigNumbers
  2536. precision: 64,
  2537. // predictable output type of functions. When true, output type depends only
  2538. // on the input types. When false (default), output type can vary depending
  2539. // on input values. For example `math.sqrt(-4)` returns `complex('2i')` when
  2540. // predictable is false, and returns `NaN` when true.
  2541. predictable: false,
  2542. // random seed for seeded pseudo random number generation
  2543. // null = randomly seed
  2544. randomSeed: null
  2545. };
  2546. // node_modules/mathjs/lib/esm/utils/is.js
  2547. function isNumber(x) {
  2548. return typeof x === "number";
  2549. }
  2550. function isBigNumber(x) {
  2551. if (!x || typeof x !== "object" || typeof x.constructor !== "function") {
  2552. return false;
  2553. }
  2554. if (x.isBigNumber === true && typeof x.constructor.prototype === "object" && x.constructor.prototype.isBigNumber === true) {
  2555. return true;
  2556. }
  2557. if (typeof x.constructor.isDecimal === "function" && x.constructor.isDecimal(x) === true) {
  2558. return true;
  2559. }
  2560. return false;
  2561. }
  2562. function isComplex(x) {
  2563. return x && typeof x === "object" && Object.getPrototypeOf(x).isComplex === true || false;
  2564. }
  2565. function isFraction(x) {
  2566. return x && typeof x === "object" && Object.getPrototypeOf(x).isFraction === true || false;
  2567. }
  2568. function isUnit(x) {
  2569. return x && x.constructor.prototype.isUnit === true || false;
  2570. }
  2571. function isString(x) {
  2572. return typeof x === "string";
  2573. }
  2574. var isArray = Array.isArray;
  2575. function isMatrix(x) {
  2576. return x && x.constructor.prototype.isMatrix === true || false;
  2577. }
  2578. function isCollection(x) {
  2579. return Array.isArray(x) || isMatrix(x);
  2580. }
  2581. function isDenseMatrix(x) {
  2582. return x && x.isDenseMatrix && x.constructor.prototype.isMatrix === true || false;
  2583. }
  2584. function isSparseMatrix(x) {
  2585. return x && x.isSparseMatrix && x.constructor.prototype.isMatrix === true || false;
  2586. }
  2587. function isRange(x) {
  2588. return x && x.constructor.prototype.isRange === true || false;
  2589. }
  2590. function isIndex(x) {
  2591. return x && x.constructor.prototype.isIndex === true || false;
  2592. }
  2593. function isBoolean(x) {
  2594. return typeof x === "boolean";
  2595. }
  2596. function isResultSet(x) {
  2597. return x && x.constructor.prototype.isResultSet === true || false;
  2598. }
  2599. function isHelp(x) {
  2600. return x && x.constructor.prototype.isHelp === true || false;
  2601. }
  2602. function isFunction(x) {
  2603. return typeof x === "function";
  2604. }
  2605. function isDate(x) {
  2606. return x instanceof Date;
  2607. }
  2608. function isRegExp(x) {
  2609. return x instanceof RegExp;
  2610. }
  2611. function isObject(x) {
  2612. return !!(x && typeof x === "object" && x.constructor === Object && !isComplex(x) && !isFraction(x));
  2613. }
  2614. function isNull(x) {
  2615. return x === null;
  2616. }
  2617. function isUndefined(x) {
  2618. return x === void 0;
  2619. }
  2620. function isAccessorNode(x) {
  2621. return x && x.isAccessorNode === true && x.constructor.prototype.isNode === true || false;
  2622. }
  2623. function isArrayNode(x) {
  2624. return x && x.isArrayNode === true && x.constructor.prototype.isNode === true || false;
  2625. }
  2626. function isAssignmentNode(x) {
  2627. return x && x.isAssignmentNode === true && x.constructor.prototype.isNode === true || false;
  2628. }
  2629. function isBlockNode(x) {
  2630. return x && x.isBlockNode === true && x.constructor.prototype.isNode === true || false;
  2631. }
  2632. function isConditionalNode(x) {
  2633. return x && x.isConditionalNode === true && x.constructor.prototype.isNode === true || false;
  2634. }
  2635. function isConstantNode(x) {
  2636. return x && x.isConstantNode === true && x.constructor.prototype.isNode === true || false;
  2637. }
  2638. function rule2Node(node) {
  2639. return isConstantNode(node) || isOperatorNode(node) && node.args.length === 1 && isConstantNode(node.args[0]) && "-+~".includes(node.op);
  2640. }
  2641. function isFunctionAssignmentNode(x) {
  2642. return x && x.isFunctionAssignmentNode === true && x.constructor.prototype.isNode === true || false;
  2643. }
  2644. function isFunctionNode(x) {
  2645. return x && x.isFunctionNode === true && x.constructor.prototype.isNode === true || false;
  2646. }
  2647. function isIndexNode(x) {
  2648. return x && x.isIndexNode === true && x.constructor.prototype.isNode === true || false;
  2649. }
  2650. function isNode(x) {
  2651. return x && x.isNode === true && x.constructor.prototype.isNode === true || false;
  2652. }
  2653. function isObjectNode(x) {
  2654. return x && x.isObjectNode === true && x.constructor.prototype.isNode === true || false;
  2655. }
  2656. function isOperatorNode(x) {
  2657. return x && x.isOperatorNode === true && x.constructor.prototype.isNode === true || false;
  2658. }
  2659. function isParenthesisNode(x) {
  2660. return x && x.isParenthesisNode === true && x.constructor.prototype.isNode === true || false;
  2661. }
  2662. function isRangeNode(x) {
  2663. return x && x.isRangeNode === true && x.constructor.prototype.isNode === true || false;
  2664. }
  2665. function isRelationalNode(x) {
  2666. return x && x.isRelationalNode === true && x.constructor.prototype.isNode === true || false;
  2667. }
  2668. function isSymbolNode(x) {
  2669. return x && x.isSymbolNode === true && x.constructor.prototype.isNode === true || false;
  2670. }
  2671. function isChain(x) {
  2672. return x && x.constructor.prototype.isChain === true || false;
  2673. }
  2674. function typeOf(x) {
  2675. var t = typeof x;
  2676. if (t === "object") {
  2677. if (x === null)
  2678. return "null";
  2679. if (isBigNumber(x))
  2680. return "BigNumber";
  2681. if (x.constructor && x.constructor.name)
  2682. return x.constructor.name;
  2683. return "Object";
  2684. }
  2685. return t;
  2686. }
  2687. // node_modules/mathjs/lib/esm/utils/object.js
  2688. function clone(x) {
  2689. var type = typeof x;
  2690. if (type === "number" || type === "string" || type === "boolean" || x === null || x === void 0) {
  2691. return x;
  2692. }
  2693. if (typeof x.clone === "function") {
  2694. return x.clone();
  2695. }
  2696. if (Array.isArray(x)) {
  2697. return x.map(function(value) {
  2698. return clone(value);
  2699. });
  2700. }
  2701. if (x instanceof Date)
  2702. return new Date(x.valueOf());
  2703. if (isBigNumber(x))
  2704. return x;
  2705. if (x instanceof RegExp)
  2706. throw new TypeError("Cannot clone " + x);
  2707. return mapObject(x, clone);
  2708. }
  2709. function mapObject(object, callback) {
  2710. var clone4 = {};
  2711. for (var key in object) {
  2712. if (hasOwnProperty2(object, key)) {
  2713. clone4[key] = callback(object[key]);
  2714. }
  2715. }
  2716. return clone4;
  2717. }
  2718. function extend(a, b) {
  2719. for (var prop in b) {
  2720. if (hasOwnProperty2(b, prop)) {
  2721. a[prop] = b[prop];
  2722. }
  2723. }
  2724. return a;
  2725. }
  2726. function deepExtend(a, b) {
  2727. if (Array.isArray(b)) {
  2728. throw new TypeError("Arrays are not supported by deepExtend");
  2729. }
  2730. for (var prop in b) {
  2731. if (hasOwnProperty2(b, prop) && !(prop in Object.prototype) && !(prop in Function.prototype)) {
  2732. if (b[prop] && b[prop].constructor === Object) {
  2733. if (a[prop] === void 0) {
  2734. a[prop] = {};
  2735. }
  2736. if (a[prop] && a[prop].constructor === Object) {
  2737. deepExtend(a[prop], b[prop]);
  2738. } else {
  2739. a[prop] = b[prop];
  2740. }
  2741. } else if (Array.isArray(b[prop])) {
  2742. throw new TypeError("Arrays are not supported by deepExtend");
  2743. } else {
  2744. a[prop] = b[prop];
  2745. }
  2746. }
  2747. }
  2748. return a;
  2749. }
  2750. function deepStrictEqual(a, b) {
  2751. var prop, i2, len;
  2752. if (Array.isArray(a)) {
  2753. if (!Array.isArray(b)) {
  2754. return false;
  2755. }
  2756. if (a.length !== b.length) {
  2757. return false;
  2758. }
  2759. for (i2 = 0, len = a.length; i2 < len; i2++) {
  2760. if (!deepStrictEqual(a[i2], b[i2])) {
  2761. return false;
  2762. }
  2763. }
  2764. return true;
  2765. } else if (typeof a === "function") {
  2766. return a === b;
  2767. } else if (a instanceof Object) {
  2768. if (Array.isArray(b) || !(b instanceof Object)) {
  2769. return false;
  2770. }
  2771. for (prop in a) {
  2772. if (!(prop in b) || !deepStrictEqual(a[prop], b[prop])) {
  2773. return false;
  2774. }
  2775. }
  2776. for (prop in b) {
  2777. if (!(prop in a)) {
  2778. return false;
  2779. }
  2780. }
  2781. return true;
  2782. } else {
  2783. return a === b;
  2784. }
  2785. }
  2786. function deepFlatten(nestedObject) {
  2787. var flattenedObject = {};
  2788. _deepFlatten(nestedObject, flattenedObject);
  2789. return flattenedObject;
  2790. }
  2791. function _deepFlatten(nestedObject, flattenedObject) {
  2792. for (var prop in nestedObject) {
  2793. if (hasOwnProperty2(nestedObject, prop)) {
  2794. var value = nestedObject[prop];
  2795. if (typeof value === "object" && value !== null) {
  2796. _deepFlatten(value, flattenedObject);
  2797. } else {
  2798. flattenedObject[prop] = value;
  2799. }
  2800. }
  2801. }
  2802. }
  2803. function lazy(object, prop, valueResolver) {
  2804. var _uninitialized = true;
  2805. var _value;
  2806. Object.defineProperty(object, prop, {
  2807. get: function get() {
  2808. if (_uninitialized) {
  2809. _value = valueResolver();
  2810. _uninitialized = false;
  2811. }
  2812. return _value;
  2813. },
  2814. set: function set(value) {
  2815. _value = value;
  2816. _uninitialized = false;
  2817. },
  2818. configurable: true,
  2819. enumerable: true
  2820. });
  2821. }
  2822. function hasOwnProperty2(object, property) {
  2823. return object && Object.hasOwnProperty.call(object, property);
  2824. }
  2825. function isLegacyFactory(object) {
  2826. return object && typeof object.factory === "function";
  2827. }
  2828. function pickShallow(object, properties2) {
  2829. var copy = {};
  2830. for (var i2 = 0; i2 < properties2.length; i2++) {
  2831. var key = properties2[i2];
  2832. var value = object[key];
  2833. if (value !== void 0) {
  2834. copy[key] = value;
  2835. }
  2836. }
  2837. return copy;
  2838. }
  2839. function values(object) {
  2840. return Object.keys(object).map((key) => object[key]);
  2841. }
  2842. // node_modules/mathjs/lib/esm/core/function/config.js
  2843. var MATRIX_OPTIONS = ["Matrix", "Array"];
  2844. var NUMBER_OPTIONS = ["number", "BigNumber", "Fraction"];
  2845. function configFactory(config4, emit) {
  2846. function _config(options) {
  2847. if (options) {
  2848. var prev = mapObject(config4, clone);
  2849. validateOption(options, "matrix", MATRIX_OPTIONS);
  2850. validateOption(options, "number", NUMBER_OPTIONS);
  2851. deepExtend(config4, options);
  2852. var curr = mapObject(config4, clone);
  2853. var changes = mapObject(options, clone);
  2854. emit("config", curr, prev, changes);
  2855. return curr;
  2856. } else {
  2857. return mapObject(config4, clone);
  2858. }
  2859. }
  2860. _config.MATRIX_OPTIONS = MATRIX_OPTIONS;
  2861. _config.NUMBER_OPTIONS = NUMBER_OPTIONS;
  2862. Object.keys(DEFAULT_CONFIG).forEach((key) => {
  2863. Object.defineProperty(_config, key, {
  2864. get: () => config4[key],
  2865. enumerable: true,
  2866. configurable: true
  2867. });
  2868. });
  2869. return _config;
  2870. }
  2871. function contains(array, item) {
  2872. return array.indexOf(item) !== -1;
  2873. }
  2874. function validateOption(options, name302, values2) {
  2875. if (options[name302] !== void 0 && !contains(values2, options[name302])) {
  2876. console.warn('Warning: Unknown value "' + options[name302] + '" for configuration option "' + name302 + '". Available options: ' + values2.map((value) => JSON.stringify(value)).join(", ") + ".");
  2877. }
  2878. }
  2879. // node_modules/mathjs/lib/esm/entry/configReadonly.js
  2880. var config = function config2(options) {
  2881. if (options) {
  2882. throw new Error("The global config is readonly. \nPlease create a mathjs instance if you want to change the default configuration. \nExample:\n\n import { create, all } from 'mathjs';\n const mathjs = create(all);\n mathjs.config({ number: 'BigNumber' });\n");
  2883. }
  2884. return Object.freeze(DEFAULT_CONFIG);
  2885. };
  2886. _extends(config, DEFAULT_CONFIG, {
  2887. MATRIX_OPTIONS,
  2888. NUMBER_OPTIONS
  2889. });
  2890. // node_modules/mathjs/lib/esm/factoriesAny.js
  2891. var factoriesAny_exports = {};
  2892. __export(factoriesAny_exports, {
  2893. createAbs: () => createAbs,
  2894. createAccessorNode: () => createAccessorNode,
  2895. createAcos: () => createAcos,
  2896. createAcosh: () => createAcosh,
  2897. createAcot: () => createAcot,
  2898. createAcoth: () => createAcoth,
  2899. createAcsc: () => createAcsc,
  2900. createAcsch: () => createAcsch,
  2901. createAdd: () => createAdd,
  2902. createAddScalar: () => createAddScalar,
  2903. createAnd: () => createAnd,
  2904. createApply: () => createApply,
  2905. createApplyTransform: () => createApplyTransform,
  2906. createArg: () => createArg,
  2907. createArrayNode: () => createArrayNode,
  2908. createAsec: () => createAsec,
  2909. createAsech: () => createAsech,
  2910. createAsin: () => createAsin,
  2911. createAsinh: () => createAsinh,
  2912. createAssignmentNode: () => createAssignmentNode,
  2913. createAtan: () => createAtan,
  2914. createAtan2: () => createAtan2,
  2915. createAtanh: () => createAtanh,
  2916. createAtomicMass: () => createAtomicMass,
  2917. createAvogadro: () => createAvogadro,
  2918. createBellNumbers: () => createBellNumbers,
  2919. createBigNumberClass: () => createBigNumberClass,
  2920. createBignumber: () => createBignumber,
  2921. createBin: () => createBin,
  2922. createBitAnd: () => createBitAnd,
  2923. createBitNot: () => createBitNot,
  2924. createBitOr: () => createBitOr,
  2925. createBitXor: () => createBitXor,
  2926. createBlockNode: () => createBlockNode,
  2927. createBohrMagneton: () => createBohrMagneton,
  2928. createBohrRadius: () => createBohrRadius,
  2929. createBoltzmann: () => createBoltzmann,
  2930. createBoolean: () => createBoolean,
  2931. createCatalan: () => createCatalan,
  2932. createCbrt: () => createCbrt,
  2933. createCeil: () => createCeil,
  2934. createChain: () => createChain,
  2935. createChainClass: () => createChainClass,
  2936. createClassicalElectronRadius: () => createClassicalElectronRadius,
  2937. createClone: () => createClone,
  2938. createColumn: () => createColumn,
  2939. createColumnTransform: () => createColumnTransform,
  2940. createCombinations: () => createCombinations,
  2941. createCombinationsWithRep: () => createCombinationsWithRep,
  2942. createCompare: () => createCompare,
  2943. createCompareNatural: () => createCompareNatural,
  2944. createCompareText: () => createCompareText,
  2945. createCompile: () => createCompile,
  2946. createComplex: () => createComplex,
  2947. createComplexClass: () => createComplexClass,
  2948. createComposition: () => createComposition,
  2949. createConcat: () => createConcat,
  2950. createConcatTransform: () => createConcatTransform,
  2951. createConditionalNode: () => createConditionalNode,
  2952. createConductanceQuantum: () => createConductanceQuantum,
  2953. createConj: () => createConj,
  2954. createConstantNode: () => createConstantNode,
  2955. createCos: () => createCos,
  2956. createCosh: () => createCosh,
  2957. createCot: () => createCot,
  2958. createCoth: () => createCoth,
  2959. createCoulomb: () => createCoulomb,
  2960. createCount: () => createCount,
  2961. createCreateUnit: () => createCreateUnit,
  2962. createCross: () => createCross,
  2963. createCsc: () => createCsc,
  2964. createCsch: () => createCsch,
  2965. createCtranspose: () => createCtranspose,
  2966. createCube: () => createCube,
  2967. createCumSum: () => createCumSum,
  2968. createCumSumTransform: () => createCumSumTransform,
  2969. createDeepEqual: () => createDeepEqual,
  2970. createDenseMatrixClass: () => createDenseMatrixClass,
  2971. createDerivative: () => createDerivative,
  2972. createDet: () => createDet,
  2973. createDeuteronMass: () => createDeuteronMass,
  2974. createDiag: () => createDiag,
  2975. createDiff: () => createDiff,
  2976. createDiffTransform: () => createDiffTransform,
  2977. createDistance: () => createDistance,
  2978. createDivide: () => createDivide,
  2979. createDivideScalar: () => createDivideScalar,
  2980. createDot: () => createDot,
  2981. createDotDivide: () => createDotDivide,
  2982. createDotMultiply: () => createDotMultiply,
  2983. createDotPow: () => createDotPow,
  2984. createE: () => createE,
  2985. createEfimovFactor: () => createEfimovFactor,
  2986. createEigs: () => createEigs,
  2987. createElectricConstant: () => createElectricConstant,
  2988. createElectronMass: () => createElectronMass,
  2989. createElementaryCharge: () => createElementaryCharge,
  2990. createEqual: () => createEqual,
  2991. createEqualScalar: () => createEqualScalar,
  2992. createEqualText: () => createEqualText,
  2993. createErf: () => createErf,
  2994. createEvaluate: () => createEvaluate,
  2995. createExp: () => createExp,
  2996. createExpm: () => createExpm,
  2997. createExpm1: () => createExpm1,
  2998. createFactorial: () => createFactorial,
  2999. createFalse: () => createFalse,
  3000. createFaraday: () => createFaraday,
  3001. createFermiCoupling: () => createFermiCoupling,
  3002. createFft: () => createFft,
  3003. createFibonacciHeapClass: () => createFibonacciHeapClass,
  3004. createFilter: () => createFilter,
  3005. createFilterTransform: () => createFilterTransform,
  3006. createFineStructure: () => createFineStructure,
  3007. createFirstRadiation: () => createFirstRadiation,
  3008. createFix: () => createFix,
  3009. createFlatten: () => createFlatten,
  3010. createFloor: () => createFloor,
  3011. createForEach: () => createForEach,
  3012. createForEachTransform: () => createForEachTransform,
  3013. createFormat: () => createFormat,
  3014. createFraction: () => createFraction,
  3015. createFractionClass: () => createFractionClass,
  3016. createFunctionAssignmentNode: () => createFunctionAssignmentNode,
  3017. createFunctionNode: () => createFunctionNode,
  3018. createGamma: () => createGamma,
  3019. createGasConstant: () => createGasConstant,
  3020. createGcd: () => createGcd,
  3021. createGetMatrixDataType: () => createGetMatrixDataType,
  3022. createGravitationConstant: () => createGravitationConstant,
  3023. createGravity: () => createGravity,
  3024. createHartreeEnergy: () => createHartreeEnergy,
  3025. createHasNumericValue: () => createHasNumericValue,
  3026. createHelp: () => createHelp,
  3027. createHelpClass: () => createHelpClass,
  3028. createHex: () => createHex,
  3029. createHypot: () => createHypot,
  3030. createI: () => createI,
  3031. createIdentity: () => createIdentity,
  3032. createIfft: () => createIfft,
  3033. createIm: () => createIm,
  3034. createImmutableDenseMatrixClass: () => createImmutableDenseMatrixClass,
  3035. createIndex: () => createIndex,
  3036. createIndexClass: () => createIndexClass,
  3037. createIndexNode: () => createIndexNode,
  3038. createIndexTransform: () => createIndexTransform,
  3039. createInfinity: () => createInfinity,
  3040. createIntersect: () => createIntersect,
  3041. createInv: () => createInv,
  3042. createInverseConductanceQuantum: () => createInverseConductanceQuantum,
  3043. createInvmod: () => createInvmod,
  3044. createIsInteger: () => createIsInteger,
  3045. createIsNaN: () => createIsNaN,
  3046. createIsNegative: () => createIsNegative,
  3047. createIsNumeric: () => createIsNumeric,
  3048. createIsPositive: () => createIsPositive,
  3049. createIsPrime: () => createIsPrime,
  3050. createIsZero: () => createIsZero,
  3051. createKldivergence: () => createKldivergence,
  3052. createKlitzing: () => createKlitzing,
  3053. createKron: () => createKron,
  3054. createLN10: () => createLN10,
  3055. createLN2: () => createLN2,
  3056. createLOG10E: () => createLOG10E,
  3057. createLOG2E: () => createLOG2E,
  3058. createLarger: () => createLarger,
  3059. createLargerEq: () => createLargerEq,
  3060. createLcm: () => createLcm,
  3061. createLeafCount: () => createLeafCount,
  3062. createLeftShift: () => createLeftShift,
  3063. createLgamma: () => createLgamma,
  3064. createLog: () => createLog,
  3065. createLog10: () => createLog10,
  3066. createLog1p: () => createLog1p,
  3067. createLog2: () => createLog2,
  3068. createLoschmidt: () => createLoschmidt,
  3069. createLsolve: () => createLsolve,
  3070. createLsolveAll: () => createLsolveAll,
  3071. createLup: () => createLup,
  3072. createLusolve: () => createLusolve,
  3073. createLyap: () => createLyap,
  3074. createMad: () => createMad,
  3075. createMagneticConstant: () => createMagneticConstant,
  3076. createMagneticFluxQuantum: () => createMagneticFluxQuantum,
  3077. createMap: () => createMap2,
  3078. createMapTransform: () => createMapTransform,
  3079. createMatrix: () => createMatrix,
  3080. createMatrixClass: () => createMatrixClass,
  3081. createMatrixFromColumns: () => createMatrixFromColumns,
  3082. createMatrixFromFunction: () => createMatrixFromFunction,
  3083. createMatrixFromRows: () => createMatrixFromRows,
  3084. createMax: () => createMax,
  3085. createMaxTransform: () => createMaxTransform,
  3086. createMean: () => createMean,
  3087. createMeanTransform: () => createMeanTransform,
  3088. createMedian: () => createMedian,
  3089. createMin: () => createMin,
  3090. createMinTransform: () => createMinTransform,
  3091. createMod: () => createMod,
  3092. createMode: () => createMode,
  3093. createMolarMass: () => createMolarMass,
  3094. createMolarMassC12: () => createMolarMassC12,
  3095. createMolarPlanckConstant: () => createMolarPlanckConstant,
  3096. createMolarVolume: () => createMolarVolume,
  3097. createMultinomial: () => createMultinomial,
  3098. createMultiply: () => createMultiply,
  3099. createMultiplyScalar: () => createMultiplyScalar,
  3100. createNaN: () => createNaN,
  3101. createNeutronMass: () => createNeutronMass,
  3102. createNode: () => createNode,
  3103. createNorm: () => createNorm,
  3104. createNot: () => createNot,
  3105. createNthRoot: () => createNthRoot,
  3106. createNthRoots: () => createNthRoots,
  3107. createNuclearMagneton: () => createNuclearMagneton,
  3108. createNull: () => createNull,
  3109. createNumber: () => createNumber,
  3110. createNumeric: () => createNumeric,
  3111. createObjectNode: () => createObjectNode,
  3112. createOct: () => createOct,
  3113. createOnes: () => createOnes,
  3114. createOperatorNode: () => createOperatorNode,
  3115. createOr: () => createOr,
  3116. createParenthesisNode: () => createParenthesisNode,
  3117. createParse: () => createParse,
  3118. createParser: () => createParser,
  3119. createParserClass: () => createParserClass,
  3120. createPartitionSelect: () => createPartitionSelect,
  3121. createPermutations: () => createPermutations,
  3122. createPhi: () => createPhi,
  3123. createPi: () => createPi,
  3124. createPickRandom: () => createPickRandom,
  3125. createPinv: () => createPinv,
  3126. createPlanckCharge: () => createPlanckCharge,
  3127. createPlanckConstant: () => createPlanckConstant,
  3128. createPlanckLength: () => createPlanckLength,
  3129. createPlanckMass: () => createPlanckMass,
  3130. createPlanckTemperature: () => createPlanckTemperature,
  3131. createPlanckTime: () => createPlanckTime,
  3132. createPolynomialRoot: () => createPolynomialRoot,
  3133. createPow: () => createPow,
  3134. createPrint: () => createPrint,
  3135. createProd: () => createProd,
  3136. createProtonMass: () => createProtonMass,
  3137. createQr: () => createQr,
  3138. createQuantileSeq: () => createQuantileSeq,
  3139. createQuantumOfCirculation: () => createQuantumOfCirculation,
  3140. createRandom: () => createRandom,
  3141. createRandomInt: () => createRandomInt,
  3142. createRange: () => createRange,
  3143. createRangeClass: () => createRangeClass,
  3144. createRangeNode: () => createRangeNode,
  3145. createRangeTransform: () => createRangeTransform,
  3146. createRationalize: () => createRationalize,
  3147. createRe: () => createRe,
  3148. createReducedPlanckConstant: () => createReducedPlanckConstant,
  3149. createRelationalNode: () => createRelationalNode,
  3150. createReplacer: () => createReplacer,
  3151. createReshape: () => createReshape,
  3152. createResize: () => createResize,
  3153. createResolve: () => createResolve,
  3154. createResultSet: () => createResultSet,
  3155. createReviver: () => createReviver,
  3156. createRightArithShift: () => createRightArithShift,
  3157. createRightLogShift: () => createRightLogShift,
  3158. createRotate: () => createRotate,
  3159. createRotationMatrix: () => createRotationMatrix,
  3160. createRound: () => createRound,
  3161. createRow: () => createRow,
  3162. createRowTransform: () => createRowTransform,
  3163. createRydberg: () => createRydberg,
  3164. createSQRT1_2: () => createSQRT1_2,
  3165. createSQRT2: () => createSQRT2,
  3166. createSackurTetrode: () => createSackurTetrode,
  3167. createSchur: () => createSchur,
  3168. createSec: () => createSec,
  3169. createSech: () => createSech,
  3170. createSecondRadiation: () => createSecondRadiation,
  3171. createSetCartesian: () => createSetCartesian,
  3172. createSetDifference: () => createSetDifference,
  3173. createSetDistinct: () => createSetDistinct,
  3174. createSetIntersect: () => createSetIntersect,
  3175. createSetIsSubset: () => createSetIsSubset,
  3176. createSetMultiplicity: () => createSetMultiplicity,
  3177. createSetPowerset: () => createSetPowerset,
  3178. createSetSize: () => createSetSize,
  3179. createSetSymDifference: () => createSetSymDifference,
  3180. createSetUnion: () => createSetUnion,
  3181. createSign: () => createSign,
  3182. createSimplify: () => createSimplify,
  3183. createSimplifyConstant: () => createSimplifyConstant,
  3184. createSimplifyCore: () => createSimplifyCore,
  3185. createSin: () => createSin,
  3186. createSinh: () => createSinh,
  3187. createSize: () => createSize,
  3188. createSlu: () => createSlu,
  3189. createSmaller: () => createSmaller,
  3190. createSmallerEq: () => createSmallerEq,
  3191. createSort: () => createSort,
  3192. createSpaClass: () => createSpaClass,
  3193. createSparse: () => createSparse,
  3194. createSparseMatrixClass: () => createSparseMatrixClass,
  3195. createSpeedOfLight: () => createSpeedOfLight,
  3196. createSplitUnit: () => createSplitUnit,
  3197. createSqrt: () => createSqrt,
  3198. createSqrtm: () => createSqrtm,
  3199. createSquare: () => createSquare,
  3200. createSqueeze: () => createSqueeze,
  3201. createStd: () => createStd,
  3202. createStdTransform: () => createStdTransform,
  3203. createStefanBoltzmann: () => createStefanBoltzmann,
  3204. createStirlingS2: () => createStirlingS2,
  3205. createString: () => createString,
  3206. createSubset: () => createSubset,
  3207. createSubsetTransform: () => createSubsetTransform,
  3208. createSubtract: () => createSubtract,
  3209. createSum: () => createSum,
  3210. createSumTransform: () => createSumTransform,
  3211. createSylvester: () => createSylvester,
  3212. createSymbolNode: () => createSymbolNode,
  3213. createSymbolicEqual: () => createSymbolicEqual,
  3214. createTan: () => createTan,
  3215. createTanh: () => createTanh,
  3216. createTau: () => createTau,
  3217. createThomsonCrossSection: () => createThomsonCrossSection,
  3218. createTo: () => createTo,
  3219. createTrace: () => createTrace,
  3220. createTranspose: () => createTranspose,
  3221. createTrue: () => createTrue,
  3222. createTypeOf: () => createTypeOf,
  3223. createTyped: () => createTyped,
  3224. createUnaryMinus: () => createUnaryMinus,
  3225. createUnaryPlus: () => createUnaryPlus,
  3226. createUnequal: () => createUnequal,
  3227. createUnitClass: () => createUnitClass,
  3228. createUnitFunction: () => createUnitFunction,
  3229. createUppercaseE: () => createUppercaseE,
  3230. createUppercasePi: () => createUppercasePi,
  3231. createUsolve: () => createUsolve,
  3232. createUsolveAll: () => createUsolveAll,
  3233. createVacuumImpedance: () => createVacuumImpedance,
  3234. createVariance: () => createVariance,
  3235. createVarianceTransform: () => createVarianceTransform,
  3236. createVersion: () => createVersion,
  3237. createWeakMixingAngle: () => createWeakMixingAngle,
  3238. createWienDisplacement: () => createWienDisplacement,
  3239. createXgcd: () => createXgcd,
  3240. createXor: () => createXor,
  3241. createZeros: () => createZeros
  3242. });
  3243. // node_modules/typed-function/lib/esm/typed-function.mjs
  3244. function _createForOfIteratorHelper(o, allowArrayLike) {
  3245. var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  3246. if (!it) {
  3247. if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
  3248. if (it)
  3249. o = it;
  3250. var i2 = 0;
  3251. var F = function F2() {
  3252. };
  3253. return { s: F, n: function n() {
  3254. if (i2 >= o.length)
  3255. return { done: true };
  3256. return { done: false, value: o[i2++] };
  3257. }, e: function e3(_e) {
  3258. throw _e;
  3259. }, f: F };
  3260. }
  3261. throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  3262. }
  3263. var normalCompletion = true, didErr = false, err;
  3264. return { s: function s() {
  3265. it = it.call(o);
  3266. }, n: function n() {
  3267. var step = it.next();
  3268. normalCompletion = step.done;
  3269. return step;
  3270. }, e: function e3(_e2) {
  3271. didErr = true;
  3272. err = _e2;
  3273. }, f: function f() {
  3274. try {
  3275. if (!normalCompletion && it.return != null)
  3276. it.return();
  3277. } finally {
  3278. if (didErr)
  3279. throw err;
  3280. }
  3281. } };
  3282. }
  3283. function _unsupportedIterableToArray(o, minLen) {
  3284. if (!o)
  3285. return;
  3286. if (typeof o === "string")
  3287. return _arrayLikeToArray(o, minLen);
  3288. var n = Object.prototype.toString.call(o).slice(8, -1);
  3289. if (n === "Object" && o.constructor)
  3290. n = o.constructor.name;
  3291. if (n === "Map" || n === "Set")
  3292. return Array.from(o);
  3293. if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
  3294. return _arrayLikeToArray(o, minLen);
  3295. }
  3296. function _arrayLikeToArray(arr, len) {
  3297. if (len == null || len > arr.length)
  3298. len = arr.length;
  3299. for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) {
  3300. arr2[i2] = arr[i2];
  3301. }
  3302. return arr2;
  3303. }
  3304. function _typeof(obj) {
  3305. "@babel/helpers - typeof";
  3306. return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
  3307. return typeof obj2;
  3308. } : function(obj2) {
  3309. return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
  3310. }, _typeof(obj);
  3311. }
  3312. function ok() {
  3313. return true;
  3314. }
  3315. function notOk() {
  3316. return false;
  3317. }
  3318. function undef() {
  3319. return void 0;
  3320. }
  3321. var NOT_TYPED_FUNCTION = "Argument is not a typed-function.";
  3322. function create() {
  3323. function isPlainObject2(x) {
  3324. return _typeof(x) === "object" && x !== null && x.constructor === Object;
  3325. }
  3326. var _types = [{
  3327. name: "number",
  3328. test: function test(x) {
  3329. return typeof x === "number";
  3330. }
  3331. }, {
  3332. name: "string",
  3333. test: function test(x) {
  3334. return typeof x === "string";
  3335. }
  3336. }, {
  3337. name: "boolean",
  3338. test: function test(x) {
  3339. return typeof x === "boolean";
  3340. }
  3341. }, {
  3342. name: "Function",
  3343. test: function test(x) {
  3344. return typeof x === "function";
  3345. }
  3346. }, {
  3347. name: "Array",
  3348. test: Array.isArray
  3349. }, {
  3350. name: "Date",
  3351. test: function test(x) {
  3352. return x instanceof Date;
  3353. }
  3354. }, {
  3355. name: "RegExp",
  3356. test: function test(x) {
  3357. return x instanceof RegExp;
  3358. }
  3359. }, {
  3360. name: "Object",
  3361. test: isPlainObject2
  3362. }, {
  3363. name: "null",
  3364. test: function test(x) {
  3365. return x === null;
  3366. }
  3367. }, {
  3368. name: "undefined",
  3369. test: function test(x) {
  3370. return x === void 0;
  3371. }
  3372. }];
  3373. var anyType = {
  3374. name: "any",
  3375. test: ok,
  3376. isAny: true
  3377. };
  3378. var typeMap;
  3379. var typeList;
  3380. var nConversions = 0;
  3381. var typed2 = {
  3382. createCount: 0
  3383. };
  3384. function findType(typeName) {
  3385. var type = typeMap.get(typeName);
  3386. if (type) {
  3387. return type;
  3388. }
  3389. var message = 'Unknown type "' + typeName + '"';
  3390. var name302 = typeName.toLowerCase();
  3391. var otherName;
  3392. var _iterator = _createForOfIteratorHelper(typeList), _step;
  3393. try {
  3394. for (_iterator.s(); !(_step = _iterator.n()).done; ) {
  3395. otherName = _step.value;
  3396. if (otherName.toLowerCase() === name302) {
  3397. message += '. Did you mean "' + otherName + '" ?';
  3398. break;
  3399. }
  3400. }
  3401. } catch (err) {
  3402. _iterator.e(err);
  3403. } finally {
  3404. _iterator.f();
  3405. }
  3406. throw new TypeError(message);
  3407. }
  3408. function addTypes(types) {
  3409. var beforeSpec = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "any";
  3410. var beforeIndex = beforeSpec ? findType(beforeSpec).index : typeList.length;
  3411. var newTypes = [];
  3412. for (var i2 = 0; i2 < types.length; ++i2) {
  3413. if (!types[i2] || typeof types[i2].name !== "string" || typeof types[i2].test !== "function") {
  3414. throw new TypeError("Object with properties {name: string, test: function} expected");
  3415. }
  3416. var typeName = types[i2].name;
  3417. if (typeMap.has(typeName)) {
  3418. throw new TypeError('Duplicate type name "' + typeName + '"');
  3419. }
  3420. newTypes.push(typeName);
  3421. typeMap.set(typeName, {
  3422. name: typeName,
  3423. test: types[i2].test,
  3424. isAny: types[i2].isAny,
  3425. index: beforeIndex + i2,
  3426. conversionsTo: []
  3427. // Newly added type can't have any conversions to it
  3428. });
  3429. }
  3430. var affectedTypes = typeList.slice(beforeIndex);
  3431. typeList = typeList.slice(0, beforeIndex).concat(newTypes).concat(affectedTypes);
  3432. for (var _i = beforeIndex + newTypes.length; _i < typeList.length; ++_i) {
  3433. typeMap.get(typeList[_i]).index = _i;
  3434. }
  3435. }
  3436. function clear() {
  3437. typeMap = /* @__PURE__ */ new Map();
  3438. typeList = [];
  3439. nConversions = 0;
  3440. addTypes([anyType], false);
  3441. }
  3442. clear();
  3443. addTypes(_types);
  3444. function clearConversions() {
  3445. var typeName;
  3446. var _iterator2 = _createForOfIteratorHelper(typeList), _step2;
  3447. try {
  3448. for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
  3449. typeName = _step2.value;
  3450. typeMap.get(typeName).conversionsTo = [];
  3451. }
  3452. } catch (err) {
  3453. _iterator2.e(err);
  3454. } finally {
  3455. _iterator2.f();
  3456. }
  3457. nConversions = 0;
  3458. }
  3459. function findTypeNames(value) {
  3460. var matches = typeList.filter(function(name302) {
  3461. var type = typeMap.get(name302);
  3462. return !type.isAny && type.test(value);
  3463. });
  3464. if (matches.length) {
  3465. return matches;
  3466. }
  3467. return ["any"];
  3468. }
  3469. function isTypedFunction(entity) {
  3470. return entity && typeof entity === "function" && "_typedFunctionData" in entity;
  3471. }
  3472. function findSignature(fn, signature, options) {
  3473. if (!isTypedFunction(fn)) {
  3474. throw new TypeError(NOT_TYPED_FUNCTION);
  3475. }
  3476. var exact = options && options.exact;
  3477. var stringSignature = Array.isArray(signature) ? signature.join(",") : signature;
  3478. var params = parseSignature(stringSignature);
  3479. var canonicalSignature = stringifyParams(params);
  3480. if (!exact || canonicalSignature in fn.signatures) {
  3481. var match = fn._typedFunctionData.signatureMap.get(canonicalSignature);
  3482. if (match) {
  3483. return match;
  3484. }
  3485. }
  3486. var nParams = params.length;
  3487. var remainingSignatures;
  3488. if (exact) {
  3489. remainingSignatures = [];
  3490. var name302;
  3491. for (name302 in fn.signatures) {
  3492. remainingSignatures.push(fn._typedFunctionData.signatureMap.get(name302));
  3493. }
  3494. } else {
  3495. remainingSignatures = fn._typedFunctionData.signatures;
  3496. }
  3497. for (var i2 = 0; i2 < nParams; ++i2) {
  3498. var want = params[i2];
  3499. var filteredSignatures = [];
  3500. var possibility = void 0;
  3501. var _iterator3 = _createForOfIteratorHelper(remainingSignatures), _step3;
  3502. try {
  3503. for (_iterator3.s(); !(_step3 = _iterator3.n()).done; ) {
  3504. possibility = _step3.value;
  3505. var have = getParamAtIndex(possibility.params, i2);
  3506. if (!have || want.restParam && !have.restParam) {
  3507. continue;
  3508. }
  3509. if (!have.hasAny) {
  3510. var _ret = function() {
  3511. var haveTypes = paramTypeSet(have);
  3512. if (want.types.some(function(wtype) {
  3513. return !haveTypes.has(wtype.name);
  3514. })) {
  3515. return "continue";
  3516. }
  3517. }();
  3518. if (_ret === "continue")
  3519. continue;
  3520. }
  3521. filteredSignatures.push(possibility);
  3522. }
  3523. } catch (err) {
  3524. _iterator3.e(err);
  3525. } finally {
  3526. _iterator3.f();
  3527. }
  3528. remainingSignatures = filteredSignatures;
  3529. if (remainingSignatures.length === 0)
  3530. break;
  3531. }
  3532. var candidate;
  3533. var _iterator4 = _createForOfIteratorHelper(remainingSignatures), _step4;
  3534. try {
  3535. for (_iterator4.s(); !(_step4 = _iterator4.n()).done; ) {
  3536. candidate = _step4.value;
  3537. if (candidate.params.length <= nParams) {
  3538. return candidate;
  3539. }
  3540. }
  3541. } catch (err) {
  3542. _iterator4.e(err);
  3543. } finally {
  3544. _iterator4.f();
  3545. }
  3546. throw new TypeError("Signature not found (signature: " + (fn.name || "unnamed") + "(" + stringifyParams(params, ", ") + "))");
  3547. }
  3548. function find(fn, signature, options) {
  3549. return findSignature(fn, signature, options).implementation;
  3550. }
  3551. function convert(value, typeName) {
  3552. var type = findType(typeName);
  3553. if (type.test(value)) {
  3554. return value;
  3555. }
  3556. var conversions = type.conversionsTo;
  3557. if (conversions.length === 0) {
  3558. throw new Error("There are no conversions to " + typeName + " defined.");
  3559. }
  3560. for (var i2 = 0; i2 < conversions.length; i2++) {
  3561. var fromType = findType(conversions[i2].from);
  3562. if (fromType.test(value)) {
  3563. return conversions[i2].convert(value);
  3564. }
  3565. }
  3566. throw new Error("Cannot convert " + value + " to " + typeName);
  3567. }
  3568. function stringifyParams(params) {
  3569. var separator = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ",";
  3570. return params.map(function(p) {
  3571. return p.name;
  3572. }).join(separator);
  3573. }
  3574. function parseParam(param) {
  3575. var restParam = param.indexOf("...") === 0;
  3576. var types = !restParam ? param : param.length > 3 ? param.slice(3) : "any";
  3577. var typeDefs = types.split("|").map(function(s) {
  3578. return findType(s.trim());
  3579. });
  3580. var hasAny = false;
  3581. var paramName = restParam ? "..." : "";
  3582. var exactTypes = typeDefs.map(function(type) {
  3583. hasAny = type.isAny || hasAny;
  3584. paramName += type.name + "|";
  3585. return {
  3586. name: type.name,
  3587. typeIndex: type.index,
  3588. test: type.test,
  3589. isAny: type.isAny,
  3590. conversion: null,
  3591. conversionIndex: -1
  3592. };
  3593. });
  3594. return {
  3595. types: exactTypes,
  3596. name: paramName.slice(0, -1),
  3597. // remove trailing '|' from above
  3598. hasAny,
  3599. hasConversion: false,
  3600. restParam
  3601. };
  3602. }
  3603. function expandParam(param) {
  3604. var typeNames = param.types.map(function(t) {
  3605. return t.name;
  3606. });
  3607. var matchingConversions = availableConversions(typeNames);
  3608. var hasAny = param.hasAny;
  3609. var newName = param.name;
  3610. var convertibleTypes = matchingConversions.map(function(conversion) {
  3611. var type = findType(conversion.from);
  3612. hasAny = type.isAny || hasAny;
  3613. newName += "|" + conversion.from;
  3614. return {
  3615. name: conversion.from,
  3616. typeIndex: type.index,
  3617. test: type.test,
  3618. isAny: type.isAny,
  3619. conversion,
  3620. conversionIndex: conversion.index
  3621. };
  3622. });
  3623. return {
  3624. types: param.types.concat(convertibleTypes),
  3625. name: newName,
  3626. hasAny,
  3627. hasConversion: convertibleTypes.length > 0,
  3628. restParam: param.restParam
  3629. };
  3630. }
  3631. function paramTypeSet(param) {
  3632. if (!param.typeSet) {
  3633. param.typeSet = /* @__PURE__ */ new Set();
  3634. param.types.forEach(function(type) {
  3635. return param.typeSet.add(type.name);
  3636. });
  3637. }
  3638. return param.typeSet;
  3639. }
  3640. function parseSignature(rawSignature) {
  3641. var params = [];
  3642. if (typeof rawSignature !== "string") {
  3643. throw new TypeError("Signatures must be strings");
  3644. }
  3645. var signature = rawSignature.trim();
  3646. if (signature === "") {
  3647. return params;
  3648. }
  3649. var rawParams = signature.split(",");
  3650. for (var i2 = 0; i2 < rawParams.length; ++i2) {
  3651. var parsedParam = parseParam(rawParams[i2].trim());
  3652. if (parsedParam.restParam && i2 !== rawParams.length - 1) {
  3653. throw new SyntaxError('Unexpected rest parameter "' + rawParams[i2] + '": only allowed for the last parameter');
  3654. }
  3655. if (parsedParam.types.length === 0) {
  3656. return null;
  3657. }
  3658. params.push(parsedParam);
  3659. }
  3660. return params;
  3661. }
  3662. function hasRestParam(params) {
  3663. var param = last(params);
  3664. return param ? param.restParam : false;
  3665. }
  3666. function compileTest(param) {
  3667. if (!param || param.types.length === 0) {
  3668. return ok;
  3669. } else if (param.types.length === 1) {
  3670. return findType(param.types[0].name).test;
  3671. } else if (param.types.length === 2) {
  3672. var test0 = findType(param.types[0].name).test;
  3673. var test1 = findType(param.types[1].name).test;
  3674. return function or2(x) {
  3675. return test0(x) || test1(x);
  3676. };
  3677. } else {
  3678. var tests = param.types.map(function(type) {
  3679. return findType(type.name).test;
  3680. });
  3681. return function or2(x) {
  3682. for (var i2 = 0; i2 < tests.length; i2++) {
  3683. if (tests[i2](x)) {
  3684. return true;
  3685. }
  3686. }
  3687. return false;
  3688. };
  3689. }
  3690. }
  3691. function compileTests(params) {
  3692. var tests, test0, test1;
  3693. if (hasRestParam(params)) {
  3694. tests = initial(params).map(compileTest);
  3695. var varIndex = tests.length;
  3696. var lastTest = compileTest(last(params));
  3697. var testRestParam = function testRestParam2(args) {
  3698. for (var i2 = varIndex; i2 < args.length; i2++) {
  3699. if (!lastTest(args[i2])) {
  3700. return false;
  3701. }
  3702. }
  3703. return true;
  3704. };
  3705. return function testArgs(args) {
  3706. for (var i2 = 0; i2 < tests.length; i2++) {
  3707. if (!tests[i2](args[i2])) {
  3708. return false;
  3709. }
  3710. }
  3711. return testRestParam(args) && args.length >= varIndex + 1;
  3712. };
  3713. } else {
  3714. if (params.length === 0) {
  3715. return function testArgs(args) {
  3716. return args.length === 0;
  3717. };
  3718. } else if (params.length === 1) {
  3719. test0 = compileTest(params[0]);
  3720. return function testArgs(args) {
  3721. return test0(args[0]) && args.length === 1;
  3722. };
  3723. } else if (params.length === 2) {
  3724. test0 = compileTest(params[0]);
  3725. test1 = compileTest(params[1]);
  3726. return function testArgs(args) {
  3727. return test0(args[0]) && test1(args[1]) && args.length === 2;
  3728. };
  3729. } else {
  3730. tests = params.map(compileTest);
  3731. return function testArgs(args) {
  3732. for (var i2 = 0; i2 < tests.length; i2++) {
  3733. if (!tests[i2](args[i2])) {
  3734. return false;
  3735. }
  3736. }
  3737. return args.length === tests.length;
  3738. };
  3739. }
  3740. }
  3741. }
  3742. function getParamAtIndex(params, index2) {
  3743. return index2 < params.length ? params[index2] : hasRestParam(params) ? last(params) : null;
  3744. }
  3745. function getTypeSetAtIndex(params, index2) {
  3746. var param = getParamAtIndex(params, index2);
  3747. if (!param) {
  3748. return /* @__PURE__ */ new Set();
  3749. }
  3750. return paramTypeSet(param);
  3751. }
  3752. function isExactType(type) {
  3753. return type.conversion === null || type.conversion === void 0;
  3754. }
  3755. function mergeExpectedParams(signatures, index2) {
  3756. var typeSet = /* @__PURE__ */ new Set();
  3757. signatures.forEach(function(signature) {
  3758. var paramSet = getTypeSetAtIndex(signature.params, index2);
  3759. var name302;
  3760. var _iterator5 = _createForOfIteratorHelper(paramSet), _step5;
  3761. try {
  3762. for (_iterator5.s(); !(_step5 = _iterator5.n()).done; ) {
  3763. name302 = _step5.value;
  3764. typeSet.add(name302);
  3765. }
  3766. } catch (err) {
  3767. _iterator5.e(err);
  3768. } finally {
  3769. _iterator5.f();
  3770. }
  3771. });
  3772. return typeSet.has("any") ? ["any"] : Array.from(typeSet);
  3773. }
  3774. function createError(name302, args, signatures) {
  3775. var err, expected;
  3776. var _name = name302 || "unnamed";
  3777. var matchingSignatures = signatures;
  3778. var index2;
  3779. var _loop = function _loop2() {
  3780. var nextMatchingDefs = [];
  3781. matchingSignatures.forEach(function(signature) {
  3782. var param = getParamAtIndex(signature.params, index2);
  3783. var test = compileTest(param);
  3784. if ((index2 < signature.params.length || hasRestParam(signature.params)) && test(args[index2])) {
  3785. nextMatchingDefs.push(signature);
  3786. }
  3787. });
  3788. if (nextMatchingDefs.length === 0) {
  3789. expected = mergeExpectedParams(matchingSignatures, index2);
  3790. if (expected.length > 0) {
  3791. var actualTypes = findTypeNames(args[index2]);
  3792. err = new TypeError("Unexpected type of argument in function " + _name + " (expected: " + expected.join(" or ") + ", actual: " + actualTypes.join(" | ") + ", index: " + index2 + ")");
  3793. err.data = {
  3794. category: "wrongType",
  3795. fn: _name,
  3796. index: index2,
  3797. actual: actualTypes,
  3798. expected
  3799. };
  3800. return {
  3801. v: err
  3802. };
  3803. }
  3804. } else {
  3805. matchingSignatures = nextMatchingDefs;
  3806. }
  3807. };
  3808. for (index2 = 0; index2 < args.length; index2++) {
  3809. var _ret2 = _loop();
  3810. if (_typeof(_ret2) === "object")
  3811. return _ret2.v;
  3812. }
  3813. var lengths = matchingSignatures.map(function(signature) {
  3814. return hasRestParam(signature.params) ? Infinity : signature.params.length;
  3815. });
  3816. if (args.length < Math.min.apply(null, lengths)) {
  3817. expected = mergeExpectedParams(matchingSignatures, index2);
  3818. err = new TypeError("Too few arguments in function " + _name + " (expected: " + expected.join(" or ") + ", index: " + args.length + ")");
  3819. err.data = {
  3820. category: "tooFewArgs",
  3821. fn: _name,
  3822. index: args.length,
  3823. expected
  3824. };
  3825. return err;
  3826. }
  3827. var maxLength = Math.max.apply(null, lengths);
  3828. if (args.length > maxLength) {
  3829. err = new TypeError("Too many arguments in function " + _name + " (expected: " + maxLength + ", actual: " + args.length + ")");
  3830. err.data = {
  3831. category: "tooManyArgs",
  3832. fn: _name,
  3833. index: args.length,
  3834. expectedLength: maxLength
  3835. };
  3836. return err;
  3837. }
  3838. var argTypes = [];
  3839. for (var i2 = 0; i2 < args.length; ++i2) {
  3840. argTypes.push(findTypeNames(args[i2]).join("|"));
  3841. }
  3842. err = new TypeError('Arguments of type "' + argTypes.join(", ") + '" do not match any of the defined signatures of function ' + _name + ".");
  3843. err.data = {
  3844. category: "mismatch",
  3845. actual: argTypes
  3846. };
  3847. return err;
  3848. }
  3849. function getLowestTypeIndex(param) {
  3850. var min3 = typeList.length + 1;
  3851. for (var i2 = 0; i2 < param.types.length; i2++) {
  3852. if (isExactType(param.types[i2])) {
  3853. min3 = Math.min(min3, param.types[i2].typeIndex);
  3854. }
  3855. }
  3856. return min3;
  3857. }
  3858. function getLowestConversionIndex(param) {
  3859. var min3 = nConversions + 1;
  3860. for (var i2 = 0; i2 < param.types.length; i2++) {
  3861. if (!isExactType(param.types[i2])) {
  3862. min3 = Math.min(min3, param.types[i2].conversionIndex);
  3863. }
  3864. }
  3865. return min3;
  3866. }
  3867. function compareParams(param1, param2) {
  3868. if (param1.hasAny) {
  3869. if (!param2.hasAny) {
  3870. return 1;
  3871. }
  3872. } else if (param2.hasAny) {
  3873. return -1;
  3874. }
  3875. if (param1.restParam) {
  3876. if (!param2.restParam) {
  3877. return 1;
  3878. }
  3879. } else if (param2.restParam) {
  3880. return -1;
  3881. }
  3882. if (param1.hasConversion) {
  3883. if (!param2.hasConversion) {
  3884. return 1;
  3885. }
  3886. } else if (param2.hasConversion) {
  3887. return -1;
  3888. }
  3889. var typeDiff = getLowestTypeIndex(param1) - getLowestTypeIndex(param2);
  3890. if (typeDiff < 0) {
  3891. return -1;
  3892. }
  3893. if (typeDiff > 0) {
  3894. return 1;
  3895. }
  3896. var convDiff = getLowestConversionIndex(param1) - getLowestConversionIndex(param2);
  3897. if (convDiff < 0) {
  3898. return -1;
  3899. }
  3900. if (convDiff > 0) {
  3901. return 1;
  3902. }
  3903. return 0;
  3904. }
  3905. function compareSignatures(signature1, signature2) {
  3906. var pars1 = signature1.params;
  3907. var pars2 = signature2.params;
  3908. var last1 = last(pars1);
  3909. var last2 = last(pars2);
  3910. var hasRest1 = hasRestParam(pars1);
  3911. var hasRest2 = hasRestParam(pars2);
  3912. if (hasRest1 && last1.hasAny) {
  3913. if (!hasRest2 || !last2.hasAny) {
  3914. return 1;
  3915. }
  3916. } else if (hasRest2 && last2.hasAny) {
  3917. return -1;
  3918. }
  3919. var any1 = 0;
  3920. var conv1 = 0;
  3921. var par;
  3922. var _iterator6 = _createForOfIteratorHelper(pars1), _step6;
  3923. try {
  3924. for (_iterator6.s(); !(_step6 = _iterator6.n()).done; ) {
  3925. par = _step6.value;
  3926. if (par.hasAny)
  3927. ++any1;
  3928. if (par.hasConversion)
  3929. ++conv1;
  3930. }
  3931. } catch (err) {
  3932. _iterator6.e(err);
  3933. } finally {
  3934. _iterator6.f();
  3935. }
  3936. var any2 = 0;
  3937. var conv2 = 0;
  3938. var _iterator7 = _createForOfIteratorHelper(pars2), _step7;
  3939. try {
  3940. for (_iterator7.s(); !(_step7 = _iterator7.n()).done; ) {
  3941. par = _step7.value;
  3942. if (par.hasAny)
  3943. ++any2;
  3944. if (par.hasConversion)
  3945. ++conv2;
  3946. }
  3947. } catch (err) {
  3948. _iterator7.e(err);
  3949. } finally {
  3950. _iterator7.f();
  3951. }
  3952. if (any1 !== any2) {
  3953. return any1 - any2;
  3954. }
  3955. if (hasRest1 && last1.hasConversion) {
  3956. if (!hasRest2 || !last2.hasConversion) {
  3957. return 1;
  3958. }
  3959. } else if (hasRest2 && last2.hasConversion) {
  3960. return -1;
  3961. }
  3962. if (conv1 !== conv2) {
  3963. return conv1 - conv2;
  3964. }
  3965. if (hasRest1) {
  3966. if (!hasRest2) {
  3967. return 1;
  3968. }
  3969. } else if (hasRest2) {
  3970. return -1;
  3971. }
  3972. var lengthCriterion = (pars1.length - pars2.length) * (hasRest1 ? -1 : 1);
  3973. if (lengthCriterion !== 0) {
  3974. return lengthCriterion;
  3975. }
  3976. var comparisons = [];
  3977. var tc = 0;
  3978. for (var i2 = 0; i2 < pars1.length; ++i2) {
  3979. var thisComparison = compareParams(pars1[i2], pars2[i2]);
  3980. comparisons.push(thisComparison);
  3981. tc += thisComparison;
  3982. }
  3983. if (tc !== 0) {
  3984. return tc;
  3985. }
  3986. var c;
  3987. for (var _i2 = 0, _comparisons = comparisons; _i2 < _comparisons.length; _i2++) {
  3988. c = _comparisons[_i2];
  3989. if (c !== 0) {
  3990. return c;
  3991. }
  3992. }
  3993. return 0;
  3994. }
  3995. function availableConversions(typeNames) {
  3996. if (typeNames.length === 0) {
  3997. return [];
  3998. }
  3999. var types = typeNames.map(findType);
  4000. if (typeNames.length > 1) {
  4001. types.sort(function(t1, t2) {
  4002. return t1.index - t2.index;
  4003. });
  4004. }
  4005. var matches = types[0].conversionsTo;
  4006. if (typeNames.length === 1) {
  4007. return matches;
  4008. }
  4009. matches = matches.concat([]);
  4010. var knownTypes = new Set(typeNames);
  4011. for (var i2 = 1; i2 < types.length; ++i2) {
  4012. var newMatch = void 0;
  4013. var _iterator8 = _createForOfIteratorHelper(types[i2].conversionsTo), _step8;
  4014. try {
  4015. for (_iterator8.s(); !(_step8 = _iterator8.n()).done; ) {
  4016. newMatch = _step8.value;
  4017. if (!knownTypes.has(newMatch.from)) {
  4018. matches.push(newMatch);
  4019. knownTypes.add(newMatch.from);
  4020. }
  4021. }
  4022. } catch (err) {
  4023. _iterator8.e(err);
  4024. } finally {
  4025. _iterator8.f();
  4026. }
  4027. }
  4028. return matches;
  4029. }
  4030. function compileArgsPreprocessing(params, fn) {
  4031. var fnConvert = fn;
  4032. if (params.some(function(p) {
  4033. return p.hasConversion;
  4034. })) {
  4035. var restParam = hasRestParam(params);
  4036. var compiledConversions = params.map(compileArgConversion);
  4037. fnConvert = function convertArgs() {
  4038. var args = [];
  4039. var last2 = restParam ? arguments.length - 1 : arguments.length;
  4040. for (var i2 = 0; i2 < last2; i2++) {
  4041. args[i2] = compiledConversions[i2](arguments[i2]);
  4042. }
  4043. if (restParam) {
  4044. args[last2] = arguments[last2].map(compiledConversions[last2]);
  4045. }
  4046. return fn.apply(this, args);
  4047. };
  4048. }
  4049. var fnPreprocess = fnConvert;
  4050. if (hasRestParam(params)) {
  4051. var offset = params.length - 1;
  4052. fnPreprocess = function preprocessRestParams() {
  4053. return fnConvert.apply(this, slice(arguments, 0, offset).concat([slice(arguments, offset)]));
  4054. };
  4055. }
  4056. return fnPreprocess;
  4057. }
  4058. function compileArgConversion(param) {
  4059. var test0, test1, conversion0, conversion1;
  4060. var tests = [];
  4061. var conversions = [];
  4062. param.types.forEach(function(type) {
  4063. if (type.conversion) {
  4064. tests.push(findType(type.conversion.from).test);
  4065. conversions.push(type.conversion.convert);
  4066. }
  4067. });
  4068. switch (conversions.length) {
  4069. case 0:
  4070. return function convertArg(arg2) {
  4071. return arg2;
  4072. };
  4073. case 1:
  4074. test0 = tests[0];
  4075. conversion0 = conversions[0];
  4076. return function convertArg(arg2) {
  4077. if (test0(arg2)) {
  4078. return conversion0(arg2);
  4079. }
  4080. return arg2;
  4081. };
  4082. case 2:
  4083. test0 = tests[0];
  4084. test1 = tests[1];
  4085. conversion0 = conversions[0];
  4086. conversion1 = conversions[1];
  4087. return function convertArg(arg2) {
  4088. if (test0(arg2)) {
  4089. return conversion0(arg2);
  4090. }
  4091. if (test1(arg2)) {
  4092. return conversion1(arg2);
  4093. }
  4094. return arg2;
  4095. };
  4096. default:
  4097. return function convertArg(arg2) {
  4098. for (var i2 = 0; i2 < conversions.length; i2++) {
  4099. if (tests[i2](arg2)) {
  4100. return conversions[i2](arg2);
  4101. }
  4102. }
  4103. return arg2;
  4104. };
  4105. }
  4106. }
  4107. function splitParams(params) {
  4108. function _splitParams(params2, index2, paramsSoFar) {
  4109. if (index2 < params2.length) {
  4110. var param = params2[index2];
  4111. var resultingParams = [];
  4112. if (param.restParam) {
  4113. var exactTypes = param.types.filter(isExactType);
  4114. if (exactTypes.length < param.types.length) {
  4115. resultingParams.push({
  4116. types: exactTypes,
  4117. name: "..." + exactTypes.map(function(t) {
  4118. return t.name;
  4119. }).join("|"),
  4120. hasAny: exactTypes.some(function(t) {
  4121. return t.isAny;
  4122. }),
  4123. hasConversion: false,
  4124. restParam: true
  4125. });
  4126. }
  4127. resultingParams.push(param);
  4128. } else {
  4129. resultingParams = param.types.map(function(type) {
  4130. return {
  4131. types: [type],
  4132. name: type.name,
  4133. hasAny: type.isAny,
  4134. hasConversion: type.conversion,
  4135. restParam: false
  4136. };
  4137. });
  4138. }
  4139. return flatMap(resultingParams, function(nextParam) {
  4140. return _splitParams(params2, index2 + 1, paramsSoFar.concat([nextParam]));
  4141. });
  4142. } else {
  4143. return [paramsSoFar];
  4144. }
  4145. }
  4146. return _splitParams(params, 0, []);
  4147. }
  4148. function conflicting(params1, params2) {
  4149. var ii = Math.max(params1.length, params2.length);
  4150. for (var i2 = 0; i2 < ii; i2++) {
  4151. var typeSet1 = getTypeSetAtIndex(params1, i2);
  4152. var typeSet2 = getTypeSetAtIndex(params2, i2);
  4153. var overlap = false;
  4154. var name302 = void 0;
  4155. var _iterator9 = _createForOfIteratorHelper(typeSet2), _step9;
  4156. try {
  4157. for (_iterator9.s(); !(_step9 = _iterator9.n()).done; ) {
  4158. name302 = _step9.value;
  4159. if (typeSet1.has(name302)) {
  4160. overlap = true;
  4161. break;
  4162. }
  4163. }
  4164. } catch (err) {
  4165. _iterator9.e(err);
  4166. } finally {
  4167. _iterator9.f();
  4168. }
  4169. if (!overlap) {
  4170. return false;
  4171. }
  4172. }
  4173. var len1 = params1.length;
  4174. var len2 = params2.length;
  4175. var restParam1 = hasRestParam(params1);
  4176. var restParam2 = hasRestParam(params2);
  4177. return restParam1 ? restParam2 ? len1 === len2 : len2 >= len1 : restParam2 ? len1 >= len2 : len1 === len2;
  4178. }
  4179. function clearResolutions(functionList) {
  4180. return functionList.map(function(fn) {
  4181. if (isReferToSelf(fn)) {
  4182. return referToSelf(fn.referToSelf.callback);
  4183. }
  4184. if (isReferTo(fn)) {
  4185. return makeReferTo(fn.referTo.references, fn.referTo.callback);
  4186. }
  4187. return fn;
  4188. });
  4189. }
  4190. function collectResolutions(references, functionList, signatureMap) {
  4191. var resolvedReferences = [];
  4192. var reference;
  4193. var _iterator10 = _createForOfIteratorHelper(references), _step10;
  4194. try {
  4195. for (_iterator10.s(); !(_step10 = _iterator10.n()).done; ) {
  4196. reference = _step10.value;
  4197. var resolution = signatureMap[reference];
  4198. if (typeof resolution !== "number") {
  4199. throw new TypeError('No definition for referenced signature "' + reference + '"');
  4200. }
  4201. resolution = functionList[resolution];
  4202. if (typeof resolution !== "function") {
  4203. return false;
  4204. }
  4205. resolvedReferences.push(resolution);
  4206. }
  4207. } catch (err) {
  4208. _iterator10.e(err);
  4209. } finally {
  4210. _iterator10.f();
  4211. }
  4212. return resolvedReferences;
  4213. }
  4214. function resolveReferences(functionList, signatureMap, self2) {
  4215. var resolvedFunctions = clearResolutions(functionList);
  4216. var isResolved = new Array(resolvedFunctions.length).fill(false);
  4217. var leftUnresolved = true;
  4218. while (leftUnresolved) {
  4219. leftUnresolved = false;
  4220. var nothingResolved = true;
  4221. for (var i2 = 0; i2 < resolvedFunctions.length; ++i2) {
  4222. if (isResolved[i2])
  4223. continue;
  4224. var fn = resolvedFunctions[i2];
  4225. if (isReferToSelf(fn)) {
  4226. resolvedFunctions[i2] = fn.referToSelf.callback(self2);
  4227. resolvedFunctions[i2].referToSelf = fn.referToSelf;
  4228. isResolved[i2] = true;
  4229. nothingResolved = false;
  4230. } else if (isReferTo(fn)) {
  4231. var resolvedReferences = collectResolutions(fn.referTo.references, resolvedFunctions, signatureMap);
  4232. if (resolvedReferences) {
  4233. resolvedFunctions[i2] = fn.referTo.callback.apply(this, resolvedReferences);
  4234. resolvedFunctions[i2].referTo = fn.referTo;
  4235. isResolved[i2] = true;
  4236. nothingResolved = false;
  4237. } else {
  4238. leftUnresolved = true;
  4239. }
  4240. }
  4241. }
  4242. if (nothingResolved && leftUnresolved) {
  4243. throw new SyntaxError("Circular reference detected in resolving typed.referTo");
  4244. }
  4245. }
  4246. return resolvedFunctions;
  4247. }
  4248. function validateDeprecatedThis(signaturesMap) {
  4249. var deprecatedThisRegex = /\bthis(\(|\.signatures\b)/;
  4250. Object.keys(signaturesMap).forEach(function(signature) {
  4251. var fn = signaturesMap[signature];
  4252. if (deprecatedThisRegex.test(fn.toString())) {
  4253. throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.");
  4254. }
  4255. });
  4256. }
  4257. function createTypedFunction(name302, rawSignaturesMap) {
  4258. typed2.createCount++;
  4259. if (Object.keys(rawSignaturesMap).length === 0) {
  4260. throw new SyntaxError("No signatures provided");
  4261. }
  4262. if (typed2.warnAgainstDeprecatedThis) {
  4263. validateDeprecatedThis(rawSignaturesMap);
  4264. }
  4265. var parsedParams = [];
  4266. var originalFunctions = [];
  4267. var signaturesMap = {};
  4268. var preliminarySignatures = [];
  4269. var signature;
  4270. var _loop2 = function _loop22() {
  4271. if (!Object.prototype.hasOwnProperty.call(rawSignaturesMap, signature)) {
  4272. return "continue";
  4273. }
  4274. var params = parseSignature(signature);
  4275. if (!params)
  4276. return "continue";
  4277. parsedParams.forEach(function(pp) {
  4278. if (conflicting(pp, params)) {
  4279. throw new TypeError('Conflicting signatures "' + stringifyParams(pp) + '" and "' + stringifyParams(params) + '".');
  4280. }
  4281. });
  4282. parsedParams.push(params);
  4283. var functionIndex = originalFunctions.length;
  4284. originalFunctions.push(rawSignaturesMap[signature]);
  4285. var conversionParams = params.map(expandParam);
  4286. var sp = void 0;
  4287. var _iterator11 = _createForOfIteratorHelper(splitParams(conversionParams)), _step11;
  4288. try {
  4289. for (_iterator11.s(); !(_step11 = _iterator11.n()).done; ) {
  4290. sp = _step11.value;
  4291. var spName = stringifyParams(sp);
  4292. preliminarySignatures.push({
  4293. params: sp,
  4294. name: spName,
  4295. fn: functionIndex
  4296. });
  4297. if (sp.every(function(p) {
  4298. return !p.hasConversion;
  4299. })) {
  4300. signaturesMap[spName] = functionIndex;
  4301. }
  4302. }
  4303. } catch (err) {
  4304. _iterator11.e(err);
  4305. } finally {
  4306. _iterator11.f();
  4307. }
  4308. };
  4309. for (signature in rawSignaturesMap) {
  4310. var _ret3 = _loop2();
  4311. if (_ret3 === "continue")
  4312. continue;
  4313. }
  4314. preliminarySignatures.sort(compareSignatures);
  4315. var resolvedFunctions = resolveReferences(originalFunctions, signaturesMap, theTypedFn);
  4316. var s;
  4317. for (s in signaturesMap) {
  4318. if (Object.prototype.hasOwnProperty.call(signaturesMap, s)) {
  4319. signaturesMap[s] = resolvedFunctions[signaturesMap[s]];
  4320. }
  4321. }
  4322. var signatures = [];
  4323. var internalSignatureMap = /* @__PURE__ */ new Map();
  4324. for (var _i3 = 0, _preliminarySignature = preliminarySignatures; _i3 < _preliminarySignature.length; _i3++) {
  4325. s = _preliminarySignature[_i3];
  4326. if (!internalSignatureMap.has(s.name)) {
  4327. s.fn = resolvedFunctions[s.fn];
  4328. signatures.push(s);
  4329. internalSignatureMap.set(s.name, s);
  4330. }
  4331. }
  4332. var ok0 = signatures[0] && signatures[0].params.length <= 2 && !hasRestParam(signatures[0].params);
  4333. var ok1 = signatures[1] && signatures[1].params.length <= 2 && !hasRestParam(signatures[1].params);
  4334. var ok2 = signatures[2] && signatures[2].params.length <= 2 && !hasRestParam(signatures[2].params);
  4335. var ok3 = signatures[3] && signatures[3].params.length <= 2 && !hasRestParam(signatures[3].params);
  4336. var ok4 = signatures[4] && signatures[4].params.length <= 2 && !hasRestParam(signatures[4].params);
  4337. var ok5 = signatures[5] && signatures[5].params.length <= 2 && !hasRestParam(signatures[5].params);
  4338. var allOk = ok0 && ok1 && ok2 && ok3 && ok4 && ok5;
  4339. for (var i2 = 0; i2 < signatures.length; ++i2) {
  4340. signatures[i2].test = compileTests(signatures[i2].params);
  4341. }
  4342. var test00 = ok0 ? compileTest(signatures[0].params[0]) : notOk;
  4343. var test10 = ok1 ? compileTest(signatures[1].params[0]) : notOk;
  4344. var test20 = ok2 ? compileTest(signatures[2].params[0]) : notOk;
  4345. var test30 = ok3 ? compileTest(signatures[3].params[0]) : notOk;
  4346. var test40 = ok4 ? compileTest(signatures[4].params[0]) : notOk;
  4347. var test50 = ok5 ? compileTest(signatures[5].params[0]) : notOk;
  4348. var test01 = ok0 ? compileTest(signatures[0].params[1]) : notOk;
  4349. var test11 = ok1 ? compileTest(signatures[1].params[1]) : notOk;
  4350. var test21 = ok2 ? compileTest(signatures[2].params[1]) : notOk;
  4351. var test31 = ok3 ? compileTest(signatures[3].params[1]) : notOk;
  4352. var test41 = ok4 ? compileTest(signatures[4].params[1]) : notOk;
  4353. var test51 = ok5 ? compileTest(signatures[5].params[1]) : notOk;
  4354. for (var _i4 = 0; _i4 < signatures.length; ++_i4) {
  4355. signatures[_i4].implementation = compileArgsPreprocessing(signatures[_i4].params, signatures[_i4].fn);
  4356. }
  4357. var fn0 = ok0 ? signatures[0].implementation : undef;
  4358. var fn1 = ok1 ? signatures[1].implementation : undef;
  4359. var fn2 = ok2 ? signatures[2].implementation : undef;
  4360. var fn3 = ok3 ? signatures[3].implementation : undef;
  4361. var fn4 = ok4 ? signatures[4].implementation : undef;
  4362. var fn5 = ok5 ? signatures[5].implementation : undef;
  4363. var len0 = ok0 ? signatures[0].params.length : -1;
  4364. var len1 = ok1 ? signatures[1].params.length : -1;
  4365. var len2 = ok2 ? signatures[2].params.length : -1;
  4366. var len3 = ok3 ? signatures[3].params.length : -1;
  4367. var len4 = ok4 ? signatures[4].params.length : -1;
  4368. var len5 = ok5 ? signatures[5].params.length : -1;
  4369. var iStart = allOk ? 6 : 0;
  4370. var iEnd = signatures.length;
  4371. var tests = signatures.map(function(s2) {
  4372. return s2.test;
  4373. });
  4374. var fns = signatures.map(function(s2) {
  4375. return s2.implementation;
  4376. });
  4377. var generic = function generic2() {
  4378. "use strict";
  4379. for (var _i5 = iStart; _i5 < iEnd; _i5++) {
  4380. if (tests[_i5](arguments)) {
  4381. return fns[_i5].apply(this, arguments);
  4382. }
  4383. }
  4384. return typed2.onMismatch(name302, arguments, signatures);
  4385. };
  4386. function theTypedFn(arg0, arg1) {
  4387. "use strict";
  4388. if (arguments.length === len0 && test00(arg0) && test01(arg1)) {
  4389. return fn0.apply(this, arguments);
  4390. }
  4391. if (arguments.length === len1 && test10(arg0) && test11(arg1)) {
  4392. return fn1.apply(this, arguments);
  4393. }
  4394. if (arguments.length === len2 && test20(arg0) && test21(arg1)) {
  4395. return fn2.apply(this, arguments);
  4396. }
  4397. if (arguments.length === len3 && test30(arg0) && test31(arg1)) {
  4398. return fn3.apply(this, arguments);
  4399. }
  4400. if (arguments.length === len4 && test40(arg0) && test41(arg1)) {
  4401. return fn4.apply(this, arguments);
  4402. }
  4403. if (arguments.length === len5 && test50(arg0) && test51(arg1)) {
  4404. return fn5.apply(this, arguments);
  4405. }
  4406. return generic.apply(this, arguments);
  4407. }
  4408. try {
  4409. Object.defineProperty(theTypedFn, "name", {
  4410. value: name302
  4411. });
  4412. } catch (err) {
  4413. }
  4414. theTypedFn.signatures = signaturesMap;
  4415. theTypedFn._typedFunctionData = {
  4416. signatures,
  4417. signatureMap: internalSignatureMap
  4418. };
  4419. return theTypedFn;
  4420. }
  4421. function _onMismatch(name302, args, signatures) {
  4422. throw createError(name302, args, signatures);
  4423. }
  4424. function initial(arr) {
  4425. return slice(arr, 0, arr.length - 1);
  4426. }
  4427. function last(arr) {
  4428. return arr[arr.length - 1];
  4429. }
  4430. function slice(arr, start, end) {
  4431. return Array.prototype.slice.call(arr, start, end);
  4432. }
  4433. function findInArray(arr, test) {
  4434. for (var i2 = 0; i2 < arr.length; i2++) {
  4435. if (test(arr[i2])) {
  4436. return arr[i2];
  4437. }
  4438. }
  4439. return void 0;
  4440. }
  4441. function flatMap(arr, callback) {
  4442. return Array.prototype.concat.apply([], arr.map(callback));
  4443. }
  4444. function referTo() {
  4445. var references = initial(arguments).map(function(s) {
  4446. return stringifyParams(parseSignature(s));
  4447. });
  4448. var callback = last(arguments);
  4449. if (typeof callback !== "function") {
  4450. throw new TypeError("Callback function expected as last argument");
  4451. }
  4452. return makeReferTo(references, callback);
  4453. }
  4454. function makeReferTo(references, callback) {
  4455. return {
  4456. referTo: {
  4457. references,
  4458. callback
  4459. }
  4460. };
  4461. }
  4462. function referToSelf(callback) {
  4463. if (typeof callback !== "function") {
  4464. throw new TypeError("Callback function expected as first argument");
  4465. }
  4466. return {
  4467. referToSelf: {
  4468. callback
  4469. }
  4470. };
  4471. }
  4472. function isReferTo(objectOrFn) {
  4473. return objectOrFn && _typeof(objectOrFn.referTo) === "object" && Array.isArray(objectOrFn.referTo.references) && typeof objectOrFn.referTo.callback === "function";
  4474. }
  4475. function isReferToSelf(objectOrFn) {
  4476. return objectOrFn && _typeof(objectOrFn.referToSelf) === "object" && typeof objectOrFn.referToSelf.callback === "function";
  4477. }
  4478. function checkName(nameSoFar, newName) {
  4479. if (!nameSoFar) {
  4480. return newName;
  4481. }
  4482. if (newName && newName !== nameSoFar) {
  4483. var err = new Error("Function names do not match (expected: " + nameSoFar + ", actual: " + newName + ")");
  4484. err.data = {
  4485. actual: newName,
  4486. expected: nameSoFar
  4487. };
  4488. throw err;
  4489. }
  4490. return nameSoFar;
  4491. }
  4492. function getObjectName(obj) {
  4493. var name302;
  4494. for (var key in obj) {
  4495. if (Object.prototype.hasOwnProperty.call(obj, key) && (isTypedFunction(obj[key]) || typeof obj[key].signature === "string")) {
  4496. name302 = checkName(name302, obj[key].name);
  4497. }
  4498. }
  4499. return name302;
  4500. }
  4501. function mergeSignatures(dest, source) {
  4502. var key;
  4503. for (key in source) {
  4504. if (Object.prototype.hasOwnProperty.call(source, key)) {
  4505. if (key in dest) {
  4506. if (source[key] !== dest[key]) {
  4507. var err = new Error('Signature "' + key + '" is defined twice');
  4508. err.data = {
  4509. signature: key,
  4510. sourceFunction: source[key],
  4511. destFunction: dest[key]
  4512. };
  4513. throw err;
  4514. }
  4515. }
  4516. dest[key] = source[key];
  4517. }
  4518. }
  4519. }
  4520. var saveTyped = typed2;
  4521. typed2 = function typed3(maybeName) {
  4522. var named = typeof maybeName === "string";
  4523. var start = named ? 1 : 0;
  4524. var name302 = named ? maybeName : "";
  4525. var allSignatures = {};
  4526. for (var i2 = start; i2 < arguments.length; ++i2) {
  4527. var item = arguments[i2];
  4528. var theseSignatures = {};
  4529. var thisName = void 0;
  4530. if (typeof item === "function") {
  4531. thisName = item.name;
  4532. if (typeof item.signature === "string") {
  4533. theseSignatures[item.signature] = item;
  4534. } else if (isTypedFunction(item)) {
  4535. theseSignatures = item.signatures;
  4536. }
  4537. } else if (isPlainObject2(item)) {
  4538. theseSignatures = item;
  4539. if (!named) {
  4540. thisName = getObjectName(item);
  4541. }
  4542. }
  4543. if (Object.keys(theseSignatures).length === 0) {
  4544. var err = new TypeError("Argument to 'typed' at index " + i2 + " is not a (typed) function, nor an object with signatures as keys and functions as values.");
  4545. err.data = {
  4546. index: i2,
  4547. argument: item
  4548. };
  4549. throw err;
  4550. }
  4551. if (!named) {
  4552. name302 = checkName(name302, thisName);
  4553. }
  4554. mergeSignatures(allSignatures, theseSignatures);
  4555. }
  4556. return createTypedFunction(name302 || "", allSignatures);
  4557. };
  4558. typed2.create = create;
  4559. typed2.createCount = saveTyped.createCount;
  4560. typed2.onMismatch = _onMismatch;
  4561. typed2.throwMismatchError = _onMismatch;
  4562. typed2.createError = createError;
  4563. typed2.clear = clear;
  4564. typed2.clearConversions = clearConversions;
  4565. typed2.addTypes = addTypes;
  4566. typed2._findType = findType;
  4567. typed2.referTo = referTo;
  4568. typed2.referToSelf = referToSelf;
  4569. typed2.convert = convert;
  4570. typed2.findSignature = findSignature;
  4571. typed2.find = find;
  4572. typed2.isTypedFunction = isTypedFunction;
  4573. typed2.warnAgainstDeprecatedThis = true;
  4574. typed2.addType = function(type, beforeObjectTest) {
  4575. var before = "any";
  4576. if (beforeObjectTest !== false && typeMap.has("Object")) {
  4577. before = "Object";
  4578. }
  4579. typed2.addTypes([type], before);
  4580. };
  4581. function _validateConversion(conversion) {
  4582. if (!conversion || typeof conversion.from !== "string" || typeof conversion.to !== "string" || typeof conversion.convert !== "function") {
  4583. throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");
  4584. }
  4585. if (conversion.to === conversion.from) {
  4586. throw new SyntaxError('Illegal to define conversion from "' + conversion.from + '" to itself.');
  4587. }
  4588. }
  4589. typed2.addConversion = function(conversion) {
  4590. _validateConversion(conversion);
  4591. var to2 = findType(conversion.to);
  4592. if (to2.conversionsTo.every(function(other) {
  4593. return other.from !== conversion.from;
  4594. })) {
  4595. to2.conversionsTo.push({
  4596. from: conversion.from,
  4597. convert: conversion.convert,
  4598. index: nConversions++
  4599. });
  4600. } else {
  4601. throw new Error('There is already a conversion from "' + conversion.from + '" to "' + to2.name + '"');
  4602. }
  4603. };
  4604. typed2.addConversions = function(conversions) {
  4605. conversions.forEach(typed2.addConversion);
  4606. };
  4607. typed2.removeConversion = function(conversion) {
  4608. _validateConversion(conversion);
  4609. var to2 = findType(conversion.to);
  4610. var existingConversion = findInArray(to2.conversionsTo, function(c) {
  4611. return c.from === conversion.from;
  4612. });
  4613. if (!existingConversion) {
  4614. throw new Error("Attempt to remove nonexistent conversion from " + conversion.from + " to " + conversion.to);
  4615. }
  4616. if (existingConversion.convert !== conversion.convert) {
  4617. throw new Error("Conversion to remove does not match existing conversion");
  4618. }
  4619. var index2 = to2.conversionsTo.indexOf(existingConversion);
  4620. to2.conversionsTo.splice(index2, 1);
  4621. };
  4622. typed2.resolve = function(tf, argList) {
  4623. if (!isTypedFunction(tf)) {
  4624. throw new TypeError(NOT_TYPED_FUNCTION);
  4625. }
  4626. var sigs = tf._typedFunctionData.signatures;
  4627. for (var i2 = 0; i2 < sigs.length; ++i2) {
  4628. if (sigs[i2].test(argList)) {
  4629. return sigs[i2];
  4630. }
  4631. }
  4632. return null;
  4633. };
  4634. return typed2;
  4635. }
  4636. var typed_function_default = create();
  4637. // node_modules/mathjs/lib/esm/utils/number.js
  4638. function isInteger(value) {
  4639. if (typeof value === "boolean") {
  4640. return true;
  4641. }
  4642. return isFinite(value) ? value === Math.round(value) : false;
  4643. }
  4644. var sign = Math.sign || function(x) {
  4645. if (x > 0) {
  4646. return 1;
  4647. } else if (x < 0) {
  4648. return -1;
  4649. } else {
  4650. return 0;
  4651. }
  4652. };
  4653. var log2 = Math.log2 || function log22(x) {
  4654. return Math.log(x) / Math.LN2;
  4655. };
  4656. var log10 = Math.log10 || function log102(x) {
  4657. return Math.log(x) / Math.LN10;
  4658. };
  4659. var log1p = Math.log1p || function(x) {
  4660. return Math.log(x + 1);
  4661. };
  4662. var cbrt = Math.cbrt || function cbrt2(x) {
  4663. if (x === 0) {
  4664. return x;
  4665. }
  4666. var negate = x < 0;
  4667. var result;
  4668. if (negate) {
  4669. x = -x;
  4670. }
  4671. if (isFinite(x)) {
  4672. result = Math.exp(Math.log(x) / 3);
  4673. result = (x / (result * result) + 2 * result) / 3;
  4674. } else {
  4675. result = x;
  4676. }
  4677. return negate ? -result : result;
  4678. };
  4679. var expm1 = Math.expm1 || function expm12(x) {
  4680. return x >= 2e-4 || x <= -2e-4 ? Math.exp(x) - 1 : x + x * x / 2 + x * x * x / 6;
  4681. };
  4682. function formatNumberToBase(n, base, size2) {
  4683. var prefixes = {
  4684. 2: "0b",
  4685. 8: "0o",
  4686. 16: "0x"
  4687. };
  4688. var prefix = prefixes[base];
  4689. var suffix = "";
  4690. if (size2) {
  4691. if (size2 < 1) {
  4692. throw new Error("size must be in greater than 0");
  4693. }
  4694. if (!isInteger(size2)) {
  4695. throw new Error("size must be an integer");
  4696. }
  4697. if (n > 2 ** (size2 - 1) - 1 || n < -(2 ** (size2 - 1))) {
  4698. throw new Error("Value must be in range [-2^".concat(size2 - 1, ", 2^").concat(size2 - 1, "-1]"));
  4699. }
  4700. if (!isInteger(n)) {
  4701. throw new Error("Value must be an integer");
  4702. }
  4703. if (n < 0) {
  4704. n = n + 2 ** size2;
  4705. }
  4706. suffix = "i".concat(size2);
  4707. }
  4708. var sign4 = "";
  4709. if (n < 0) {
  4710. n = -n;
  4711. sign4 = "-";
  4712. }
  4713. return "".concat(sign4).concat(prefix).concat(n.toString(base)).concat(suffix);
  4714. }
  4715. function format(value, options) {
  4716. if (typeof options === "function") {
  4717. return options(value);
  4718. }
  4719. if (value === Infinity) {
  4720. return "Infinity";
  4721. } else if (value === -Infinity) {
  4722. return "-Infinity";
  4723. } else if (isNaN(value)) {
  4724. return "NaN";
  4725. }
  4726. var notation = "auto";
  4727. var precision;
  4728. var wordSize;
  4729. if (options) {
  4730. if (options.notation) {
  4731. notation = options.notation;
  4732. }
  4733. if (isNumber(options)) {
  4734. precision = options;
  4735. } else if (isNumber(options.precision)) {
  4736. precision = options.precision;
  4737. }
  4738. if (options.wordSize) {
  4739. wordSize = options.wordSize;
  4740. if (typeof wordSize !== "number") {
  4741. throw new Error('Option "wordSize" must be a number');
  4742. }
  4743. }
  4744. }
  4745. switch (notation) {
  4746. case "fixed":
  4747. return toFixed(value, precision);
  4748. case "exponential":
  4749. return toExponential(value, precision);
  4750. case "engineering":
  4751. return toEngineering(value, precision);
  4752. case "bin":
  4753. return formatNumberToBase(value, 2, wordSize);
  4754. case "oct":
  4755. return formatNumberToBase(value, 8, wordSize);
  4756. case "hex":
  4757. return formatNumberToBase(value, 16, wordSize);
  4758. case "auto":
  4759. return toPrecision(value, precision, options && options).replace(/((\.\d*?)(0+))($|e)/, function() {
  4760. var digits2 = arguments[2];
  4761. var e3 = arguments[4];
  4762. return digits2 !== "." ? digits2 + e3 : e3;
  4763. });
  4764. default:
  4765. throw new Error('Unknown notation "' + notation + '". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.');
  4766. }
  4767. }
  4768. function splitNumber(value) {
  4769. var match = String(value).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);
  4770. if (!match) {
  4771. throw new SyntaxError("Invalid number " + value);
  4772. }
  4773. var sign4 = match[1];
  4774. var digits2 = match[2];
  4775. var exponent = parseFloat(match[4] || "0");
  4776. var dot2 = digits2.indexOf(".");
  4777. exponent += dot2 !== -1 ? dot2 - 1 : digits2.length - 1;
  4778. var coefficients = digits2.replace(".", "").replace(/^0*/, function(zeros3) {
  4779. exponent -= zeros3.length;
  4780. return "";
  4781. }).replace(/0*$/, "").split("").map(function(d) {
  4782. return parseInt(d);
  4783. });
  4784. if (coefficients.length === 0) {
  4785. coefficients.push(0);
  4786. exponent++;
  4787. }
  4788. return {
  4789. sign: sign4,
  4790. coefficients,
  4791. exponent
  4792. };
  4793. }
  4794. function toEngineering(value, precision) {
  4795. if (isNaN(value) || !isFinite(value)) {
  4796. return String(value);
  4797. }
  4798. var split = splitNumber(value);
  4799. var rounded = roundDigits(split, precision);
  4800. var e3 = rounded.exponent;
  4801. var c = rounded.coefficients;
  4802. var newExp = e3 % 3 === 0 ? e3 : e3 < 0 ? e3 - 3 - e3 % 3 : e3 - e3 % 3;
  4803. if (isNumber(precision)) {
  4804. while (precision > c.length || e3 - newExp + 1 > c.length) {
  4805. c.push(0);
  4806. }
  4807. } else {
  4808. var missingZeros = Math.abs(e3 - newExp) - (c.length - 1);
  4809. for (var i2 = 0; i2 < missingZeros; i2++) {
  4810. c.push(0);
  4811. }
  4812. }
  4813. var expDiff = Math.abs(e3 - newExp);
  4814. var decimalIdx = 1;
  4815. while (expDiff > 0) {
  4816. decimalIdx++;
  4817. expDiff--;
  4818. }
  4819. var decimals = c.slice(decimalIdx).join("");
  4820. var decimalVal = isNumber(precision) && decimals.length || decimals.match(/[1-9]/) ? "." + decimals : "";
  4821. var str = c.slice(0, decimalIdx).join("") + decimalVal + "e" + (e3 >= 0 ? "+" : "") + newExp.toString();
  4822. return rounded.sign + str;
  4823. }
  4824. function toFixed(value, precision) {
  4825. if (isNaN(value) || !isFinite(value)) {
  4826. return String(value);
  4827. }
  4828. var splitValue = splitNumber(value);
  4829. var rounded = typeof precision === "number" ? roundDigits(splitValue, splitValue.exponent + 1 + precision) : splitValue;
  4830. var c = rounded.coefficients;
  4831. var p = rounded.exponent + 1;
  4832. var pp = p + (precision || 0);
  4833. if (c.length < pp) {
  4834. c = c.concat(zeros(pp - c.length));
  4835. }
  4836. if (p < 0) {
  4837. c = zeros(-p + 1).concat(c);
  4838. p = 1;
  4839. }
  4840. if (p < c.length) {
  4841. c.splice(p, 0, p === 0 ? "0." : ".");
  4842. }
  4843. return rounded.sign + c.join("");
  4844. }
  4845. function toExponential(value, precision) {
  4846. if (isNaN(value) || !isFinite(value)) {
  4847. return String(value);
  4848. }
  4849. var split = splitNumber(value);
  4850. var rounded = precision ? roundDigits(split, precision) : split;
  4851. var c = rounded.coefficients;
  4852. var e3 = rounded.exponent;
  4853. if (c.length < precision) {
  4854. c = c.concat(zeros(precision - c.length));
  4855. }
  4856. var first = c.shift();
  4857. return rounded.sign + first + (c.length > 0 ? "." + c.join("") : "") + "e" + (e3 >= 0 ? "+" : "") + e3;
  4858. }
  4859. function toPrecision(value, precision, options) {
  4860. if (isNaN(value) || !isFinite(value)) {
  4861. return String(value);
  4862. }
  4863. var lowerExp = options && options.lowerExp !== void 0 ? options.lowerExp : -3;
  4864. var upperExp = options && options.upperExp !== void 0 ? options.upperExp : 5;
  4865. var split = splitNumber(value);
  4866. var rounded = precision ? roundDigits(split, precision) : split;
  4867. if (rounded.exponent < lowerExp || rounded.exponent >= upperExp) {
  4868. return toExponential(value, precision);
  4869. } else {
  4870. var c = rounded.coefficients;
  4871. var e3 = rounded.exponent;
  4872. if (c.length < precision) {
  4873. c = c.concat(zeros(precision - c.length));
  4874. }
  4875. c = c.concat(zeros(e3 - c.length + 1 + (c.length < precision ? precision - c.length : 0)));
  4876. c = zeros(-e3).concat(c);
  4877. var dot2 = e3 > 0 ? e3 : 0;
  4878. if (dot2 < c.length - 1) {
  4879. c.splice(dot2 + 1, 0, ".");
  4880. }
  4881. return rounded.sign + c.join("");
  4882. }
  4883. }
  4884. function roundDigits(split, precision) {
  4885. var rounded = {
  4886. sign: split.sign,
  4887. coefficients: split.coefficients,
  4888. exponent: split.exponent
  4889. };
  4890. var c = rounded.coefficients;
  4891. while (precision <= 0) {
  4892. c.unshift(0);
  4893. rounded.exponent++;
  4894. precision++;
  4895. }
  4896. if (c.length > precision) {
  4897. var removed = c.splice(precision, c.length - precision);
  4898. if (removed[0] >= 5) {
  4899. var i2 = precision - 1;
  4900. c[i2]++;
  4901. while (c[i2] === 10) {
  4902. c.pop();
  4903. if (i2 === 0) {
  4904. c.unshift(0);
  4905. rounded.exponent++;
  4906. i2++;
  4907. }
  4908. i2--;
  4909. c[i2]++;
  4910. }
  4911. }
  4912. }
  4913. return rounded;
  4914. }
  4915. function zeros(length) {
  4916. var arr = [];
  4917. for (var i2 = 0; i2 < length; i2++) {
  4918. arr.push(0);
  4919. }
  4920. return arr;
  4921. }
  4922. function digits(value) {
  4923. return value.toExponential().replace(/e.*$/, "").replace(/^0\.?0*|\./, "").length;
  4924. }
  4925. var DBL_EPSILON = Number.EPSILON || 2220446049250313e-31;
  4926. function nearlyEqual(x, y, epsilon) {
  4927. if (epsilon === null || epsilon === void 0) {
  4928. return x === y;
  4929. }
  4930. if (x === y) {
  4931. return true;
  4932. }
  4933. if (isNaN(x) || isNaN(y)) {
  4934. return false;
  4935. }
  4936. if (isFinite(x) && isFinite(y)) {
  4937. var diff2 = Math.abs(x - y);
  4938. if (diff2 < DBL_EPSILON) {
  4939. return true;
  4940. } else {
  4941. return diff2 <= Math.max(Math.abs(x), Math.abs(y)) * epsilon;
  4942. }
  4943. }
  4944. return false;
  4945. }
  4946. var acosh = Math.acosh || function(x) {
  4947. return Math.log(Math.sqrt(x * x - 1) + x);
  4948. };
  4949. var asinh = Math.asinh || function(x) {
  4950. return Math.log(Math.sqrt(x * x + 1) + x);
  4951. };
  4952. var atanh = Math.atanh || function(x) {
  4953. return Math.log((1 + x) / (1 - x)) / 2;
  4954. };
  4955. var cosh = Math.cosh || function(x) {
  4956. return (Math.exp(x) + Math.exp(-x)) / 2;
  4957. };
  4958. var sinh = Math.sinh || function(x) {
  4959. return (Math.exp(x) - Math.exp(-x)) / 2;
  4960. };
  4961. var tanh = Math.tanh || function(x) {
  4962. var e3 = Math.exp(2 * x);
  4963. return (e3 - 1) / (e3 + 1);
  4964. };
  4965. function copysign(x, y) {
  4966. var signx = x > 0 ? true : x < 0 ? false : 1 / x === Infinity;
  4967. var signy = y > 0 ? true : y < 0 ? false : 1 / y === Infinity;
  4968. return signx ^ signy ? -x : x;
  4969. }
  4970. // node_modules/mathjs/lib/esm/utils/bignumber/formatter.js
  4971. function formatBigNumberToBase(n, base, size2) {
  4972. var BigNumberCtor = n.constructor;
  4973. var big2 = new BigNumberCtor(2);
  4974. var suffix = "";
  4975. if (size2) {
  4976. if (size2 < 1) {
  4977. throw new Error("size must be in greater than 0");
  4978. }
  4979. if (!isInteger(size2)) {
  4980. throw new Error("size must be an integer");
  4981. }
  4982. if (n.greaterThan(big2.pow(size2 - 1).sub(1)) || n.lessThan(big2.pow(size2 - 1).mul(-1))) {
  4983. throw new Error("Value must be in range [-2^".concat(size2 - 1, ", 2^").concat(size2 - 1, "-1]"));
  4984. }
  4985. if (!n.isInteger()) {
  4986. throw new Error("Value must be an integer");
  4987. }
  4988. if (n.lessThan(0)) {
  4989. n = n.add(big2.pow(size2));
  4990. }
  4991. suffix = "i".concat(size2);
  4992. }
  4993. switch (base) {
  4994. case 2:
  4995. return "".concat(n.toBinary()).concat(suffix);
  4996. case 8:
  4997. return "".concat(n.toOctal()).concat(suffix);
  4998. case 16:
  4999. return "".concat(n.toHexadecimal()).concat(suffix);
  5000. default:
  5001. throw new Error("Base ".concat(base, " not supported "));
  5002. }
  5003. }
  5004. function format2(value, options) {
  5005. if (typeof options === "function") {
  5006. return options(value);
  5007. }
  5008. if (!value.isFinite()) {
  5009. return value.isNaN() ? "NaN" : value.gt(0) ? "Infinity" : "-Infinity";
  5010. }
  5011. var notation = "auto";
  5012. var precision;
  5013. var wordSize;
  5014. if (options !== void 0) {
  5015. if (options.notation) {
  5016. notation = options.notation;
  5017. }
  5018. if (typeof options === "number") {
  5019. precision = options;
  5020. } else if (options.precision) {
  5021. precision = options.precision;
  5022. }
  5023. if (options.wordSize) {
  5024. wordSize = options.wordSize;
  5025. if (typeof wordSize !== "number") {
  5026. throw new Error('Option "wordSize" must be a number');
  5027. }
  5028. }
  5029. }
  5030. switch (notation) {
  5031. case "fixed":
  5032. return toFixed2(value, precision);
  5033. case "exponential":
  5034. return toExponential2(value, precision);
  5035. case "engineering":
  5036. return toEngineering2(value, precision);
  5037. case "bin":
  5038. return formatBigNumberToBase(value, 2, wordSize);
  5039. case "oct":
  5040. return formatBigNumberToBase(value, 8, wordSize);
  5041. case "hex":
  5042. return formatBigNumberToBase(value, 16, wordSize);
  5043. case "auto": {
  5044. var lowerExp = options && options.lowerExp !== void 0 ? options.lowerExp : -3;
  5045. var upperExp = options && options.upperExp !== void 0 ? options.upperExp : 5;
  5046. if (value.isZero())
  5047. return "0";
  5048. var str;
  5049. var rounded = value.toSignificantDigits(precision);
  5050. var exp3 = rounded.e;
  5051. if (exp3 >= lowerExp && exp3 < upperExp) {
  5052. str = rounded.toFixed();
  5053. } else {
  5054. str = toExponential2(value, precision);
  5055. }
  5056. return str.replace(/((\.\d*?)(0+))($|e)/, function() {
  5057. var digits2 = arguments[2];
  5058. var e3 = arguments[4];
  5059. return digits2 !== "." ? digits2 + e3 : e3;
  5060. });
  5061. }
  5062. default:
  5063. throw new Error('Unknown notation "' + notation + '". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.');
  5064. }
  5065. }
  5066. function toEngineering2(value, precision) {
  5067. var e3 = value.e;
  5068. var newExp = e3 % 3 === 0 ? e3 : e3 < 0 ? e3 - 3 - e3 % 3 : e3 - e3 % 3;
  5069. var valueWithoutExp = value.mul(Math.pow(10, -newExp));
  5070. var valueStr = valueWithoutExp.toPrecision(precision);
  5071. if (valueStr.indexOf("e") !== -1) {
  5072. valueStr = valueWithoutExp.toString();
  5073. }
  5074. return valueStr + "e" + (e3 >= 0 ? "+" : "") + newExp.toString();
  5075. }
  5076. function toExponential2(value, precision) {
  5077. if (precision !== void 0) {
  5078. return value.toExponential(precision - 1);
  5079. } else {
  5080. return value.toExponential();
  5081. }
  5082. }
  5083. function toFixed2(value, precision) {
  5084. return value.toFixed(precision);
  5085. }
  5086. // node_modules/mathjs/lib/esm/utils/string.js
  5087. function endsWith(text, search) {
  5088. var start = text.length - search.length;
  5089. var end = text.length;
  5090. return text.substring(start, end) === search;
  5091. }
  5092. function format3(value, options) {
  5093. var result = _format(value, options);
  5094. if (options && typeof options === "object" && "truncate" in options && result.length > options.truncate) {
  5095. return result.substring(0, options.truncate - 3) + "...";
  5096. }
  5097. return result;
  5098. }
  5099. function _format(value, options) {
  5100. if (typeof value === "number") {
  5101. return format(value, options);
  5102. }
  5103. if (isBigNumber(value)) {
  5104. return format2(value, options);
  5105. }
  5106. if (looksLikeFraction(value)) {
  5107. if (!options || options.fraction !== "decimal") {
  5108. return value.s * value.n + "/" + value.d;
  5109. } else {
  5110. return value.toString();
  5111. }
  5112. }
  5113. if (Array.isArray(value)) {
  5114. return formatArray(value, options);
  5115. }
  5116. if (isString(value)) {
  5117. return '"' + value + '"';
  5118. }
  5119. if (typeof value === "function") {
  5120. return value.syntax ? String(value.syntax) : "function";
  5121. }
  5122. if (value && typeof value === "object") {
  5123. if (typeof value.format === "function") {
  5124. return value.format(options);
  5125. } else if (value && value.toString(options) !== {}.toString()) {
  5126. return value.toString(options);
  5127. } else {
  5128. var entries = Object.keys(value).map((key) => {
  5129. return '"' + key + '": ' + format3(value[key], options);
  5130. });
  5131. return "{" + entries.join(", ") + "}";
  5132. }
  5133. }
  5134. return String(value);
  5135. }
  5136. function stringify(value) {
  5137. var text = String(value);
  5138. var escaped = "";
  5139. var i2 = 0;
  5140. while (i2 < text.length) {
  5141. var c = text.charAt(i2);
  5142. if (c === "\\") {
  5143. escaped += c;
  5144. i2++;
  5145. c = text.charAt(i2);
  5146. if (c === "" || '"\\/bfnrtu'.indexOf(c) === -1) {
  5147. escaped += "\\";
  5148. }
  5149. escaped += c;
  5150. } else if (c === '"') {
  5151. escaped += '\\"';
  5152. } else {
  5153. escaped += c;
  5154. }
  5155. i2++;
  5156. }
  5157. return '"' + escaped + '"';
  5158. }
  5159. function escape(value) {
  5160. var text = String(value);
  5161. text = text.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/'/g, "&#39;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
  5162. return text;
  5163. }
  5164. function formatArray(array, options) {
  5165. if (Array.isArray(array)) {
  5166. var str = "[";
  5167. var len = array.length;
  5168. for (var i2 = 0; i2 < len; i2++) {
  5169. if (i2 !== 0) {
  5170. str += ", ";
  5171. }
  5172. str += formatArray(array[i2], options);
  5173. }
  5174. str += "]";
  5175. return str;
  5176. } else {
  5177. return format3(array, options);
  5178. }
  5179. }
  5180. function looksLikeFraction(value) {
  5181. return value && typeof value === "object" && typeof value.s === "number" && typeof value.n === "number" && typeof value.d === "number" || false;
  5182. }
  5183. function compareText(x, y) {
  5184. if (!isString(x)) {
  5185. throw new TypeError("Unexpected type of argument in function compareText (expected: string or Array or Matrix, actual: " + typeOf(x) + ", index: 0)");
  5186. }
  5187. if (!isString(y)) {
  5188. throw new TypeError("Unexpected type of argument in function compareText (expected: string or Array or Matrix, actual: " + typeOf(y) + ", index: 1)");
  5189. }
  5190. return x === y ? 0 : x > y ? 1 : -1;
  5191. }
  5192. // node_modules/mathjs/lib/esm/error/DimensionError.js
  5193. function DimensionError(actual, expected, relation) {
  5194. if (!(this instanceof DimensionError)) {
  5195. throw new SyntaxError("Constructor must be called with the new operator");
  5196. }
  5197. this.actual = actual;
  5198. this.expected = expected;
  5199. this.relation = relation;
  5200. this.message = "Dimension mismatch (" + (Array.isArray(actual) ? "[" + actual.join(", ") + "]" : actual) + " " + (this.relation || "!=") + " " + (Array.isArray(expected) ? "[" + expected.join(", ") + "]" : expected) + ")";
  5201. this.stack = new Error().stack;
  5202. }
  5203. DimensionError.prototype = new RangeError();
  5204. DimensionError.prototype.constructor = RangeError;
  5205. DimensionError.prototype.name = "DimensionError";
  5206. DimensionError.prototype.isDimensionError = true;
  5207. // node_modules/mathjs/lib/esm/error/IndexError.js
  5208. function IndexError(index2, min3, max3) {
  5209. if (!(this instanceof IndexError)) {
  5210. throw new SyntaxError("Constructor must be called with the new operator");
  5211. }
  5212. this.index = index2;
  5213. if (arguments.length < 3) {
  5214. this.min = 0;
  5215. this.max = min3;
  5216. } else {
  5217. this.min = min3;
  5218. this.max = max3;
  5219. }
  5220. if (this.min !== void 0 && this.index < this.min) {
  5221. this.message = "Index out of range (" + this.index + " < " + this.min + ")";
  5222. } else if (this.max !== void 0 && this.index >= this.max) {
  5223. this.message = "Index out of range (" + this.index + " > " + (this.max - 1) + ")";
  5224. } else {
  5225. this.message = "Index out of range (" + this.index + ")";
  5226. }
  5227. this.stack = new Error().stack;
  5228. }
  5229. IndexError.prototype = new RangeError();
  5230. IndexError.prototype.constructor = RangeError;
  5231. IndexError.prototype.name = "IndexError";
  5232. IndexError.prototype.isIndexError = true;
  5233. // node_modules/mathjs/lib/esm/utils/array.js
  5234. function arraySize(x) {
  5235. var s = [];
  5236. while (Array.isArray(x)) {
  5237. s.push(x.length);
  5238. x = x[0];
  5239. }
  5240. return s;
  5241. }
  5242. function _validate(array, size2, dim) {
  5243. var i2;
  5244. var len = array.length;
  5245. if (len !== size2[dim]) {
  5246. throw new DimensionError(len, size2[dim]);
  5247. }
  5248. if (dim < size2.length - 1) {
  5249. var dimNext = dim + 1;
  5250. for (i2 = 0; i2 < len; i2++) {
  5251. var child = array[i2];
  5252. if (!Array.isArray(child)) {
  5253. throw new DimensionError(size2.length - 1, size2.length, "<");
  5254. }
  5255. _validate(array[i2], size2, dimNext);
  5256. }
  5257. } else {
  5258. for (i2 = 0; i2 < len; i2++) {
  5259. if (Array.isArray(array[i2])) {
  5260. throw new DimensionError(size2.length + 1, size2.length, ">");
  5261. }
  5262. }
  5263. }
  5264. }
  5265. function validate(array, size2) {
  5266. var isScalar = size2.length === 0;
  5267. if (isScalar) {
  5268. if (Array.isArray(array)) {
  5269. throw new DimensionError(array.length, 0);
  5270. }
  5271. } else {
  5272. _validate(array, size2, 0);
  5273. }
  5274. }
  5275. function validateIndex(index2, length) {
  5276. if (!isNumber(index2) || !isInteger(index2)) {
  5277. throw new TypeError("Index must be an integer (value: " + index2 + ")");
  5278. }
  5279. if (index2 < 0 || typeof length === "number" && index2 >= length) {
  5280. throw new IndexError(index2, length);
  5281. }
  5282. }
  5283. function resize(array, size2, defaultValue) {
  5284. if (!Array.isArray(array) || !Array.isArray(size2)) {
  5285. throw new TypeError("Array expected");
  5286. }
  5287. if (size2.length === 0) {
  5288. throw new Error("Resizing to scalar is not supported");
  5289. }
  5290. size2.forEach(function(value) {
  5291. if (!isNumber(value) || !isInteger(value) || value < 0) {
  5292. throw new TypeError("Invalid size, must contain positive integers (size: " + format3(size2) + ")");
  5293. }
  5294. });
  5295. var _defaultValue = defaultValue !== void 0 ? defaultValue : 0;
  5296. _resize(array, size2, 0, _defaultValue);
  5297. return array;
  5298. }
  5299. function _resize(array, size2, dim, defaultValue) {
  5300. var i2;
  5301. var elem;
  5302. var oldLen = array.length;
  5303. var newLen = size2[dim];
  5304. var minLen = Math.min(oldLen, newLen);
  5305. array.length = newLen;
  5306. if (dim < size2.length - 1) {
  5307. var dimNext = dim + 1;
  5308. for (i2 = 0; i2 < minLen; i2++) {
  5309. elem = array[i2];
  5310. if (!Array.isArray(elem)) {
  5311. elem = [elem];
  5312. array[i2] = elem;
  5313. }
  5314. _resize(elem, size2, dimNext, defaultValue);
  5315. }
  5316. for (i2 = minLen; i2 < newLen; i2++) {
  5317. elem = [];
  5318. array[i2] = elem;
  5319. _resize(elem, size2, dimNext, defaultValue);
  5320. }
  5321. } else {
  5322. for (i2 = 0; i2 < minLen; i2++) {
  5323. while (Array.isArray(array[i2])) {
  5324. array[i2] = array[i2][0];
  5325. }
  5326. }
  5327. for (i2 = minLen; i2 < newLen; i2++) {
  5328. array[i2] = defaultValue;
  5329. }
  5330. }
  5331. }
  5332. function reshape(array, sizes) {
  5333. var flatArray = flatten(array);
  5334. var currentLength = flatArray.length;
  5335. if (!Array.isArray(array) || !Array.isArray(sizes)) {
  5336. throw new TypeError("Array expected");
  5337. }
  5338. if (sizes.length === 0) {
  5339. throw new DimensionError(0, currentLength, "!=");
  5340. }
  5341. sizes = processSizesWildcard(sizes, currentLength);
  5342. var newLength = product(sizes);
  5343. if (currentLength !== newLength) {
  5344. throw new DimensionError(newLength, currentLength, "!=");
  5345. }
  5346. try {
  5347. return _reshape(flatArray, sizes);
  5348. } catch (e3) {
  5349. if (e3 instanceof DimensionError) {
  5350. throw new DimensionError(newLength, currentLength, "!=");
  5351. }
  5352. throw e3;
  5353. }
  5354. }
  5355. function processSizesWildcard(sizes, currentLength) {
  5356. var newLength = product(sizes);
  5357. var processedSizes = sizes.slice();
  5358. var WILDCARD = -1;
  5359. var wildCardIndex = sizes.indexOf(WILDCARD);
  5360. var isMoreThanOneWildcard = sizes.indexOf(WILDCARD, wildCardIndex + 1) >= 0;
  5361. if (isMoreThanOneWildcard) {
  5362. throw new Error("More than one wildcard in sizes");
  5363. }
  5364. var hasWildcard = wildCardIndex >= 0;
  5365. var canReplaceWildcard = currentLength % newLength === 0;
  5366. if (hasWildcard) {
  5367. if (canReplaceWildcard) {
  5368. processedSizes[wildCardIndex] = -currentLength / newLength;
  5369. } else {
  5370. throw new Error("Could not replace wildcard, since " + currentLength + " is no multiple of " + -newLength);
  5371. }
  5372. }
  5373. return processedSizes;
  5374. }
  5375. function product(array) {
  5376. return array.reduce((prev, curr) => prev * curr, 1);
  5377. }
  5378. function _reshape(array, sizes) {
  5379. var tmpArray = array;
  5380. var tmpArray2;
  5381. for (var sizeIndex = sizes.length - 1; sizeIndex > 0; sizeIndex--) {
  5382. var size2 = sizes[sizeIndex];
  5383. tmpArray2 = [];
  5384. var length = tmpArray.length / size2;
  5385. for (var i2 = 0; i2 < length; i2++) {
  5386. tmpArray2.push(tmpArray.slice(i2 * size2, (i2 + 1) * size2));
  5387. }
  5388. tmpArray = tmpArray2;
  5389. }
  5390. return tmpArray;
  5391. }
  5392. function squeeze(array, size2) {
  5393. var s = size2 || arraySize(array);
  5394. while (Array.isArray(array) && array.length === 1) {
  5395. array = array[0];
  5396. s.shift();
  5397. }
  5398. var dims = s.length;
  5399. while (s[dims - 1] === 1) {
  5400. dims--;
  5401. }
  5402. if (dims < s.length) {
  5403. array = _squeeze(array, dims, 0);
  5404. s.length = dims;
  5405. }
  5406. return array;
  5407. }
  5408. function _squeeze(array, dims, dim) {
  5409. var i2, ii;
  5410. if (dim < dims) {
  5411. var next = dim + 1;
  5412. for (i2 = 0, ii = array.length; i2 < ii; i2++) {
  5413. array[i2] = _squeeze(array[i2], dims, next);
  5414. }
  5415. } else {
  5416. while (Array.isArray(array)) {
  5417. array = array[0];
  5418. }
  5419. }
  5420. return array;
  5421. }
  5422. function unsqueeze(array, dims, outer, size2) {
  5423. var s = size2 || arraySize(array);
  5424. if (outer) {
  5425. for (var i2 = 0; i2 < outer; i2++) {
  5426. array = [array];
  5427. s.unshift(1);
  5428. }
  5429. }
  5430. array = _unsqueeze(array, dims, 0);
  5431. while (s.length < dims) {
  5432. s.push(1);
  5433. }
  5434. return array;
  5435. }
  5436. function _unsqueeze(array, dims, dim) {
  5437. var i2, ii;
  5438. if (Array.isArray(array)) {
  5439. var next = dim + 1;
  5440. for (i2 = 0, ii = array.length; i2 < ii; i2++) {
  5441. array[i2] = _unsqueeze(array[i2], dims, next);
  5442. }
  5443. } else {
  5444. for (var d = dim; d < dims; d++) {
  5445. array = [array];
  5446. }
  5447. }
  5448. return array;
  5449. }
  5450. function flatten(array) {
  5451. if (!Array.isArray(array)) {
  5452. return array;
  5453. }
  5454. var flat = [];
  5455. array.forEach(function callback(value) {
  5456. if (Array.isArray(value)) {
  5457. value.forEach(callback);
  5458. } else {
  5459. flat.push(value);
  5460. }
  5461. });
  5462. return flat;
  5463. }
  5464. function map(array, callback) {
  5465. return Array.prototype.map.call(array, callback);
  5466. }
  5467. function forEach(array, callback) {
  5468. Array.prototype.forEach.call(array, callback);
  5469. }
  5470. function filter(array, callback) {
  5471. if (arraySize(array).length !== 1) {
  5472. throw new Error("Only one dimensional matrices supported");
  5473. }
  5474. return Array.prototype.filter.call(array, callback);
  5475. }
  5476. function filterRegExp(array, regexp) {
  5477. if (arraySize(array).length !== 1) {
  5478. throw new Error("Only one dimensional matrices supported");
  5479. }
  5480. return Array.prototype.filter.call(array, (entry) => regexp.test(entry));
  5481. }
  5482. function join(array, separator) {
  5483. return Array.prototype.join.call(array, separator);
  5484. }
  5485. function identify(a) {
  5486. if (!Array.isArray(a)) {
  5487. throw new TypeError("Array input expected");
  5488. }
  5489. if (a.length === 0) {
  5490. return a;
  5491. }
  5492. var b = [];
  5493. var count2 = 0;
  5494. b[0] = {
  5495. value: a[0],
  5496. identifier: 0
  5497. };
  5498. for (var i2 = 1; i2 < a.length; i2++) {
  5499. if (a[i2] === a[i2 - 1]) {
  5500. count2++;
  5501. } else {
  5502. count2 = 0;
  5503. }
  5504. b.push({
  5505. value: a[i2],
  5506. identifier: count2
  5507. });
  5508. }
  5509. return b;
  5510. }
  5511. function generalize(a) {
  5512. if (!Array.isArray(a)) {
  5513. throw new TypeError("Array input expected");
  5514. }
  5515. if (a.length === 0) {
  5516. return a;
  5517. }
  5518. var b = [];
  5519. for (var i2 = 0; i2 < a.length; i2++) {
  5520. b.push(a[i2].value);
  5521. }
  5522. return b;
  5523. }
  5524. function getArrayDataType(array, typeOf3) {
  5525. var type;
  5526. var length = 0;
  5527. for (var i2 = 0; i2 < array.length; i2++) {
  5528. var item = array[i2];
  5529. var isArray2 = Array.isArray(item);
  5530. if (i2 === 0 && isArray2) {
  5531. length = item.length;
  5532. }
  5533. if (isArray2 && item.length !== length) {
  5534. return void 0;
  5535. }
  5536. var itemType = isArray2 ? getArrayDataType(item, typeOf3) : typeOf3(item);
  5537. if (type === void 0) {
  5538. type = itemType;
  5539. } else if (type !== itemType) {
  5540. return "mixed";
  5541. } else {
  5542. }
  5543. }
  5544. return type;
  5545. }
  5546. function contains2(array, item) {
  5547. return array.indexOf(item) !== -1;
  5548. }
  5549. // node_modules/mathjs/lib/esm/utils/factory.js
  5550. function factory(name302, dependencies302, create3, meta) {
  5551. function assertAndCreate(scope) {
  5552. var deps = pickShallow(scope, dependencies302.map(stripOptionalNotation));
  5553. assertDependencies(name302, dependencies302, scope);
  5554. return create3(deps);
  5555. }
  5556. assertAndCreate.isFactory = true;
  5557. assertAndCreate.fn = name302;
  5558. assertAndCreate.dependencies = dependencies302.slice().sort();
  5559. if (meta) {
  5560. assertAndCreate.meta = meta;
  5561. }
  5562. return assertAndCreate;
  5563. }
  5564. function isFactory(obj) {
  5565. return typeof obj === "function" && typeof obj.fn === "string" && Array.isArray(obj.dependencies);
  5566. }
  5567. function assertDependencies(name302, dependencies302, scope) {
  5568. var allDefined = dependencies302.filter((dependency) => !isOptionalDependency(dependency)).every((dependency) => scope[dependency] !== void 0);
  5569. if (!allDefined) {
  5570. var missingDependencies = dependencies302.filter((dependency) => scope[dependency] === void 0);
  5571. throw new Error('Cannot create function "'.concat(name302, '", ') + "some dependencies are missing: ".concat(missingDependencies.map((d) => '"'.concat(d, '"')).join(", "), "."));
  5572. }
  5573. }
  5574. function isOptionalDependency(dependency) {
  5575. return dependency && dependency[0] === "?";
  5576. }
  5577. function stripOptionalNotation(dependency) {
  5578. return dependency && dependency[0] === "?" ? dependency.slice(1) : dependency;
  5579. }
  5580. // node_modules/mathjs/lib/esm/utils/customs.js
  5581. function getSafeProperty(object, prop) {
  5582. if (isPlainObject(object) && isSafeProperty(object, prop)) {
  5583. return object[prop];
  5584. }
  5585. if (typeof object[prop] === "function" && isSafeMethod(object, prop)) {
  5586. throw new Error('Cannot access method "' + prop + '" as a property');
  5587. }
  5588. throw new Error('No access to property "' + prop + '"');
  5589. }
  5590. function setSafeProperty(object, prop, value) {
  5591. if (isPlainObject(object) && isSafeProperty(object, prop)) {
  5592. object[prop] = value;
  5593. return value;
  5594. }
  5595. throw new Error('No access to property "' + prop + '"');
  5596. }
  5597. function hasSafeProperty(object, prop) {
  5598. return prop in object;
  5599. }
  5600. function isSafeProperty(object, prop) {
  5601. if (!object || typeof object !== "object") {
  5602. return false;
  5603. }
  5604. if (hasOwnProperty2(safeNativeProperties, prop)) {
  5605. return true;
  5606. }
  5607. if (prop in Object.prototype) {
  5608. return false;
  5609. }
  5610. if (prop in Function.prototype) {
  5611. return false;
  5612. }
  5613. return true;
  5614. }
  5615. function validateSafeMethod(object, method) {
  5616. if (!isSafeMethod(object, method)) {
  5617. throw new Error('No access to method "' + method + '"');
  5618. }
  5619. }
  5620. function isSafeMethod(object, method) {
  5621. if (object === null || object === void 0 || typeof object[method] !== "function") {
  5622. return false;
  5623. }
  5624. if (hasOwnProperty2(object, method) && Object.getPrototypeOf && method in Object.getPrototypeOf(object)) {
  5625. return false;
  5626. }
  5627. if (hasOwnProperty2(safeNativeMethods, method)) {
  5628. return true;
  5629. }
  5630. if (method in Object.prototype) {
  5631. return false;
  5632. }
  5633. if (method in Function.prototype) {
  5634. return false;
  5635. }
  5636. return true;
  5637. }
  5638. function isPlainObject(object) {
  5639. return typeof object === "object" && object && object.constructor === Object;
  5640. }
  5641. var safeNativeProperties = {
  5642. length: true,
  5643. name: true
  5644. };
  5645. var safeNativeMethods = {
  5646. toString: true,
  5647. valueOf: true,
  5648. toLocaleString: true
  5649. };
  5650. // node_modules/mathjs/lib/esm/utils/map.js
  5651. var ObjectWrappingMap = class {
  5652. constructor(object) {
  5653. this.wrappedObject = object;
  5654. }
  5655. keys() {
  5656. return Object.keys(this.wrappedObject);
  5657. }
  5658. get(key) {
  5659. return getSafeProperty(this.wrappedObject, key);
  5660. }
  5661. set(key, value) {
  5662. setSafeProperty(this.wrappedObject, key, value);
  5663. return this;
  5664. }
  5665. has(key) {
  5666. return hasSafeProperty(this.wrappedObject, key);
  5667. }
  5668. };
  5669. function createEmptyMap() {
  5670. return /* @__PURE__ */ new Map();
  5671. }
  5672. function createMap(mapOrObject) {
  5673. if (!mapOrObject) {
  5674. return createEmptyMap();
  5675. }
  5676. if (isMap(mapOrObject)) {
  5677. return mapOrObject;
  5678. }
  5679. if (isObject(mapOrObject)) {
  5680. return new ObjectWrappingMap(mapOrObject);
  5681. }
  5682. throw new Error("createMap can create maps from objects or Maps");
  5683. }
  5684. function toObject(map3) {
  5685. if (map3 instanceof ObjectWrappingMap) {
  5686. return map3.wrappedObject;
  5687. }
  5688. var object = {};
  5689. for (var key of map3.keys()) {
  5690. var value = map3.get(key);
  5691. setSafeProperty(object, key, value);
  5692. }
  5693. return object;
  5694. }
  5695. function isMap(object) {
  5696. if (!object) {
  5697. return false;
  5698. }
  5699. return object instanceof Map || object instanceof ObjectWrappingMap || typeof object.set === "function" && typeof object.get === "function" && typeof object.keys === "function" && typeof object.has === "function";
  5700. }
  5701. function assign(map3) {
  5702. for (var _len = arguments.length, objects = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  5703. objects[_key - 1] = arguments[_key];
  5704. }
  5705. for (var args of objects) {
  5706. if (!args) {
  5707. continue;
  5708. }
  5709. if (isMap(args)) {
  5710. for (var key of args.keys()) {
  5711. map3.set(key, args.get(key));
  5712. }
  5713. } else if (isObject(args)) {
  5714. for (var _key2 of Object.keys(args)) {
  5715. map3.set(_key2, args[_key2]);
  5716. }
  5717. }
  5718. }
  5719. return map3;
  5720. }
  5721. // node_modules/mathjs/lib/esm/core/function/typed.js
  5722. var _createTyped2 = function _createTyped() {
  5723. _createTyped2 = typed_function_default.create;
  5724. return typed_function_default;
  5725. };
  5726. var dependencies = ["?BigNumber", "?Complex", "?DenseMatrix", "?Fraction"];
  5727. var createTyped = factory("typed", dependencies, function createTyped2(_ref) {
  5728. var {
  5729. BigNumber: BigNumber2,
  5730. Complex: Complex3,
  5731. DenseMatrix: DenseMatrix2,
  5732. Fraction: Fraction3
  5733. } = _ref;
  5734. var typed2 = _createTyped2();
  5735. typed2.clear();
  5736. typed2.addTypes([
  5737. {
  5738. name: "number",
  5739. test: isNumber
  5740. },
  5741. {
  5742. name: "Complex",
  5743. test: isComplex
  5744. },
  5745. {
  5746. name: "BigNumber",
  5747. test: isBigNumber
  5748. },
  5749. {
  5750. name: "Fraction",
  5751. test: isFraction
  5752. },
  5753. {
  5754. name: "Unit",
  5755. test: isUnit
  5756. },
  5757. // The following type matches a valid variable name, i.e., an alphanumeric
  5758. // string starting with an alphabetic character. It is used (at least)
  5759. // in the definition of the derivative() function, as the argument telling
  5760. // what to differentiate over must (currently) be a variable.
  5761. {
  5762. name: "identifier",
  5763. test: (s) => isString && /^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(s)
  5764. },
  5765. {
  5766. name: "string",
  5767. test: isString
  5768. },
  5769. {
  5770. name: "Chain",
  5771. test: isChain
  5772. },
  5773. {
  5774. name: "Array",
  5775. test: isArray
  5776. },
  5777. {
  5778. name: "Matrix",
  5779. test: isMatrix
  5780. },
  5781. {
  5782. name: "DenseMatrix",
  5783. test: isDenseMatrix
  5784. },
  5785. {
  5786. name: "SparseMatrix",
  5787. test: isSparseMatrix
  5788. },
  5789. {
  5790. name: "Range",
  5791. test: isRange
  5792. },
  5793. {
  5794. name: "Index",
  5795. test: isIndex
  5796. },
  5797. {
  5798. name: "boolean",
  5799. test: isBoolean
  5800. },
  5801. {
  5802. name: "ResultSet",
  5803. test: isResultSet
  5804. },
  5805. {
  5806. name: "Help",
  5807. test: isHelp
  5808. },
  5809. {
  5810. name: "function",
  5811. test: isFunction
  5812. },
  5813. {
  5814. name: "Date",
  5815. test: isDate
  5816. },
  5817. {
  5818. name: "RegExp",
  5819. test: isRegExp
  5820. },
  5821. {
  5822. name: "null",
  5823. test: isNull
  5824. },
  5825. {
  5826. name: "undefined",
  5827. test: isUndefined
  5828. },
  5829. {
  5830. name: "AccessorNode",
  5831. test: isAccessorNode
  5832. },
  5833. {
  5834. name: "ArrayNode",
  5835. test: isArrayNode
  5836. },
  5837. {
  5838. name: "AssignmentNode",
  5839. test: isAssignmentNode
  5840. },
  5841. {
  5842. name: "BlockNode",
  5843. test: isBlockNode
  5844. },
  5845. {
  5846. name: "ConditionalNode",
  5847. test: isConditionalNode
  5848. },
  5849. {
  5850. name: "ConstantNode",
  5851. test: isConstantNode
  5852. },
  5853. {
  5854. name: "FunctionNode",
  5855. test: isFunctionNode
  5856. },
  5857. {
  5858. name: "FunctionAssignmentNode",
  5859. test: isFunctionAssignmentNode
  5860. },
  5861. {
  5862. name: "IndexNode",
  5863. test: isIndexNode
  5864. },
  5865. {
  5866. name: "Node",
  5867. test: isNode
  5868. },
  5869. {
  5870. name: "ObjectNode",
  5871. test: isObjectNode
  5872. },
  5873. {
  5874. name: "OperatorNode",
  5875. test: isOperatorNode
  5876. },
  5877. {
  5878. name: "ParenthesisNode",
  5879. test: isParenthesisNode
  5880. },
  5881. {
  5882. name: "RangeNode",
  5883. test: isRangeNode
  5884. },
  5885. {
  5886. name: "RelationalNode",
  5887. test: isRelationalNode
  5888. },
  5889. {
  5890. name: "SymbolNode",
  5891. test: isSymbolNode
  5892. },
  5893. {
  5894. name: "Map",
  5895. test: isMap
  5896. },
  5897. {
  5898. name: "Object",
  5899. test: isObject
  5900. }
  5901. // order 'Object' last, it matches on other classes too
  5902. ]);
  5903. typed2.addConversions([{
  5904. from: "number",
  5905. to: "BigNumber",
  5906. convert: function convert(x) {
  5907. if (!BigNumber2) {
  5908. throwNoBignumber(x);
  5909. }
  5910. if (digits(x) > 15) {
  5911. throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: " + x + "). Use function bignumber(x) to convert to BigNumber.");
  5912. }
  5913. return new BigNumber2(x);
  5914. }
  5915. }, {
  5916. from: "number",
  5917. to: "Complex",
  5918. convert: function convert(x) {
  5919. if (!Complex3) {
  5920. throwNoComplex(x);
  5921. }
  5922. return new Complex3(x, 0);
  5923. }
  5924. }, {
  5925. from: "BigNumber",
  5926. to: "Complex",
  5927. convert: function convert(x) {
  5928. if (!Complex3) {
  5929. throwNoComplex(x);
  5930. }
  5931. return new Complex3(x.toNumber(), 0);
  5932. }
  5933. }, {
  5934. from: "Fraction",
  5935. to: "BigNumber",
  5936. convert: function convert(x) {
  5937. throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.");
  5938. }
  5939. }, {
  5940. from: "Fraction",
  5941. to: "Complex",
  5942. convert: function convert(x) {
  5943. if (!Complex3) {
  5944. throwNoComplex(x);
  5945. }
  5946. return new Complex3(x.valueOf(), 0);
  5947. }
  5948. }, {
  5949. from: "number",
  5950. to: "Fraction",
  5951. convert: function convert(x) {
  5952. if (!Fraction3) {
  5953. throwNoFraction(x);
  5954. }
  5955. var f = new Fraction3(x);
  5956. if (f.valueOf() !== x) {
  5957. throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: " + x + "). Use function fraction(x) to convert to Fraction.");
  5958. }
  5959. return f;
  5960. }
  5961. }, {
  5962. // FIXME: add conversion from Fraction to number, for example for `sqrt(fraction(1,3))`
  5963. // from: 'Fraction',
  5964. // to: 'number',
  5965. // convert: function (x) {
  5966. // return x.valueOf()
  5967. // }
  5968. // }, {
  5969. from: "string",
  5970. to: "number",
  5971. convert: function convert(x) {
  5972. var n = Number(x);
  5973. if (isNaN(n)) {
  5974. throw new Error('Cannot convert "' + x + '" to a number');
  5975. }
  5976. return n;
  5977. }
  5978. }, {
  5979. from: "string",
  5980. to: "BigNumber",
  5981. convert: function convert(x) {
  5982. if (!BigNumber2) {
  5983. throwNoBignumber(x);
  5984. }
  5985. try {
  5986. return new BigNumber2(x);
  5987. } catch (err) {
  5988. throw new Error('Cannot convert "' + x + '" to BigNumber');
  5989. }
  5990. }
  5991. }, {
  5992. from: "string",
  5993. to: "Fraction",
  5994. convert: function convert(x) {
  5995. if (!Fraction3) {
  5996. throwNoFraction(x);
  5997. }
  5998. try {
  5999. return new Fraction3(x);
  6000. } catch (err) {
  6001. throw new Error('Cannot convert "' + x + '" to Fraction');
  6002. }
  6003. }
  6004. }, {
  6005. from: "string",
  6006. to: "Complex",
  6007. convert: function convert(x) {
  6008. if (!Complex3) {
  6009. throwNoComplex(x);
  6010. }
  6011. try {
  6012. return new Complex3(x);
  6013. } catch (err) {
  6014. throw new Error('Cannot convert "' + x + '" to Complex');
  6015. }
  6016. }
  6017. }, {
  6018. from: "boolean",
  6019. to: "number",
  6020. convert: function convert(x) {
  6021. return +x;
  6022. }
  6023. }, {
  6024. from: "boolean",
  6025. to: "BigNumber",
  6026. convert: function convert(x) {
  6027. if (!BigNumber2) {
  6028. throwNoBignumber(x);
  6029. }
  6030. return new BigNumber2(+x);
  6031. }
  6032. }, {
  6033. from: "boolean",
  6034. to: "Fraction",
  6035. convert: function convert(x) {
  6036. if (!Fraction3) {
  6037. throwNoFraction(x);
  6038. }
  6039. return new Fraction3(+x);
  6040. }
  6041. }, {
  6042. from: "boolean",
  6043. to: "string",
  6044. convert: function convert(x) {
  6045. return String(x);
  6046. }
  6047. }, {
  6048. from: "Array",
  6049. to: "Matrix",
  6050. convert: function convert(array) {
  6051. if (!DenseMatrix2) {
  6052. throwNoMatrix();
  6053. }
  6054. return new DenseMatrix2(array);
  6055. }
  6056. }, {
  6057. from: "Matrix",
  6058. to: "Array",
  6059. convert: function convert(matrix2) {
  6060. return matrix2.valueOf();
  6061. }
  6062. }]);
  6063. typed2.onMismatch = (name302, args, signatures) => {
  6064. var usualError = typed2.createError(name302, args, signatures);
  6065. if (["wrongType", "mismatch"].includes(usualError.data.category) && args.length === 1 && isCollection(args[0]) && // check if the function can be unary:
  6066. signatures.some((sig) => !sig.params.includes(","))) {
  6067. var err = new TypeError("Function '".concat(name302, "' doesn't apply to matrices. To call it ") + "elementwise on a matrix 'M', try 'map(M, ".concat(name302, ")'."));
  6068. err.data = usualError.data;
  6069. throw err;
  6070. }
  6071. throw usualError;
  6072. };
  6073. typed2.onMismatch = (name302, args, signatures) => {
  6074. var usualError = typed2.createError(name302, args, signatures);
  6075. if (["wrongType", "mismatch"].includes(usualError.data.category) && args.length === 1 && isCollection(args[0]) && // check if the function can be unary:
  6076. signatures.some((sig) => !sig.params.includes(","))) {
  6077. var err = new TypeError("Function '".concat(name302, "' doesn't apply to matrices. To call it ") + "elementwise on a matrix 'M', try 'map(M, ".concat(name302, ")'."));
  6078. err.data = usualError.data;
  6079. throw err;
  6080. }
  6081. throw usualError;
  6082. };
  6083. return typed2;
  6084. });
  6085. function throwNoBignumber(x) {
  6086. throw new Error("Cannot convert value ".concat(x, " into a BigNumber: no class 'BigNumber' provided"));
  6087. }
  6088. function throwNoComplex(x) {
  6089. throw new Error("Cannot convert value ".concat(x, " into a Complex number: no class 'Complex' provided"));
  6090. }
  6091. function throwNoMatrix() {
  6092. throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided");
  6093. }
  6094. function throwNoFraction(x) {
  6095. throw new Error("Cannot convert value ".concat(x, " into a Fraction, no class 'Fraction' provided."));
  6096. }
  6097. // node_modules/mathjs/lib/esm/type/resultset/ResultSet.js
  6098. var name = "ResultSet";
  6099. var dependencies2 = [];
  6100. var createResultSet = factory(name, dependencies2, () => {
  6101. function ResultSet2(entries) {
  6102. if (!(this instanceof ResultSet2)) {
  6103. throw new SyntaxError("Constructor must be called with the new operator");
  6104. }
  6105. this.entries = entries || [];
  6106. }
  6107. ResultSet2.prototype.type = "ResultSet";
  6108. ResultSet2.prototype.isResultSet = true;
  6109. ResultSet2.prototype.valueOf = function() {
  6110. return this.entries;
  6111. };
  6112. ResultSet2.prototype.toString = function() {
  6113. return "[" + this.entries.join(", ") + "]";
  6114. };
  6115. ResultSet2.prototype.toJSON = function() {
  6116. return {
  6117. mathjs: "ResultSet",
  6118. entries: this.entries
  6119. };
  6120. };
  6121. ResultSet2.fromJSON = function(json) {
  6122. return new ResultSet2(json.entries);
  6123. };
  6124. return ResultSet2;
  6125. }, {
  6126. isClass: true
  6127. });
  6128. // node_modules/decimal.js/decimal.mjs
  6129. var EXP_LIMIT = 9e15;
  6130. var MAX_DIGITS = 1e9;
  6131. var NUMERALS = "0123456789abcdef";
  6132. var LN10 = "2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058";
  6133. var PI = "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789";
  6134. var DEFAULTS = {
  6135. // These values must be integers within the stated ranges (inclusive).
  6136. // Most of these values can be changed at run-time using the `Decimal.config` method.
  6137. // The maximum number of significant digits of the result of a calculation or base conversion.
  6138. // E.g. `Decimal.config({ precision: 20 });`
  6139. precision: 20,
  6140. // 1 to MAX_DIGITS
  6141. // The rounding mode used when rounding to `precision`.
  6142. //
  6143. // ROUND_UP 0 Away from zero.
  6144. // ROUND_DOWN 1 Towards zero.
  6145. // ROUND_CEIL 2 Towards +Infinity.
  6146. // ROUND_FLOOR 3 Towards -Infinity.
  6147. // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.
  6148. // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.
  6149. // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.
  6150. // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.
  6151. // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
  6152. //
  6153. // E.g.
  6154. // `Decimal.rounding = 4;`
  6155. // `Decimal.rounding = Decimal.ROUND_HALF_UP;`
  6156. rounding: 4,
  6157. // 0 to 8
  6158. // The modulo mode used when calculating the modulus: a mod n.
  6159. // The quotient (q = a / n) is calculated according to the corresponding rounding mode.
  6160. // The remainder (r) is calculated as: r = a - n * q.
  6161. //
  6162. // UP 0 The remainder is positive if the dividend is negative, else is negative.
  6163. // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).
  6164. // FLOOR 3 The remainder has the same sign as the divisor (Python %).
  6165. // HALF_EVEN 6 The IEEE 754 remainder function.
  6166. // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.
  6167. //
  6168. // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian
  6169. // division (9) are commonly used for the modulus operation. The other rounding modes can also
  6170. // be used, but they may not give useful results.
  6171. modulo: 1,
  6172. // 0 to 9
  6173. // The exponent value at and beneath which `toString` returns exponential notation.
  6174. // JavaScript numbers: -7
  6175. toExpNeg: -7,
  6176. // 0 to -EXP_LIMIT
  6177. // The exponent value at and above which `toString` returns exponential notation.
  6178. // JavaScript numbers: 21
  6179. toExpPos: 21,
  6180. // 0 to EXP_LIMIT
  6181. // The minimum exponent value, beneath which underflow to zero occurs.
  6182. // JavaScript numbers: -324 (5e-324)
  6183. minE: -EXP_LIMIT,
  6184. // -1 to -EXP_LIMIT
  6185. // The maximum exponent value, above which overflow to Infinity occurs.
  6186. // JavaScript numbers: 308 (1.7976931348623157e+308)
  6187. maxE: EXP_LIMIT,
  6188. // 1 to EXP_LIMIT
  6189. // Whether to use cryptographically-secure random number generation, if available.
  6190. crypto: false
  6191. // true/false
  6192. };
  6193. var inexact;
  6194. var quadrant;
  6195. var external = true;
  6196. var decimalError = "[DecimalError] ";
  6197. var invalidArgument = decimalError + "Invalid argument: ";
  6198. var precisionLimitExceeded = decimalError + "Precision limit exceeded";
  6199. var cryptoUnavailable = decimalError + "crypto unavailable";
  6200. var tag = "[object Decimal]";
  6201. var mathfloor = Math.floor;
  6202. var mathpow = Math.pow;
  6203. var isBinary = /^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i;
  6204. var isHex = /^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i;
  6205. var isOctal = /^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i;
  6206. var isDecimal = /^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
  6207. var BASE = 1e7;
  6208. var LOG_BASE = 7;
  6209. var MAX_SAFE_INTEGER = 9007199254740991;
  6210. var LN10_PRECISION = LN10.length - 1;
  6211. var PI_PRECISION = PI.length - 1;
  6212. var P = { toStringTag: tag };
  6213. P.absoluteValue = P.abs = function() {
  6214. var x = new this.constructor(this);
  6215. if (x.s < 0)
  6216. x.s = 1;
  6217. return finalise(x);
  6218. };
  6219. P.ceil = function() {
  6220. return finalise(new this.constructor(this), this.e + 1, 2);
  6221. };
  6222. P.clampedTo = P.clamp = function(min3, max3) {
  6223. var k, x = this, Ctor = x.constructor;
  6224. min3 = new Ctor(min3);
  6225. max3 = new Ctor(max3);
  6226. if (!min3.s || !max3.s)
  6227. return new Ctor(NaN);
  6228. if (min3.gt(max3))
  6229. throw Error(invalidArgument + max3);
  6230. k = x.cmp(min3);
  6231. return k < 0 ? min3 : x.cmp(max3) > 0 ? max3 : new Ctor(x);
  6232. };
  6233. P.comparedTo = P.cmp = function(y) {
  6234. var i2, j, xdL, ydL, x = this, xd = x.d, yd = (y = new x.constructor(y)).d, xs = x.s, ys = y.s;
  6235. if (!xd || !yd) {
  6236. return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;
  6237. }
  6238. if (!xd[0] || !yd[0])
  6239. return xd[0] ? xs : yd[0] ? -ys : 0;
  6240. if (xs !== ys)
  6241. return xs;
  6242. if (x.e !== y.e)
  6243. return x.e > y.e ^ xs < 0 ? 1 : -1;
  6244. xdL = xd.length;
  6245. ydL = yd.length;
  6246. for (i2 = 0, j = xdL < ydL ? xdL : ydL; i2 < j; ++i2) {
  6247. if (xd[i2] !== yd[i2])
  6248. return xd[i2] > yd[i2] ^ xs < 0 ? 1 : -1;
  6249. }
  6250. return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;
  6251. };
  6252. P.cosine = P.cos = function() {
  6253. var pr, rm, x = this, Ctor = x.constructor;
  6254. if (!x.d)
  6255. return new Ctor(NaN);
  6256. if (!x.d[0])
  6257. return new Ctor(1);
  6258. pr = Ctor.precision;
  6259. rm = Ctor.rounding;
  6260. Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
  6261. Ctor.rounding = 1;
  6262. x = cosine(Ctor, toLessThanHalfPi(Ctor, x));
  6263. Ctor.precision = pr;
  6264. Ctor.rounding = rm;
  6265. return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);
  6266. };
  6267. P.cubeRoot = P.cbrt = function() {
  6268. var e3, m, n, r, rep, s, sd, t, t3, t3plusx, x = this, Ctor = x.constructor;
  6269. if (!x.isFinite() || x.isZero())
  6270. return new Ctor(x);
  6271. external = false;
  6272. s = x.s * mathpow(x.s * x, 1 / 3);
  6273. if (!s || Math.abs(s) == 1 / 0) {
  6274. n = digitsToString(x.d);
  6275. e3 = x.e;
  6276. if (s = (e3 - n.length + 1) % 3)
  6277. n += s == 1 || s == -2 ? "0" : "00";
  6278. s = mathpow(n, 1 / 3);
  6279. e3 = mathfloor((e3 + 1) / 3) - (e3 % 3 == (e3 < 0 ? -1 : 2));
  6280. if (s == 1 / 0) {
  6281. n = "5e" + e3;
  6282. } else {
  6283. n = s.toExponential();
  6284. n = n.slice(0, n.indexOf("e") + 1) + e3;
  6285. }
  6286. r = new Ctor(n);
  6287. r.s = x.s;
  6288. } else {
  6289. r = new Ctor(s.toString());
  6290. }
  6291. sd = (e3 = Ctor.precision) + 3;
  6292. for (; ; ) {
  6293. t = r;
  6294. t3 = t.times(t).times(t);
  6295. t3plusx = t3.plus(x);
  6296. r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);
  6297. if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {
  6298. n = n.slice(sd - 3, sd + 1);
  6299. if (n == "9999" || !rep && n == "4999") {
  6300. if (!rep) {
  6301. finalise(t, e3 + 1, 0);
  6302. if (t.times(t).times(t).eq(x)) {
  6303. r = t;
  6304. break;
  6305. }
  6306. }
  6307. sd += 4;
  6308. rep = 1;
  6309. } else {
  6310. if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
  6311. finalise(r, e3 + 1, 1);
  6312. m = !r.times(r).times(r).eq(x);
  6313. }
  6314. break;
  6315. }
  6316. }
  6317. }
  6318. external = true;
  6319. return finalise(r, e3, Ctor.rounding, m);
  6320. };
  6321. P.decimalPlaces = P.dp = function() {
  6322. var w, d = this.d, n = NaN;
  6323. if (d) {
  6324. w = d.length - 1;
  6325. n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;
  6326. w = d[w];
  6327. if (w)
  6328. for (; w % 10 == 0; w /= 10)
  6329. n--;
  6330. if (n < 0)
  6331. n = 0;
  6332. }
  6333. return n;
  6334. };
  6335. P.dividedBy = P.div = function(y) {
  6336. return divide(this, new this.constructor(y));
  6337. };
  6338. P.dividedToIntegerBy = P.divToInt = function(y) {
  6339. var x = this, Ctor = x.constructor;
  6340. return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);
  6341. };
  6342. P.equals = P.eq = function(y) {
  6343. return this.cmp(y) === 0;
  6344. };
  6345. P.floor = function() {
  6346. return finalise(new this.constructor(this), this.e + 1, 3);
  6347. };
  6348. P.greaterThan = P.gt = function(y) {
  6349. return this.cmp(y) > 0;
  6350. };
  6351. P.greaterThanOrEqualTo = P.gte = function(y) {
  6352. var k = this.cmp(y);
  6353. return k == 1 || k === 0;
  6354. };
  6355. P.hyperbolicCosine = P.cosh = function() {
  6356. var k, n, pr, rm, len, x = this, Ctor = x.constructor, one = new Ctor(1);
  6357. if (!x.isFinite())
  6358. return new Ctor(x.s ? 1 / 0 : NaN);
  6359. if (x.isZero())
  6360. return one;
  6361. pr = Ctor.precision;
  6362. rm = Ctor.rounding;
  6363. Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
  6364. Ctor.rounding = 1;
  6365. len = x.d.length;
  6366. if (len < 32) {
  6367. k = Math.ceil(len / 3);
  6368. n = (1 / tinyPow(4, k)).toString();
  6369. } else {
  6370. k = 16;
  6371. n = "2.3283064365386962890625e-10";
  6372. }
  6373. x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);
  6374. var cosh2_x, i2 = k, d8 = new Ctor(8);
  6375. for (; i2--; ) {
  6376. cosh2_x = x.times(x);
  6377. x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));
  6378. }
  6379. return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);
  6380. };
  6381. P.hyperbolicSine = P.sinh = function() {
  6382. var k, pr, rm, len, x = this, Ctor = x.constructor;
  6383. if (!x.isFinite() || x.isZero())
  6384. return new Ctor(x);
  6385. pr = Ctor.precision;
  6386. rm = Ctor.rounding;
  6387. Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;
  6388. Ctor.rounding = 1;
  6389. len = x.d.length;
  6390. if (len < 3) {
  6391. x = taylorSeries(Ctor, 2, x, x, true);
  6392. } else {
  6393. k = 1.4 * Math.sqrt(len);
  6394. k = k > 16 ? 16 : k | 0;
  6395. x = x.times(1 / tinyPow(5, k));
  6396. x = taylorSeries(Ctor, 2, x, x, true);
  6397. var sinh2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
  6398. for (; k--; ) {
  6399. sinh2_x = x.times(x);
  6400. x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));
  6401. }
  6402. }
  6403. Ctor.precision = pr;
  6404. Ctor.rounding = rm;
  6405. return finalise(x, pr, rm, true);
  6406. };
  6407. P.hyperbolicTangent = P.tanh = function() {
  6408. var pr, rm, x = this, Ctor = x.constructor;
  6409. if (!x.isFinite())
  6410. return new Ctor(x.s);
  6411. if (x.isZero())
  6412. return new Ctor(x);
  6413. pr = Ctor.precision;
  6414. rm = Ctor.rounding;
  6415. Ctor.precision = pr + 7;
  6416. Ctor.rounding = 1;
  6417. return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);
  6418. };
  6419. P.inverseCosine = P.acos = function() {
  6420. var halfPi, x = this, Ctor = x.constructor, k = x.abs().cmp(1), pr = Ctor.precision, rm = Ctor.rounding;
  6421. if (k !== -1) {
  6422. return k === 0 ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0) : new Ctor(NaN);
  6423. }
  6424. if (x.isZero())
  6425. return getPi(Ctor, pr + 4, rm).times(0.5);
  6426. Ctor.precision = pr + 6;
  6427. Ctor.rounding = 1;
  6428. x = x.asin();
  6429. halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
  6430. Ctor.precision = pr;
  6431. Ctor.rounding = rm;
  6432. return halfPi.minus(x);
  6433. };
  6434. P.inverseHyperbolicCosine = P.acosh = function() {
  6435. var pr, rm, x = this, Ctor = x.constructor;
  6436. if (x.lte(1))
  6437. return new Ctor(x.eq(1) ? 0 : NaN);
  6438. if (!x.isFinite())
  6439. return new Ctor(x);
  6440. pr = Ctor.precision;
  6441. rm = Ctor.rounding;
  6442. Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;
  6443. Ctor.rounding = 1;
  6444. external = false;
  6445. x = x.times(x).minus(1).sqrt().plus(x);
  6446. external = true;
  6447. Ctor.precision = pr;
  6448. Ctor.rounding = rm;
  6449. return x.ln();
  6450. };
  6451. P.inverseHyperbolicSine = P.asinh = function() {
  6452. var pr, rm, x = this, Ctor = x.constructor;
  6453. if (!x.isFinite() || x.isZero())
  6454. return new Ctor(x);
  6455. pr = Ctor.precision;
  6456. rm = Ctor.rounding;
  6457. Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;
  6458. Ctor.rounding = 1;
  6459. external = false;
  6460. x = x.times(x).plus(1).sqrt().plus(x);
  6461. external = true;
  6462. Ctor.precision = pr;
  6463. Ctor.rounding = rm;
  6464. return x.ln();
  6465. };
  6466. P.inverseHyperbolicTangent = P.atanh = function() {
  6467. var pr, rm, wpr, xsd, x = this, Ctor = x.constructor;
  6468. if (!x.isFinite())
  6469. return new Ctor(NaN);
  6470. if (x.e >= 0)
  6471. return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);
  6472. pr = Ctor.precision;
  6473. rm = Ctor.rounding;
  6474. xsd = x.sd();
  6475. if (Math.max(xsd, pr) < 2 * -x.e - 1)
  6476. return finalise(new Ctor(x), pr, rm, true);
  6477. Ctor.precision = wpr = xsd - x.e;
  6478. x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);
  6479. Ctor.precision = pr + 4;
  6480. Ctor.rounding = 1;
  6481. x = x.ln();
  6482. Ctor.precision = pr;
  6483. Ctor.rounding = rm;
  6484. return x.times(0.5);
  6485. };
  6486. P.inverseSine = P.asin = function() {
  6487. var halfPi, k, pr, rm, x = this, Ctor = x.constructor;
  6488. if (x.isZero())
  6489. return new Ctor(x);
  6490. k = x.abs().cmp(1);
  6491. pr = Ctor.precision;
  6492. rm = Ctor.rounding;
  6493. if (k !== -1) {
  6494. if (k === 0) {
  6495. halfPi = getPi(Ctor, pr + 4, rm).times(0.5);
  6496. halfPi.s = x.s;
  6497. return halfPi;
  6498. }
  6499. return new Ctor(NaN);
  6500. }
  6501. Ctor.precision = pr + 6;
  6502. Ctor.rounding = 1;
  6503. x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();
  6504. Ctor.precision = pr;
  6505. Ctor.rounding = rm;
  6506. return x.times(2);
  6507. };
  6508. P.inverseTangent = P.atan = function() {
  6509. var i2, j, k, n, px, t, r, wpr, x2, x = this, Ctor = x.constructor, pr = Ctor.precision, rm = Ctor.rounding;
  6510. if (!x.isFinite()) {
  6511. if (!x.s)
  6512. return new Ctor(NaN);
  6513. if (pr + 4 <= PI_PRECISION) {
  6514. r = getPi(Ctor, pr + 4, rm).times(0.5);
  6515. r.s = x.s;
  6516. return r;
  6517. }
  6518. } else if (x.isZero()) {
  6519. return new Ctor(x);
  6520. } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {
  6521. r = getPi(Ctor, pr + 4, rm).times(0.25);
  6522. r.s = x.s;
  6523. return r;
  6524. }
  6525. Ctor.precision = wpr = pr + 10;
  6526. Ctor.rounding = 1;
  6527. k = Math.min(28, wpr / LOG_BASE + 2 | 0);
  6528. for (i2 = k; i2; --i2)
  6529. x = x.div(x.times(x).plus(1).sqrt().plus(1));
  6530. external = false;
  6531. j = Math.ceil(wpr / LOG_BASE);
  6532. n = 1;
  6533. x2 = x.times(x);
  6534. r = new Ctor(x);
  6535. px = x;
  6536. for (; i2 !== -1; ) {
  6537. px = px.times(x2);
  6538. t = r.minus(px.div(n += 2));
  6539. px = px.times(x2);
  6540. r = t.plus(px.div(n += 2));
  6541. if (r.d[j] !== void 0)
  6542. for (i2 = j; r.d[i2] === t.d[i2] && i2--; )
  6543. ;
  6544. }
  6545. if (k)
  6546. r = r.times(2 << k - 1);
  6547. external = true;
  6548. return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);
  6549. };
  6550. P.isFinite = function() {
  6551. return !!this.d;
  6552. };
  6553. P.isInteger = P.isInt = function() {
  6554. return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;
  6555. };
  6556. P.isNaN = function() {
  6557. return !this.s;
  6558. };
  6559. P.isNegative = P.isNeg = function() {
  6560. return this.s < 0;
  6561. };
  6562. P.isPositive = P.isPos = function() {
  6563. return this.s > 0;
  6564. };
  6565. P.isZero = function() {
  6566. return !!this.d && this.d[0] === 0;
  6567. };
  6568. P.lessThan = P.lt = function(y) {
  6569. return this.cmp(y) < 0;
  6570. };
  6571. P.lessThanOrEqualTo = P.lte = function(y) {
  6572. return this.cmp(y) < 1;
  6573. };
  6574. P.logarithm = P.log = function(base) {
  6575. var isBase10, d, denominator, k, inf, num, sd, r, arg2 = this, Ctor = arg2.constructor, pr = Ctor.precision, rm = Ctor.rounding, guard = 5;
  6576. if (base == null) {
  6577. base = new Ctor(10);
  6578. isBase10 = true;
  6579. } else {
  6580. base = new Ctor(base);
  6581. d = base.d;
  6582. if (base.s < 0 || !d || !d[0] || base.eq(1))
  6583. return new Ctor(NaN);
  6584. isBase10 = base.eq(10);
  6585. }
  6586. d = arg2.d;
  6587. if (arg2.s < 0 || !d || !d[0] || arg2.eq(1)) {
  6588. return new Ctor(d && !d[0] ? -1 / 0 : arg2.s != 1 ? NaN : d ? 0 : 1 / 0);
  6589. }
  6590. if (isBase10) {
  6591. if (d.length > 1) {
  6592. inf = true;
  6593. } else {
  6594. for (k = d[0]; k % 10 === 0; )
  6595. k /= 10;
  6596. inf = k !== 1;
  6597. }
  6598. }
  6599. external = false;
  6600. sd = pr + guard;
  6601. num = naturalLogarithm(arg2, sd);
  6602. denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
  6603. r = divide(num, denominator, sd, 1);
  6604. if (checkRoundingDigits(r.d, k = pr, rm)) {
  6605. do {
  6606. sd += 10;
  6607. num = naturalLogarithm(arg2, sd);
  6608. denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);
  6609. r = divide(num, denominator, sd, 1);
  6610. if (!inf) {
  6611. if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {
  6612. r = finalise(r, pr + 1, 0);
  6613. }
  6614. break;
  6615. }
  6616. } while (checkRoundingDigits(r.d, k += 10, rm));
  6617. }
  6618. external = true;
  6619. return finalise(r, pr, rm);
  6620. };
  6621. P.minus = P.sub = function(y) {
  6622. var d, e3, i2, j, k, len, pr, rm, xd, xe, xLTy, yd, x = this, Ctor = x.constructor;
  6623. y = new Ctor(y);
  6624. if (!x.d || !y.d) {
  6625. if (!x.s || !y.s)
  6626. y = new Ctor(NaN);
  6627. else if (x.d)
  6628. y.s = -y.s;
  6629. else
  6630. y = new Ctor(y.d || x.s !== y.s ? x : NaN);
  6631. return y;
  6632. }
  6633. if (x.s != y.s) {
  6634. y.s = -y.s;
  6635. return x.plus(y);
  6636. }
  6637. xd = x.d;
  6638. yd = y.d;
  6639. pr = Ctor.precision;
  6640. rm = Ctor.rounding;
  6641. if (!xd[0] || !yd[0]) {
  6642. if (yd[0])
  6643. y.s = -y.s;
  6644. else if (xd[0])
  6645. y = new Ctor(x);
  6646. else
  6647. return new Ctor(rm === 3 ? -0 : 0);
  6648. return external ? finalise(y, pr, rm) : y;
  6649. }
  6650. e3 = mathfloor(y.e / LOG_BASE);
  6651. xe = mathfloor(x.e / LOG_BASE);
  6652. xd = xd.slice();
  6653. k = xe - e3;
  6654. if (k) {
  6655. xLTy = k < 0;
  6656. if (xLTy) {
  6657. d = xd;
  6658. k = -k;
  6659. len = yd.length;
  6660. } else {
  6661. d = yd;
  6662. e3 = xe;
  6663. len = xd.length;
  6664. }
  6665. i2 = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;
  6666. if (k > i2) {
  6667. k = i2;
  6668. d.length = 1;
  6669. }
  6670. d.reverse();
  6671. for (i2 = k; i2--; )
  6672. d.push(0);
  6673. d.reverse();
  6674. } else {
  6675. i2 = xd.length;
  6676. len = yd.length;
  6677. xLTy = i2 < len;
  6678. if (xLTy)
  6679. len = i2;
  6680. for (i2 = 0; i2 < len; i2++) {
  6681. if (xd[i2] != yd[i2]) {
  6682. xLTy = xd[i2] < yd[i2];
  6683. break;
  6684. }
  6685. }
  6686. k = 0;
  6687. }
  6688. if (xLTy) {
  6689. d = xd;
  6690. xd = yd;
  6691. yd = d;
  6692. y.s = -y.s;
  6693. }
  6694. len = xd.length;
  6695. for (i2 = yd.length - len; i2 > 0; --i2)
  6696. xd[len++] = 0;
  6697. for (i2 = yd.length; i2 > k; ) {
  6698. if (xd[--i2] < yd[i2]) {
  6699. for (j = i2; j && xd[--j] === 0; )
  6700. xd[j] = BASE - 1;
  6701. --xd[j];
  6702. xd[i2] += BASE;
  6703. }
  6704. xd[i2] -= yd[i2];
  6705. }
  6706. for (; xd[--len] === 0; )
  6707. xd.pop();
  6708. for (; xd[0] === 0; xd.shift())
  6709. --e3;
  6710. if (!xd[0])
  6711. return new Ctor(rm === 3 ? -0 : 0);
  6712. y.d = xd;
  6713. y.e = getBase10Exponent(xd, e3);
  6714. return external ? finalise(y, pr, rm) : y;
  6715. };
  6716. P.modulo = P.mod = function(y) {
  6717. var q, x = this, Ctor = x.constructor;
  6718. y = new Ctor(y);
  6719. if (!x.d || !y.s || y.d && !y.d[0])
  6720. return new Ctor(NaN);
  6721. if (!y.d || x.d && !x.d[0]) {
  6722. return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);
  6723. }
  6724. external = false;
  6725. if (Ctor.modulo == 9) {
  6726. q = divide(x, y.abs(), 0, 3, 1);
  6727. q.s *= y.s;
  6728. } else {
  6729. q = divide(x, y, 0, Ctor.modulo, 1);
  6730. }
  6731. q = q.times(y);
  6732. external = true;
  6733. return x.minus(q);
  6734. };
  6735. P.naturalExponential = P.exp = function() {
  6736. return naturalExponential(this);
  6737. };
  6738. P.naturalLogarithm = P.ln = function() {
  6739. return naturalLogarithm(this);
  6740. };
  6741. P.negated = P.neg = function() {
  6742. var x = new this.constructor(this);
  6743. x.s = -x.s;
  6744. return finalise(x);
  6745. };
  6746. P.plus = P.add = function(y) {
  6747. var carry, d, e3, i2, k, len, pr, rm, xd, yd, x = this, Ctor = x.constructor;
  6748. y = new Ctor(y);
  6749. if (!x.d || !y.d) {
  6750. if (!x.s || !y.s)
  6751. y = new Ctor(NaN);
  6752. else if (!x.d)
  6753. y = new Ctor(y.d || x.s === y.s ? x : NaN);
  6754. return y;
  6755. }
  6756. if (x.s != y.s) {
  6757. y.s = -y.s;
  6758. return x.minus(y);
  6759. }
  6760. xd = x.d;
  6761. yd = y.d;
  6762. pr = Ctor.precision;
  6763. rm = Ctor.rounding;
  6764. if (!xd[0] || !yd[0]) {
  6765. if (!yd[0])
  6766. y = new Ctor(x);
  6767. return external ? finalise(y, pr, rm) : y;
  6768. }
  6769. k = mathfloor(x.e / LOG_BASE);
  6770. e3 = mathfloor(y.e / LOG_BASE);
  6771. xd = xd.slice();
  6772. i2 = k - e3;
  6773. if (i2) {
  6774. if (i2 < 0) {
  6775. d = xd;
  6776. i2 = -i2;
  6777. len = yd.length;
  6778. } else {
  6779. d = yd;
  6780. e3 = k;
  6781. len = xd.length;
  6782. }
  6783. k = Math.ceil(pr / LOG_BASE);
  6784. len = k > len ? k + 1 : len + 1;
  6785. if (i2 > len) {
  6786. i2 = len;
  6787. d.length = 1;
  6788. }
  6789. d.reverse();
  6790. for (; i2--; )
  6791. d.push(0);
  6792. d.reverse();
  6793. }
  6794. len = xd.length;
  6795. i2 = yd.length;
  6796. if (len - i2 < 0) {
  6797. i2 = len;
  6798. d = yd;
  6799. yd = xd;
  6800. xd = d;
  6801. }
  6802. for (carry = 0; i2; ) {
  6803. carry = (xd[--i2] = xd[i2] + yd[i2] + carry) / BASE | 0;
  6804. xd[i2] %= BASE;
  6805. }
  6806. if (carry) {
  6807. xd.unshift(carry);
  6808. ++e3;
  6809. }
  6810. for (len = xd.length; xd[--len] == 0; )
  6811. xd.pop();
  6812. y.d = xd;
  6813. y.e = getBase10Exponent(xd, e3);
  6814. return external ? finalise(y, pr, rm) : y;
  6815. };
  6816. P.precision = P.sd = function(z) {
  6817. var k, x = this;
  6818. if (z !== void 0 && z !== !!z && z !== 1 && z !== 0)
  6819. throw Error(invalidArgument + z);
  6820. if (x.d) {
  6821. k = getPrecision(x.d);
  6822. if (z && x.e + 1 > k)
  6823. k = x.e + 1;
  6824. } else {
  6825. k = NaN;
  6826. }
  6827. return k;
  6828. };
  6829. P.round = function() {
  6830. var x = this, Ctor = x.constructor;
  6831. return finalise(new Ctor(x), x.e + 1, Ctor.rounding);
  6832. };
  6833. P.sine = P.sin = function() {
  6834. var pr, rm, x = this, Ctor = x.constructor;
  6835. if (!x.isFinite())
  6836. return new Ctor(NaN);
  6837. if (x.isZero())
  6838. return new Ctor(x);
  6839. pr = Ctor.precision;
  6840. rm = Ctor.rounding;
  6841. Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;
  6842. Ctor.rounding = 1;
  6843. x = sine(Ctor, toLessThanHalfPi(Ctor, x));
  6844. Ctor.precision = pr;
  6845. Ctor.rounding = rm;
  6846. return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);
  6847. };
  6848. P.squareRoot = P.sqrt = function() {
  6849. var m, n, sd, r, rep, t, x = this, d = x.d, e3 = x.e, s = x.s, Ctor = x.constructor;
  6850. if (s !== 1 || !d || !d[0]) {
  6851. return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);
  6852. }
  6853. external = false;
  6854. s = Math.sqrt(+x);
  6855. if (s == 0 || s == 1 / 0) {
  6856. n = digitsToString(d);
  6857. if ((n.length + e3) % 2 == 0)
  6858. n += "0";
  6859. s = Math.sqrt(n);
  6860. e3 = mathfloor((e3 + 1) / 2) - (e3 < 0 || e3 % 2);
  6861. if (s == 1 / 0) {
  6862. n = "5e" + e3;
  6863. } else {
  6864. n = s.toExponential();
  6865. n = n.slice(0, n.indexOf("e") + 1) + e3;
  6866. }
  6867. r = new Ctor(n);
  6868. } else {
  6869. r = new Ctor(s.toString());
  6870. }
  6871. sd = (e3 = Ctor.precision) + 3;
  6872. for (; ; ) {
  6873. t = r;
  6874. r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);
  6875. if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {
  6876. n = n.slice(sd - 3, sd + 1);
  6877. if (n == "9999" || !rep && n == "4999") {
  6878. if (!rep) {
  6879. finalise(t, e3 + 1, 0);
  6880. if (t.times(t).eq(x)) {
  6881. r = t;
  6882. break;
  6883. }
  6884. }
  6885. sd += 4;
  6886. rep = 1;
  6887. } else {
  6888. if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
  6889. finalise(r, e3 + 1, 1);
  6890. m = !r.times(r).eq(x);
  6891. }
  6892. break;
  6893. }
  6894. }
  6895. }
  6896. external = true;
  6897. return finalise(r, e3, Ctor.rounding, m);
  6898. };
  6899. P.tangent = P.tan = function() {
  6900. var pr, rm, x = this, Ctor = x.constructor;
  6901. if (!x.isFinite())
  6902. return new Ctor(NaN);
  6903. if (x.isZero())
  6904. return new Ctor(x);
  6905. pr = Ctor.precision;
  6906. rm = Ctor.rounding;
  6907. Ctor.precision = pr + 10;
  6908. Ctor.rounding = 1;
  6909. x = x.sin();
  6910. x.s = 1;
  6911. x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);
  6912. Ctor.precision = pr;
  6913. Ctor.rounding = rm;
  6914. return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);
  6915. };
  6916. P.times = P.mul = function(y) {
  6917. var carry, e3, i2, k, r, rL, t, xdL, ydL, x = this, Ctor = x.constructor, xd = x.d, yd = (y = new Ctor(y)).d;
  6918. y.s *= x.s;
  6919. if (!xd || !xd[0] || !yd || !yd[0]) {
  6920. return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd ? NaN : !xd || !yd ? y.s / 0 : y.s * 0);
  6921. }
  6922. e3 = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);
  6923. xdL = xd.length;
  6924. ydL = yd.length;
  6925. if (xdL < ydL) {
  6926. r = xd;
  6927. xd = yd;
  6928. yd = r;
  6929. rL = xdL;
  6930. xdL = ydL;
  6931. ydL = rL;
  6932. }
  6933. r = [];
  6934. rL = xdL + ydL;
  6935. for (i2 = rL; i2--; )
  6936. r.push(0);
  6937. for (i2 = ydL; --i2 >= 0; ) {
  6938. carry = 0;
  6939. for (k = xdL + i2; k > i2; ) {
  6940. t = r[k] + yd[i2] * xd[k - i2 - 1] + carry;
  6941. r[k--] = t % BASE | 0;
  6942. carry = t / BASE | 0;
  6943. }
  6944. r[k] = (r[k] + carry) % BASE | 0;
  6945. }
  6946. for (; !r[--rL]; )
  6947. r.pop();
  6948. if (carry)
  6949. ++e3;
  6950. else
  6951. r.shift();
  6952. y.d = r;
  6953. y.e = getBase10Exponent(r, e3);
  6954. return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;
  6955. };
  6956. P.toBinary = function(sd, rm) {
  6957. return toStringBinary(this, 2, sd, rm);
  6958. };
  6959. P.toDecimalPlaces = P.toDP = function(dp, rm) {
  6960. var x = this, Ctor = x.constructor;
  6961. x = new Ctor(x);
  6962. if (dp === void 0)
  6963. return x;
  6964. checkInt32(dp, 0, MAX_DIGITS);
  6965. if (rm === void 0)
  6966. rm = Ctor.rounding;
  6967. else
  6968. checkInt32(rm, 0, 8);
  6969. return finalise(x, dp + x.e + 1, rm);
  6970. };
  6971. P.toExponential = function(dp, rm) {
  6972. var str, x = this, Ctor = x.constructor;
  6973. if (dp === void 0) {
  6974. str = finiteToString(x, true);
  6975. } else {
  6976. checkInt32(dp, 0, MAX_DIGITS);
  6977. if (rm === void 0)
  6978. rm = Ctor.rounding;
  6979. else
  6980. checkInt32(rm, 0, 8);
  6981. x = finalise(new Ctor(x), dp + 1, rm);
  6982. str = finiteToString(x, true, dp + 1);
  6983. }
  6984. return x.isNeg() && !x.isZero() ? "-" + str : str;
  6985. };
  6986. P.toFixed = function(dp, rm) {
  6987. var str, y, x = this, Ctor = x.constructor;
  6988. if (dp === void 0) {
  6989. str = finiteToString(x);
  6990. } else {
  6991. checkInt32(dp, 0, MAX_DIGITS);
  6992. if (rm === void 0)
  6993. rm = Ctor.rounding;
  6994. else
  6995. checkInt32(rm, 0, 8);
  6996. y = finalise(new Ctor(x), dp + x.e + 1, rm);
  6997. str = finiteToString(y, false, dp + y.e + 1);
  6998. }
  6999. return x.isNeg() && !x.isZero() ? "-" + str : str;
  7000. };
  7001. P.toFraction = function(maxD) {
  7002. var d, d0, d1, d2, e3, k, n, n0, n16, pr, q, r, x = this, xd = x.d, Ctor = x.constructor;
  7003. if (!xd)
  7004. return new Ctor(x);
  7005. n16 = d0 = new Ctor(1);
  7006. d1 = n0 = new Ctor(0);
  7007. d = new Ctor(d1);
  7008. e3 = d.e = getPrecision(xd) - x.e - 1;
  7009. k = e3 % LOG_BASE;
  7010. d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);
  7011. if (maxD == null) {
  7012. maxD = e3 > 0 ? d : n16;
  7013. } else {
  7014. n = new Ctor(maxD);
  7015. if (!n.isInt() || n.lt(n16))
  7016. throw Error(invalidArgument + n);
  7017. maxD = n.gt(d) ? e3 > 0 ? d : n16 : n;
  7018. }
  7019. external = false;
  7020. n = new Ctor(digitsToString(xd));
  7021. pr = Ctor.precision;
  7022. Ctor.precision = e3 = xd.length * LOG_BASE * 2;
  7023. for (; ; ) {
  7024. q = divide(n, d, 0, 1, 1);
  7025. d2 = d0.plus(q.times(d1));
  7026. if (d2.cmp(maxD) == 1)
  7027. break;
  7028. d0 = d1;
  7029. d1 = d2;
  7030. d2 = n16;
  7031. n16 = n0.plus(q.times(d2));
  7032. n0 = d2;
  7033. d2 = d;
  7034. d = n.minus(q.times(d2));
  7035. n = d2;
  7036. }
  7037. d2 = divide(maxD.minus(d0), d1, 0, 1, 1);
  7038. n0 = n0.plus(d2.times(n16));
  7039. d0 = d0.plus(d2.times(d1));
  7040. n0.s = n16.s = x.s;
  7041. r = divide(n16, d1, e3, 1).minus(x).abs().cmp(divide(n0, d0, e3, 1).minus(x).abs()) < 1 ? [n16, d1] : [n0, d0];
  7042. Ctor.precision = pr;
  7043. external = true;
  7044. return r;
  7045. };
  7046. P.toHexadecimal = P.toHex = function(sd, rm) {
  7047. return toStringBinary(this, 16, sd, rm);
  7048. };
  7049. P.toNearest = function(y, rm) {
  7050. var x = this, Ctor = x.constructor;
  7051. x = new Ctor(x);
  7052. if (y == null) {
  7053. if (!x.d)
  7054. return x;
  7055. y = new Ctor(1);
  7056. rm = Ctor.rounding;
  7057. } else {
  7058. y = new Ctor(y);
  7059. if (rm === void 0) {
  7060. rm = Ctor.rounding;
  7061. } else {
  7062. checkInt32(rm, 0, 8);
  7063. }
  7064. if (!x.d)
  7065. return y.s ? x : y;
  7066. if (!y.d) {
  7067. if (y.s)
  7068. y.s = x.s;
  7069. return y;
  7070. }
  7071. }
  7072. if (y.d[0]) {
  7073. external = false;
  7074. x = divide(x, y, 0, rm, 1).times(y);
  7075. external = true;
  7076. finalise(x);
  7077. } else {
  7078. y.s = x.s;
  7079. x = y;
  7080. }
  7081. return x;
  7082. };
  7083. P.toNumber = function() {
  7084. return +this;
  7085. };
  7086. P.toOctal = function(sd, rm) {
  7087. return toStringBinary(this, 8, sd, rm);
  7088. };
  7089. P.toPower = P.pow = function(y) {
  7090. var e3, k, pr, r, rm, s, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y));
  7091. if (!x.d || !y.d || !x.d[0] || !y.d[0])
  7092. return new Ctor(mathpow(+x, yn));
  7093. x = new Ctor(x);
  7094. if (x.eq(1))
  7095. return x;
  7096. pr = Ctor.precision;
  7097. rm = Ctor.rounding;
  7098. if (y.eq(1))
  7099. return finalise(x, pr, rm);
  7100. e3 = mathfloor(y.e / LOG_BASE);
  7101. if (e3 >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {
  7102. r = intPow(Ctor, x, k, pr);
  7103. return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);
  7104. }
  7105. s = x.s;
  7106. if (s < 0) {
  7107. if (e3 < y.d.length - 1)
  7108. return new Ctor(NaN);
  7109. if ((y.d[e3] & 1) == 0)
  7110. s = 1;
  7111. if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {
  7112. x.s = s;
  7113. return x;
  7114. }
  7115. }
  7116. k = mathpow(+x, yn);
  7117. e3 = k == 0 || !isFinite(k) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k + "").e;
  7118. if (e3 > Ctor.maxE + 1 || e3 < Ctor.minE - 1)
  7119. return new Ctor(e3 > 0 ? s / 0 : 0);
  7120. external = false;
  7121. Ctor.rounding = x.s = 1;
  7122. k = Math.min(12, (e3 + "").length);
  7123. r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);
  7124. if (r.d) {
  7125. r = finalise(r, pr + 5, 1);
  7126. if (checkRoundingDigits(r.d, pr, rm)) {
  7127. e3 = pr + 10;
  7128. r = finalise(naturalExponential(y.times(naturalLogarithm(x, e3 + k)), e3), e3 + 5, 1);
  7129. if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {
  7130. r = finalise(r, pr + 1, 0);
  7131. }
  7132. }
  7133. }
  7134. r.s = s;
  7135. external = true;
  7136. Ctor.rounding = rm;
  7137. return finalise(r, pr, rm);
  7138. };
  7139. P.toPrecision = function(sd, rm) {
  7140. var str, x = this, Ctor = x.constructor;
  7141. if (sd === void 0) {
  7142. str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
  7143. } else {
  7144. checkInt32(sd, 1, MAX_DIGITS);
  7145. if (rm === void 0)
  7146. rm = Ctor.rounding;
  7147. else
  7148. checkInt32(rm, 0, 8);
  7149. x = finalise(new Ctor(x), sd, rm);
  7150. str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);
  7151. }
  7152. return x.isNeg() && !x.isZero() ? "-" + str : str;
  7153. };
  7154. P.toSignificantDigits = P.toSD = function(sd, rm) {
  7155. var x = this, Ctor = x.constructor;
  7156. if (sd === void 0) {
  7157. sd = Ctor.precision;
  7158. rm = Ctor.rounding;
  7159. } else {
  7160. checkInt32(sd, 1, MAX_DIGITS);
  7161. if (rm === void 0)
  7162. rm = Ctor.rounding;
  7163. else
  7164. checkInt32(rm, 0, 8);
  7165. }
  7166. return finalise(new Ctor(x), sd, rm);
  7167. };
  7168. P.toString = function() {
  7169. var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
  7170. return x.isNeg() && !x.isZero() ? "-" + str : str;
  7171. };
  7172. P.truncated = P.trunc = function() {
  7173. return finalise(new this.constructor(this), this.e + 1, 1);
  7174. };
  7175. P.valueOf = P.toJSON = function() {
  7176. var x = this, Ctor = x.constructor, str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);
  7177. return x.isNeg() ? "-" + str : str;
  7178. };
  7179. function digitsToString(d) {
  7180. var i2, k, ws, indexOfLastWord = d.length - 1, str = "", w = d[0];
  7181. if (indexOfLastWord > 0) {
  7182. str += w;
  7183. for (i2 = 1; i2 < indexOfLastWord; i2++) {
  7184. ws = d[i2] + "";
  7185. k = LOG_BASE - ws.length;
  7186. if (k)
  7187. str += getZeroString(k);
  7188. str += ws;
  7189. }
  7190. w = d[i2];
  7191. ws = w + "";
  7192. k = LOG_BASE - ws.length;
  7193. if (k)
  7194. str += getZeroString(k);
  7195. } else if (w === 0) {
  7196. return "0";
  7197. }
  7198. for (; w % 10 === 0; )
  7199. w /= 10;
  7200. return str + w;
  7201. }
  7202. function checkInt32(i2, min3, max3) {
  7203. if (i2 !== ~~i2 || i2 < min3 || i2 > max3) {
  7204. throw Error(invalidArgument + i2);
  7205. }
  7206. }
  7207. function checkRoundingDigits(d, i2, rm, repeating) {
  7208. var di, k, r, rd;
  7209. for (k = d[0]; k >= 10; k /= 10)
  7210. --i2;
  7211. if (--i2 < 0) {
  7212. i2 += LOG_BASE;
  7213. di = 0;
  7214. } else {
  7215. di = Math.ceil((i2 + 1) / LOG_BASE);
  7216. i2 %= LOG_BASE;
  7217. }
  7218. k = mathpow(10, LOG_BASE - i2);
  7219. rd = d[di] % k | 0;
  7220. if (repeating == null) {
  7221. if (i2 < 3) {
  7222. if (i2 == 0)
  7223. rd = rd / 100 | 0;
  7224. else if (i2 == 1)
  7225. rd = rd / 10 | 0;
  7226. r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 5e4 || rd == 0;
  7227. } else {
  7228. r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 100 | 0) == mathpow(10, i2 - 2) - 1 || (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;
  7229. }
  7230. } else {
  7231. if (i2 < 4) {
  7232. if (i2 == 0)
  7233. rd = rd / 1e3 | 0;
  7234. else if (i2 == 1)
  7235. rd = rd / 100 | 0;
  7236. else if (i2 == 2)
  7237. rd = rd / 10 | 0;
  7238. r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;
  7239. } else {
  7240. r = ((repeating || rm < 4) && rd + 1 == k || !repeating && rm > 3 && rd + 1 == k / 2) && (d[di + 1] / k / 1e3 | 0) == mathpow(10, i2 - 3) - 1;
  7241. }
  7242. }
  7243. return r;
  7244. }
  7245. function convertBase(str, baseIn, baseOut) {
  7246. var j, arr = [0], arrL, i2 = 0, strL = str.length;
  7247. for (; i2 < strL; ) {
  7248. for (arrL = arr.length; arrL--; )
  7249. arr[arrL] *= baseIn;
  7250. arr[0] += NUMERALS.indexOf(str.charAt(i2++));
  7251. for (j = 0; j < arr.length; j++) {
  7252. if (arr[j] > baseOut - 1) {
  7253. if (arr[j + 1] === void 0)
  7254. arr[j + 1] = 0;
  7255. arr[j + 1] += arr[j] / baseOut | 0;
  7256. arr[j] %= baseOut;
  7257. }
  7258. }
  7259. }
  7260. return arr.reverse();
  7261. }
  7262. function cosine(Ctor, x) {
  7263. var k, len, y;
  7264. if (x.isZero())
  7265. return x;
  7266. len = x.d.length;
  7267. if (len < 32) {
  7268. k = Math.ceil(len / 3);
  7269. y = (1 / tinyPow(4, k)).toString();
  7270. } else {
  7271. k = 16;
  7272. y = "2.3283064365386962890625e-10";
  7273. }
  7274. Ctor.precision += k;
  7275. x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));
  7276. for (var i2 = k; i2--; ) {
  7277. var cos2x = x.times(x);
  7278. x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);
  7279. }
  7280. Ctor.precision -= k;
  7281. return x;
  7282. }
  7283. var divide = function() {
  7284. function multiplyInteger(x, k, base) {
  7285. var temp, carry = 0, i2 = x.length;
  7286. for (x = x.slice(); i2--; ) {
  7287. temp = x[i2] * k + carry;
  7288. x[i2] = temp % base | 0;
  7289. carry = temp / base | 0;
  7290. }
  7291. if (carry)
  7292. x.unshift(carry);
  7293. return x;
  7294. }
  7295. function compare2(a, b, aL, bL) {
  7296. var i2, r;
  7297. if (aL != bL) {
  7298. r = aL > bL ? 1 : -1;
  7299. } else {
  7300. for (i2 = r = 0; i2 < aL; i2++) {
  7301. if (a[i2] != b[i2]) {
  7302. r = a[i2] > b[i2] ? 1 : -1;
  7303. break;
  7304. }
  7305. }
  7306. }
  7307. return r;
  7308. }
  7309. function subtract2(a, b, aL, base) {
  7310. var i2 = 0;
  7311. for (; aL--; ) {
  7312. a[aL] -= i2;
  7313. i2 = a[aL] < b[aL] ? 1 : 0;
  7314. a[aL] = i2 * base + a[aL] - b[aL];
  7315. }
  7316. for (; !a[0] && a.length > 1; )
  7317. a.shift();
  7318. }
  7319. return function(x, y, pr, rm, dp, base) {
  7320. var cmp, e3, i2, k, logBase, more, prod2, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz, Ctor = x.constructor, sign4 = x.s == y.s ? 1 : -1, xd = x.d, yd = y.d;
  7321. if (!xd || !xd[0] || !yd || !yd[0]) {
  7322. return new Ctor(
  7323. // Return NaN if either NaN, or both Infinity or 0.
  7324. !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN : (
  7325. // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.
  7326. xd && xd[0] == 0 || !yd ? sign4 * 0 : sign4 / 0
  7327. )
  7328. );
  7329. }
  7330. if (base) {
  7331. logBase = 1;
  7332. e3 = x.e - y.e;
  7333. } else {
  7334. base = BASE;
  7335. logBase = LOG_BASE;
  7336. e3 = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);
  7337. }
  7338. yL = yd.length;
  7339. xL = xd.length;
  7340. q = new Ctor(sign4);
  7341. qd = q.d = [];
  7342. for (i2 = 0; yd[i2] == (xd[i2] || 0); i2++)
  7343. ;
  7344. if (yd[i2] > (xd[i2] || 0))
  7345. e3--;
  7346. if (pr == null) {
  7347. sd = pr = Ctor.precision;
  7348. rm = Ctor.rounding;
  7349. } else if (dp) {
  7350. sd = pr + (x.e - y.e) + 1;
  7351. } else {
  7352. sd = pr;
  7353. }
  7354. if (sd < 0) {
  7355. qd.push(1);
  7356. more = true;
  7357. } else {
  7358. sd = sd / logBase + 2 | 0;
  7359. i2 = 0;
  7360. if (yL == 1) {
  7361. k = 0;
  7362. yd = yd[0];
  7363. sd++;
  7364. for (; (i2 < xL || k) && sd--; i2++) {
  7365. t = k * base + (xd[i2] || 0);
  7366. qd[i2] = t / yd | 0;
  7367. k = t % yd | 0;
  7368. }
  7369. more = k || i2 < xL;
  7370. } else {
  7371. k = base / (yd[0] + 1) | 0;
  7372. if (k > 1) {
  7373. yd = multiplyInteger(yd, k, base);
  7374. xd = multiplyInteger(xd, k, base);
  7375. yL = yd.length;
  7376. xL = xd.length;
  7377. }
  7378. xi = yL;
  7379. rem = xd.slice(0, yL);
  7380. remL = rem.length;
  7381. for (; remL < yL; )
  7382. rem[remL++] = 0;
  7383. yz = yd.slice();
  7384. yz.unshift(0);
  7385. yd0 = yd[0];
  7386. if (yd[1] >= base / 2)
  7387. ++yd0;
  7388. do {
  7389. k = 0;
  7390. cmp = compare2(yd, rem, yL, remL);
  7391. if (cmp < 0) {
  7392. rem0 = rem[0];
  7393. if (yL != remL)
  7394. rem0 = rem0 * base + (rem[1] || 0);
  7395. k = rem0 / yd0 | 0;
  7396. if (k > 1) {
  7397. if (k >= base)
  7398. k = base - 1;
  7399. prod2 = multiplyInteger(yd, k, base);
  7400. prodL = prod2.length;
  7401. remL = rem.length;
  7402. cmp = compare2(prod2, rem, prodL, remL);
  7403. if (cmp == 1) {
  7404. k--;
  7405. subtract2(prod2, yL < prodL ? yz : yd, prodL, base);
  7406. }
  7407. } else {
  7408. if (k == 0)
  7409. cmp = k = 1;
  7410. prod2 = yd.slice();
  7411. }
  7412. prodL = prod2.length;
  7413. if (prodL < remL)
  7414. prod2.unshift(0);
  7415. subtract2(rem, prod2, remL, base);
  7416. if (cmp == -1) {
  7417. remL = rem.length;
  7418. cmp = compare2(yd, rem, yL, remL);
  7419. if (cmp < 1) {
  7420. k++;
  7421. subtract2(rem, yL < remL ? yz : yd, remL, base);
  7422. }
  7423. }
  7424. remL = rem.length;
  7425. } else if (cmp === 0) {
  7426. k++;
  7427. rem = [0];
  7428. }
  7429. qd[i2++] = k;
  7430. if (cmp && rem[0]) {
  7431. rem[remL++] = xd[xi] || 0;
  7432. } else {
  7433. rem = [xd[xi]];
  7434. remL = 1;
  7435. }
  7436. } while ((xi++ < xL || rem[0] !== void 0) && sd--);
  7437. more = rem[0] !== void 0;
  7438. }
  7439. if (!qd[0])
  7440. qd.shift();
  7441. }
  7442. if (logBase == 1) {
  7443. q.e = e3;
  7444. inexact = more;
  7445. } else {
  7446. for (i2 = 1, k = qd[0]; k >= 10; k /= 10)
  7447. i2++;
  7448. q.e = i2 + e3 * logBase - 1;
  7449. finalise(q, dp ? pr + q.e + 1 : pr, rm, more);
  7450. }
  7451. return q;
  7452. };
  7453. }();
  7454. function finalise(x, sd, rm, isTruncated) {
  7455. var digits2, i2, j, k, rd, roundUp, w, xd, xdi, Ctor = x.constructor;
  7456. out:
  7457. if (sd != null) {
  7458. xd = x.d;
  7459. if (!xd)
  7460. return x;
  7461. for (digits2 = 1, k = xd[0]; k >= 10; k /= 10)
  7462. digits2++;
  7463. i2 = sd - digits2;
  7464. if (i2 < 0) {
  7465. i2 += LOG_BASE;
  7466. j = sd;
  7467. w = xd[xdi = 0];
  7468. rd = w / mathpow(10, digits2 - j - 1) % 10 | 0;
  7469. } else {
  7470. xdi = Math.ceil((i2 + 1) / LOG_BASE);
  7471. k = xd.length;
  7472. if (xdi >= k) {
  7473. if (isTruncated) {
  7474. for (; k++ <= xdi; )
  7475. xd.push(0);
  7476. w = rd = 0;
  7477. digits2 = 1;
  7478. i2 %= LOG_BASE;
  7479. j = i2 - LOG_BASE + 1;
  7480. } else {
  7481. break out;
  7482. }
  7483. } else {
  7484. w = k = xd[xdi];
  7485. for (digits2 = 1; k >= 10; k /= 10)
  7486. digits2++;
  7487. i2 %= LOG_BASE;
  7488. j = i2 - LOG_BASE + digits2;
  7489. rd = j < 0 ? 0 : w / mathpow(10, digits2 - j - 1) % 10 | 0;
  7490. }
  7491. }
  7492. isTruncated = isTruncated || sd < 0 || xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits2 - j - 1));
  7493. roundUp = rm < 4 ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.
  7494. (i2 > 0 ? j > 0 ? w / mathpow(10, digits2 - j) : 0 : xd[xdi - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));
  7495. if (sd < 1 || !xd[0]) {
  7496. xd.length = 0;
  7497. if (roundUp) {
  7498. sd -= x.e + 1;
  7499. xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);
  7500. x.e = -sd || 0;
  7501. } else {
  7502. xd[0] = x.e = 0;
  7503. }
  7504. return x;
  7505. }
  7506. if (i2 == 0) {
  7507. xd.length = xdi;
  7508. k = 1;
  7509. xdi--;
  7510. } else {
  7511. xd.length = xdi + 1;
  7512. k = mathpow(10, LOG_BASE - i2);
  7513. xd[xdi] = j > 0 ? (w / mathpow(10, digits2 - j) % mathpow(10, j) | 0) * k : 0;
  7514. }
  7515. if (roundUp) {
  7516. for (; ; ) {
  7517. if (xdi == 0) {
  7518. for (i2 = 1, j = xd[0]; j >= 10; j /= 10)
  7519. i2++;
  7520. j = xd[0] += k;
  7521. for (k = 1; j >= 10; j /= 10)
  7522. k++;
  7523. if (i2 != k) {
  7524. x.e++;
  7525. if (xd[0] == BASE)
  7526. xd[0] = 1;
  7527. }
  7528. break;
  7529. } else {
  7530. xd[xdi] += k;
  7531. if (xd[xdi] != BASE)
  7532. break;
  7533. xd[xdi--] = 0;
  7534. k = 1;
  7535. }
  7536. }
  7537. }
  7538. for (i2 = xd.length; xd[--i2] === 0; )
  7539. xd.pop();
  7540. }
  7541. if (external) {
  7542. if (x.e > Ctor.maxE) {
  7543. x.d = null;
  7544. x.e = NaN;
  7545. } else if (x.e < Ctor.minE) {
  7546. x.e = 0;
  7547. x.d = [0];
  7548. }
  7549. }
  7550. return x;
  7551. }
  7552. function finiteToString(x, isExp, sd) {
  7553. if (!x.isFinite())
  7554. return nonFiniteToString(x);
  7555. var k, e3 = x.e, str = digitsToString(x.d), len = str.length;
  7556. if (isExp) {
  7557. if (sd && (k = sd - len) > 0) {
  7558. str = str.charAt(0) + "." + str.slice(1) + getZeroString(k);
  7559. } else if (len > 1) {
  7560. str = str.charAt(0) + "." + str.slice(1);
  7561. }
  7562. str = str + (x.e < 0 ? "e" : "e+") + x.e;
  7563. } else if (e3 < 0) {
  7564. str = "0." + getZeroString(-e3 - 1) + str;
  7565. if (sd && (k = sd - len) > 0)
  7566. str += getZeroString(k);
  7567. } else if (e3 >= len) {
  7568. str += getZeroString(e3 + 1 - len);
  7569. if (sd && (k = sd - e3 - 1) > 0)
  7570. str = str + "." + getZeroString(k);
  7571. } else {
  7572. if ((k = e3 + 1) < len)
  7573. str = str.slice(0, k) + "." + str.slice(k);
  7574. if (sd && (k = sd - len) > 0) {
  7575. if (e3 + 1 === len)
  7576. str += ".";
  7577. str += getZeroString(k);
  7578. }
  7579. }
  7580. return str;
  7581. }
  7582. function getBase10Exponent(digits2, e3) {
  7583. var w = digits2[0];
  7584. for (e3 *= LOG_BASE; w >= 10; w /= 10)
  7585. e3++;
  7586. return e3;
  7587. }
  7588. function getLn10(Ctor, sd, pr) {
  7589. if (sd > LN10_PRECISION) {
  7590. external = true;
  7591. if (pr)
  7592. Ctor.precision = pr;
  7593. throw Error(precisionLimitExceeded);
  7594. }
  7595. return finalise(new Ctor(LN10), sd, 1, true);
  7596. }
  7597. function getPi(Ctor, sd, rm) {
  7598. if (sd > PI_PRECISION)
  7599. throw Error(precisionLimitExceeded);
  7600. return finalise(new Ctor(PI), sd, rm, true);
  7601. }
  7602. function getPrecision(digits2) {
  7603. var w = digits2.length - 1, len = w * LOG_BASE + 1;
  7604. w = digits2[w];
  7605. if (w) {
  7606. for (; w % 10 == 0; w /= 10)
  7607. len--;
  7608. for (w = digits2[0]; w >= 10; w /= 10)
  7609. len++;
  7610. }
  7611. return len;
  7612. }
  7613. function getZeroString(k) {
  7614. var zs = "";
  7615. for (; k--; )
  7616. zs += "0";
  7617. return zs;
  7618. }
  7619. function intPow(Ctor, x, n, pr) {
  7620. var isTruncated, r = new Ctor(1), k = Math.ceil(pr / LOG_BASE + 4);
  7621. external = false;
  7622. for (; ; ) {
  7623. if (n % 2) {
  7624. r = r.times(x);
  7625. if (truncate(r.d, k))
  7626. isTruncated = true;
  7627. }
  7628. n = mathfloor(n / 2);
  7629. if (n === 0) {
  7630. n = r.d.length - 1;
  7631. if (isTruncated && r.d[n] === 0)
  7632. ++r.d[n];
  7633. break;
  7634. }
  7635. x = x.times(x);
  7636. truncate(x.d, k);
  7637. }
  7638. external = true;
  7639. return r;
  7640. }
  7641. function isOdd(n) {
  7642. return n.d[n.d.length - 1] & 1;
  7643. }
  7644. function maxOrMin(Ctor, args, ltgt) {
  7645. var y, x = new Ctor(args[0]), i2 = 0;
  7646. for (; ++i2 < args.length; ) {
  7647. y = new Ctor(args[i2]);
  7648. if (!y.s) {
  7649. x = y;
  7650. break;
  7651. } else if (x[ltgt](y)) {
  7652. x = y;
  7653. }
  7654. }
  7655. return x;
  7656. }
  7657. function naturalExponential(x, sd) {
  7658. var denominator, guard, j, pow3, sum3, t, wpr, rep = 0, i2 = 0, k = 0, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
  7659. if (!x.d || !x.d[0] || x.e > 17) {
  7660. return new Ctor(x.d ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0 : x.s ? x.s < 0 ? 0 : x : 0 / 0);
  7661. }
  7662. if (sd == null) {
  7663. external = false;
  7664. wpr = pr;
  7665. } else {
  7666. wpr = sd;
  7667. }
  7668. t = new Ctor(0.03125);
  7669. while (x.e > -2) {
  7670. x = x.times(t);
  7671. k += 5;
  7672. }
  7673. guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;
  7674. wpr += guard;
  7675. denominator = pow3 = sum3 = new Ctor(1);
  7676. Ctor.precision = wpr;
  7677. for (; ; ) {
  7678. pow3 = finalise(pow3.times(x), wpr, 1);
  7679. denominator = denominator.times(++i2);
  7680. t = sum3.plus(divide(pow3, denominator, wpr, 1));
  7681. if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum3.d).slice(0, wpr)) {
  7682. j = k;
  7683. while (j--)
  7684. sum3 = finalise(sum3.times(sum3), wpr, 1);
  7685. if (sd == null) {
  7686. if (rep < 3 && checkRoundingDigits(sum3.d, wpr - guard, rm, rep)) {
  7687. Ctor.precision = wpr += 10;
  7688. denominator = pow3 = t = new Ctor(1);
  7689. i2 = 0;
  7690. rep++;
  7691. } else {
  7692. return finalise(sum3, Ctor.precision = pr, rm, external = true);
  7693. }
  7694. } else {
  7695. Ctor.precision = pr;
  7696. return sum3;
  7697. }
  7698. }
  7699. sum3 = t;
  7700. }
  7701. }
  7702. function naturalLogarithm(y, sd) {
  7703. var c, c0, denominator, e3, numerator, rep, sum3, t, wpr, x1, x2, n = 1, guard = 10, x = y, xd = x.d, Ctor = x.constructor, rm = Ctor.rounding, pr = Ctor.precision;
  7704. if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {
  7705. return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);
  7706. }
  7707. if (sd == null) {
  7708. external = false;
  7709. wpr = pr;
  7710. } else {
  7711. wpr = sd;
  7712. }
  7713. Ctor.precision = wpr += guard;
  7714. c = digitsToString(xd);
  7715. c0 = c.charAt(0);
  7716. if (Math.abs(e3 = x.e) < 15e14) {
  7717. while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {
  7718. x = x.times(y);
  7719. c = digitsToString(x.d);
  7720. c0 = c.charAt(0);
  7721. n++;
  7722. }
  7723. e3 = x.e;
  7724. if (c0 > 1) {
  7725. x = new Ctor("0." + c);
  7726. e3++;
  7727. } else {
  7728. x = new Ctor(c0 + "." + c.slice(1));
  7729. }
  7730. } else {
  7731. t = getLn10(Ctor, wpr + 2, pr).times(e3 + "");
  7732. x = naturalLogarithm(new Ctor(c0 + "." + c.slice(1)), wpr - guard).plus(t);
  7733. Ctor.precision = pr;
  7734. return sd == null ? finalise(x, pr, rm, external = true) : x;
  7735. }
  7736. x1 = x;
  7737. sum3 = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);
  7738. x2 = finalise(x.times(x), wpr, 1);
  7739. denominator = 3;
  7740. for (; ; ) {
  7741. numerator = finalise(numerator.times(x2), wpr, 1);
  7742. t = sum3.plus(divide(numerator, new Ctor(denominator), wpr, 1));
  7743. if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum3.d).slice(0, wpr)) {
  7744. sum3 = sum3.times(2);
  7745. if (e3 !== 0)
  7746. sum3 = sum3.plus(getLn10(Ctor, wpr + 2, pr).times(e3 + ""));
  7747. sum3 = divide(sum3, new Ctor(n), wpr, 1);
  7748. if (sd == null) {
  7749. if (checkRoundingDigits(sum3.d, wpr - guard, rm, rep)) {
  7750. Ctor.precision = wpr += guard;
  7751. t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);
  7752. x2 = finalise(x.times(x), wpr, 1);
  7753. denominator = rep = 1;
  7754. } else {
  7755. return finalise(sum3, Ctor.precision = pr, rm, external = true);
  7756. }
  7757. } else {
  7758. Ctor.precision = pr;
  7759. return sum3;
  7760. }
  7761. }
  7762. sum3 = t;
  7763. denominator += 2;
  7764. }
  7765. }
  7766. function nonFiniteToString(x) {
  7767. return String(x.s * x.s / 0);
  7768. }
  7769. function parseDecimal(x, str) {
  7770. var e3, i2, len;
  7771. if ((e3 = str.indexOf(".")) > -1)
  7772. str = str.replace(".", "");
  7773. if ((i2 = str.search(/e/i)) > 0) {
  7774. if (e3 < 0)
  7775. e3 = i2;
  7776. e3 += +str.slice(i2 + 1);
  7777. str = str.substring(0, i2);
  7778. } else if (e3 < 0) {
  7779. e3 = str.length;
  7780. }
  7781. for (i2 = 0; str.charCodeAt(i2) === 48; i2++)
  7782. ;
  7783. for (len = str.length; str.charCodeAt(len - 1) === 48; --len)
  7784. ;
  7785. str = str.slice(i2, len);
  7786. if (str) {
  7787. len -= i2;
  7788. x.e = e3 = e3 - i2 - 1;
  7789. x.d = [];
  7790. i2 = (e3 + 1) % LOG_BASE;
  7791. if (e3 < 0)
  7792. i2 += LOG_BASE;
  7793. if (i2 < len) {
  7794. if (i2)
  7795. x.d.push(+str.slice(0, i2));
  7796. for (len -= LOG_BASE; i2 < len; )
  7797. x.d.push(+str.slice(i2, i2 += LOG_BASE));
  7798. str = str.slice(i2);
  7799. i2 = LOG_BASE - str.length;
  7800. } else {
  7801. i2 -= len;
  7802. }
  7803. for (; i2--; )
  7804. str += "0";
  7805. x.d.push(+str);
  7806. if (external) {
  7807. if (x.e > x.constructor.maxE) {
  7808. x.d = null;
  7809. x.e = NaN;
  7810. } else if (x.e < x.constructor.minE) {
  7811. x.e = 0;
  7812. x.d = [0];
  7813. }
  7814. }
  7815. } else {
  7816. x.e = 0;
  7817. x.d = [0];
  7818. }
  7819. return x;
  7820. }
  7821. function parseOther(x, str) {
  7822. var base, Ctor, divisor, i2, isFloat, len, p, xd, xe;
  7823. if (str.indexOf("_") > -1) {
  7824. str = str.replace(/(\d)_(?=\d)/g, "$1");
  7825. if (isDecimal.test(str))
  7826. return parseDecimal(x, str);
  7827. } else if (str === "Infinity" || str === "NaN") {
  7828. if (!+str)
  7829. x.s = NaN;
  7830. x.e = NaN;
  7831. x.d = null;
  7832. return x;
  7833. }
  7834. if (isHex.test(str)) {
  7835. base = 16;
  7836. str = str.toLowerCase();
  7837. } else if (isBinary.test(str)) {
  7838. base = 2;
  7839. } else if (isOctal.test(str)) {
  7840. base = 8;
  7841. } else {
  7842. throw Error(invalidArgument + str);
  7843. }
  7844. i2 = str.search(/p/i);
  7845. if (i2 > 0) {
  7846. p = +str.slice(i2 + 1);
  7847. str = str.substring(2, i2);
  7848. } else {
  7849. str = str.slice(2);
  7850. }
  7851. i2 = str.indexOf(".");
  7852. isFloat = i2 >= 0;
  7853. Ctor = x.constructor;
  7854. if (isFloat) {
  7855. str = str.replace(".", "");
  7856. len = str.length;
  7857. i2 = len - i2;
  7858. divisor = intPow(Ctor, new Ctor(base), i2, i2 * 2);
  7859. }
  7860. xd = convertBase(str, base, BASE);
  7861. xe = xd.length - 1;
  7862. for (i2 = xe; xd[i2] === 0; --i2)
  7863. xd.pop();
  7864. if (i2 < 0)
  7865. return new Ctor(x.s * 0);
  7866. x.e = getBase10Exponent(xd, xe);
  7867. x.d = xd;
  7868. external = false;
  7869. if (isFloat)
  7870. x = divide(x, divisor, len * 4);
  7871. if (p)
  7872. x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));
  7873. external = true;
  7874. return x;
  7875. }
  7876. function sine(Ctor, x) {
  7877. var k, len = x.d.length;
  7878. if (len < 3) {
  7879. return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);
  7880. }
  7881. k = 1.4 * Math.sqrt(len);
  7882. k = k > 16 ? 16 : k | 0;
  7883. x = x.times(1 / tinyPow(5, k));
  7884. x = taylorSeries(Ctor, 2, x, x);
  7885. var sin2_x, d5 = new Ctor(5), d16 = new Ctor(16), d20 = new Ctor(20);
  7886. for (; k--; ) {
  7887. sin2_x = x.times(x);
  7888. x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));
  7889. }
  7890. return x;
  7891. }
  7892. function taylorSeries(Ctor, n, x, y, isHyperbolic) {
  7893. var j, t, u, x2, i2 = 1, pr = Ctor.precision, k = Math.ceil(pr / LOG_BASE);
  7894. external = false;
  7895. x2 = x.times(x);
  7896. u = new Ctor(y);
  7897. for (; ; ) {
  7898. t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);
  7899. u = isHyperbolic ? y.plus(t) : y.minus(t);
  7900. y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);
  7901. t = u.plus(y);
  7902. if (t.d[k] !== void 0) {
  7903. for (j = k; t.d[j] === u.d[j] && j--; )
  7904. ;
  7905. if (j == -1)
  7906. break;
  7907. }
  7908. j = u;
  7909. u = y;
  7910. y = t;
  7911. t = j;
  7912. i2++;
  7913. }
  7914. external = true;
  7915. t.d.length = k + 1;
  7916. return t;
  7917. }
  7918. function tinyPow(b, e3) {
  7919. var n = b;
  7920. while (--e3)
  7921. n *= b;
  7922. return n;
  7923. }
  7924. function toLessThanHalfPi(Ctor, x) {
  7925. var t, isNeg = x.s < 0, pi3 = getPi(Ctor, Ctor.precision, 1), halfPi = pi3.times(0.5);
  7926. x = x.abs();
  7927. if (x.lte(halfPi)) {
  7928. quadrant = isNeg ? 4 : 1;
  7929. return x;
  7930. }
  7931. t = x.divToInt(pi3);
  7932. if (t.isZero()) {
  7933. quadrant = isNeg ? 3 : 2;
  7934. } else {
  7935. x = x.minus(t.times(pi3));
  7936. if (x.lte(halfPi)) {
  7937. quadrant = isOdd(t) ? isNeg ? 2 : 3 : isNeg ? 4 : 1;
  7938. return x;
  7939. }
  7940. quadrant = isOdd(t) ? isNeg ? 1 : 4 : isNeg ? 3 : 2;
  7941. }
  7942. return x.minus(pi3).abs();
  7943. }
  7944. function toStringBinary(x, baseOut, sd, rm) {
  7945. var base, e3, i2, k, len, roundUp, str, xd, y, Ctor = x.constructor, isExp = sd !== void 0;
  7946. if (isExp) {
  7947. checkInt32(sd, 1, MAX_DIGITS);
  7948. if (rm === void 0)
  7949. rm = Ctor.rounding;
  7950. else
  7951. checkInt32(rm, 0, 8);
  7952. } else {
  7953. sd = Ctor.precision;
  7954. rm = Ctor.rounding;
  7955. }
  7956. if (!x.isFinite()) {
  7957. str = nonFiniteToString(x);
  7958. } else {
  7959. str = finiteToString(x);
  7960. i2 = str.indexOf(".");
  7961. if (isExp) {
  7962. base = 2;
  7963. if (baseOut == 16) {
  7964. sd = sd * 4 - 3;
  7965. } else if (baseOut == 8) {
  7966. sd = sd * 3 - 2;
  7967. }
  7968. } else {
  7969. base = baseOut;
  7970. }
  7971. if (i2 >= 0) {
  7972. str = str.replace(".", "");
  7973. y = new Ctor(1);
  7974. y.e = str.length - i2;
  7975. y.d = convertBase(finiteToString(y), 10, base);
  7976. y.e = y.d.length;
  7977. }
  7978. xd = convertBase(str, 10, base);
  7979. e3 = len = xd.length;
  7980. for (; xd[--len] == 0; )
  7981. xd.pop();
  7982. if (!xd[0]) {
  7983. str = isExp ? "0p+0" : "0";
  7984. } else {
  7985. if (i2 < 0) {
  7986. e3--;
  7987. } else {
  7988. x = new Ctor(x);
  7989. x.d = xd;
  7990. x.e = e3;
  7991. x = divide(x, y, sd, rm, 0, base);
  7992. xd = x.d;
  7993. e3 = x.e;
  7994. roundUp = inexact;
  7995. }
  7996. i2 = xd[sd];
  7997. k = base / 2;
  7998. roundUp = roundUp || xd[sd + 1] !== void 0;
  7999. roundUp = rm < 4 ? (i2 !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2)) : i2 > k || i2 === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 || rm === (x.s < 0 ? 8 : 7));
  8000. xd.length = sd;
  8001. if (roundUp) {
  8002. for (; ++xd[--sd] > base - 1; ) {
  8003. xd[sd] = 0;
  8004. if (!sd) {
  8005. ++e3;
  8006. xd.unshift(1);
  8007. }
  8008. }
  8009. }
  8010. for (len = xd.length; !xd[len - 1]; --len)
  8011. ;
  8012. for (i2 = 0, str = ""; i2 < len; i2++)
  8013. str += NUMERALS.charAt(xd[i2]);
  8014. if (isExp) {
  8015. if (len > 1) {
  8016. if (baseOut == 16 || baseOut == 8) {
  8017. i2 = baseOut == 16 ? 4 : 3;
  8018. for (--len; len % i2; len++)
  8019. str += "0";
  8020. xd = convertBase(str, base, baseOut);
  8021. for (len = xd.length; !xd[len - 1]; --len)
  8022. ;
  8023. for (i2 = 1, str = "1."; i2 < len; i2++)
  8024. str += NUMERALS.charAt(xd[i2]);
  8025. } else {
  8026. str = str.charAt(0) + "." + str.slice(1);
  8027. }
  8028. }
  8029. str = str + (e3 < 0 ? "p" : "p+") + e3;
  8030. } else if (e3 < 0) {
  8031. for (; ++e3; )
  8032. str = "0" + str;
  8033. str = "0." + str;
  8034. } else {
  8035. if (++e3 > len)
  8036. for (e3 -= len; e3--; )
  8037. str += "0";
  8038. else if (e3 < len)
  8039. str = str.slice(0, e3) + "." + str.slice(e3);
  8040. }
  8041. }
  8042. str = (baseOut == 16 ? "0x" : baseOut == 2 ? "0b" : baseOut == 8 ? "0o" : "") + str;
  8043. }
  8044. return x.s < 0 ? "-" + str : str;
  8045. }
  8046. function truncate(arr, len) {
  8047. if (arr.length > len) {
  8048. arr.length = len;
  8049. return true;
  8050. }
  8051. }
  8052. function abs(x) {
  8053. return new this(x).abs();
  8054. }
  8055. function acos(x) {
  8056. return new this(x).acos();
  8057. }
  8058. function acosh2(x) {
  8059. return new this(x).acosh();
  8060. }
  8061. function add(x, y) {
  8062. return new this(x).plus(y);
  8063. }
  8064. function asin(x) {
  8065. return new this(x).asin();
  8066. }
  8067. function asinh2(x) {
  8068. return new this(x).asinh();
  8069. }
  8070. function atan(x) {
  8071. return new this(x).atan();
  8072. }
  8073. function atanh2(x) {
  8074. return new this(x).atanh();
  8075. }
  8076. function atan2(y, x) {
  8077. y = new this(y);
  8078. x = new this(x);
  8079. var r, pr = this.precision, rm = this.rounding, wpr = pr + 4;
  8080. if (!y.s || !x.s) {
  8081. r = new this(NaN);
  8082. } else if (!y.d && !x.d) {
  8083. r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);
  8084. r.s = y.s;
  8085. } else if (!x.d || y.isZero()) {
  8086. r = x.s < 0 ? getPi(this, pr, rm) : new this(0);
  8087. r.s = y.s;
  8088. } else if (!y.d || x.isZero()) {
  8089. r = getPi(this, wpr, 1).times(0.5);
  8090. r.s = y.s;
  8091. } else if (x.s < 0) {
  8092. this.precision = wpr;
  8093. this.rounding = 1;
  8094. r = this.atan(divide(y, x, wpr, 1));
  8095. x = getPi(this, wpr, 1);
  8096. this.precision = pr;
  8097. this.rounding = rm;
  8098. r = y.s < 0 ? r.minus(x) : r.plus(x);
  8099. } else {
  8100. r = this.atan(divide(y, x, wpr, 1));
  8101. }
  8102. return r;
  8103. }
  8104. function cbrt3(x) {
  8105. return new this(x).cbrt();
  8106. }
  8107. function ceil(x) {
  8108. return finalise(x = new this(x), x.e + 1, 2);
  8109. }
  8110. function clamp(x, min3, max3) {
  8111. return new this(x).clamp(min3, max3);
  8112. }
  8113. function config3(obj) {
  8114. if (!obj || typeof obj !== "object")
  8115. throw Error(decimalError + "Object expected");
  8116. var i2, p, v, useDefaults = obj.defaults === true, ps = [
  8117. "precision",
  8118. 1,
  8119. MAX_DIGITS,
  8120. "rounding",
  8121. 0,
  8122. 8,
  8123. "toExpNeg",
  8124. -EXP_LIMIT,
  8125. 0,
  8126. "toExpPos",
  8127. 0,
  8128. EXP_LIMIT,
  8129. "maxE",
  8130. 0,
  8131. EXP_LIMIT,
  8132. "minE",
  8133. -EXP_LIMIT,
  8134. 0,
  8135. "modulo",
  8136. 0,
  8137. 9
  8138. ];
  8139. for (i2 = 0; i2 < ps.length; i2 += 3) {
  8140. if (p = ps[i2], useDefaults)
  8141. this[p] = DEFAULTS[p];
  8142. if ((v = obj[p]) !== void 0) {
  8143. if (mathfloor(v) === v && v >= ps[i2 + 1] && v <= ps[i2 + 2])
  8144. this[p] = v;
  8145. else
  8146. throw Error(invalidArgument + p + ": " + v);
  8147. }
  8148. }
  8149. if (p = "crypto", useDefaults)
  8150. this[p] = DEFAULTS[p];
  8151. if ((v = obj[p]) !== void 0) {
  8152. if (v === true || v === false || v === 0 || v === 1) {
  8153. if (v) {
  8154. if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
  8155. this[p] = true;
  8156. } else {
  8157. throw Error(cryptoUnavailable);
  8158. }
  8159. } else {
  8160. this[p] = false;
  8161. }
  8162. } else {
  8163. throw Error(invalidArgument + p + ": " + v);
  8164. }
  8165. }
  8166. return this;
  8167. }
  8168. function cos(x) {
  8169. return new this(x).cos();
  8170. }
  8171. function cosh2(x) {
  8172. return new this(x).cosh();
  8173. }
  8174. function clone2(obj) {
  8175. var i2, p, ps;
  8176. function Decimal2(v) {
  8177. var e3, i3, t, x = this;
  8178. if (!(x instanceof Decimal2))
  8179. return new Decimal2(v);
  8180. x.constructor = Decimal2;
  8181. if (isDecimalInstance(v)) {
  8182. x.s = v.s;
  8183. if (external) {
  8184. if (!v.d || v.e > Decimal2.maxE) {
  8185. x.e = NaN;
  8186. x.d = null;
  8187. } else if (v.e < Decimal2.minE) {
  8188. x.e = 0;
  8189. x.d = [0];
  8190. } else {
  8191. x.e = v.e;
  8192. x.d = v.d.slice();
  8193. }
  8194. } else {
  8195. x.e = v.e;
  8196. x.d = v.d ? v.d.slice() : v.d;
  8197. }
  8198. return;
  8199. }
  8200. t = typeof v;
  8201. if (t === "number") {
  8202. if (v === 0) {
  8203. x.s = 1 / v < 0 ? -1 : 1;
  8204. x.e = 0;
  8205. x.d = [0];
  8206. return;
  8207. }
  8208. if (v < 0) {
  8209. v = -v;
  8210. x.s = -1;
  8211. } else {
  8212. x.s = 1;
  8213. }
  8214. if (v === ~~v && v < 1e7) {
  8215. for (e3 = 0, i3 = v; i3 >= 10; i3 /= 10)
  8216. e3++;
  8217. if (external) {
  8218. if (e3 > Decimal2.maxE) {
  8219. x.e = NaN;
  8220. x.d = null;
  8221. } else if (e3 < Decimal2.minE) {
  8222. x.e = 0;
  8223. x.d = [0];
  8224. } else {
  8225. x.e = e3;
  8226. x.d = [v];
  8227. }
  8228. } else {
  8229. x.e = e3;
  8230. x.d = [v];
  8231. }
  8232. return;
  8233. } else if (v * 0 !== 0) {
  8234. if (!v)
  8235. x.s = NaN;
  8236. x.e = NaN;
  8237. x.d = null;
  8238. return;
  8239. }
  8240. return parseDecimal(x, v.toString());
  8241. } else if (t !== "string") {
  8242. throw Error(invalidArgument + v);
  8243. }
  8244. if ((i3 = v.charCodeAt(0)) === 45) {
  8245. v = v.slice(1);
  8246. x.s = -1;
  8247. } else {
  8248. if (i3 === 43)
  8249. v = v.slice(1);
  8250. x.s = 1;
  8251. }
  8252. return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);
  8253. }
  8254. Decimal2.prototype = P;
  8255. Decimal2.ROUND_UP = 0;
  8256. Decimal2.ROUND_DOWN = 1;
  8257. Decimal2.ROUND_CEIL = 2;
  8258. Decimal2.ROUND_FLOOR = 3;
  8259. Decimal2.ROUND_HALF_UP = 4;
  8260. Decimal2.ROUND_HALF_DOWN = 5;
  8261. Decimal2.ROUND_HALF_EVEN = 6;
  8262. Decimal2.ROUND_HALF_CEIL = 7;
  8263. Decimal2.ROUND_HALF_FLOOR = 8;
  8264. Decimal2.EUCLID = 9;
  8265. Decimal2.config = Decimal2.set = config3;
  8266. Decimal2.clone = clone2;
  8267. Decimal2.isDecimal = isDecimalInstance;
  8268. Decimal2.abs = abs;
  8269. Decimal2.acos = acos;
  8270. Decimal2.acosh = acosh2;
  8271. Decimal2.add = add;
  8272. Decimal2.asin = asin;
  8273. Decimal2.asinh = asinh2;
  8274. Decimal2.atan = atan;
  8275. Decimal2.atanh = atanh2;
  8276. Decimal2.atan2 = atan2;
  8277. Decimal2.cbrt = cbrt3;
  8278. Decimal2.ceil = ceil;
  8279. Decimal2.clamp = clamp;
  8280. Decimal2.cos = cos;
  8281. Decimal2.cosh = cosh2;
  8282. Decimal2.div = div;
  8283. Decimal2.exp = exp;
  8284. Decimal2.floor = floor;
  8285. Decimal2.hypot = hypot;
  8286. Decimal2.ln = ln;
  8287. Decimal2.log = log;
  8288. Decimal2.log10 = log103;
  8289. Decimal2.log2 = log23;
  8290. Decimal2.max = max;
  8291. Decimal2.min = min;
  8292. Decimal2.mod = mod;
  8293. Decimal2.mul = mul;
  8294. Decimal2.pow = pow;
  8295. Decimal2.random = random;
  8296. Decimal2.round = round;
  8297. Decimal2.sign = sign2;
  8298. Decimal2.sin = sin;
  8299. Decimal2.sinh = sinh2;
  8300. Decimal2.sqrt = sqrt;
  8301. Decimal2.sub = sub;
  8302. Decimal2.sum = sum;
  8303. Decimal2.tan = tan;
  8304. Decimal2.tanh = tanh2;
  8305. Decimal2.trunc = trunc;
  8306. if (obj === void 0)
  8307. obj = {};
  8308. if (obj) {
  8309. if (obj.defaults !== true) {
  8310. ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"];
  8311. for (i2 = 0; i2 < ps.length; )
  8312. if (!obj.hasOwnProperty(p = ps[i2++]))
  8313. obj[p] = this[p];
  8314. }
  8315. }
  8316. Decimal2.config(obj);
  8317. return Decimal2;
  8318. }
  8319. function div(x, y) {
  8320. return new this(x).div(y);
  8321. }
  8322. function exp(x) {
  8323. return new this(x).exp();
  8324. }
  8325. function floor(x) {
  8326. return finalise(x = new this(x), x.e + 1, 3);
  8327. }
  8328. function hypot() {
  8329. var i2, n, t = new this(0);
  8330. external = false;
  8331. for (i2 = 0; i2 < arguments.length; ) {
  8332. n = new this(arguments[i2++]);
  8333. if (!n.d) {
  8334. if (n.s) {
  8335. external = true;
  8336. return new this(1 / 0);
  8337. }
  8338. t = n;
  8339. } else if (t.d) {
  8340. t = t.plus(n.times(n));
  8341. }
  8342. }
  8343. external = true;
  8344. return t.sqrt();
  8345. }
  8346. function isDecimalInstance(obj) {
  8347. return obj instanceof Decimal || obj && obj.toStringTag === tag || false;
  8348. }
  8349. function ln(x) {
  8350. return new this(x).ln();
  8351. }
  8352. function log(x, y) {
  8353. return new this(x).log(y);
  8354. }
  8355. function log23(x) {
  8356. return new this(x).log(2);
  8357. }
  8358. function log103(x) {
  8359. return new this(x).log(10);
  8360. }
  8361. function max() {
  8362. return maxOrMin(this, arguments, "lt");
  8363. }
  8364. function min() {
  8365. return maxOrMin(this, arguments, "gt");
  8366. }
  8367. function mod(x, y) {
  8368. return new this(x).mod(y);
  8369. }
  8370. function mul(x, y) {
  8371. return new this(x).mul(y);
  8372. }
  8373. function pow(x, y) {
  8374. return new this(x).pow(y);
  8375. }
  8376. function random(sd) {
  8377. var d, e3, k, n, i2 = 0, r = new this(1), rd = [];
  8378. if (sd === void 0)
  8379. sd = this.precision;
  8380. else
  8381. checkInt32(sd, 1, MAX_DIGITS);
  8382. k = Math.ceil(sd / LOG_BASE);
  8383. if (!this.crypto) {
  8384. for (; i2 < k; )
  8385. rd[i2++] = Math.random() * 1e7 | 0;
  8386. } else if (crypto.getRandomValues) {
  8387. d = crypto.getRandomValues(new Uint32Array(k));
  8388. for (; i2 < k; ) {
  8389. n = d[i2];
  8390. if (n >= 429e7) {
  8391. d[i2] = crypto.getRandomValues(new Uint32Array(1))[0];
  8392. } else {
  8393. rd[i2++] = n % 1e7;
  8394. }
  8395. }
  8396. } else if (crypto.randomBytes) {
  8397. d = crypto.randomBytes(k *= 4);
  8398. for (; i2 < k; ) {
  8399. n = d[i2] + (d[i2 + 1] << 8) + (d[i2 + 2] << 16) + ((d[i2 + 3] & 127) << 24);
  8400. if (n >= 214e7) {
  8401. crypto.randomBytes(4).copy(d, i2);
  8402. } else {
  8403. rd.push(n % 1e7);
  8404. i2 += 4;
  8405. }
  8406. }
  8407. i2 = k / 4;
  8408. } else {
  8409. throw Error(cryptoUnavailable);
  8410. }
  8411. k = rd[--i2];
  8412. sd %= LOG_BASE;
  8413. if (k && sd) {
  8414. n = mathpow(10, LOG_BASE - sd);
  8415. rd[i2] = (k / n | 0) * n;
  8416. }
  8417. for (; rd[i2] === 0; i2--)
  8418. rd.pop();
  8419. if (i2 < 0) {
  8420. e3 = 0;
  8421. rd = [0];
  8422. } else {
  8423. e3 = -1;
  8424. for (; rd[0] === 0; e3 -= LOG_BASE)
  8425. rd.shift();
  8426. for (k = 1, n = rd[0]; n >= 10; n /= 10)
  8427. k++;
  8428. if (k < LOG_BASE)
  8429. e3 -= LOG_BASE - k;
  8430. }
  8431. r.e = e3;
  8432. r.d = rd;
  8433. return r;
  8434. }
  8435. function round(x) {
  8436. return finalise(x = new this(x), x.e + 1, this.rounding);
  8437. }
  8438. function sign2(x) {
  8439. x = new this(x);
  8440. return x.d ? x.d[0] ? x.s : 0 * x.s : x.s || NaN;
  8441. }
  8442. function sin(x) {
  8443. return new this(x).sin();
  8444. }
  8445. function sinh2(x) {
  8446. return new this(x).sinh();
  8447. }
  8448. function sqrt(x) {
  8449. return new this(x).sqrt();
  8450. }
  8451. function sub(x, y) {
  8452. return new this(x).sub(y);
  8453. }
  8454. function sum() {
  8455. var i2 = 0, args = arguments, x = new this(args[i2]);
  8456. external = false;
  8457. for (; x.s && ++i2 < args.length; )
  8458. x = x.plus(args[i2]);
  8459. external = true;
  8460. return finalise(x, this.precision, this.rounding);
  8461. }
  8462. function tan(x) {
  8463. return new this(x).tan();
  8464. }
  8465. function tanh2(x) {
  8466. return new this(x).tanh();
  8467. }
  8468. function trunc(x) {
  8469. return finalise(x = new this(x), x.e + 1, 1);
  8470. }
  8471. P[Symbol.for("nodejs.util.inspect.custom")] = P.toString;
  8472. P[Symbol.toStringTag] = "Decimal";
  8473. var Decimal = P.constructor = clone2(DEFAULTS);
  8474. LN10 = new Decimal(LN10);
  8475. PI = new Decimal(PI);
  8476. var decimal_default = Decimal;
  8477. // node_modules/mathjs/lib/esm/type/bignumber/BigNumber.js
  8478. var name2 = "BigNumber";
  8479. var dependencies3 = ["?on", "config"];
  8480. var createBigNumberClass = factory(name2, dependencies3, (_ref) => {
  8481. var {
  8482. on,
  8483. config: config4
  8484. } = _ref;
  8485. var BigNumber2 = decimal_default.clone({
  8486. precision: config4.precision,
  8487. modulo: decimal_default.EUCLID
  8488. });
  8489. BigNumber2.prototype = Object.create(BigNumber2.prototype);
  8490. BigNumber2.prototype.type = "BigNumber";
  8491. BigNumber2.prototype.isBigNumber = true;
  8492. BigNumber2.prototype.toJSON = function() {
  8493. return {
  8494. mathjs: "BigNumber",
  8495. value: this.toString()
  8496. };
  8497. };
  8498. BigNumber2.fromJSON = function(json) {
  8499. return new BigNumber2(json.value);
  8500. };
  8501. if (on) {
  8502. on("config", function(curr, prev) {
  8503. if (curr.precision !== prev.precision) {
  8504. BigNumber2.config({
  8505. precision: curr.precision
  8506. });
  8507. }
  8508. });
  8509. }
  8510. return BigNumber2;
  8511. }, {
  8512. isClass: true
  8513. });
  8514. // node_modules/mathjs/lib/esm/type/complex/Complex.js
  8515. var import_complex = __toESM(require_complex(), 1);
  8516. var name3 = "Complex";
  8517. var dependencies4 = [];
  8518. var createComplexClass = factory(name3, dependencies4, () => {
  8519. Object.defineProperty(import_complex.default, "name", {
  8520. value: "Complex"
  8521. });
  8522. import_complex.default.prototype.constructor = import_complex.default;
  8523. import_complex.default.prototype.type = "Complex";
  8524. import_complex.default.prototype.isComplex = true;
  8525. import_complex.default.prototype.toJSON = function() {
  8526. return {
  8527. mathjs: "Complex",
  8528. re: this.re,
  8529. im: this.im
  8530. };
  8531. };
  8532. import_complex.default.prototype.toPolar = function() {
  8533. return {
  8534. r: this.abs(),
  8535. phi: this.arg()
  8536. };
  8537. };
  8538. import_complex.default.prototype.format = function(options) {
  8539. var str = "";
  8540. var im2 = this.im;
  8541. var re2 = this.re;
  8542. var strRe = format(this.re, options);
  8543. var strIm = format(this.im, options);
  8544. var precision = isNumber(options) ? options : options ? options.precision : null;
  8545. if (precision !== null) {
  8546. var epsilon = Math.pow(10, -precision);
  8547. if (Math.abs(re2 / im2) < epsilon) {
  8548. re2 = 0;
  8549. }
  8550. if (Math.abs(im2 / re2) < epsilon) {
  8551. im2 = 0;
  8552. }
  8553. }
  8554. if (im2 === 0) {
  8555. str = strRe;
  8556. } else if (re2 === 0) {
  8557. if (im2 === 1) {
  8558. str = "i";
  8559. } else if (im2 === -1) {
  8560. str = "-i";
  8561. } else {
  8562. str = strIm + "i";
  8563. }
  8564. } else {
  8565. if (im2 < 0) {
  8566. if (im2 === -1) {
  8567. str = strRe + " - i";
  8568. } else {
  8569. str = strRe + " - " + strIm.substring(1) + "i";
  8570. }
  8571. } else {
  8572. if (im2 === 1) {
  8573. str = strRe + " + i";
  8574. } else {
  8575. str = strRe + " + " + strIm + "i";
  8576. }
  8577. }
  8578. }
  8579. return str;
  8580. };
  8581. import_complex.default.fromPolar = function(args) {
  8582. switch (arguments.length) {
  8583. case 1: {
  8584. var arg2 = arguments[0];
  8585. if (typeof arg2 === "object") {
  8586. return (0, import_complex.default)(arg2);
  8587. } else {
  8588. throw new TypeError("Input has to be an object with r and phi keys.");
  8589. }
  8590. }
  8591. case 2: {
  8592. var r = arguments[0];
  8593. var phi3 = arguments[1];
  8594. if (isNumber(r)) {
  8595. if (isUnit(phi3) && phi3.hasBase("ANGLE")) {
  8596. phi3 = phi3.toNumber("rad");
  8597. }
  8598. if (isNumber(phi3)) {
  8599. return new import_complex.default({
  8600. r,
  8601. phi: phi3
  8602. });
  8603. }
  8604. throw new TypeError("Phi is not a number nor an angle unit.");
  8605. } else {
  8606. throw new TypeError("Radius r is not a number.");
  8607. }
  8608. }
  8609. default:
  8610. throw new SyntaxError("Wrong number of arguments in function fromPolar");
  8611. }
  8612. };
  8613. import_complex.default.prototype.valueOf = import_complex.default.prototype.toString;
  8614. import_complex.default.fromJSON = function(json) {
  8615. return new import_complex.default(json);
  8616. };
  8617. import_complex.default.compare = function(a, b) {
  8618. if (a.re > b.re) {
  8619. return 1;
  8620. }
  8621. if (a.re < b.re) {
  8622. return -1;
  8623. }
  8624. if (a.im > b.im) {
  8625. return 1;
  8626. }
  8627. if (a.im < b.im) {
  8628. return -1;
  8629. }
  8630. return 0;
  8631. };
  8632. return import_complex.default;
  8633. }, {
  8634. isClass: true
  8635. });
  8636. // node_modules/mathjs/lib/esm/type/fraction/Fraction.js
  8637. var import_fraction = __toESM(require_fraction(), 1);
  8638. var name4 = "Fraction";
  8639. var dependencies5 = [];
  8640. var createFractionClass = factory(name4, dependencies5, () => {
  8641. Object.defineProperty(import_fraction.default, "name", {
  8642. value: "Fraction"
  8643. });
  8644. import_fraction.default.prototype.constructor = import_fraction.default;
  8645. import_fraction.default.prototype.type = "Fraction";
  8646. import_fraction.default.prototype.isFraction = true;
  8647. import_fraction.default.prototype.toJSON = function() {
  8648. return {
  8649. mathjs: "Fraction",
  8650. n: this.s * this.n,
  8651. d: this.d
  8652. };
  8653. };
  8654. import_fraction.default.fromJSON = function(json) {
  8655. return new import_fraction.default(json);
  8656. };
  8657. return import_fraction.default;
  8658. }, {
  8659. isClass: true
  8660. });
  8661. // node_modules/mathjs/lib/esm/type/matrix/Range.js
  8662. var name5 = "Range";
  8663. var dependencies6 = [];
  8664. var createRangeClass = factory(name5, dependencies6, () => {
  8665. function Range2(start, end, step) {
  8666. if (!(this instanceof Range2)) {
  8667. throw new SyntaxError("Constructor must be called with the new operator");
  8668. }
  8669. var hasStart = start !== null && start !== void 0;
  8670. var hasEnd = end !== null && end !== void 0;
  8671. var hasStep = step !== null && step !== void 0;
  8672. if (hasStart) {
  8673. if (isBigNumber(start)) {
  8674. start = start.toNumber();
  8675. } else if (typeof start !== "number") {
  8676. throw new TypeError("Parameter start must be a number");
  8677. }
  8678. }
  8679. if (hasEnd) {
  8680. if (isBigNumber(end)) {
  8681. end = end.toNumber();
  8682. } else if (typeof end !== "number") {
  8683. throw new TypeError("Parameter end must be a number");
  8684. }
  8685. }
  8686. if (hasStep) {
  8687. if (isBigNumber(step)) {
  8688. step = step.toNumber();
  8689. } else if (typeof step !== "number") {
  8690. throw new TypeError("Parameter step must be a number");
  8691. }
  8692. }
  8693. this.start = hasStart ? parseFloat(start) : 0;
  8694. this.end = hasEnd ? parseFloat(end) : 0;
  8695. this.step = hasStep ? parseFloat(step) : 1;
  8696. }
  8697. Range2.prototype.type = "Range";
  8698. Range2.prototype.isRange = true;
  8699. Range2.parse = function(str) {
  8700. if (typeof str !== "string") {
  8701. return null;
  8702. }
  8703. var args = str.split(":");
  8704. var nums = args.map(function(arg2) {
  8705. return parseFloat(arg2);
  8706. });
  8707. var invalid = nums.some(function(num) {
  8708. return isNaN(num);
  8709. });
  8710. if (invalid) {
  8711. return null;
  8712. }
  8713. switch (nums.length) {
  8714. case 2:
  8715. return new Range2(nums[0], nums[1]);
  8716. case 3:
  8717. return new Range2(nums[0], nums[2], nums[1]);
  8718. default:
  8719. return null;
  8720. }
  8721. };
  8722. Range2.prototype.clone = function() {
  8723. return new Range2(this.start, this.end, this.step);
  8724. };
  8725. Range2.prototype.size = function() {
  8726. var len = 0;
  8727. var start = this.start;
  8728. var step = this.step;
  8729. var end = this.end;
  8730. var diff2 = end - start;
  8731. if (sign(step) === sign(diff2)) {
  8732. len = Math.ceil(diff2 / step);
  8733. } else if (diff2 === 0) {
  8734. len = 0;
  8735. }
  8736. if (isNaN(len)) {
  8737. len = 0;
  8738. }
  8739. return [len];
  8740. };
  8741. Range2.prototype.min = function() {
  8742. var size2 = this.size()[0];
  8743. if (size2 > 0) {
  8744. if (this.step > 0) {
  8745. return this.start;
  8746. } else {
  8747. return this.start + (size2 - 1) * this.step;
  8748. }
  8749. } else {
  8750. return void 0;
  8751. }
  8752. };
  8753. Range2.prototype.max = function() {
  8754. var size2 = this.size()[0];
  8755. if (size2 > 0) {
  8756. if (this.step > 0) {
  8757. return this.start + (size2 - 1) * this.step;
  8758. } else {
  8759. return this.start;
  8760. }
  8761. } else {
  8762. return void 0;
  8763. }
  8764. };
  8765. Range2.prototype.forEach = function(callback) {
  8766. var x = this.start;
  8767. var step = this.step;
  8768. var end = this.end;
  8769. var i2 = 0;
  8770. if (step > 0) {
  8771. while (x < end) {
  8772. callback(x, [i2], this);
  8773. x += step;
  8774. i2++;
  8775. }
  8776. } else if (step < 0) {
  8777. while (x > end) {
  8778. callback(x, [i2], this);
  8779. x += step;
  8780. i2++;
  8781. }
  8782. }
  8783. };
  8784. Range2.prototype.map = function(callback) {
  8785. var array = [];
  8786. this.forEach(function(value, index2, obj) {
  8787. array[index2[0]] = callback(value, index2, obj);
  8788. });
  8789. return array;
  8790. };
  8791. Range2.prototype.toArray = function() {
  8792. var array = [];
  8793. this.forEach(function(value, index2) {
  8794. array[index2[0]] = value;
  8795. });
  8796. return array;
  8797. };
  8798. Range2.prototype.valueOf = function() {
  8799. return this.toArray();
  8800. };
  8801. Range2.prototype.format = function(options) {
  8802. var str = format(this.start, options);
  8803. if (this.step !== 1) {
  8804. str += ":" + format(this.step, options);
  8805. }
  8806. str += ":" + format(this.end, options);
  8807. return str;
  8808. };
  8809. Range2.prototype.toString = function() {
  8810. return this.format();
  8811. };
  8812. Range2.prototype.toJSON = function() {
  8813. return {
  8814. mathjs: "Range",
  8815. start: this.start,
  8816. end: this.end,
  8817. step: this.step
  8818. };
  8819. };
  8820. Range2.fromJSON = function(json) {
  8821. return new Range2(json.start, json.end, json.step);
  8822. };
  8823. return Range2;
  8824. }, {
  8825. isClass: true
  8826. });
  8827. // node_modules/mathjs/lib/esm/type/matrix/Matrix.js
  8828. var name6 = "Matrix";
  8829. var dependencies7 = [];
  8830. var createMatrixClass = factory(name6, dependencies7, () => {
  8831. function Matrix2() {
  8832. if (!(this instanceof Matrix2)) {
  8833. throw new SyntaxError("Constructor must be called with the new operator");
  8834. }
  8835. }
  8836. Matrix2.prototype.type = "Matrix";
  8837. Matrix2.prototype.isMatrix = true;
  8838. Matrix2.prototype.storage = function() {
  8839. throw new Error("Cannot invoke storage on a Matrix interface");
  8840. };
  8841. Matrix2.prototype.datatype = function() {
  8842. throw new Error("Cannot invoke datatype on a Matrix interface");
  8843. };
  8844. Matrix2.prototype.create = function(data, datatype) {
  8845. throw new Error("Cannot invoke create on a Matrix interface");
  8846. };
  8847. Matrix2.prototype.subset = function(index2, replacement, defaultValue) {
  8848. throw new Error("Cannot invoke subset on a Matrix interface");
  8849. };
  8850. Matrix2.prototype.get = function(index2) {
  8851. throw new Error("Cannot invoke get on a Matrix interface");
  8852. };
  8853. Matrix2.prototype.set = function(index2, value, defaultValue) {
  8854. throw new Error("Cannot invoke set on a Matrix interface");
  8855. };
  8856. Matrix2.prototype.resize = function(size2, defaultValue) {
  8857. throw new Error("Cannot invoke resize on a Matrix interface");
  8858. };
  8859. Matrix2.prototype.reshape = function(size2, defaultValue) {
  8860. throw new Error("Cannot invoke reshape on a Matrix interface");
  8861. };
  8862. Matrix2.prototype.clone = function() {
  8863. throw new Error("Cannot invoke clone on a Matrix interface");
  8864. };
  8865. Matrix2.prototype.size = function() {
  8866. throw new Error("Cannot invoke size on a Matrix interface");
  8867. };
  8868. Matrix2.prototype.map = function(callback, skipZeros) {
  8869. throw new Error("Cannot invoke map on a Matrix interface");
  8870. };
  8871. Matrix2.prototype.forEach = function(callback) {
  8872. throw new Error("Cannot invoke forEach on a Matrix interface");
  8873. };
  8874. Matrix2.prototype[Symbol.iterator] = function() {
  8875. throw new Error("Cannot iterate a Matrix interface");
  8876. };
  8877. Matrix2.prototype.toArray = function() {
  8878. throw new Error("Cannot invoke toArray on a Matrix interface");
  8879. };
  8880. Matrix2.prototype.valueOf = function() {
  8881. throw new Error("Cannot invoke valueOf on a Matrix interface");
  8882. };
  8883. Matrix2.prototype.format = function(options) {
  8884. throw new Error("Cannot invoke format on a Matrix interface");
  8885. };
  8886. Matrix2.prototype.toString = function() {
  8887. throw new Error("Cannot invoke toString on a Matrix interface");
  8888. };
  8889. return Matrix2;
  8890. }, {
  8891. isClass: true
  8892. });
  8893. // node_modules/mathjs/lib/esm/utils/lruQueue.js
  8894. function lruQueue(limit) {
  8895. var size2 = 0;
  8896. var base = 1;
  8897. var queue = /* @__PURE__ */ Object.create(null);
  8898. var map3 = /* @__PURE__ */ Object.create(null);
  8899. var index2 = 0;
  8900. var del = function del2(id) {
  8901. var oldIndex = map3[id];
  8902. if (!oldIndex)
  8903. return;
  8904. delete queue[oldIndex];
  8905. delete map3[id];
  8906. --size2;
  8907. if (base !== oldIndex)
  8908. return;
  8909. if (!size2) {
  8910. index2 = 0;
  8911. base = 1;
  8912. return;
  8913. }
  8914. while (!hasOwnProperty.call(queue, ++base))
  8915. continue;
  8916. };
  8917. limit = Math.abs(limit);
  8918. return {
  8919. hit: function hit(id) {
  8920. var oldIndex = map3[id];
  8921. var nuIndex = ++index2;
  8922. queue[nuIndex] = id;
  8923. map3[id] = nuIndex;
  8924. if (!oldIndex) {
  8925. ++size2;
  8926. if (size2 <= limit)
  8927. return void 0;
  8928. id = queue[base];
  8929. del(id);
  8930. return id;
  8931. }
  8932. delete queue[oldIndex];
  8933. if (base !== oldIndex)
  8934. return void 0;
  8935. while (!hasOwnProperty.call(queue, ++base))
  8936. continue;
  8937. return void 0;
  8938. },
  8939. delete: del,
  8940. clear: function clear() {
  8941. size2 = index2 = 0;
  8942. base = 1;
  8943. queue = /* @__PURE__ */ Object.create(null);
  8944. map3 = /* @__PURE__ */ Object.create(null);
  8945. }
  8946. };
  8947. }
  8948. // node_modules/mathjs/lib/esm/utils/function.js
  8949. function memoize(fn) {
  8950. var {
  8951. hasher: hasher2,
  8952. limit
  8953. } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  8954. limit = limit == null ? Number.POSITIVE_INFINITY : limit;
  8955. hasher2 = hasher2 == null ? JSON.stringify : hasher2;
  8956. return function memoize2() {
  8957. if (typeof memoize2.cache !== "object") {
  8958. memoize2.cache = {
  8959. values: /* @__PURE__ */ new Map(),
  8960. lru: lruQueue(limit || Number.POSITIVE_INFINITY)
  8961. };
  8962. }
  8963. var args = [];
  8964. for (var i2 = 0; i2 < arguments.length; i2++) {
  8965. args[i2] = arguments[i2];
  8966. }
  8967. var hash = hasher2(args);
  8968. if (memoize2.cache.values.has(hash)) {
  8969. memoize2.cache.lru.hit(hash);
  8970. return memoize2.cache.values.get(hash);
  8971. }
  8972. var newVal = fn.apply(fn, args);
  8973. memoize2.cache.values.set(hash, newVal);
  8974. memoize2.cache.values.delete(memoize2.cache.lru.hit(hash));
  8975. return newVal;
  8976. };
  8977. }
  8978. function maxArgumentCount(fn) {
  8979. return Object.keys(fn.signatures || {}).reduce(function(args, signature) {
  8980. var count2 = (signature.match(/,/g) || []).length + 1;
  8981. return Math.max(args, count2);
  8982. }, -1);
  8983. }
  8984. // node_modules/mathjs/lib/esm/type/matrix/DenseMatrix.js
  8985. var name7 = "DenseMatrix";
  8986. var dependencies8 = ["Matrix"];
  8987. var createDenseMatrixClass = factory(name7, dependencies8, (_ref) => {
  8988. var {
  8989. Matrix: Matrix2
  8990. } = _ref;
  8991. function DenseMatrix2(data, datatype) {
  8992. if (!(this instanceof DenseMatrix2)) {
  8993. throw new SyntaxError("Constructor must be called with the new operator");
  8994. }
  8995. if (datatype && !isString(datatype)) {
  8996. throw new Error("Invalid datatype: " + datatype);
  8997. }
  8998. if (isMatrix(data)) {
  8999. if (data.type === "DenseMatrix") {
  9000. this._data = clone(data._data);
  9001. this._size = clone(data._size);
  9002. this._datatype = datatype || data._datatype;
  9003. } else {
  9004. this._data = data.toArray();
  9005. this._size = data.size();
  9006. this._datatype = datatype || data._datatype;
  9007. }
  9008. } else if (data && isArray(data.data) && isArray(data.size)) {
  9009. this._data = data.data;
  9010. this._size = data.size;
  9011. validate(this._data, this._size);
  9012. this._datatype = datatype || data.datatype;
  9013. } else if (isArray(data)) {
  9014. this._data = preprocess(data);
  9015. this._size = arraySize(this._data);
  9016. validate(this._data, this._size);
  9017. this._datatype = datatype;
  9018. } else if (data) {
  9019. throw new TypeError("Unsupported type of data (" + typeOf(data) + ")");
  9020. } else {
  9021. this._data = [];
  9022. this._size = [0];
  9023. this._datatype = datatype;
  9024. }
  9025. }
  9026. DenseMatrix2.prototype = new Matrix2();
  9027. DenseMatrix2.prototype.createDenseMatrix = function(data, datatype) {
  9028. return new DenseMatrix2(data, datatype);
  9029. };
  9030. Object.defineProperty(DenseMatrix2, "name", {
  9031. value: "DenseMatrix"
  9032. });
  9033. DenseMatrix2.prototype.constructor = DenseMatrix2;
  9034. DenseMatrix2.prototype.type = "DenseMatrix";
  9035. DenseMatrix2.prototype.isDenseMatrix = true;
  9036. DenseMatrix2.prototype.getDataType = function() {
  9037. return getArrayDataType(this._data, typeOf);
  9038. };
  9039. DenseMatrix2.prototype.storage = function() {
  9040. return "dense";
  9041. };
  9042. DenseMatrix2.prototype.datatype = function() {
  9043. return this._datatype;
  9044. };
  9045. DenseMatrix2.prototype.create = function(data, datatype) {
  9046. return new DenseMatrix2(data, datatype);
  9047. };
  9048. DenseMatrix2.prototype.subset = function(index2, replacement, defaultValue) {
  9049. switch (arguments.length) {
  9050. case 1:
  9051. return _get(this, index2);
  9052. case 2:
  9053. case 3:
  9054. return _set(this, index2, replacement, defaultValue);
  9055. default:
  9056. throw new SyntaxError("Wrong number of arguments");
  9057. }
  9058. };
  9059. DenseMatrix2.prototype.get = function(index2) {
  9060. if (!isArray(index2)) {
  9061. throw new TypeError("Array expected");
  9062. }
  9063. if (index2.length !== this._size.length) {
  9064. throw new DimensionError(index2.length, this._size.length);
  9065. }
  9066. for (var x = 0; x < index2.length; x++) {
  9067. validateIndex(index2[x], this._size[x]);
  9068. }
  9069. var data = this._data;
  9070. for (var i2 = 0, ii = index2.length; i2 < ii; i2++) {
  9071. var indexI = index2[i2];
  9072. validateIndex(indexI, data.length);
  9073. data = data[indexI];
  9074. }
  9075. return data;
  9076. };
  9077. DenseMatrix2.prototype.set = function(index2, value, defaultValue) {
  9078. if (!isArray(index2)) {
  9079. throw new TypeError("Array expected");
  9080. }
  9081. if (index2.length < this._size.length) {
  9082. throw new DimensionError(index2.length, this._size.length, "<");
  9083. }
  9084. var i2, ii, indexI;
  9085. var size2 = index2.map(function(i3) {
  9086. return i3 + 1;
  9087. });
  9088. _fit(this, size2, defaultValue);
  9089. var data = this._data;
  9090. for (i2 = 0, ii = index2.length - 1; i2 < ii; i2++) {
  9091. indexI = index2[i2];
  9092. validateIndex(indexI, data.length);
  9093. data = data[indexI];
  9094. }
  9095. indexI = index2[index2.length - 1];
  9096. validateIndex(indexI, data.length);
  9097. data[indexI] = value;
  9098. return this;
  9099. };
  9100. function _get(matrix2, index2) {
  9101. if (!isIndex(index2)) {
  9102. throw new TypeError("Invalid index");
  9103. }
  9104. var isScalar = index2.isScalar();
  9105. if (isScalar) {
  9106. return matrix2.get(index2.min());
  9107. } else {
  9108. var size2 = index2.size();
  9109. if (size2.length !== matrix2._size.length) {
  9110. throw new DimensionError(size2.length, matrix2._size.length);
  9111. }
  9112. var min3 = index2.min();
  9113. var max3 = index2.max();
  9114. for (var i2 = 0, ii = matrix2._size.length; i2 < ii; i2++) {
  9115. validateIndex(min3[i2], matrix2._size[i2]);
  9116. validateIndex(max3[i2], matrix2._size[i2]);
  9117. }
  9118. return new DenseMatrix2(_getSubmatrix(matrix2._data, index2, size2.length, 0), matrix2._datatype);
  9119. }
  9120. }
  9121. function _getSubmatrix(data, index2, dims, dim) {
  9122. var last = dim === dims - 1;
  9123. var range2 = index2.dimension(dim);
  9124. if (last) {
  9125. return range2.map(function(i2) {
  9126. validateIndex(i2, data.length);
  9127. return data[i2];
  9128. }).valueOf();
  9129. } else {
  9130. return range2.map(function(i2) {
  9131. validateIndex(i2, data.length);
  9132. var child = data[i2];
  9133. return _getSubmatrix(child, index2, dims, dim + 1);
  9134. }).valueOf();
  9135. }
  9136. }
  9137. function _set(matrix2, index2, submatrix, defaultValue) {
  9138. if (!index2 || index2.isIndex !== true) {
  9139. throw new TypeError("Invalid index");
  9140. }
  9141. var iSize = index2.size();
  9142. var isScalar = index2.isScalar();
  9143. var sSize;
  9144. if (isMatrix(submatrix)) {
  9145. sSize = submatrix.size();
  9146. submatrix = submatrix.valueOf();
  9147. } else {
  9148. sSize = arraySize(submatrix);
  9149. }
  9150. if (isScalar) {
  9151. if (sSize.length !== 0) {
  9152. throw new TypeError("Scalar expected");
  9153. }
  9154. matrix2.set(index2.min(), submatrix, defaultValue);
  9155. } else {
  9156. if (iSize.length < matrix2._size.length) {
  9157. throw new DimensionError(iSize.length, matrix2._size.length, "<");
  9158. }
  9159. if (sSize.length < iSize.length) {
  9160. var i2 = 0;
  9161. var outer = 0;
  9162. while (iSize[i2] === 1 && sSize[i2] === 1) {
  9163. i2++;
  9164. }
  9165. while (iSize[i2] === 1) {
  9166. outer++;
  9167. i2++;
  9168. }
  9169. submatrix = unsqueeze(submatrix, iSize.length, outer, sSize);
  9170. }
  9171. if (!deepStrictEqual(iSize, sSize)) {
  9172. throw new DimensionError(iSize, sSize, ">");
  9173. }
  9174. var size2 = index2.max().map(function(i3) {
  9175. return i3 + 1;
  9176. });
  9177. _fit(matrix2, size2, defaultValue);
  9178. var dims = iSize.length;
  9179. var dim = 0;
  9180. _setSubmatrix(matrix2._data, index2, submatrix, dims, dim);
  9181. }
  9182. return matrix2;
  9183. }
  9184. function _setSubmatrix(data, index2, submatrix, dims, dim) {
  9185. var last = dim === dims - 1;
  9186. var range2 = index2.dimension(dim);
  9187. if (last) {
  9188. range2.forEach(function(dataIndex, subIndex) {
  9189. validateIndex(dataIndex);
  9190. data[dataIndex] = submatrix[subIndex[0]];
  9191. });
  9192. } else {
  9193. range2.forEach(function(dataIndex, subIndex) {
  9194. validateIndex(dataIndex);
  9195. _setSubmatrix(data[dataIndex], index2, submatrix[subIndex[0]], dims, dim + 1);
  9196. });
  9197. }
  9198. }
  9199. DenseMatrix2.prototype.resize = function(size2, defaultValue, copy) {
  9200. if (!isCollection(size2)) {
  9201. throw new TypeError("Array or Matrix expected");
  9202. }
  9203. var sizeArray = size2.valueOf().map((value) => {
  9204. return Array.isArray(value) && value.length === 1 ? value[0] : value;
  9205. });
  9206. var m = copy ? this.clone() : this;
  9207. return _resize2(m, sizeArray, defaultValue);
  9208. };
  9209. function _resize2(matrix2, size2, defaultValue) {
  9210. if (size2.length === 0) {
  9211. var v = matrix2._data;
  9212. while (isArray(v)) {
  9213. v = v[0];
  9214. }
  9215. return v;
  9216. }
  9217. matrix2._size = size2.slice(0);
  9218. matrix2._data = resize(matrix2._data, matrix2._size, defaultValue);
  9219. return matrix2;
  9220. }
  9221. DenseMatrix2.prototype.reshape = function(size2, copy) {
  9222. var m = copy ? this.clone() : this;
  9223. m._data = reshape(m._data, size2);
  9224. var currentLength = m._size.reduce((length, size3) => length * size3);
  9225. m._size = processSizesWildcard(size2, currentLength);
  9226. return m;
  9227. };
  9228. function _fit(matrix2, size2, defaultValue) {
  9229. var newSize = matrix2._size.slice(0);
  9230. var changed = false;
  9231. while (newSize.length < size2.length) {
  9232. newSize.push(0);
  9233. changed = true;
  9234. }
  9235. for (var i2 = 0, ii = size2.length; i2 < ii; i2++) {
  9236. if (size2[i2] > newSize[i2]) {
  9237. newSize[i2] = size2[i2];
  9238. changed = true;
  9239. }
  9240. }
  9241. if (changed) {
  9242. _resize2(matrix2, newSize, defaultValue);
  9243. }
  9244. }
  9245. DenseMatrix2.prototype.clone = function() {
  9246. var m = new DenseMatrix2({
  9247. data: clone(this._data),
  9248. size: clone(this._size),
  9249. datatype: this._datatype
  9250. });
  9251. return m;
  9252. };
  9253. DenseMatrix2.prototype.size = function() {
  9254. return this._size.slice(0);
  9255. };
  9256. DenseMatrix2.prototype.map = function(callback) {
  9257. var me = this;
  9258. var args = maxArgumentCount(callback);
  9259. var recurse = function recurse2(value, index2) {
  9260. if (isArray(value)) {
  9261. return value.map(function(child, i2) {
  9262. return recurse2(child, index2.concat(i2));
  9263. });
  9264. } else {
  9265. if (args === 1) {
  9266. return callback(value);
  9267. } else if (args === 2) {
  9268. return callback(value, index2);
  9269. } else {
  9270. return callback(value, index2, me);
  9271. }
  9272. }
  9273. };
  9274. var data = recurse(this._data, []);
  9275. var datatype = this._datatype !== void 0 ? getArrayDataType(data, typeOf) : void 0;
  9276. return new DenseMatrix2(data, datatype);
  9277. };
  9278. DenseMatrix2.prototype.forEach = function(callback) {
  9279. var me = this;
  9280. var recurse = function recurse2(value, index2) {
  9281. if (isArray(value)) {
  9282. value.forEach(function(child, i2) {
  9283. recurse2(child, index2.concat(i2));
  9284. });
  9285. } else {
  9286. callback(value, index2, me);
  9287. }
  9288. };
  9289. recurse(this._data, []);
  9290. };
  9291. DenseMatrix2.prototype[Symbol.iterator] = function* () {
  9292. var recurse = function* recurse2(value, index2) {
  9293. if (isArray(value)) {
  9294. for (var i2 = 0; i2 < value.length; i2++) {
  9295. yield* recurse2(value[i2], index2.concat(i2));
  9296. }
  9297. } else {
  9298. yield {
  9299. value,
  9300. index: index2
  9301. };
  9302. }
  9303. };
  9304. yield* recurse(this._data, []);
  9305. };
  9306. DenseMatrix2.prototype.rows = function() {
  9307. var result = [];
  9308. var s = this.size();
  9309. if (s.length !== 2) {
  9310. throw new TypeError("Rows can only be returned for a 2D matrix.");
  9311. }
  9312. var data = this._data;
  9313. for (var row2 of data) {
  9314. result.push(new DenseMatrix2([row2], this._datatype));
  9315. }
  9316. return result;
  9317. };
  9318. DenseMatrix2.prototype.columns = function() {
  9319. var _this = this;
  9320. var result = [];
  9321. var s = this.size();
  9322. if (s.length !== 2) {
  9323. throw new TypeError("Rows can only be returned for a 2D matrix.");
  9324. }
  9325. var data = this._data;
  9326. var _loop = function _loop2(i3) {
  9327. var col = data.map((row2) => [row2[i3]]);
  9328. result.push(new DenseMatrix2(col, _this._datatype));
  9329. };
  9330. for (var i2 = 0; i2 < s[1]; i2++) {
  9331. _loop(i2);
  9332. }
  9333. return result;
  9334. };
  9335. DenseMatrix2.prototype.toArray = function() {
  9336. return clone(this._data);
  9337. };
  9338. DenseMatrix2.prototype.valueOf = function() {
  9339. return this._data;
  9340. };
  9341. DenseMatrix2.prototype.format = function(options) {
  9342. return format3(this._data, options);
  9343. };
  9344. DenseMatrix2.prototype.toString = function() {
  9345. return format3(this._data);
  9346. };
  9347. DenseMatrix2.prototype.toJSON = function() {
  9348. return {
  9349. mathjs: "DenseMatrix",
  9350. data: this._data,
  9351. size: this._size,
  9352. datatype: this._datatype
  9353. };
  9354. };
  9355. DenseMatrix2.prototype.diagonal = function(k) {
  9356. if (k) {
  9357. if (isBigNumber(k)) {
  9358. k = k.toNumber();
  9359. }
  9360. if (!isNumber(k) || !isInteger(k)) {
  9361. throw new TypeError("The parameter k must be an integer number");
  9362. }
  9363. } else {
  9364. k = 0;
  9365. }
  9366. var kSuper = k > 0 ? k : 0;
  9367. var kSub = k < 0 ? -k : 0;
  9368. var rows = this._size[0];
  9369. var columns = this._size[1];
  9370. var n = Math.min(rows - kSub, columns - kSuper);
  9371. var data = [];
  9372. for (var i2 = 0; i2 < n; i2++) {
  9373. data[i2] = this._data[i2 + kSub][i2 + kSuper];
  9374. }
  9375. return new DenseMatrix2({
  9376. data,
  9377. size: [n],
  9378. datatype: this._datatype
  9379. });
  9380. };
  9381. DenseMatrix2.diagonal = function(size2, value, k, defaultValue) {
  9382. if (!isArray(size2)) {
  9383. throw new TypeError("Array expected, size parameter");
  9384. }
  9385. if (size2.length !== 2) {
  9386. throw new Error("Only two dimensions matrix are supported");
  9387. }
  9388. size2 = size2.map(function(s) {
  9389. if (isBigNumber(s)) {
  9390. s = s.toNumber();
  9391. }
  9392. if (!isNumber(s) || !isInteger(s) || s < 1) {
  9393. throw new Error("Size values must be positive integers");
  9394. }
  9395. return s;
  9396. });
  9397. if (k) {
  9398. if (isBigNumber(k)) {
  9399. k = k.toNumber();
  9400. }
  9401. if (!isNumber(k) || !isInteger(k)) {
  9402. throw new TypeError("The parameter k must be an integer number");
  9403. }
  9404. } else {
  9405. k = 0;
  9406. }
  9407. var kSuper = k > 0 ? k : 0;
  9408. var kSub = k < 0 ? -k : 0;
  9409. var rows = size2[0];
  9410. var columns = size2[1];
  9411. var n = Math.min(rows - kSub, columns - kSuper);
  9412. var _value;
  9413. if (isArray(value)) {
  9414. if (value.length !== n) {
  9415. throw new Error("Invalid value array length");
  9416. }
  9417. _value = function _value2(i2) {
  9418. return value[i2];
  9419. };
  9420. } else if (isMatrix(value)) {
  9421. var ms = value.size();
  9422. if (ms.length !== 1 || ms[0] !== n) {
  9423. throw new Error("Invalid matrix length");
  9424. }
  9425. _value = function _value2(i2) {
  9426. return value.get([i2]);
  9427. };
  9428. } else {
  9429. _value = function _value2() {
  9430. return value;
  9431. };
  9432. }
  9433. if (!defaultValue) {
  9434. defaultValue = isBigNumber(_value(0)) ? _value(0).mul(0) : 0;
  9435. }
  9436. var data = [];
  9437. if (size2.length > 0) {
  9438. data = resize(data, size2, defaultValue);
  9439. for (var d = 0; d < n; d++) {
  9440. data[d + kSub][d + kSuper] = _value(d);
  9441. }
  9442. }
  9443. return new DenseMatrix2({
  9444. data,
  9445. size: [rows, columns]
  9446. });
  9447. };
  9448. DenseMatrix2.fromJSON = function(json) {
  9449. return new DenseMatrix2(json);
  9450. };
  9451. DenseMatrix2.prototype.swapRows = function(i2, j) {
  9452. if (!isNumber(i2) || !isInteger(i2) || !isNumber(j) || !isInteger(j)) {
  9453. throw new Error("Row index must be positive integers");
  9454. }
  9455. if (this._size.length !== 2) {
  9456. throw new Error("Only two dimensional matrix is supported");
  9457. }
  9458. validateIndex(i2, this._size[0]);
  9459. validateIndex(j, this._size[0]);
  9460. DenseMatrix2._swapRows(i2, j, this._data);
  9461. return this;
  9462. };
  9463. DenseMatrix2._swapRows = function(i2, j, data) {
  9464. var vi = data[i2];
  9465. data[i2] = data[j];
  9466. data[j] = vi;
  9467. };
  9468. function preprocess(data) {
  9469. for (var i2 = 0, ii = data.length; i2 < ii; i2++) {
  9470. var elem = data[i2];
  9471. if (isArray(elem)) {
  9472. data[i2] = preprocess(elem);
  9473. } else if (elem && elem.isMatrix === true) {
  9474. data[i2] = preprocess(elem.valueOf());
  9475. }
  9476. }
  9477. return data;
  9478. }
  9479. return DenseMatrix2;
  9480. }, {
  9481. isClass: true
  9482. });
  9483. // node_modules/mathjs/lib/esm/function/utils/clone.js
  9484. var name8 = "clone";
  9485. var dependencies9 = ["typed"];
  9486. var createClone = factory(name8, dependencies9, (_ref) => {
  9487. var {
  9488. typed: typed2
  9489. } = _ref;
  9490. return typed2(name8, {
  9491. any: clone
  9492. });
  9493. });
  9494. // node_modules/mathjs/lib/esm/utils/switch.js
  9495. function _switch(mat) {
  9496. var I = mat.length;
  9497. var J = mat[0].length;
  9498. var i2, j;
  9499. var ret = [];
  9500. for (j = 0; j < J; j++) {
  9501. var tmp = [];
  9502. for (i2 = 0; i2 < I; i2++) {
  9503. tmp.push(mat[i2][j]);
  9504. }
  9505. ret.push(tmp);
  9506. }
  9507. return ret;
  9508. }
  9509. // node_modules/mathjs/lib/esm/utils/collection.js
  9510. function containsCollections(array) {
  9511. for (var i2 = 0; i2 < array.length; i2++) {
  9512. if (isCollection(array[i2])) {
  9513. return true;
  9514. }
  9515. }
  9516. return false;
  9517. }
  9518. function deepForEach(array, callback) {
  9519. if (isMatrix(array)) {
  9520. array = array.valueOf();
  9521. }
  9522. for (var i2 = 0, ii = array.length; i2 < ii; i2++) {
  9523. var value = array[i2];
  9524. if (Array.isArray(value)) {
  9525. deepForEach(value, callback);
  9526. } else {
  9527. callback(value);
  9528. }
  9529. }
  9530. }
  9531. function deepMap(array, callback, skipZeros) {
  9532. if (array && typeof array.map === "function") {
  9533. return array.map(function(x) {
  9534. return deepMap(x, callback, skipZeros);
  9535. });
  9536. } else {
  9537. return callback(array);
  9538. }
  9539. }
  9540. function reduce(mat, dim, callback) {
  9541. var size2 = Array.isArray(mat) ? arraySize(mat) : mat.size();
  9542. if (dim < 0 || dim >= size2.length) {
  9543. throw new IndexError(dim, size2.length);
  9544. }
  9545. if (isMatrix(mat)) {
  9546. return mat.create(_reduce(mat.valueOf(), dim, callback));
  9547. } else {
  9548. return _reduce(mat, dim, callback);
  9549. }
  9550. }
  9551. function _reduce(mat, dim, callback) {
  9552. var i2, ret, val, tran;
  9553. if (dim <= 0) {
  9554. if (!Array.isArray(mat[0])) {
  9555. val = mat[0];
  9556. for (i2 = 1; i2 < mat.length; i2++) {
  9557. val = callback(val, mat[i2]);
  9558. }
  9559. return val;
  9560. } else {
  9561. tran = _switch(mat);
  9562. ret = [];
  9563. for (i2 = 0; i2 < tran.length; i2++) {
  9564. ret[i2] = _reduce(tran[i2], dim - 1, callback);
  9565. }
  9566. return ret;
  9567. }
  9568. } else {
  9569. ret = [];
  9570. for (i2 = 0; i2 < mat.length; i2++) {
  9571. ret[i2] = _reduce(mat[i2], dim - 1, callback);
  9572. }
  9573. return ret;
  9574. }
  9575. }
  9576. function scatter(a, j, w, x, u, mark, cindex, f, inverse, update, value) {
  9577. var avalues = a._values;
  9578. var aindex = a._index;
  9579. var aptr = a._ptr;
  9580. var k, k0, k1, i2;
  9581. if (x) {
  9582. for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  9583. i2 = aindex[k];
  9584. if (w[i2] !== mark) {
  9585. w[i2] = mark;
  9586. cindex.push(i2);
  9587. if (update) {
  9588. x[i2] = inverse ? f(avalues[k], value) : f(value, avalues[k]);
  9589. u[i2] = mark;
  9590. } else {
  9591. x[i2] = avalues[k];
  9592. }
  9593. } else {
  9594. x[i2] = inverse ? f(avalues[k], x[i2]) : f(x[i2], avalues[k]);
  9595. u[i2] = mark;
  9596. }
  9597. }
  9598. } else {
  9599. for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  9600. i2 = aindex[k];
  9601. if (w[i2] !== mark) {
  9602. w[i2] = mark;
  9603. cindex.push(i2);
  9604. } else {
  9605. u[i2] = mark;
  9606. }
  9607. }
  9608. }
  9609. }
  9610. // node_modules/mathjs/lib/esm/function/utils/isInteger.js
  9611. var name9 = "isInteger";
  9612. var dependencies10 = ["typed"];
  9613. var createIsInteger = factory(name9, dependencies10, (_ref) => {
  9614. var {
  9615. typed: typed2
  9616. } = _ref;
  9617. return typed2(name9, {
  9618. number: isInteger,
  9619. // TODO: what to do with isInteger(add(0.1, 0.2)) ?
  9620. BigNumber: function BigNumber2(x) {
  9621. return x.isInt();
  9622. },
  9623. Fraction: function Fraction3(x) {
  9624. return x.d === 1 && isFinite(x.n);
  9625. },
  9626. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  9627. });
  9628. });
  9629. // node_modules/mathjs/lib/esm/plain/number/arithmetic.js
  9630. var n1 = "number";
  9631. var n2 = "number, number";
  9632. function absNumber(a) {
  9633. return Math.abs(a);
  9634. }
  9635. absNumber.signature = n1;
  9636. function addNumber(a, b) {
  9637. return a + b;
  9638. }
  9639. addNumber.signature = n2;
  9640. function subtractNumber(a, b) {
  9641. return a - b;
  9642. }
  9643. subtractNumber.signature = n2;
  9644. function multiplyNumber(a, b) {
  9645. return a * b;
  9646. }
  9647. multiplyNumber.signature = n2;
  9648. function divideNumber(a, b) {
  9649. return a / b;
  9650. }
  9651. divideNumber.signature = n2;
  9652. function unaryMinusNumber(x) {
  9653. return -x;
  9654. }
  9655. unaryMinusNumber.signature = n1;
  9656. function unaryPlusNumber(x) {
  9657. return x;
  9658. }
  9659. unaryPlusNumber.signature = n1;
  9660. function cbrtNumber(x) {
  9661. return cbrt(x);
  9662. }
  9663. cbrtNumber.signature = n1;
  9664. function cubeNumber(x) {
  9665. return x * x * x;
  9666. }
  9667. cubeNumber.signature = n1;
  9668. function expNumber(x) {
  9669. return Math.exp(x);
  9670. }
  9671. expNumber.signature = n1;
  9672. function expm1Number(x) {
  9673. return expm1(x);
  9674. }
  9675. expm1Number.signature = n1;
  9676. function gcdNumber(a, b) {
  9677. if (!isInteger(a) || !isInteger(b)) {
  9678. throw new Error("Parameters in function gcd must be integer numbers");
  9679. }
  9680. var r;
  9681. while (b !== 0) {
  9682. r = a % b;
  9683. a = b;
  9684. b = r;
  9685. }
  9686. return a < 0 ? -a : a;
  9687. }
  9688. gcdNumber.signature = n2;
  9689. function lcmNumber(a, b) {
  9690. if (!isInteger(a) || !isInteger(b)) {
  9691. throw new Error("Parameters in function lcm must be integer numbers");
  9692. }
  9693. if (a === 0 || b === 0) {
  9694. return 0;
  9695. }
  9696. var t;
  9697. var prod2 = a * b;
  9698. while (b !== 0) {
  9699. t = b;
  9700. b = a % t;
  9701. a = t;
  9702. }
  9703. return Math.abs(prod2 / a);
  9704. }
  9705. lcmNumber.signature = n2;
  9706. function logNumber(x, y) {
  9707. if (y) {
  9708. return Math.log(x) / Math.log(y);
  9709. }
  9710. return Math.log(x);
  9711. }
  9712. function log10Number(x) {
  9713. return log10(x);
  9714. }
  9715. log10Number.signature = n1;
  9716. function log2Number(x) {
  9717. return log2(x);
  9718. }
  9719. log2Number.signature = n1;
  9720. function log1pNumber(x) {
  9721. return log1p(x);
  9722. }
  9723. log1pNumber.signature = n1;
  9724. function modNumber(x, y) {
  9725. if (y > 0) {
  9726. return x - y * Math.floor(x / y);
  9727. } else if (y === 0) {
  9728. return x;
  9729. } else {
  9730. throw new Error("Cannot calculate mod for a negative divisor");
  9731. }
  9732. }
  9733. modNumber.signature = n2;
  9734. function nthRootNumber(a) {
  9735. var root = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2;
  9736. var inv2 = root < 0;
  9737. if (inv2) {
  9738. root = -root;
  9739. }
  9740. if (root === 0) {
  9741. throw new Error("Root must be non-zero");
  9742. }
  9743. if (a < 0 && Math.abs(root) % 2 !== 1) {
  9744. throw new Error("Root must be odd when a is negative.");
  9745. }
  9746. if (a === 0) {
  9747. return inv2 ? Infinity : 0;
  9748. }
  9749. if (!isFinite(a)) {
  9750. return inv2 ? 0 : a;
  9751. }
  9752. var x = Math.pow(Math.abs(a), 1 / root);
  9753. x = a < 0 ? -x : x;
  9754. return inv2 ? 1 / x : x;
  9755. }
  9756. function signNumber(x) {
  9757. return sign(x);
  9758. }
  9759. signNumber.signature = n1;
  9760. function sqrtNumber(x) {
  9761. return Math.sqrt(x);
  9762. }
  9763. sqrtNumber.signature = n1;
  9764. function squareNumber(x) {
  9765. return x * x;
  9766. }
  9767. squareNumber.signature = n1;
  9768. function xgcdNumber(a, b) {
  9769. var t;
  9770. var q;
  9771. var r;
  9772. var x = 0;
  9773. var lastx = 1;
  9774. var y = 1;
  9775. var lasty = 0;
  9776. if (!isInteger(a) || !isInteger(b)) {
  9777. throw new Error("Parameters in function xgcd must be integer numbers");
  9778. }
  9779. while (b) {
  9780. q = Math.floor(a / b);
  9781. r = a - q * b;
  9782. t = x;
  9783. x = lastx - q * x;
  9784. lastx = t;
  9785. t = y;
  9786. y = lasty - q * y;
  9787. lasty = t;
  9788. a = b;
  9789. b = r;
  9790. }
  9791. var res;
  9792. if (a < 0) {
  9793. res = [-a, -lastx, -lasty];
  9794. } else {
  9795. res = [a, a ? lastx : 0, lasty];
  9796. }
  9797. return res;
  9798. }
  9799. xgcdNumber.signature = n2;
  9800. function powNumber(x, y) {
  9801. if (x * x < 1 && y === Infinity || x * x > 1 && y === -Infinity) {
  9802. return 0;
  9803. }
  9804. return Math.pow(x, y);
  9805. }
  9806. powNumber.signature = n2;
  9807. function roundNumber(value) {
  9808. var decimals = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
  9809. if (!isInteger(decimals) || decimals < 0 || decimals > 15) {
  9810. throw new Error("Number of decimals in function round must be an integer from 0 to 15 inclusive");
  9811. }
  9812. return parseFloat(toFixed(value, decimals));
  9813. }
  9814. function normNumber(x) {
  9815. return Math.abs(x);
  9816. }
  9817. normNumber.signature = n1;
  9818. // node_modules/mathjs/lib/esm/plain/number/bitwise.js
  9819. var n12 = "number";
  9820. var n22 = "number, number";
  9821. function bitAndNumber(x, y) {
  9822. if (!isInteger(x) || !isInteger(y)) {
  9823. throw new Error("Integers expected in function bitAnd");
  9824. }
  9825. return x & y;
  9826. }
  9827. bitAndNumber.signature = n22;
  9828. function bitNotNumber(x) {
  9829. if (!isInteger(x)) {
  9830. throw new Error("Integer expected in function bitNot");
  9831. }
  9832. return ~x;
  9833. }
  9834. bitNotNumber.signature = n12;
  9835. function bitOrNumber(x, y) {
  9836. if (!isInteger(x) || !isInteger(y)) {
  9837. throw new Error("Integers expected in function bitOr");
  9838. }
  9839. return x | y;
  9840. }
  9841. bitOrNumber.signature = n22;
  9842. function bitXorNumber(x, y) {
  9843. if (!isInteger(x) || !isInteger(y)) {
  9844. throw new Error("Integers expected in function bitXor");
  9845. }
  9846. return x ^ y;
  9847. }
  9848. bitXorNumber.signature = n22;
  9849. function leftShiftNumber(x, y) {
  9850. if (!isInteger(x) || !isInteger(y)) {
  9851. throw new Error("Integers expected in function leftShift");
  9852. }
  9853. return x << y;
  9854. }
  9855. leftShiftNumber.signature = n22;
  9856. function rightArithShiftNumber(x, y) {
  9857. if (!isInteger(x) || !isInteger(y)) {
  9858. throw new Error("Integers expected in function rightArithShift");
  9859. }
  9860. return x >> y;
  9861. }
  9862. rightArithShiftNumber.signature = n22;
  9863. function rightLogShiftNumber(x, y) {
  9864. if (!isInteger(x) || !isInteger(y)) {
  9865. throw new Error("Integers expected in function rightLogShift");
  9866. }
  9867. return x >>> y;
  9868. }
  9869. rightLogShiftNumber.signature = n22;
  9870. // node_modules/mathjs/lib/esm/utils/product.js
  9871. function product2(i2, n) {
  9872. if (n < i2) {
  9873. return 1;
  9874. }
  9875. if (n === i2) {
  9876. return n;
  9877. }
  9878. var half = n + i2 >> 1;
  9879. return product2(i2, half) * product2(half + 1, n);
  9880. }
  9881. // node_modules/mathjs/lib/esm/plain/number/combinations.js
  9882. function combinationsNumber(n, k) {
  9883. if (!isInteger(n) || n < 0) {
  9884. throw new TypeError("Positive integer value expected in function combinations");
  9885. }
  9886. if (!isInteger(k) || k < 0) {
  9887. throw new TypeError("Positive integer value expected in function combinations");
  9888. }
  9889. if (k > n) {
  9890. throw new TypeError("k must be less than or equal to n");
  9891. }
  9892. var nMinusk = n - k;
  9893. var answer = 1;
  9894. var firstnumerator = k < nMinusk ? nMinusk + 1 : k + 1;
  9895. var nextdivisor = 2;
  9896. var lastdivisor = k < nMinusk ? k : nMinusk;
  9897. for (var nextnumerator = firstnumerator; nextnumerator <= n; ++nextnumerator) {
  9898. answer *= nextnumerator;
  9899. while (nextdivisor <= lastdivisor && answer % nextdivisor === 0) {
  9900. answer /= nextdivisor;
  9901. ++nextdivisor;
  9902. }
  9903. }
  9904. if (nextdivisor <= lastdivisor) {
  9905. answer /= product2(nextdivisor, lastdivisor);
  9906. }
  9907. return answer;
  9908. }
  9909. combinationsNumber.signature = "number, number";
  9910. // node_modules/mathjs/lib/esm/plain/number/constants.js
  9911. var pi = Math.PI;
  9912. var tau = 2 * Math.PI;
  9913. var e = Math.E;
  9914. var phi = 1.618033988749895;
  9915. // node_modules/mathjs/lib/esm/plain/number/logical.js
  9916. var n13 = "number";
  9917. var n23 = "number, number";
  9918. function notNumber(x) {
  9919. return !x;
  9920. }
  9921. notNumber.signature = n13;
  9922. function orNumber(x, y) {
  9923. return !!(x || y);
  9924. }
  9925. orNumber.signature = n23;
  9926. function xorNumber(x, y) {
  9927. return !!x !== !!y;
  9928. }
  9929. xorNumber.signature = n23;
  9930. function andNumber(x, y) {
  9931. return !!(x && y);
  9932. }
  9933. andNumber.signature = n23;
  9934. // node_modules/mathjs/lib/esm/plain/number/probability.js
  9935. function gammaNumber(n) {
  9936. var x;
  9937. if (isInteger(n)) {
  9938. if (n <= 0) {
  9939. return isFinite(n) ? Infinity : NaN;
  9940. }
  9941. if (n > 171) {
  9942. return Infinity;
  9943. }
  9944. return product2(1, n - 1);
  9945. }
  9946. if (n < 0.5) {
  9947. return Math.PI / (Math.sin(Math.PI * n) * gammaNumber(1 - n));
  9948. }
  9949. if (n >= 171.35) {
  9950. return Infinity;
  9951. }
  9952. if (n > 85) {
  9953. var twoN = n * n;
  9954. var threeN = twoN * n;
  9955. var fourN = threeN * n;
  9956. var fiveN = fourN * n;
  9957. return Math.sqrt(2 * Math.PI / n) * Math.pow(n / Math.E, n) * (1 + 1 / (12 * n) + 1 / (288 * twoN) - 139 / (51840 * threeN) - 571 / (2488320 * fourN) + 163879 / (209018880 * fiveN) + 5246819 / (75246796800 * fiveN * n));
  9958. }
  9959. --n;
  9960. x = gammaP[0];
  9961. for (var i2 = 1; i2 < gammaP.length; ++i2) {
  9962. x += gammaP[i2] / (n + i2);
  9963. }
  9964. var t = n + gammaG + 0.5;
  9965. return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x;
  9966. }
  9967. gammaNumber.signature = "number";
  9968. var gammaG = 4.7421875;
  9969. var gammaP = [0.9999999999999971, 57.15623566586292, -59.59796035547549, 14.136097974741746, -0.4919138160976202, 3399464998481189e-20, 4652362892704858e-20, -9837447530487956e-20, 1580887032249125e-19, -21026444172410488e-20, 21743961811521265e-20, -1643181065367639e-19, 8441822398385275e-20, -26190838401581408e-21, 36899182659531625e-22];
  9970. var lnSqrt2PI = 0.9189385332046728;
  9971. var lgammaG = 5;
  9972. var lgammaN = 7;
  9973. var lgammaSeries = [1.000000000190015, 76.18009172947146, -86.50532032941678, 24.01409824083091, -1.231739572450155, 0.001208650973866179, -5395239384953e-18];
  9974. function lgammaNumber(n) {
  9975. if (n < 0)
  9976. return NaN;
  9977. if (n === 0)
  9978. return Infinity;
  9979. if (!isFinite(n))
  9980. return n;
  9981. if (n < 0.5) {
  9982. return Math.log(Math.PI / Math.sin(Math.PI * n)) - lgammaNumber(1 - n);
  9983. }
  9984. n = n - 1;
  9985. var base = n + lgammaG + 0.5;
  9986. var sum3 = lgammaSeries[0];
  9987. for (var i2 = lgammaN - 1; i2 >= 1; i2--) {
  9988. sum3 += lgammaSeries[i2] / (n + i2);
  9989. }
  9990. return lnSqrt2PI + (n + 0.5) * Math.log(base) - base + Math.log(sum3);
  9991. }
  9992. lgammaNumber.signature = "number";
  9993. // node_modules/mathjs/lib/esm/plain/number/trigonometry.js
  9994. var n14 = "number";
  9995. var n24 = "number, number";
  9996. function acosNumber(x) {
  9997. return Math.acos(x);
  9998. }
  9999. acosNumber.signature = n14;
  10000. function acoshNumber(x) {
  10001. return acosh(x);
  10002. }
  10003. acoshNumber.signature = n14;
  10004. function acotNumber(x) {
  10005. return Math.atan(1 / x);
  10006. }
  10007. acotNumber.signature = n14;
  10008. function acothNumber(x) {
  10009. return isFinite(x) ? (Math.log((x + 1) / x) + Math.log(x / (x - 1))) / 2 : 0;
  10010. }
  10011. acothNumber.signature = n14;
  10012. function acscNumber(x) {
  10013. return Math.asin(1 / x);
  10014. }
  10015. acscNumber.signature = n14;
  10016. function acschNumber(x) {
  10017. var xInv = 1 / x;
  10018. return Math.log(xInv + Math.sqrt(xInv * xInv + 1));
  10019. }
  10020. acschNumber.signature = n14;
  10021. function asecNumber(x) {
  10022. return Math.acos(1 / x);
  10023. }
  10024. asecNumber.signature = n14;
  10025. function asechNumber(x) {
  10026. var xInv = 1 / x;
  10027. var ret = Math.sqrt(xInv * xInv - 1);
  10028. return Math.log(ret + xInv);
  10029. }
  10030. asechNumber.signature = n14;
  10031. function asinNumber(x) {
  10032. return Math.asin(x);
  10033. }
  10034. asinNumber.signature = n14;
  10035. function asinhNumber(x) {
  10036. return asinh(x);
  10037. }
  10038. asinhNumber.signature = n14;
  10039. function atanNumber(x) {
  10040. return Math.atan(x);
  10041. }
  10042. atanNumber.signature = n14;
  10043. function atan2Number(y, x) {
  10044. return Math.atan2(y, x);
  10045. }
  10046. atan2Number.signature = n24;
  10047. function atanhNumber(x) {
  10048. return atanh(x);
  10049. }
  10050. atanhNumber.signature = n14;
  10051. function cosNumber(x) {
  10052. return Math.cos(x);
  10053. }
  10054. cosNumber.signature = n14;
  10055. function coshNumber(x) {
  10056. return cosh(x);
  10057. }
  10058. coshNumber.signature = n14;
  10059. function cotNumber(x) {
  10060. return 1 / Math.tan(x);
  10061. }
  10062. cotNumber.signature = n14;
  10063. function cothNumber(x) {
  10064. var e3 = Math.exp(2 * x);
  10065. return (e3 + 1) / (e3 - 1);
  10066. }
  10067. cothNumber.signature = n14;
  10068. function cscNumber(x) {
  10069. return 1 / Math.sin(x);
  10070. }
  10071. cscNumber.signature = n14;
  10072. function cschNumber(x) {
  10073. if (x === 0) {
  10074. return Number.POSITIVE_INFINITY;
  10075. } else {
  10076. return Math.abs(2 / (Math.exp(x) - Math.exp(-x))) * sign(x);
  10077. }
  10078. }
  10079. cschNumber.signature = n14;
  10080. function secNumber(x) {
  10081. return 1 / Math.cos(x);
  10082. }
  10083. secNumber.signature = n14;
  10084. function sechNumber(x) {
  10085. return 2 / (Math.exp(x) + Math.exp(-x));
  10086. }
  10087. sechNumber.signature = n14;
  10088. function sinNumber(x) {
  10089. return Math.sin(x);
  10090. }
  10091. sinNumber.signature = n14;
  10092. function sinhNumber(x) {
  10093. return sinh(x);
  10094. }
  10095. sinhNumber.signature = n14;
  10096. function tanNumber(x) {
  10097. return Math.tan(x);
  10098. }
  10099. tanNumber.signature = n14;
  10100. function tanhNumber(x) {
  10101. return tanh(x);
  10102. }
  10103. tanhNumber.signature = n14;
  10104. // node_modules/mathjs/lib/esm/plain/number/utils.js
  10105. var n15 = "number";
  10106. function isIntegerNumber(x) {
  10107. return isInteger(x);
  10108. }
  10109. isIntegerNumber.signature = n15;
  10110. function isNegativeNumber(x) {
  10111. return x < 0;
  10112. }
  10113. isNegativeNumber.signature = n15;
  10114. function isPositiveNumber(x) {
  10115. return x > 0;
  10116. }
  10117. isPositiveNumber.signature = n15;
  10118. function isZeroNumber(x) {
  10119. return x === 0;
  10120. }
  10121. isZeroNumber.signature = n15;
  10122. function isNaNNumber(x) {
  10123. return Number.isNaN(x);
  10124. }
  10125. isNaNNumber.signature = n15;
  10126. // node_modules/mathjs/lib/esm/function/utils/isNegative.js
  10127. var name10 = "isNegative";
  10128. var dependencies11 = ["typed"];
  10129. var createIsNegative = factory(name10, dependencies11, (_ref) => {
  10130. var {
  10131. typed: typed2
  10132. } = _ref;
  10133. return typed2(name10, {
  10134. number: isNegativeNumber,
  10135. BigNumber: function BigNumber2(x) {
  10136. return x.isNeg() && !x.isZero() && !x.isNaN();
  10137. },
  10138. Fraction: function Fraction3(x) {
  10139. return x.s < 0;
  10140. },
  10141. Unit: typed2.referToSelf((self2) => (x) => typed2.find(self2, x.valueType())(x.value)),
  10142. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  10143. });
  10144. });
  10145. // node_modules/mathjs/lib/esm/function/utils/isNumeric.js
  10146. var name11 = "isNumeric";
  10147. var dependencies12 = ["typed"];
  10148. var createIsNumeric = factory(name11, dependencies12, (_ref) => {
  10149. var {
  10150. typed: typed2
  10151. } = _ref;
  10152. return typed2(name11, {
  10153. "number | BigNumber | Fraction | boolean": () => true,
  10154. "Complex | Unit | string | null | undefined | Node": () => false,
  10155. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  10156. });
  10157. });
  10158. // node_modules/mathjs/lib/esm/function/utils/hasNumericValue.js
  10159. var name12 = "hasNumericValue";
  10160. var dependencies13 = ["typed", "isNumeric"];
  10161. var createHasNumericValue = factory(name12, dependencies13, (_ref) => {
  10162. var {
  10163. typed: typed2,
  10164. isNumeric: isNumeric2
  10165. } = _ref;
  10166. return typed2(name12, {
  10167. boolean: () => true,
  10168. string: function string2(x) {
  10169. return x.trim().length > 0 && !isNaN(Number(x));
  10170. },
  10171. any: function any(x) {
  10172. return isNumeric2(x);
  10173. }
  10174. });
  10175. });
  10176. // node_modules/mathjs/lib/esm/function/utils/isPositive.js
  10177. var name13 = "isPositive";
  10178. var dependencies14 = ["typed"];
  10179. var createIsPositive = factory(name13, dependencies14, (_ref) => {
  10180. var {
  10181. typed: typed2
  10182. } = _ref;
  10183. return typed2(name13, {
  10184. number: isPositiveNumber,
  10185. BigNumber: function BigNumber2(x) {
  10186. return !x.isNeg() && !x.isZero() && !x.isNaN();
  10187. },
  10188. Fraction: function Fraction3(x) {
  10189. return x.s > 0 && x.n > 0;
  10190. },
  10191. Unit: typed2.referToSelf((self2) => (x) => typed2.find(self2, x.valueType())(x.value)),
  10192. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  10193. });
  10194. });
  10195. // node_modules/mathjs/lib/esm/function/utils/isZero.js
  10196. var name14 = "isZero";
  10197. var dependencies15 = ["typed"];
  10198. var createIsZero = factory(name14, dependencies15, (_ref) => {
  10199. var {
  10200. typed: typed2
  10201. } = _ref;
  10202. return typed2(name14, {
  10203. number: isZeroNumber,
  10204. BigNumber: function BigNumber2(x) {
  10205. return x.isZero();
  10206. },
  10207. Complex: function Complex3(x) {
  10208. return x.re === 0 && x.im === 0;
  10209. },
  10210. Fraction: function Fraction3(x) {
  10211. return x.d === 1 && x.n === 0;
  10212. },
  10213. Unit: typed2.referToSelf((self2) => (x) => typed2.find(self2, x.valueType())(x.value)),
  10214. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  10215. });
  10216. });
  10217. // node_modules/mathjs/lib/esm/function/utils/isNaN.js
  10218. var name15 = "isNaN";
  10219. var dependencies16 = ["typed"];
  10220. var createIsNaN = factory(name15, dependencies16, (_ref) => {
  10221. var {
  10222. typed: typed2
  10223. } = _ref;
  10224. return typed2(name15, {
  10225. number: isNaNNumber,
  10226. BigNumber: function BigNumber2(x) {
  10227. return x.isNaN();
  10228. },
  10229. Fraction: function Fraction3(x) {
  10230. return false;
  10231. },
  10232. Complex: function Complex3(x) {
  10233. return x.isNaN();
  10234. },
  10235. Unit: function Unit2(x) {
  10236. return Number.isNaN(x.value);
  10237. },
  10238. "Array | Matrix": function ArrayMatrix(x) {
  10239. return deepMap(x, Number.isNaN);
  10240. }
  10241. });
  10242. });
  10243. // node_modules/mathjs/lib/esm/function/utils/typeOf.js
  10244. var name16 = "typeOf";
  10245. var dependencies17 = ["typed"];
  10246. var createTypeOf = factory(name16, dependencies17, (_ref) => {
  10247. var {
  10248. typed: typed2
  10249. } = _ref;
  10250. return typed2(name16, {
  10251. any: typeOf
  10252. });
  10253. });
  10254. // node_modules/mathjs/lib/esm/utils/bignumber/nearlyEqual.js
  10255. function nearlyEqual2(x, y, epsilon) {
  10256. if (epsilon === null || epsilon === void 0) {
  10257. return x.eq(y);
  10258. }
  10259. if (x.eq(y)) {
  10260. return true;
  10261. }
  10262. if (x.isNaN() || y.isNaN()) {
  10263. return false;
  10264. }
  10265. if (x.isFinite() && y.isFinite()) {
  10266. var diff2 = x.minus(y).abs();
  10267. if (diff2.isZero()) {
  10268. return true;
  10269. } else {
  10270. var max3 = x.constructor.max(x.abs(), y.abs());
  10271. return diff2.lte(max3.times(epsilon));
  10272. }
  10273. }
  10274. return false;
  10275. }
  10276. // node_modules/mathjs/lib/esm/utils/complex.js
  10277. function complexEquals(x, y, epsilon) {
  10278. return nearlyEqual(x.re, y.re, epsilon) && nearlyEqual(x.im, y.im, epsilon);
  10279. }
  10280. // node_modules/mathjs/lib/esm/function/relational/compareUnits.js
  10281. var createCompareUnits = factory("compareUnits", ["typed"], (_ref) => {
  10282. var {
  10283. typed: typed2
  10284. } = _ref;
  10285. return {
  10286. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => {
  10287. if (!x.equalBase(y)) {
  10288. throw new Error("Cannot compare units with different base");
  10289. }
  10290. return typed2.find(self2, [x.valueType(), y.valueType()])(x.value, y.value);
  10291. })
  10292. };
  10293. });
  10294. // node_modules/mathjs/lib/esm/function/relational/equalScalar.js
  10295. var name17 = "equalScalar";
  10296. var dependencies18 = ["typed", "config"];
  10297. var createEqualScalar = factory(name17, dependencies18, (_ref) => {
  10298. var {
  10299. typed: typed2,
  10300. config: config4
  10301. } = _ref;
  10302. var compareUnits = createCompareUnits({
  10303. typed: typed2
  10304. });
  10305. return typed2(name17, {
  10306. "boolean, boolean": function booleanBoolean(x, y) {
  10307. return x === y;
  10308. },
  10309. "number, number": function numberNumber(x, y) {
  10310. return nearlyEqual(x, y, config4.epsilon);
  10311. },
  10312. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  10313. return x.eq(y) || nearlyEqual2(x, y, config4.epsilon);
  10314. },
  10315. "Fraction, Fraction": function FractionFraction(x, y) {
  10316. return x.equals(y);
  10317. },
  10318. "Complex, Complex": function ComplexComplex(x, y) {
  10319. return complexEquals(x, y, config4.epsilon);
  10320. }
  10321. }, compareUnits);
  10322. });
  10323. var createEqualScalarNumber = factory(name17, ["typed", "config"], (_ref2) => {
  10324. var {
  10325. typed: typed2,
  10326. config: config4
  10327. } = _ref2;
  10328. return typed2(name17, {
  10329. "number, number": function numberNumber(x, y) {
  10330. return nearlyEqual(x, y, config4.epsilon);
  10331. }
  10332. });
  10333. });
  10334. // node_modules/mathjs/lib/esm/type/matrix/SparseMatrix.js
  10335. var name18 = "SparseMatrix";
  10336. var dependencies19 = ["typed", "equalScalar", "Matrix"];
  10337. var createSparseMatrixClass = factory(name18, dependencies19, (_ref) => {
  10338. var {
  10339. typed: typed2,
  10340. equalScalar: equalScalar2,
  10341. Matrix: Matrix2
  10342. } = _ref;
  10343. function SparseMatrix2(data, datatype) {
  10344. if (!(this instanceof SparseMatrix2)) {
  10345. throw new SyntaxError("Constructor must be called with the new operator");
  10346. }
  10347. if (datatype && !isString(datatype)) {
  10348. throw new Error("Invalid datatype: " + datatype);
  10349. }
  10350. if (isMatrix(data)) {
  10351. _createFromMatrix(this, data, datatype);
  10352. } else if (data && isArray(data.index) && isArray(data.ptr) && isArray(data.size)) {
  10353. this._values = data.values;
  10354. this._index = data.index;
  10355. this._ptr = data.ptr;
  10356. this._size = data.size;
  10357. this._datatype = datatype || data.datatype;
  10358. } else if (isArray(data)) {
  10359. _createFromArray(this, data, datatype);
  10360. } else if (data) {
  10361. throw new TypeError("Unsupported type of data (" + typeOf(data) + ")");
  10362. } else {
  10363. this._values = [];
  10364. this._index = [];
  10365. this._ptr = [0];
  10366. this._size = [0, 0];
  10367. this._datatype = datatype;
  10368. }
  10369. }
  10370. function _createFromMatrix(matrix2, source, datatype) {
  10371. if (source.type === "SparseMatrix") {
  10372. matrix2._values = source._values ? clone(source._values) : void 0;
  10373. matrix2._index = clone(source._index);
  10374. matrix2._ptr = clone(source._ptr);
  10375. matrix2._size = clone(source._size);
  10376. matrix2._datatype = datatype || source._datatype;
  10377. } else {
  10378. _createFromArray(matrix2, source.valueOf(), datatype || source._datatype);
  10379. }
  10380. }
  10381. function _createFromArray(matrix2, data, datatype) {
  10382. matrix2._values = [];
  10383. matrix2._index = [];
  10384. matrix2._ptr = [];
  10385. matrix2._datatype = datatype;
  10386. var rows = data.length;
  10387. var columns = 0;
  10388. var eq = equalScalar2;
  10389. var zero = 0;
  10390. if (isString(datatype)) {
  10391. eq = typed2.find(equalScalar2, [datatype, datatype]) || equalScalar2;
  10392. zero = typed2.convert(0, datatype);
  10393. }
  10394. if (rows > 0) {
  10395. var j = 0;
  10396. do {
  10397. matrix2._ptr.push(matrix2._index.length);
  10398. for (var i2 = 0; i2 < rows; i2++) {
  10399. var row2 = data[i2];
  10400. if (isArray(row2)) {
  10401. if (j === 0 && columns < row2.length) {
  10402. columns = row2.length;
  10403. }
  10404. if (j < row2.length) {
  10405. var v = row2[j];
  10406. if (!eq(v, zero)) {
  10407. matrix2._values.push(v);
  10408. matrix2._index.push(i2);
  10409. }
  10410. }
  10411. } else {
  10412. if (j === 0 && columns < 1) {
  10413. columns = 1;
  10414. }
  10415. if (!eq(row2, zero)) {
  10416. matrix2._values.push(row2);
  10417. matrix2._index.push(i2);
  10418. }
  10419. }
  10420. }
  10421. j++;
  10422. } while (j < columns);
  10423. }
  10424. matrix2._ptr.push(matrix2._index.length);
  10425. matrix2._size = [rows, columns];
  10426. }
  10427. SparseMatrix2.prototype = new Matrix2();
  10428. SparseMatrix2.prototype.createSparseMatrix = function(data, datatype) {
  10429. return new SparseMatrix2(data, datatype);
  10430. };
  10431. Object.defineProperty(SparseMatrix2, "name", {
  10432. value: "SparseMatrix"
  10433. });
  10434. SparseMatrix2.prototype.constructor = SparseMatrix2;
  10435. SparseMatrix2.prototype.type = "SparseMatrix";
  10436. SparseMatrix2.prototype.isSparseMatrix = true;
  10437. SparseMatrix2.prototype.getDataType = function() {
  10438. return getArrayDataType(this._values, typeOf);
  10439. };
  10440. SparseMatrix2.prototype.storage = function() {
  10441. return "sparse";
  10442. };
  10443. SparseMatrix2.prototype.datatype = function() {
  10444. return this._datatype;
  10445. };
  10446. SparseMatrix2.prototype.create = function(data, datatype) {
  10447. return new SparseMatrix2(data, datatype);
  10448. };
  10449. SparseMatrix2.prototype.density = function() {
  10450. var rows = this._size[0];
  10451. var columns = this._size[1];
  10452. return rows !== 0 && columns !== 0 ? this._index.length / (rows * columns) : 0;
  10453. };
  10454. SparseMatrix2.prototype.subset = function(index2, replacement, defaultValue) {
  10455. if (!this._values) {
  10456. throw new Error("Cannot invoke subset on a Pattern only matrix");
  10457. }
  10458. switch (arguments.length) {
  10459. case 1:
  10460. return _getsubset(this, index2);
  10461. case 2:
  10462. case 3:
  10463. return _setsubset(this, index2, replacement, defaultValue);
  10464. default:
  10465. throw new SyntaxError("Wrong number of arguments");
  10466. }
  10467. };
  10468. function _getsubset(matrix2, idx) {
  10469. if (!isIndex(idx)) {
  10470. throw new TypeError("Invalid index");
  10471. }
  10472. var isScalar = idx.isScalar();
  10473. if (isScalar) {
  10474. return matrix2.get(idx.min());
  10475. }
  10476. var size2 = idx.size();
  10477. if (size2.length !== matrix2._size.length) {
  10478. throw new DimensionError(size2.length, matrix2._size.length);
  10479. }
  10480. var i2, ii, k, kk;
  10481. var min3 = idx.min();
  10482. var max3 = idx.max();
  10483. for (i2 = 0, ii = matrix2._size.length; i2 < ii; i2++) {
  10484. validateIndex(min3[i2], matrix2._size[i2]);
  10485. validateIndex(max3[i2], matrix2._size[i2]);
  10486. }
  10487. var mvalues = matrix2._values;
  10488. var mindex = matrix2._index;
  10489. var mptr = matrix2._ptr;
  10490. var rows = idx.dimension(0);
  10491. var columns = idx.dimension(1);
  10492. var w = [];
  10493. var pv = [];
  10494. rows.forEach(function(i3, r) {
  10495. pv[i3] = r[0];
  10496. w[i3] = true;
  10497. });
  10498. var values2 = mvalues ? [] : void 0;
  10499. var index2 = [];
  10500. var ptr = [];
  10501. columns.forEach(function(j) {
  10502. ptr.push(index2.length);
  10503. for (k = mptr[j], kk = mptr[j + 1]; k < kk; k++) {
  10504. i2 = mindex[k];
  10505. if (w[i2] === true) {
  10506. index2.push(pv[i2]);
  10507. if (values2) {
  10508. values2.push(mvalues[k]);
  10509. }
  10510. }
  10511. }
  10512. });
  10513. ptr.push(index2.length);
  10514. return new SparseMatrix2({
  10515. values: values2,
  10516. index: index2,
  10517. ptr,
  10518. size: size2,
  10519. datatype: matrix2._datatype
  10520. });
  10521. }
  10522. function _setsubset(matrix2, index2, submatrix, defaultValue) {
  10523. if (!index2 || index2.isIndex !== true) {
  10524. throw new TypeError("Invalid index");
  10525. }
  10526. var iSize = index2.size();
  10527. var isScalar = index2.isScalar();
  10528. var sSize;
  10529. if (isMatrix(submatrix)) {
  10530. sSize = submatrix.size();
  10531. submatrix = submatrix.toArray();
  10532. } else {
  10533. sSize = arraySize(submatrix);
  10534. }
  10535. if (isScalar) {
  10536. if (sSize.length !== 0) {
  10537. throw new TypeError("Scalar expected");
  10538. }
  10539. matrix2.set(index2.min(), submatrix, defaultValue);
  10540. } else {
  10541. if (iSize.length !== 1 && iSize.length !== 2) {
  10542. throw new DimensionError(iSize.length, matrix2._size.length, "<");
  10543. }
  10544. if (sSize.length < iSize.length) {
  10545. var i2 = 0;
  10546. var outer = 0;
  10547. while (iSize[i2] === 1 && sSize[i2] === 1) {
  10548. i2++;
  10549. }
  10550. while (iSize[i2] === 1) {
  10551. outer++;
  10552. i2++;
  10553. }
  10554. submatrix = unsqueeze(submatrix, iSize.length, outer, sSize);
  10555. }
  10556. if (!deepStrictEqual(iSize, sSize)) {
  10557. throw new DimensionError(iSize, sSize, ">");
  10558. }
  10559. if (iSize.length === 1) {
  10560. var range2 = index2.dimension(0);
  10561. range2.forEach(function(dataIndex, subIndex) {
  10562. validateIndex(dataIndex);
  10563. matrix2.set([dataIndex, 0], submatrix[subIndex[0]], defaultValue);
  10564. });
  10565. } else {
  10566. var firstDimensionRange = index2.dimension(0);
  10567. var secondDimensionRange = index2.dimension(1);
  10568. firstDimensionRange.forEach(function(firstDataIndex, firstSubIndex) {
  10569. validateIndex(firstDataIndex);
  10570. secondDimensionRange.forEach(function(secondDataIndex, secondSubIndex) {
  10571. validateIndex(secondDataIndex);
  10572. matrix2.set([firstDataIndex, secondDataIndex], submatrix[firstSubIndex[0]][secondSubIndex[0]], defaultValue);
  10573. });
  10574. });
  10575. }
  10576. }
  10577. return matrix2;
  10578. }
  10579. SparseMatrix2.prototype.get = function(index2) {
  10580. if (!isArray(index2)) {
  10581. throw new TypeError("Array expected");
  10582. }
  10583. if (index2.length !== this._size.length) {
  10584. throw new DimensionError(index2.length, this._size.length);
  10585. }
  10586. if (!this._values) {
  10587. throw new Error("Cannot invoke get on a Pattern only matrix");
  10588. }
  10589. var i2 = index2[0];
  10590. var j = index2[1];
  10591. validateIndex(i2, this._size[0]);
  10592. validateIndex(j, this._size[1]);
  10593. var k = _getValueIndex(i2, this._ptr[j], this._ptr[j + 1], this._index);
  10594. if (k < this._ptr[j + 1] && this._index[k] === i2) {
  10595. return this._values[k];
  10596. }
  10597. return 0;
  10598. };
  10599. SparseMatrix2.prototype.set = function(index2, v, defaultValue) {
  10600. if (!isArray(index2)) {
  10601. throw new TypeError("Array expected");
  10602. }
  10603. if (index2.length !== this._size.length) {
  10604. throw new DimensionError(index2.length, this._size.length);
  10605. }
  10606. if (!this._values) {
  10607. throw new Error("Cannot invoke set on a Pattern only matrix");
  10608. }
  10609. var i2 = index2[0];
  10610. var j = index2[1];
  10611. var rows = this._size[0];
  10612. var columns = this._size[1];
  10613. var eq = equalScalar2;
  10614. var zero = 0;
  10615. if (isString(this._datatype)) {
  10616. eq = typed2.find(equalScalar2, [this._datatype, this._datatype]) || equalScalar2;
  10617. zero = typed2.convert(0, this._datatype);
  10618. }
  10619. if (i2 > rows - 1 || j > columns - 1) {
  10620. _resize2(this, Math.max(i2 + 1, rows), Math.max(j + 1, columns), defaultValue);
  10621. rows = this._size[0];
  10622. columns = this._size[1];
  10623. }
  10624. validateIndex(i2, rows);
  10625. validateIndex(j, columns);
  10626. var k = _getValueIndex(i2, this._ptr[j], this._ptr[j + 1], this._index);
  10627. if (k < this._ptr[j + 1] && this._index[k] === i2) {
  10628. if (!eq(v, zero)) {
  10629. this._values[k] = v;
  10630. } else {
  10631. _remove(k, j, this._values, this._index, this._ptr);
  10632. }
  10633. } else {
  10634. if (!eq(v, zero)) {
  10635. _insert(k, i2, j, v, this._values, this._index, this._ptr);
  10636. }
  10637. }
  10638. return this;
  10639. };
  10640. function _getValueIndex(i2, top, bottom, index2) {
  10641. if (bottom - top === 0) {
  10642. return bottom;
  10643. }
  10644. for (var r = top; r < bottom; r++) {
  10645. if (index2[r] === i2) {
  10646. return r;
  10647. }
  10648. }
  10649. return top;
  10650. }
  10651. function _remove(k, j, values2, index2, ptr) {
  10652. values2.splice(k, 1);
  10653. index2.splice(k, 1);
  10654. for (var x = j + 1; x < ptr.length; x++) {
  10655. ptr[x]--;
  10656. }
  10657. }
  10658. function _insert(k, i2, j, v, values2, index2, ptr) {
  10659. values2.splice(k, 0, v);
  10660. index2.splice(k, 0, i2);
  10661. for (var x = j + 1; x < ptr.length; x++) {
  10662. ptr[x]++;
  10663. }
  10664. }
  10665. SparseMatrix2.prototype.resize = function(size2, defaultValue, copy) {
  10666. if (!isCollection(size2)) {
  10667. throw new TypeError("Array or Matrix expected");
  10668. }
  10669. var sizeArray = size2.valueOf().map((value) => {
  10670. return Array.isArray(value) && value.length === 1 ? value[0] : value;
  10671. });
  10672. if (sizeArray.length !== 2) {
  10673. throw new Error("Only two dimensions matrix are supported");
  10674. }
  10675. sizeArray.forEach(function(value) {
  10676. if (!isNumber(value) || !isInteger(value) || value < 0) {
  10677. throw new TypeError("Invalid size, must contain positive integers (size: " + format3(sizeArray) + ")");
  10678. }
  10679. });
  10680. var m = copy ? this.clone() : this;
  10681. return _resize2(m, sizeArray[0], sizeArray[1], defaultValue);
  10682. };
  10683. function _resize2(matrix2, rows, columns, defaultValue) {
  10684. var value = defaultValue || 0;
  10685. var eq = equalScalar2;
  10686. var zero = 0;
  10687. if (isString(matrix2._datatype)) {
  10688. eq = typed2.find(equalScalar2, [matrix2._datatype, matrix2._datatype]) || equalScalar2;
  10689. zero = typed2.convert(0, matrix2._datatype);
  10690. value = typed2.convert(value, matrix2._datatype);
  10691. }
  10692. var ins = !eq(value, zero);
  10693. var r = matrix2._size[0];
  10694. var c = matrix2._size[1];
  10695. var i2, j, k;
  10696. if (columns > c) {
  10697. for (j = c; j < columns; j++) {
  10698. matrix2._ptr[j] = matrix2._values.length;
  10699. if (ins) {
  10700. for (i2 = 0; i2 < r; i2++) {
  10701. matrix2._values.push(value);
  10702. matrix2._index.push(i2);
  10703. }
  10704. }
  10705. }
  10706. matrix2._ptr[columns] = matrix2._values.length;
  10707. } else if (columns < c) {
  10708. matrix2._ptr.splice(columns + 1, c - columns);
  10709. matrix2._values.splice(matrix2._ptr[columns], matrix2._values.length);
  10710. matrix2._index.splice(matrix2._ptr[columns], matrix2._index.length);
  10711. }
  10712. c = columns;
  10713. if (rows > r) {
  10714. if (ins) {
  10715. var n = 0;
  10716. for (j = 0; j < c; j++) {
  10717. matrix2._ptr[j] = matrix2._ptr[j] + n;
  10718. k = matrix2._ptr[j + 1] + n;
  10719. var p = 0;
  10720. for (i2 = r; i2 < rows; i2++, p++) {
  10721. matrix2._values.splice(k + p, 0, value);
  10722. matrix2._index.splice(k + p, 0, i2);
  10723. n++;
  10724. }
  10725. }
  10726. matrix2._ptr[c] = matrix2._values.length;
  10727. }
  10728. } else if (rows < r) {
  10729. var d = 0;
  10730. for (j = 0; j < c; j++) {
  10731. matrix2._ptr[j] = matrix2._ptr[j] - d;
  10732. var k0 = matrix2._ptr[j];
  10733. var k1 = matrix2._ptr[j + 1] - d;
  10734. for (k = k0; k < k1; k++) {
  10735. i2 = matrix2._index[k];
  10736. if (i2 > rows - 1) {
  10737. matrix2._values.splice(k, 1);
  10738. matrix2._index.splice(k, 1);
  10739. d++;
  10740. }
  10741. }
  10742. }
  10743. matrix2._ptr[j] = matrix2._values.length;
  10744. }
  10745. matrix2._size[0] = rows;
  10746. matrix2._size[1] = columns;
  10747. return matrix2;
  10748. }
  10749. SparseMatrix2.prototype.reshape = function(sizes, copy) {
  10750. if (!isArray(sizes)) {
  10751. throw new TypeError("Array expected");
  10752. }
  10753. if (sizes.length !== 2) {
  10754. throw new Error("Sparse matrices can only be reshaped in two dimensions");
  10755. }
  10756. sizes.forEach(function(value) {
  10757. if (!isNumber(value) || !isInteger(value) || value <= -2 || value === 0) {
  10758. throw new TypeError("Invalid size, must contain positive integers or -1 (size: " + format3(sizes) + ")");
  10759. }
  10760. });
  10761. var currentLength = this._size[0] * this._size[1];
  10762. sizes = processSizesWildcard(sizes, currentLength);
  10763. var newLength = sizes[0] * sizes[1];
  10764. if (currentLength !== newLength) {
  10765. throw new Error("Reshaping sparse matrix will result in the wrong number of elements");
  10766. }
  10767. var m = copy ? this.clone() : this;
  10768. if (this._size[0] === sizes[0] && this._size[1] === sizes[1]) {
  10769. return m;
  10770. }
  10771. var colIndex = [];
  10772. for (var i2 = 0; i2 < m._ptr.length; i2++) {
  10773. for (var j = 0; j < m._ptr[i2 + 1] - m._ptr[i2]; j++) {
  10774. colIndex.push(i2);
  10775. }
  10776. }
  10777. var values2 = m._values.slice();
  10778. var rowIndex = m._index.slice();
  10779. for (var _i = 0; _i < m._index.length; _i++) {
  10780. var r1 = rowIndex[_i];
  10781. var c1 = colIndex[_i];
  10782. var flat = r1 * m._size[1] + c1;
  10783. colIndex[_i] = flat % sizes[1];
  10784. rowIndex[_i] = Math.floor(flat / sizes[1]);
  10785. }
  10786. m._values.length = 0;
  10787. m._index.length = 0;
  10788. m._ptr.length = sizes[1] + 1;
  10789. m._size = sizes.slice();
  10790. for (var _i2 = 0; _i2 < m._ptr.length; _i2++) {
  10791. m._ptr[_i2] = 0;
  10792. }
  10793. for (var h = 0; h < values2.length; h++) {
  10794. var _i3 = rowIndex[h];
  10795. var _j = colIndex[h];
  10796. var v = values2[h];
  10797. var k = _getValueIndex(_i3, m._ptr[_j], m._ptr[_j + 1], m._index);
  10798. _insert(k, _i3, _j, v, m._values, m._index, m._ptr);
  10799. }
  10800. return m;
  10801. };
  10802. SparseMatrix2.prototype.clone = function() {
  10803. var m = new SparseMatrix2({
  10804. values: this._values ? clone(this._values) : void 0,
  10805. index: clone(this._index),
  10806. ptr: clone(this._ptr),
  10807. size: clone(this._size),
  10808. datatype: this._datatype
  10809. });
  10810. return m;
  10811. };
  10812. SparseMatrix2.prototype.size = function() {
  10813. return this._size.slice(0);
  10814. };
  10815. SparseMatrix2.prototype.map = function(callback, skipZeros) {
  10816. if (!this._values) {
  10817. throw new Error("Cannot invoke map on a Pattern only matrix");
  10818. }
  10819. var me = this;
  10820. var rows = this._size[0];
  10821. var columns = this._size[1];
  10822. var args = maxArgumentCount(callback);
  10823. var invoke = function invoke2(v, i2, j) {
  10824. if (args === 1)
  10825. return callback(v);
  10826. if (args === 2)
  10827. return callback(v, [i2, j]);
  10828. return callback(v, [i2, j], me);
  10829. };
  10830. return _map3(this, 0, rows - 1, 0, columns - 1, invoke, skipZeros);
  10831. };
  10832. function _map3(matrix2, minRow, maxRow, minColumn, maxColumn, callback, skipZeros) {
  10833. var values2 = [];
  10834. var index2 = [];
  10835. var ptr = [];
  10836. var eq = equalScalar2;
  10837. var zero = 0;
  10838. if (isString(matrix2._datatype)) {
  10839. eq = typed2.find(equalScalar2, [matrix2._datatype, matrix2._datatype]) || equalScalar2;
  10840. zero = typed2.convert(0, matrix2._datatype);
  10841. }
  10842. var invoke = function invoke2(v, x, y) {
  10843. v = callback(v, x, y);
  10844. if (!eq(v, zero)) {
  10845. values2.push(v);
  10846. index2.push(x);
  10847. }
  10848. };
  10849. for (var j = minColumn; j <= maxColumn; j++) {
  10850. ptr.push(values2.length);
  10851. var k0 = matrix2._ptr[j];
  10852. var k1 = matrix2._ptr[j + 1];
  10853. if (skipZeros) {
  10854. for (var k = k0; k < k1; k++) {
  10855. var i2 = matrix2._index[k];
  10856. if (i2 >= minRow && i2 <= maxRow) {
  10857. invoke(matrix2._values[k], i2 - minRow, j - minColumn);
  10858. }
  10859. }
  10860. } else {
  10861. var _values = {};
  10862. for (var _k = k0; _k < k1; _k++) {
  10863. var _i4 = matrix2._index[_k];
  10864. _values[_i4] = matrix2._values[_k];
  10865. }
  10866. for (var _i5 = minRow; _i5 <= maxRow; _i5++) {
  10867. var value = _i5 in _values ? _values[_i5] : 0;
  10868. invoke(value, _i5 - minRow, j - minColumn);
  10869. }
  10870. }
  10871. }
  10872. ptr.push(values2.length);
  10873. return new SparseMatrix2({
  10874. values: values2,
  10875. index: index2,
  10876. ptr,
  10877. size: [maxRow - minRow + 1, maxColumn - minColumn + 1]
  10878. });
  10879. }
  10880. SparseMatrix2.prototype.forEach = function(callback, skipZeros) {
  10881. if (!this._values) {
  10882. throw new Error("Cannot invoke forEach on a Pattern only matrix");
  10883. }
  10884. var me = this;
  10885. var rows = this._size[0];
  10886. var columns = this._size[1];
  10887. for (var j = 0; j < columns; j++) {
  10888. var k0 = this._ptr[j];
  10889. var k1 = this._ptr[j + 1];
  10890. if (skipZeros) {
  10891. for (var k = k0; k < k1; k++) {
  10892. var i2 = this._index[k];
  10893. callback(this._values[k], [i2, j], me);
  10894. }
  10895. } else {
  10896. var values2 = {};
  10897. for (var _k2 = k0; _k2 < k1; _k2++) {
  10898. var _i6 = this._index[_k2];
  10899. values2[_i6] = this._values[_k2];
  10900. }
  10901. for (var _i7 = 0; _i7 < rows; _i7++) {
  10902. var value = _i7 in values2 ? values2[_i7] : 0;
  10903. callback(value, [_i7, j], me);
  10904. }
  10905. }
  10906. }
  10907. };
  10908. SparseMatrix2.prototype[Symbol.iterator] = function* () {
  10909. if (!this._values) {
  10910. throw new Error("Cannot iterate a Pattern only matrix");
  10911. }
  10912. var columns = this._size[1];
  10913. for (var j = 0; j < columns; j++) {
  10914. var k0 = this._ptr[j];
  10915. var k1 = this._ptr[j + 1];
  10916. for (var k = k0; k < k1; k++) {
  10917. var i2 = this._index[k];
  10918. yield {
  10919. value: this._values[k],
  10920. index: [i2, j]
  10921. };
  10922. }
  10923. }
  10924. };
  10925. SparseMatrix2.prototype.toArray = function() {
  10926. return _toArray(this._values, this._index, this._ptr, this._size, true);
  10927. };
  10928. SparseMatrix2.prototype.valueOf = function() {
  10929. return _toArray(this._values, this._index, this._ptr, this._size, false);
  10930. };
  10931. function _toArray(values2, index2, ptr, size2, copy) {
  10932. var rows = size2[0];
  10933. var columns = size2[1];
  10934. var a = [];
  10935. var i2, j;
  10936. for (i2 = 0; i2 < rows; i2++) {
  10937. a[i2] = [];
  10938. for (j = 0; j < columns; j++) {
  10939. a[i2][j] = 0;
  10940. }
  10941. }
  10942. for (j = 0; j < columns; j++) {
  10943. var k0 = ptr[j];
  10944. var k1 = ptr[j + 1];
  10945. for (var k = k0; k < k1; k++) {
  10946. i2 = index2[k];
  10947. a[i2][j] = values2 ? copy ? clone(values2[k]) : values2[k] : 1;
  10948. }
  10949. }
  10950. return a;
  10951. }
  10952. SparseMatrix2.prototype.format = function(options) {
  10953. var rows = this._size[0];
  10954. var columns = this._size[1];
  10955. var density = this.density();
  10956. var str = "Sparse Matrix [" + format3(rows, options) + " x " + format3(columns, options) + "] density: " + format3(density, options) + "\n";
  10957. for (var j = 0; j < columns; j++) {
  10958. var k0 = this._ptr[j];
  10959. var k1 = this._ptr[j + 1];
  10960. for (var k = k0; k < k1; k++) {
  10961. var i2 = this._index[k];
  10962. str += "\n (" + format3(i2, options) + ", " + format3(j, options) + ") ==> " + (this._values ? format3(this._values[k], options) : "X");
  10963. }
  10964. }
  10965. return str;
  10966. };
  10967. SparseMatrix2.prototype.toString = function() {
  10968. return format3(this.toArray());
  10969. };
  10970. SparseMatrix2.prototype.toJSON = function() {
  10971. return {
  10972. mathjs: "SparseMatrix",
  10973. values: this._values,
  10974. index: this._index,
  10975. ptr: this._ptr,
  10976. size: this._size,
  10977. datatype: this._datatype
  10978. };
  10979. };
  10980. SparseMatrix2.prototype.diagonal = function(k) {
  10981. if (k) {
  10982. if (isBigNumber(k)) {
  10983. k = k.toNumber();
  10984. }
  10985. if (!isNumber(k) || !isInteger(k)) {
  10986. throw new TypeError("The parameter k must be an integer number");
  10987. }
  10988. } else {
  10989. k = 0;
  10990. }
  10991. var kSuper = k > 0 ? k : 0;
  10992. var kSub = k < 0 ? -k : 0;
  10993. var rows = this._size[0];
  10994. var columns = this._size[1];
  10995. var n = Math.min(rows - kSub, columns - kSuper);
  10996. var values2 = [];
  10997. var index2 = [];
  10998. var ptr = [];
  10999. ptr[0] = 0;
  11000. for (var j = kSuper; j < columns && values2.length < n; j++) {
  11001. var k0 = this._ptr[j];
  11002. var k1 = this._ptr[j + 1];
  11003. for (var x = k0; x < k1; x++) {
  11004. var i2 = this._index[x];
  11005. if (i2 === j - kSuper + kSub) {
  11006. values2.push(this._values[x]);
  11007. index2[values2.length - 1] = i2 - kSub;
  11008. break;
  11009. }
  11010. }
  11011. }
  11012. ptr.push(values2.length);
  11013. return new SparseMatrix2({
  11014. values: values2,
  11015. index: index2,
  11016. ptr,
  11017. size: [n, 1]
  11018. });
  11019. };
  11020. SparseMatrix2.fromJSON = function(json) {
  11021. return new SparseMatrix2(json);
  11022. };
  11023. SparseMatrix2.diagonal = function(size2, value, k, defaultValue, datatype) {
  11024. if (!isArray(size2)) {
  11025. throw new TypeError("Array expected, size parameter");
  11026. }
  11027. if (size2.length !== 2) {
  11028. throw new Error("Only two dimensions matrix are supported");
  11029. }
  11030. size2 = size2.map(function(s) {
  11031. if (isBigNumber(s)) {
  11032. s = s.toNumber();
  11033. }
  11034. if (!isNumber(s) || !isInteger(s) || s < 1) {
  11035. throw new Error("Size values must be positive integers");
  11036. }
  11037. return s;
  11038. });
  11039. if (k) {
  11040. if (isBigNumber(k)) {
  11041. k = k.toNumber();
  11042. }
  11043. if (!isNumber(k) || !isInteger(k)) {
  11044. throw new TypeError("The parameter k must be an integer number");
  11045. }
  11046. } else {
  11047. k = 0;
  11048. }
  11049. var eq = equalScalar2;
  11050. var zero = 0;
  11051. if (isString(datatype)) {
  11052. eq = typed2.find(equalScalar2, [datatype, datatype]) || equalScalar2;
  11053. zero = typed2.convert(0, datatype);
  11054. }
  11055. var kSuper = k > 0 ? k : 0;
  11056. var kSub = k < 0 ? -k : 0;
  11057. var rows = size2[0];
  11058. var columns = size2[1];
  11059. var n = Math.min(rows - kSub, columns - kSuper);
  11060. var _value;
  11061. if (isArray(value)) {
  11062. if (value.length !== n) {
  11063. throw new Error("Invalid value array length");
  11064. }
  11065. _value = function _value2(i3) {
  11066. return value[i3];
  11067. };
  11068. } else if (isMatrix(value)) {
  11069. var ms = value.size();
  11070. if (ms.length !== 1 || ms[0] !== n) {
  11071. throw new Error("Invalid matrix length");
  11072. }
  11073. _value = function _value2(i3) {
  11074. return value.get([i3]);
  11075. };
  11076. } else {
  11077. _value = function _value2() {
  11078. return value;
  11079. };
  11080. }
  11081. var values2 = [];
  11082. var index2 = [];
  11083. var ptr = [];
  11084. for (var j = 0; j < columns; j++) {
  11085. ptr.push(values2.length);
  11086. var i2 = j - kSuper;
  11087. if (i2 >= 0 && i2 < n) {
  11088. var v = _value(i2);
  11089. if (!eq(v, zero)) {
  11090. index2.push(i2 + kSub);
  11091. values2.push(v);
  11092. }
  11093. }
  11094. }
  11095. ptr.push(values2.length);
  11096. return new SparseMatrix2({
  11097. values: values2,
  11098. index: index2,
  11099. ptr,
  11100. size: [rows, columns]
  11101. });
  11102. };
  11103. SparseMatrix2.prototype.swapRows = function(i2, j) {
  11104. if (!isNumber(i2) || !isInteger(i2) || !isNumber(j) || !isInteger(j)) {
  11105. throw new Error("Row index must be positive integers");
  11106. }
  11107. if (this._size.length !== 2) {
  11108. throw new Error("Only two dimensional matrix is supported");
  11109. }
  11110. validateIndex(i2, this._size[0]);
  11111. validateIndex(j, this._size[0]);
  11112. SparseMatrix2._swapRows(i2, j, this._size[1], this._values, this._index, this._ptr);
  11113. return this;
  11114. };
  11115. SparseMatrix2._forEachRow = function(j, values2, index2, ptr, callback) {
  11116. var k0 = ptr[j];
  11117. var k1 = ptr[j + 1];
  11118. for (var k = k0; k < k1; k++) {
  11119. callback(index2[k], values2[k]);
  11120. }
  11121. };
  11122. SparseMatrix2._swapRows = function(x, y, columns, values2, index2, ptr) {
  11123. for (var j = 0; j < columns; j++) {
  11124. var k0 = ptr[j];
  11125. var k1 = ptr[j + 1];
  11126. var kx = _getValueIndex(x, k0, k1, index2);
  11127. var ky = _getValueIndex(y, k0, k1, index2);
  11128. if (kx < k1 && ky < k1 && index2[kx] === x && index2[ky] === y) {
  11129. if (values2) {
  11130. var v = values2[kx];
  11131. values2[kx] = values2[ky];
  11132. values2[ky] = v;
  11133. }
  11134. continue;
  11135. }
  11136. if (kx < k1 && index2[kx] === x && (ky >= k1 || index2[ky] !== y)) {
  11137. var vx = values2 ? values2[kx] : void 0;
  11138. index2.splice(ky, 0, y);
  11139. if (values2) {
  11140. values2.splice(ky, 0, vx);
  11141. }
  11142. index2.splice(ky <= kx ? kx + 1 : kx, 1);
  11143. if (values2) {
  11144. values2.splice(ky <= kx ? kx + 1 : kx, 1);
  11145. }
  11146. continue;
  11147. }
  11148. if (ky < k1 && index2[ky] === y && (kx >= k1 || index2[kx] !== x)) {
  11149. var vy = values2 ? values2[ky] : void 0;
  11150. index2.splice(kx, 0, x);
  11151. if (values2) {
  11152. values2.splice(kx, 0, vy);
  11153. }
  11154. index2.splice(kx <= ky ? ky + 1 : ky, 1);
  11155. if (values2) {
  11156. values2.splice(kx <= ky ? ky + 1 : ky, 1);
  11157. }
  11158. }
  11159. }
  11160. };
  11161. return SparseMatrix2;
  11162. }, {
  11163. isClass: true
  11164. });
  11165. // node_modules/mathjs/lib/esm/type/number.js
  11166. var name19 = "number";
  11167. var dependencies20 = ["typed"];
  11168. function getNonDecimalNumberParts(input) {
  11169. var nonDecimalWithRadixMatch = input.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);
  11170. if (nonDecimalWithRadixMatch) {
  11171. var radix = {
  11172. "0b": 2,
  11173. "0o": 8,
  11174. "0x": 16
  11175. }[nonDecimalWithRadixMatch[1]];
  11176. var integerPart = nonDecimalWithRadixMatch[2];
  11177. var fractionalPart = nonDecimalWithRadixMatch[3];
  11178. return {
  11179. input,
  11180. radix,
  11181. integerPart,
  11182. fractionalPart
  11183. };
  11184. } else {
  11185. return null;
  11186. }
  11187. }
  11188. function makeNumberFromNonDecimalParts(parts) {
  11189. var n = parseInt(parts.integerPart, parts.radix);
  11190. var f = 0;
  11191. for (var i2 = 0; i2 < parts.fractionalPart.length; i2++) {
  11192. var digitValue = parseInt(parts.fractionalPart[i2], parts.radix);
  11193. f += digitValue / Math.pow(parts.radix, i2 + 1);
  11194. }
  11195. var result = n + f;
  11196. if (isNaN(result)) {
  11197. throw new SyntaxError('String "' + parts.input + '" is no valid number');
  11198. }
  11199. return result;
  11200. }
  11201. var createNumber = factory(name19, dependencies20, (_ref) => {
  11202. var {
  11203. typed: typed2
  11204. } = _ref;
  11205. var number2 = typed2("number", {
  11206. "": function _() {
  11207. return 0;
  11208. },
  11209. number: function number3(x) {
  11210. return x;
  11211. },
  11212. string: function string2(x) {
  11213. if (x === "NaN")
  11214. return NaN;
  11215. var nonDecimalNumberParts = getNonDecimalNumberParts(x);
  11216. if (nonDecimalNumberParts) {
  11217. return makeNumberFromNonDecimalParts(nonDecimalNumberParts);
  11218. }
  11219. var size2 = 0;
  11220. var wordSizeSuffixMatch = x.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);
  11221. if (wordSizeSuffixMatch) {
  11222. size2 = Number(wordSizeSuffixMatch[2]);
  11223. x = wordSizeSuffixMatch[1];
  11224. }
  11225. var num = Number(x);
  11226. if (isNaN(num)) {
  11227. throw new SyntaxError('String "' + x + '" is no valid number');
  11228. }
  11229. if (wordSizeSuffixMatch) {
  11230. if (num > 2 ** size2 - 1) {
  11231. throw new SyntaxError('String "'.concat(x, '" is out of range'));
  11232. }
  11233. if (num >= 2 ** (size2 - 1)) {
  11234. num = num - 2 ** size2;
  11235. }
  11236. }
  11237. return num;
  11238. },
  11239. BigNumber: function BigNumber2(x) {
  11240. return x.toNumber();
  11241. },
  11242. Fraction: function Fraction3(x) {
  11243. return x.valueOf();
  11244. },
  11245. Unit: function Unit2(x) {
  11246. throw new Error("Second argument with valueless unit expected");
  11247. },
  11248. null: function _null2(x) {
  11249. return 0;
  11250. },
  11251. "Unit, string | Unit": function UnitStringUnit(unit2, valuelessUnit) {
  11252. return unit2.toNumber(valuelessUnit);
  11253. },
  11254. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  11255. });
  11256. number2.fromJSON = function(json) {
  11257. return parseFloat(json.value);
  11258. };
  11259. return number2;
  11260. });
  11261. // node_modules/mathjs/lib/esm/type/string.js
  11262. var name20 = "string";
  11263. var dependencies21 = ["typed"];
  11264. var createString = factory(name20, dependencies21, (_ref) => {
  11265. var {
  11266. typed: typed2
  11267. } = _ref;
  11268. return typed2(name20, {
  11269. "": function _() {
  11270. return "";
  11271. },
  11272. number: format,
  11273. null: function _null2(x) {
  11274. return "null";
  11275. },
  11276. boolean: function boolean2(x) {
  11277. return x + "";
  11278. },
  11279. string: function string2(x) {
  11280. return x;
  11281. },
  11282. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2)),
  11283. any: function any(x) {
  11284. return String(x);
  11285. }
  11286. });
  11287. });
  11288. // node_modules/mathjs/lib/esm/type/boolean.js
  11289. var name21 = "boolean";
  11290. var dependencies22 = ["typed"];
  11291. var createBoolean = factory(name21, dependencies22, (_ref) => {
  11292. var {
  11293. typed: typed2
  11294. } = _ref;
  11295. return typed2(name21, {
  11296. "": function _() {
  11297. return false;
  11298. },
  11299. boolean: function boolean2(x) {
  11300. return x;
  11301. },
  11302. number: function number2(x) {
  11303. return !!x;
  11304. },
  11305. null: function _null2(x) {
  11306. return false;
  11307. },
  11308. BigNumber: function BigNumber2(x) {
  11309. return !x.isZero();
  11310. },
  11311. string: function string2(x) {
  11312. var lcase = x.toLowerCase();
  11313. if (lcase === "true") {
  11314. return true;
  11315. } else if (lcase === "false") {
  11316. return false;
  11317. }
  11318. var num = Number(x);
  11319. if (x !== "" && !isNaN(num)) {
  11320. return !!num;
  11321. }
  11322. throw new Error('Cannot convert "' + x + '" to a boolean');
  11323. },
  11324. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  11325. });
  11326. });
  11327. // node_modules/mathjs/lib/esm/type/bignumber/function/bignumber.js
  11328. var name22 = "bignumber";
  11329. var dependencies23 = ["typed", "BigNumber"];
  11330. var createBignumber = factory(name22, dependencies23, (_ref) => {
  11331. var {
  11332. typed: typed2,
  11333. BigNumber: BigNumber2
  11334. } = _ref;
  11335. return typed2("bignumber", {
  11336. "": function _() {
  11337. return new BigNumber2(0);
  11338. },
  11339. number: function number2(x) {
  11340. return new BigNumber2(x + "");
  11341. },
  11342. string: function string2(x) {
  11343. var wordSizeSuffixMatch = x.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);
  11344. if (wordSizeSuffixMatch) {
  11345. var size2 = wordSizeSuffixMatch[2];
  11346. var n = BigNumber2(wordSizeSuffixMatch[1]);
  11347. var twoPowSize = new BigNumber2(2).pow(Number(size2));
  11348. if (n.gt(twoPowSize.sub(1))) {
  11349. throw new SyntaxError('String "'.concat(x, '" is out of range'));
  11350. }
  11351. var twoPowSizeSubOne = new BigNumber2(2).pow(Number(size2) - 1);
  11352. if (n.gte(twoPowSizeSubOne)) {
  11353. return n.sub(twoPowSize);
  11354. } else {
  11355. return n;
  11356. }
  11357. }
  11358. return new BigNumber2(x);
  11359. },
  11360. BigNumber: function BigNumber3(x) {
  11361. return x;
  11362. },
  11363. Fraction: function Fraction3(x) {
  11364. return new BigNumber2(x.n).div(x.d).times(x.s);
  11365. },
  11366. null: function _null2(x) {
  11367. return new BigNumber2(0);
  11368. },
  11369. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  11370. });
  11371. });
  11372. // node_modules/mathjs/lib/esm/type/complex/function/complex.js
  11373. var name23 = "complex";
  11374. var dependencies24 = ["typed", "Complex"];
  11375. var createComplex = factory(name23, dependencies24, (_ref) => {
  11376. var {
  11377. typed: typed2,
  11378. Complex: Complex3
  11379. } = _ref;
  11380. return typed2("complex", {
  11381. "": function _() {
  11382. return Complex3.ZERO;
  11383. },
  11384. number: function number2(x) {
  11385. return new Complex3(x, 0);
  11386. },
  11387. "number, number": function numberNumber(re2, im2) {
  11388. return new Complex3(re2, im2);
  11389. },
  11390. // TODO: this signature should be redundant
  11391. "BigNumber, BigNumber": function BigNumberBigNumber(re2, im2) {
  11392. return new Complex3(re2.toNumber(), im2.toNumber());
  11393. },
  11394. Fraction: function Fraction3(x) {
  11395. return new Complex3(x.valueOf(), 0);
  11396. },
  11397. Complex: function Complex4(x) {
  11398. return x.clone();
  11399. },
  11400. string: function string2(x) {
  11401. return Complex3(x);
  11402. },
  11403. null: function _null2(x) {
  11404. return Complex3(0);
  11405. },
  11406. Object: function Object2(x) {
  11407. if ("re" in x && "im" in x) {
  11408. return new Complex3(x.re, x.im);
  11409. }
  11410. if ("r" in x && "phi" in x || "abs" in x && "arg" in x) {
  11411. return new Complex3(x);
  11412. }
  11413. throw new Error("Expected object with properties (re and im) or (r and phi) or (abs and arg)");
  11414. },
  11415. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  11416. });
  11417. });
  11418. // node_modules/mathjs/lib/esm/type/fraction/function/fraction.js
  11419. var name24 = "fraction";
  11420. var dependencies25 = ["typed", "Fraction"];
  11421. var createFraction = factory(name24, dependencies25, (_ref) => {
  11422. var {
  11423. typed: typed2,
  11424. Fraction: Fraction3
  11425. } = _ref;
  11426. return typed2("fraction", {
  11427. number: function number2(x) {
  11428. if (!isFinite(x) || isNaN(x)) {
  11429. throw new Error(x + " cannot be represented as a fraction");
  11430. }
  11431. return new Fraction3(x);
  11432. },
  11433. string: function string2(x) {
  11434. return new Fraction3(x);
  11435. },
  11436. "number, number": function numberNumber(numerator, denominator) {
  11437. return new Fraction3(numerator, denominator);
  11438. },
  11439. null: function _null2(x) {
  11440. return new Fraction3(0);
  11441. },
  11442. BigNumber: function BigNumber2(x) {
  11443. return new Fraction3(x.toString());
  11444. },
  11445. Fraction: function Fraction4(x) {
  11446. return x;
  11447. },
  11448. Object: function Object2(x) {
  11449. return new Fraction3(x);
  11450. },
  11451. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  11452. });
  11453. });
  11454. // node_modules/mathjs/lib/esm/type/matrix/function/matrix.js
  11455. var name25 = "matrix";
  11456. var dependencies26 = ["typed", "Matrix", "DenseMatrix", "SparseMatrix"];
  11457. var createMatrix = factory(name25, dependencies26, (_ref) => {
  11458. var {
  11459. typed: typed2,
  11460. Matrix: Matrix2,
  11461. DenseMatrix: DenseMatrix2,
  11462. SparseMatrix: SparseMatrix2
  11463. } = _ref;
  11464. return typed2(name25, {
  11465. "": function _() {
  11466. return _create([]);
  11467. },
  11468. string: function string2(format5) {
  11469. return _create([], format5);
  11470. },
  11471. "string, string": function stringString(format5, datatype) {
  11472. return _create([], format5, datatype);
  11473. },
  11474. Array: function Array2(data) {
  11475. return _create(data);
  11476. },
  11477. Matrix: function Matrix3(data) {
  11478. return _create(data, data.storage());
  11479. },
  11480. "Array | Matrix, string": _create,
  11481. "Array | Matrix, string, string": _create
  11482. });
  11483. function _create(data, format5, datatype) {
  11484. if (format5 === "dense" || format5 === "default" || format5 === void 0) {
  11485. return new DenseMatrix2(data, datatype);
  11486. }
  11487. if (format5 === "sparse") {
  11488. return new SparseMatrix2(data, datatype);
  11489. }
  11490. throw new TypeError("Unknown matrix type " + JSON.stringify(format5) + ".");
  11491. }
  11492. });
  11493. // node_modules/mathjs/lib/esm/function/matrix/matrixFromFunction.js
  11494. var name26 = "matrixFromFunction";
  11495. var dependencies27 = ["typed", "matrix", "isZero"];
  11496. var createMatrixFromFunction = factory(name26, dependencies27, (_ref) => {
  11497. var {
  11498. typed: typed2,
  11499. matrix: matrix2,
  11500. isZero: isZero2
  11501. } = _ref;
  11502. return typed2(name26, {
  11503. "Array | Matrix, function, string, string": function ArrayMatrixFunctionStringString(size2, fn, format5, datatype) {
  11504. return _create(size2, fn, format5, datatype);
  11505. },
  11506. "Array | Matrix, function, string": function ArrayMatrixFunctionString(size2, fn, format5) {
  11507. return _create(size2, fn, format5);
  11508. },
  11509. "Matrix, function": function MatrixFunction(size2, fn) {
  11510. return _create(size2, fn, "dense");
  11511. },
  11512. "Array, function": function ArrayFunction(size2, fn) {
  11513. return _create(size2, fn, "dense").toArray();
  11514. },
  11515. "Array | Matrix, string, function": function ArrayMatrixStringFunction(size2, format5, fn) {
  11516. return _create(size2, fn, format5);
  11517. },
  11518. "Array | Matrix, string, string, function": function ArrayMatrixStringStringFunction(size2, format5, datatype, fn) {
  11519. return _create(size2, fn, format5, datatype);
  11520. }
  11521. });
  11522. function _create(size2, fn, format5, datatype) {
  11523. var m;
  11524. if (datatype !== void 0) {
  11525. m = matrix2(format5, datatype);
  11526. } else {
  11527. m = matrix2(format5);
  11528. }
  11529. m.resize(size2);
  11530. m.forEach(function(_, index2) {
  11531. var val = fn(index2);
  11532. if (isZero2(val))
  11533. return;
  11534. m.set(index2, val);
  11535. });
  11536. return m;
  11537. }
  11538. });
  11539. // node_modules/mathjs/lib/esm/function/matrix/matrixFromRows.js
  11540. var name27 = "matrixFromRows";
  11541. var dependencies28 = ["typed", "matrix", "flatten", "size"];
  11542. var createMatrixFromRows = factory(name27, dependencies28, (_ref) => {
  11543. var {
  11544. typed: typed2,
  11545. matrix: matrix2,
  11546. flatten: flatten3,
  11547. size: size2
  11548. } = _ref;
  11549. return typed2(name27, {
  11550. "...Array": function Array2(arr) {
  11551. return _createArray(arr);
  11552. },
  11553. "...Matrix": function Matrix2(arr) {
  11554. return matrix2(_createArray(arr.map((m) => m.toArray())));
  11555. }
  11556. // TODO implement this properly for SparseMatrix
  11557. });
  11558. function _createArray(arr) {
  11559. if (arr.length === 0)
  11560. throw new TypeError("At least one row is needed to construct a matrix.");
  11561. var N = checkVectorTypeAndReturnLength(arr[0]);
  11562. var result = [];
  11563. for (var row2 of arr) {
  11564. var rowLength = checkVectorTypeAndReturnLength(row2);
  11565. if (rowLength !== N) {
  11566. throw new TypeError("The vectors had different length: " + (N | 0) + " ≠ " + (rowLength | 0));
  11567. }
  11568. result.push(flatten3(row2));
  11569. }
  11570. return result;
  11571. }
  11572. function checkVectorTypeAndReturnLength(vec) {
  11573. var s = size2(vec);
  11574. if (s.length === 1) {
  11575. return s[0];
  11576. } else if (s.length === 2) {
  11577. if (s[0] === 1) {
  11578. return s[1];
  11579. } else if (s[1] === 1) {
  11580. return s[0];
  11581. } else {
  11582. throw new TypeError("At least one of the arguments is not a vector.");
  11583. }
  11584. } else {
  11585. throw new TypeError("Only one- or two-dimensional vectors are supported.");
  11586. }
  11587. }
  11588. });
  11589. // node_modules/mathjs/lib/esm/function/matrix/matrixFromColumns.js
  11590. var name28 = "matrixFromColumns";
  11591. var dependencies29 = ["typed", "matrix", "flatten", "size"];
  11592. var createMatrixFromColumns = factory(name28, dependencies29, (_ref) => {
  11593. var {
  11594. typed: typed2,
  11595. matrix: matrix2,
  11596. flatten: flatten3,
  11597. size: size2
  11598. } = _ref;
  11599. return typed2(name28, {
  11600. "...Array": function Array2(arr) {
  11601. return _createArray(arr);
  11602. },
  11603. "...Matrix": function Matrix2(arr) {
  11604. return matrix2(_createArray(arr.map((m) => m.toArray())));
  11605. }
  11606. // TODO implement this properly for SparseMatrix
  11607. });
  11608. function _createArray(arr) {
  11609. if (arr.length === 0)
  11610. throw new TypeError("At least one column is needed to construct a matrix.");
  11611. var N = checkVectorTypeAndReturnLength(arr[0]);
  11612. var result = [];
  11613. for (var i2 = 0; i2 < N; i2++) {
  11614. result[i2] = [];
  11615. }
  11616. for (var col of arr) {
  11617. var colLength = checkVectorTypeAndReturnLength(col);
  11618. if (colLength !== N) {
  11619. throw new TypeError("The vectors had different length: " + (N | 0) + " ≠ " + (colLength | 0));
  11620. }
  11621. var f = flatten3(col);
  11622. for (var _i = 0; _i < N; _i++) {
  11623. result[_i].push(f[_i]);
  11624. }
  11625. }
  11626. return result;
  11627. }
  11628. function checkVectorTypeAndReturnLength(vec) {
  11629. var s = size2(vec);
  11630. if (s.length === 1) {
  11631. return s[0];
  11632. } else if (s.length === 2) {
  11633. if (s[0] === 1) {
  11634. return s[1];
  11635. } else if (s[1] === 1) {
  11636. return s[0];
  11637. } else {
  11638. throw new TypeError("At least one of the arguments is not a vector.");
  11639. }
  11640. } else {
  11641. throw new TypeError("Only one- or two-dimensional vectors are supported.");
  11642. }
  11643. }
  11644. });
  11645. // node_modules/mathjs/lib/esm/type/unit/function/splitUnit.js
  11646. var name29 = "splitUnit";
  11647. var dependencies30 = ["typed"];
  11648. var createSplitUnit = factory(name29, dependencies30, (_ref) => {
  11649. var {
  11650. typed: typed2
  11651. } = _ref;
  11652. return typed2(name29, {
  11653. "Unit, Array": function UnitArray(unit2, parts) {
  11654. return unit2.splitUnit(parts);
  11655. }
  11656. });
  11657. });
  11658. // node_modules/mathjs/lib/esm/function/arithmetic/unaryMinus.js
  11659. var name30 = "unaryMinus";
  11660. var dependencies31 = ["typed"];
  11661. var createUnaryMinus = factory(name30, dependencies31, (_ref) => {
  11662. var {
  11663. typed: typed2
  11664. } = _ref;
  11665. return typed2(name30, {
  11666. number: unaryMinusNumber,
  11667. "Complex | BigNumber | Fraction": (x) => x.neg(),
  11668. Unit: typed2.referToSelf((self2) => (x) => {
  11669. var res = x.clone();
  11670. res.value = typed2.find(self2, res.valueType())(x.value);
  11671. return res;
  11672. }),
  11673. // deep map collection, skip zeros since unaryMinus(0) = 0
  11674. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2, true))
  11675. // TODO: add support for string
  11676. });
  11677. });
  11678. // node_modules/mathjs/lib/esm/function/arithmetic/unaryPlus.js
  11679. var name31 = "unaryPlus";
  11680. var dependencies32 = ["typed", "config", "BigNumber"];
  11681. var createUnaryPlus = factory(name31, dependencies32, (_ref) => {
  11682. var {
  11683. typed: typed2,
  11684. config: config4,
  11685. BigNumber: BigNumber2
  11686. } = _ref;
  11687. return typed2(name31, {
  11688. number: unaryPlusNumber,
  11689. Complex: function Complex3(x) {
  11690. return x;
  11691. },
  11692. BigNumber: function BigNumber3(x) {
  11693. return x;
  11694. },
  11695. Fraction: function Fraction3(x) {
  11696. return x;
  11697. },
  11698. Unit: function Unit2(x) {
  11699. return x.clone();
  11700. },
  11701. // deep map collection, skip zeros since unaryPlus(0) = 0
  11702. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2, true)),
  11703. "boolean | string": function booleanString(x) {
  11704. return config4.number === "BigNumber" ? new BigNumber2(+x) : +x;
  11705. }
  11706. });
  11707. });
  11708. // node_modules/mathjs/lib/esm/function/arithmetic/abs.js
  11709. var name32 = "abs";
  11710. var dependencies33 = ["typed"];
  11711. var createAbs = factory(name32, dependencies33, (_ref) => {
  11712. var {
  11713. typed: typed2
  11714. } = _ref;
  11715. return typed2(name32, {
  11716. number: absNumber,
  11717. "Complex | BigNumber | Fraction | Unit": (x) => x.abs(),
  11718. // deep map collection, skip zeros since abs(0) = 0
  11719. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2, true))
  11720. });
  11721. });
  11722. // node_modules/mathjs/lib/esm/function/matrix/apply.js
  11723. var name33 = "apply";
  11724. var dependencies34 = ["typed", "isInteger"];
  11725. var createApply = factory(name33, dependencies34, (_ref) => {
  11726. var {
  11727. typed: typed2,
  11728. isInteger: isInteger3
  11729. } = _ref;
  11730. return typed2(name33, {
  11731. "Array | Matrix, number | BigNumber, function": function ArrayMatrixNumberBigNumberFunction(mat, dim, callback) {
  11732. if (!isInteger3(dim)) {
  11733. throw new TypeError("Integer number expected for dimension");
  11734. }
  11735. var size2 = Array.isArray(mat) ? arraySize(mat) : mat.size();
  11736. if (dim < 0 || dim >= size2.length) {
  11737. throw new IndexError(dim, size2.length);
  11738. }
  11739. if (isMatrix(mat)) {
  11740. return mat.create(_apply(mat.valueOf(), dim, callback));
  11741. } else {
  11742. return _apply(mat, dim, callback);
  11743. }
  11744. }
  11745. });
  11746. });
  11747. function _apply(mat, dim, callback) {
  11748. var i2, ret, tran;
  11749. if (dim <= 0) {
  11750. if (!Array.isArray(mat[0])) {
  11751. return callback(mat);
  11752. } else {
  11753. tran = _switch2(mat);
  11754. ret = [];
  11755. for (i2 = 0; i2 < tran.length; i2++) {
  11756. ret[i2] = _apply(tran[i2], dim - 1, callback);
  11757. }
  11758. return ret;
  11759. }
  11760. } else {
  11761. ret = [];
  11762. for (i2 = 0; i2 < mat.length; i2++) {
  11763. ret[i2] = _apply(mat[i2], dim - 1, callback);
  11764. }
  11765. return ret;
  11766. }
  11767. }
  11768. function _switch2(mat) {
  11769. var I = mat.length;
  11770. var J = mat[0].length;
  11771. var i2, j;
  11772. var ret = [];
  11773. for (j = 0; j < J; j++) {
  11774. var tmp = [];
  11775. for (i2 = 0; i2 < I; i2++) {
  11776. tmp.push(mat[i2][j]);
  11777. }
  11778. ret.push(tmp);
  11779. }
  11780. return ret;
  11781. }
  11782. // node_modules/mathjs/lib/esm/function/arithmetic/addScalar.js
  11783. var name34 = "addScalar";
  11784. var dependencies35 = ["typed"];
  11785. var createAddScalar = factory(name34, dependencies35, (_ref) => {
  11786. var {
  11787. typed: typed2
  11788. } = _ref;
  11789. return typed2(name34, {
  11790. "number, number": addNumber,
  11791. "Complex, Complex": function ComplexComplex(x, y) {
  11792. return x.add(y);
  11793. },
  11794. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  11795. return x.plus(y);
  11796. },
  11797. "Fraction, Fraction": function FractionFraction(x, y) {
  11798. return x.add(y);
  11799. },
  11800. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => {
  11801. if (x.value === null || x.value === void 0) {
  11802. throw new Error("Parameter x contains a unit with undefined value");
  11803. }
  11804. if (y.value === null || y.value === void 0) {
  11805. throw new Error("Parameter y contains a unit with undefined value");
  11806. }
  11807. if (!x.equalBase(y))
  11808. throw new Error("Units do not match");
  11809. var res = x.clone();
  11810. res.value = typed2.find(self2, [res.valueType(), y.valueType()])(res.value, y.value);
  11811. res.fixPrefix = false;
  11812. return res;
  11813. })
  11814. });
  11815. });
  11816. // node_modules/mathjs/lib/esm/function/arithmetic/cbrt.js
  11817. var name35 = "cbrt";
  11818. var dependencies36 = ["config", "typed", "isNegative", "unaryMinus", "matrix", "Complex", "BigNumber", "Fraction"];
  11819. var createCbrt = factory(name35, dependencies36, (_ref) => {
  11820. var {
  11821. config: config4,
  11822. typed: typed2,
  11823. isNegative: isNegative2,
  11824. unaryMinus: unaryMinus2,
  11825. matrix: matrix2,
  11826. Complex: Complex3,
  11827. BigNumber: BigNumber2,
  11828. Fraction: Fraction3
  11829. } = _ref;
  11830. return typed2(name35, {
  11831. number: cbrtNumber,
  11832. // note: signature 'number, boolean' is also supported,
  11833. // created by typed as it knows how to convert number to Complex
  11834. Complex: _cbrtComplex,
  11835. "Complex, boolean": _cbrtComplex,
  11836. BigNumber: function BigNumber3(x) {
  11837. return x.cbrt();
  11838. },
  11839. Unit: _cbrtUnit
  11840. });
  11841. function _cbrtComplex(x, allRoots) {
  11842. var arg3 = x.arg() / 3;
  11843. var abs3 = x.abs();
  11844. var principal = new Complex3(cbrtNumber(abs3), 0).mul(new Complex3(0, arg3).exp());
  11845. if (allRoots) {
  11846. var all2 = [principal, new Complex3(cbrtNumber(abs3), 0).mul(new Complex3(0, arg3 + Math.PI * 2 / 3).exp()), new Complex3(cbrtNumber(abs3), 0).mul(new Complex3(0, arg3 - Math.PI * 2 / 3).exp())];
  11847. return config4.matrix === "Array" ? all2 : matrix2(all2);
  11848. } else {
  11849. return principal;
  11850. }
  11851. }
  11852. function _cbrtUnit(x) {
  11853. if (x.value && isComplex(x.value)) {
  11854. var result = x.clone();
  11855. result.value = 1;
  11856. result = result.pow(1 / 3);
  11857. result.value = _cbrtComplex(x.value);
  11858. return result;
  11859. } else {
  11860. var negate = isNegative2(x.value);
  11861. if (negate) {
  11862. x.value = unaryMinus2(x.value);
  11863. }
  11864. var third;
  11865. if (isBigNumber(x.value)) {
  11866. third = new BigNumber2(1).div(3);
  11867. } else if (isFraction(x.value)) {
  11868. third = new Fraction3(1, 3);
  11869. } else {
  11870. third = 1 / 3;
  11871. }
  11872. var _result = x.pow(third);
  11873. if (negate) {
  11874. _result.value = unaryMinus2(_result.value);
  11875. }
  11876. return _result;
  11877. }
  11878. }
  11879. });
  11880. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo11xS0s.js
  11881. var name36 = "matAlgo11xS0s";
  11882. var dependencies37 = ["typed", "equalScalar"];
  11883. var createMatAlgo11xS0s = factory(name36, dependencies37, (_ref) => {
  11884. var {
  11885. typed: typed2,
  11886. equalScalar: equalScalar2
  11887. } = _ref;
  11888. return function matAlgo11xS0s(s, b, callback, inverse) {
  11889. var avalues = s._values;
  11890. var aindex = s._index;
  11891. var aptr = s._ptr;
  11892. var asize = s._size;
  11893. var adt = s._datatype;
  11894. if (!avalues) {
  11895. throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
  11896. }
  11897. var rows = asize[0];
  11898. var columns = asize[1];
  11899. var dt;
  11900. var eq = equalScalar2;
  11901. var zero = 0;
  11902. var cf = callback;
  11903. if (typeof adt === "string") {
  11904. dt = adt;
  11905. eq = typed2.find(equalScalar2, [dt, dt]);
  11906. zero = typed2.convert(0, dt);
  11907. b = typed2.convert(b, dt);
  11908. cf = typed2.find(callback, [dt, dt]);
  11909. }
  11910. var cvalues = [];
  11911. var cindex = [];
  11912. var cptr = [];
  11913. for (var j = 0; j < columns; j++) {
  11914. cptr[j] = cindex.length;
  11915. for (var k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  11916. var i2 = aindex[k];
  11917. var v = inverse ? cf(b, avalues[k]) : cf(avalues[k], b);
  11918. if (!eq(v, zero)) {
  11919. cindex.push(i2);
  11920. cvalues.push(v);
  11921. }
  11922. }
  11923. }
  11924. cptr[columns] = cindex.length;
  11925. return s.createSparseMatrix({
  11926. values: cvalues,
  11927. index: cindex,
  11928. ptr: cptr,
  11929. size: [rows, columns],
  11930. datatype: dt
  11931. });
  11932. };
  11933. });
  11934. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo12xSfs.js
  11935. var name37 = "matAlgo12xSfs";
  11936. var dependencies38 = ["typed", "DenseMatrix"];
  11937. var createMatAlgo12xSfs = factory(name37, dependencies38, (_ref) => {
  11938. var {
  11939. typed: typed2,
  11940. DenseMatrix: DenseMatrix2
  11941. } = _ref;
  11942. return function matAlgo12xSfs(s, b, callback, inverse) {
  11943. var avalues = s._values;
  11944. var aindex = s._index;
  11945. var aptr = s._ptr;
  11946. var asize = s._size;
  11947. var adt = s._datatype;
  11948. if (!avalues) {
  11949. throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
  11950. }
  11951. var rows = asize[0];
  11952. var columns = asize[1];
  11953. var dt;
  11954. var cf = callback;
  11955. if (typeof adt === "string") {
  11956. dt = adt;
  11957. b = typed2.convert(b, dt);
  11958. cf = typed2.find(callback, [dt, dt]);
  11959. }
  11960. var cdata = [];
  11961. var x = [];
  11962. var w = [];
  11963. for (var j = 0; j < columns; j++) {
  11964. var mark = j + 1;
  11965. for (var k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  11966. var r = aindex[k];
  11967. x[r] = avalues[k];
  11968. w[r] = mark;
  11969. }
  11970. for (var i2 = 0; i2 < rows; i2++) {
  11971. if (j === 0) {
  11972. cdata[i2] = [];
  11973. }
  11974. if (w[i2] === mark) {
  11975. cdata[i2][j] = inverse ? cf(b, x[i2]) : cf(x[i2], b);
  11976. } else {
  11977. cdata[i2][j] = inverse ? cf(b, 0) : cf(0, b);
  11978. }
  11979. }
  11980. }
  11981. return new DenseMatrix2({
  11982. data: cdata,
  11983. size: [rows, columns],
  11984. datatype: dt
  11985. });
  11986. };
  11987. });
  11988. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo14xDs.js
  11989. var name38 = "matAlgo14xDs";
  11990. var dependencies39 = ["typed"];
  11991. var createMatAlgo14xDs = factory(name38, dependencies39, (_ref) => {
  11992. var {
  11993. typed: typed2
  11994. } = _ref;
  11995. return function matAlgo14xDs(a, b, callback, inverse) {
  11996. var adata = a._data;
  11997. var asize = a._size;
  11998. var adt = a._datatype;
  11999. var dt;
  12000. var cf = callback;
  12001. if (typeof adt === "string") {
  12002. dt = adt;
  12003. b = typed2.convert(b, dt);
  12004. cf = typed2.find(callback, [dt, dt]);
  12005. }
  12006. var cdata = asize.length > 0 ? _iterate(cf, 0, asize, asize[0], adata, b, inverse) : [];
  12007. return a.createDenseMatrix({
  12008. data: cdata,
  12009. size: clone(asize),
  12010. datatype: dt
  12011. });
  12012. };
  12013. function _iterate(f, level, s, n, av, bv, inverse) {
  12014. var cv = [];
  12015. if (level === s.length - 1) {
  12016. for (var i2 = 0; i2 < n; i2++) {
  12017. cv[i2] = inverse ? f(bv, av[i2]) : f(av[i2], bv);
  12018. }
  12019. } else {
  12020. for (var j = 0; j < n; j++) {
  12021. cv[j] = _iterate(f, level + 1, s, s[level + 1], av[j], bv, inverse);
  12022. }
  12023. }
  12024. return cv;
  12025. }
  12026. });
  12027. // node_modules/mathjs/lib/esm/function/arithmetic/ceil.js
  12028. var name39 = "ceil";
  12029. var dependencies40 = ["typed", "config", "round", "matrix", "equalScalar", "zeros", "DenseMatrix"];
  12030. var createCeilNumber = factory(name39, ["typed", "config", "round"], (_ref) => {
  12031. var {
  12032. typed: typed2,
  12033. config: config4,
  12034. round: round3
  12035. } = _ref;
  12036. return typed2(name39, {
  12037. number: function number2(x) {
  12038. if (nearlyEqual(x, round3(x), config4.epsilon)) {
  12039. return round3(x);
  12040. } else {
  12041. return Math.ceil(x);
  12042. }
  12043. },
  12044. "number, number": function numberNumber(x, n) {
  12045. if (nearlyEqual(x, round3(x, n), config4.epsilon)) {
  12046. return round3(x, n);
  12047. } else {
  12048. var [number2, exponent] = "".concat(x, "e").split("e");
  12049. var result = Math.ceil(Number("".concat(number2, "e").concat(Number(exponent) + n)));
  12050. [number2, exponent] = "".concat(result, "e").split("e");
  12051. return Number("".concat(number2, "e").concat(Number(exponent) - n));
  12052. }
  12053. }
  12054. });
  12055. });
  12056. var createCeil = factory(name39, dependencies40, (_ref2) => {
  12057. var {
  12058. typed: typed2,
  12059. config: config4,
  12060. round: round3,
  12061. matrix: matrix2,
  12062. equalScalar: equalScalar2,
  12063. zeros: zeros3,
  12064. DenseMatrix: DenseMatrix2
  12065. } = _ref2;
  12066. var matAlgo11xS0s = createMatAlgo11xS0s({
  12067. typed: typed2,
  12068. equalScalar: equalScalar2
  12069. });
  12070. var matAlgo12xSfs = createMatAlgo12xSfs({
  12071. typed: typed2,
  12072. DenseMatrix: DenseMatrix2
  12073. });
  12074. var matAlgo14xDs = createMatAlgo14xDs({
  12075. typed: typed2
  12076. });
  12077. var ceilNumber = createCeilNumber({
  12078. typed: typed2,
  12079. config: config4,
  12080. round: round3
  12081. });
  12082. return typed2("ceil", {
  12083. number: ceilNumber.signatures.number,
  12084. "number,number": ceilNumber.signatures["number,number"],
  12085. Complex: function Complex3(x) {
  12086. return x.ceil();
  12087. },
  12088. "Complex, number": function ComplexNumber(x, n) {
  12089. return x.ceil(n);
  12090. },
  12091. "Complex, BigNumber": function ComplexBigNumber(x, n) {
  12092. return x.ceil(n.toNumber());
  12093. },
  12094. BigNumber: function BigNumber2(x) {
  12095. if (nearlyEqual2(x, round3(x), config4.epsilon)) {
  12096. return round3(x);
  12097. } else {
  12098. return x.ceil();
  12099. }
  12100. },
  12101. "BigNumber, BigNumber": function BigNumberBigNumber(x, n) {
  12102. if (nearlyEqual2(x, round3(x, n), config4.epsilon)) {
  12103. return round3(x, n);
  12104. } else {
  12105. return x.toDecimalPlaces(n.toNumber(), decimal_default.ROUND_CEIL);
  12106. }
  12107. },
  12108. Fraction: function Fraction3(x) {
  12109. return x.ceil();
  12110. },
  12111. "Fraction, number": function FractionNumber(x, n) {
  12112. return x.ceil(n);
  12113. },
  12114. "Fraction, BigNumber": function FractionBigNumber(x, n) {
  12115. return x.ceil(n.toNumber());
  12116. },
  12117. "Array | Matrix": typed2.referToSelf((self2) => (x) => {
  12118. return deepMap(x, self2, true);
  12119. }),
  12120. "Array, number | BigNumber": typed2.referToSelf((self2) => (x, n) => {
  12121. return deepMap(x, (i2) => self2(i2, n), true);
  12122. }),
  12123. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  12124. return matAlgo11xS0s(x, y, self2, false);
  12125. }),
  12126. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  12127. return matAlgo14xDs(x, y, self2, false);
  12128. }),
  12129. "number | Complex | Fraction | BigNumber, Array": typed2.referToSelf((self2) => (x, y) => {
  12130. return matAlgo14xDs(matrix2(y), x, self2, true).valueOf();
  12131. }),
  12132. "number | Complex | Fraction | BigNumber, Matrix": typed2.referToSelf((self2) => (x, y) => {
  12133. if (equalScalar2(x, 0))
  12134. return zeros3(y.size(), y.storage());
  12135. if (y.storage() === "dense") {
  12136. return matAlgo14xDs(y, x, self2, true);
  12137. }
  12138. return matAlgo12xSfs(y, x, self2, true);
  12139. })
  12140. });
  12141. });
  12142. // node_modules/mathjs/lib/esm/function/arithmetic/cube.js
  12143. var name40 = "cube";
  12144. var dependencies41 = ["typed"];
  12145. var createCube = factory(name40, dependencies41, (_ref) => {
  12146. var {
  12147. typed: typed2
  12148. } = _ref;
  12149. return typed2(name40, {
  12150. number: cubeNumber,
  12151. Complex: function Complex3(x) {
  12152. return x.mul(x).mul(x);
  12153. },
  12154. BigNumber: function BigNumber2(x) {
  12155. return x.times(x).times(x);
  12156. },
  12157. Fraction: function Fraction3(x) {
  12158. return x.pow(3);
  12159. },
  12160. Unit: function Unit2(x) {
  12161. return x.pow(3);
  12162. }
  12163. });
  12164. });
  12165. // node_modules/mathjs/lib/esm/function/arithmetic/exp.js
  12166. var name41 = "exp";
  12167. var dependencies42 = ["typed"];
  12168. var createExp = factory(name41, dependencies42, (_ref) => {
  12169. var {
  12170. typed: typed2
  12171. } = _ref;
  12172. return typed2(name41, {
  12173. number: expNumber,
  12174. Complex: function Complex3(x) {
  12175. return x.exp();
  12176. },
  12177. BigNumber: function BigNumber2(x) {
  12178. return x.exp();
  12179. }
  12180. });
  12181. });
  12182. // node_modules/mathjs/lib/esm/function/arithmetic/expm1.js
  12183. var name42 = "expm1";
  12184. var dependencies43 = ["typed", "Complex"];
  12185. var createExpm1 = factory(name42, dependencies43, (_ref) => {
  12186. var {
  12187. typed: typed2,
  12188. Complex: _Complex
  12189. } = _ref;
  12190. return typed2(name42, {
  12191. number: expm1Number,
  12192. Complex: function Complex3(x) {
  12193. var r = Math.exp(x.re);
  12194. return new _Complex(r * Math.cos(x.im) - 1, r * Math.sin(x.im));
  12195. },
  12196. BigNumber: function BigNumber2(x) {
  12197. return x.exp().minus(1);
  12198. }
  12199. });
  12200. });
  12201. // node_modules/mathjs/lib/esm/function/arithmetic/fix.js
  12202. var name43 = "fix";
  12203. var dependencies44 = ["typed", "Complex", "matrix", "ceil", "floor", "equalScalar", "zeros", "DenseMatrix"];
  12204. var createFixNumber = factory(name43, ["typed", "ceil", "floor"], (_ref) => {
  12205. var {
  12206. typed: typed2,
  12207. ceil: ceil3,
  12208. floor: floor3
  12209. } = _ref;
  12210. return typed2(name43, {
  12211. number: function number2(x) {
  12212. return x > 0 ? floor3(x) : ceil3(x);
  12213. },
  12214. "number, number": function numberNumber(x, n) {
  12215. return x > 0 ? floor3(x, n) : ceil3(x, n);
  12216. }
  12217. });
  12218. });
  12219. var createFix = factory(name43, dependencies44, (_ref2) => {
  12220. var {
  12221. typed: typed2,
  12222. Complex: _Complex,
  12223. matrix: matrix2,
  12224. ceil: ceil3,
  12225. floor: floor3,
  12226. equalScalar: equalScalar2,
  12227. zeros: zeros3,
  12228. DenseMatrix: DenseMatrix2
  12229. } = _ref2;
  12230. var matAlgo12xSfs = createMatAlgo12xSfs({
  12231. typed: typed2,
  12232. DenseMatrix: DenseMatrix2
  12233. });
  12234. var matAlgo14xDs = createMatAlgo14xDs({
  12235. typed: typed2
  12236. });
  12237. var fixNumber = createFixNumber({
  12238. typed: typed2,
  12239. ceil: ceil3,
  12240. floor: floor3
  12241. });
  12242. return typed2("fix", {
  12243. number: fixNumber.signatures.number,
  12244. "number, number | BigNumber": fixNumber.signatures["number,number"],
  12245. Complex: function Complex3(x) {
  12246. return new _Complex(x.re > 0 ? Math.floor(x.re) : Math.ceil(x.re), x.im > 0 ? Math.floor(x.im) : Math.ceil(x.im));
  12247. },
  12248. "Complex, number": function ComplexNumber(x, n) {
  12249. return new _Complex(x.re > 0 ? floor3(x.re, n) : ceil3(x.re, n), x.im > 0 ? floor3(x.im, n) : ceil3(x.im, n));
  12250. },
  12251. "Complex, BigNumber": function ComplexBigNumber(x, bn) {
  12252. var n = bn.toNumber();
  12253. return new _Complex(x.re > 0 ? floor3(x.re, n) : ceil3(x.re, n), x.im > 0 ? floor3(x.im, n) : ceil3(x.im, n));
  12254. },
  12255. BigNumber: function BigNumber2(x) {
  12256. return x.isNegative() ? ceil3(x) : floor3(x);
  12257. },
  12258. "BigNumber, number | BigNumber": function BigNumberNumberBigNumber(x, n) {
  12259. return x.isNegative() ? ceil3(x, n) : floor3(x, n);
  12260. },
  12261. Fraction: function Fraction3(x) {
  12262. return x.s < 0 ? x.ceil() : x.floor();
  12263. },
  12264. "Fraction, number | BigNumber": function FractionNumberBigNumber(x, n) {
  12265. return x.s < 0 ? ceil3(x, n) : floor3(x, n);
  12266. },
  12267. "Array | Matrix": typed2.referToSelf((self2) => (x) => {
  12268. return deepMap(x, self2, true);
  12269. }),
  12270. "Array | Matrix, number | BigNumber": typed2.referToSelf((self2) => (x, n) => {
  12271. return deepMap(x, (i2) => self2(i2, n), true);
  12272. }),
  12273. "number | Complex | Fraction | BigNumber, Array": typed2.referToSelf((self2) => (x, y) => {
  12274. return matAlgo14xDs(matrix2(y), x, self2, true).valueOf();
  12275. }),
  12276. "number | Complex | Fraction | BigNumber, Matrix": typed2.referToSelf((self2) => (x, y) => {
  12277. if (equalScalar2(x, 0))
  12278. return zeros3(y.size(), y.storage());
  12279. if (y.storage() === "dense") {
  12280. return matAlgo14xDs(y, x, self2, true);
  12281. }
  12282. return matAlgo12xSfs(y, x, self2, true);
  12283. })
  12284. });
  12285. });
  12286. // node_modules/mathjs/lib/esm/function/arithmetic/floor.js
  12287. var name44 = "floor";
  12288. var dependencies45 = ["typed", "config", "round", "matrix", "equalScalar", "zeros", "DenseMatrix"];
  12289. var createFloorNumber = factory(name44, ["typed", "config", "round"], (_ref) => {
  12290. var {
  12291. typed: typed2,
  12292. config: config4,
  12293. round: round3
  12294. } = _ref;
  12295. return typed2(name44, {
  12296. number: function number2(x) {
  12297. if (nearlyEqual(x, round3(x), config4.epsilon)) {
  12298. return round3(x);
  12299. } else {
  12300. return Math.floor(x);
  12301. }
  12302. },
  12303. "number, number": function numberNumber(x, n) {
  12304. if (nearlyEqual(x, round3(x, n), config4.epsilon)) {
  12305. return round3(x, n);
  12306. } else {
  12307. var [number2, exponent] = "".concat(x, "e").split("e");
  12308. var result = Math.floor(Number("".concat(number2, "e").concat(Number(exponent) + n)));
  12309. [number2, exponent] = "".concat(result, "e").split("e");
  12310. return Number("".concat(number2, "e").concat(Number(exponent) - n));
  12311. }
  12312. }
  12313. });
  12314. });
  12315. var createFloor = factory(name44, dependencies45, (_ref2) => {
  12316. var {
  12317. typed: typed2,
  12318. config: config4,
  12319. round: round3,
  12320. matrix: matrix2,
  12321. equalScalar: equalScalar2,
  12322. zeros: zeros3,
  12323. DenseMatrix: DenseMatrix2
  12324. } = _ref2;
  12325. var matAlgo11xS0s = createMatAlgo11xS0s({
  12326. typed: typed2,
  12327. equalScalar: equalScalar2
  12328. });
  12329. var matAlgo12xSfs = createMatAlgo12xSfs({
  12330. typed: typed2,
  12331. DenseMatrix: DenseMatrix2
  12332. });
  12333. var matAlgo14xDs = createMatAlgo14xDs({
  12334. typed: typed2
  12335. });
  12336. var floorNumber = createFloorNumber({
  12337. typed: typed2,
  12338. config: config4,
  12339. round: round3
  12340. });
  12341. return typed2("floor", {
  12342. number: floorNumber.signatures.number,
  12343. "number,number": floorNumber.signatures["number,number"],
  12344. Complex: function Complex3(x) {
  12345. return x.floor();
  12346. },
  12347. "Complex, number": function ComplexNumber(x, n) {
  12348. return x.floor(n);
  12349. },
  12350. "Complex, BigNumber": function ComplexBigNumber(x, n) {
  12351. return x.floor(n.toNumber());
  12352. },
  12353. BigNumber: function BigNumber2(x) {
  12354. if (nearlyEqual2(x, round3(x), config4.epsilon)) {
  12355. return round3(x);
  12356. } else {
  12357. return x.floor();
  12358. }
  12359. },
  12360. "BigNumber, BigNumber": function BigNumberBigNumber(x, n) {
  12361. if (nearlyEqual2(x, round3(x, n), config4.epsilon)) {
  12362. return round3(x, n);
  12363. } else {
  12364. return x.toDecimalPlaces(n.toNumber(), decimal_default.ROUND_FLOOR);
  12365. }
  12366. },
  12367. Fraction: function Fraction3(x) {
  12368. return x.floor();
  12369. },
  12370. "Fraction, number": function FractionNumber(x, n) {
  12371. return x.floor(n);
  12372. },
  12373. "Fraction, BigNumber": function FractionBigNumber(x, n) {
  12374. return x.floor(n.toNumber());
  12375. },
  12376. "Array | Matrix": typed2.referToSelf((self2) => (x) => {
  12377. return deepMap(x, self2, true);
  12378. }),
  12379. "Array, number | BigNumber": typed2.referToSelf((self2) => (x, n) => {
  12380. return deepMap(x, (i2) => self2(i2, n), true);
  12381. }),
  12382. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  12383. return matAlgo11xS0s(x, y, self2, false);
  12384. }),
  12385. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  12386. return matAlgo14xDs(x, y, self2, false);
  12387. }),
  12388. "number | Complex | Fraction | BigNumber, Array": typed2.referToSelf((self2) => (x, y) => {
  12389. return matAlgo14xDs(matrix2(y), x, self2, true).valueOf();
  12390. }),
  12391. "number | Complex | Fraction | BigNumber, Matrix": typed2.referToSelf((self2) => (x, y) => {
  12392. if (equalScalar2(x, 0))
  12393. return zeros3(y.size(), y.storage());
  12394. if (y.storage() === "dense") {
  12395. return matAlgo14xDs(y, x, self2, true);
  12396. }
  12397. return matAlgo12xSfs(y, x, self2, true);
  12398. })
  12399. });
  12400. });
  12401. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo01xDSid.js
  12402. var name45 = "matAlgo01xDSid";
  12403. var dependencies46 = ["typed"];
  12404. var createMatAlgo01xDSid = factory(name45, dependencies46, (_ref) => {
  12405. var {
  12406. typed: typed2
  12407. } = _ref;
  12408. return function algorithm1(denseMatrix, sparseMatrix, callback, inverse) {
  12409. var adata = denseMatrix._data;
  12410. var asize = denseMatrix._size;
  12411. var adt = denseMatrix._datatype;
  12412. var bvalues = sparseMatrix._values;
  12413. var bindex = sparseMatrix._index;
  12414. var bptr = sparseMatrix._ptr;
  12415. var bsize = sparseMatrix._size;
  12416. var bdt = sparseMatrix._datatype;
  12417. if (asize.length !== bsize.length) {
  12418. throw new DimensionError(asize.length, bsize.length);
  12419. }
  12420. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  12421. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  12422. }
  12423. if (!bvalues) {
  12424. throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");
  12425. }
  12426. var rows = asize[0];
  12427. var columns = asize[1];
  12428. var dt = typeof adt === "string" && adt === bdt ? adt : void 0;
  12429. var cf = dt ? typed2.find(callback, [dt, dt]) : callback;
  12430. var i2, j;
  12431. var cdata = [];
  12432. for (i2 = 0; i2 < rows; i2++) {
  12433. cdata[i2] = [];
  12434. }
  12435. var x = [];
  12436. var w = [];
  12437. for (j = 0; j < columns; j++) {
  12438. var mark = j + 1;
  12439. for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  12440. i2 = bindex[k];
  12441. x[i2] = inverse ? cf(bvalues[k], adata[i2][j]) : cf(adata[i2][j], bvalues[k]);
  12442. w[i2] = mark;
  12443. }
  12444. for (i2 = 0; i2 < rows; i2++) {
  12445. if (w[i2] === mark) {
  12446. cdata[i2][j] = x[i2];
  12447. } else {
  12448. cdata[i2][j] = adata[i2][j];
  12449. }
  12450. }
  12451. }
  12452. return denseMatrix.createDenseMatrix({
  12453. data: cdata,
  12454. size: [rows, columns],
  12455. datatype: dt
  12456. });
  12457. };
  12458. });
  12459. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo04xSidSid.js
  12460. var name46 = "matAlgo04xSidSid";
  12461. var dependencies47 = ["typed", "equalScalar"];
  12462. var createMatAlgo04xSidSid = factory(name46, dependencies47, (_ref) => {
  12463. var {
  12464. typed: typed2,
  12465. equalScalar: equalScalar2
  12466. } = _ref;
  12467. return function matAlgo04xSidSid(a, b, callback) {
  12468. var avalues = a._values;
  12469. var aindex = a._index;
  12470. var aptr = a._ptr;
  12471. var asize = a._size;
  12472. var adt = a._datatype;
  12473. var bvalues = b._values;
  12474. var bindex = b._index;
  12475. var bptr = b._ptr;
  12476. var bsize = b._size;
  12477. var bdt = b._datatype;
  12478. if (asize.length !== bsize.length) {
  12479. throw new DimensionError(asize.length, bsize.length);
  12480. }
  12481. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  12482. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  12483. }
  12484. var rows = asize[0];
  12485. var columns = asize[1];
  12486. var dt;
  12487. var eq = equalScalar2;
  12488. var zero = 0;
  12489. var cf = callback;
  12490. if (typeof adt === "string" && adt === bdt) {
  12491. dt = adt;
  12492. eq = typed2.find(equalScalar2, [dt, dt]);
  12493. zero = typed2.convert(0, dt);
  12494. cf = typed2.find(callback, [dt, dt]);
  12495. }
  12496. var cvalues = avalues && bvalues ? [] : void 0;
  12497. var cindex = [];
  12498. var cptr = [];
  12499. var xa = avalues && bvalues ? [] : void 0;
  12500. var xb = avalues && bvalues ? [] : void 0;
  12501. var wa = [];
  12502. var wb = [];
  12503. var i2, j, k, k0, k1;
  12504. for (j = 0; j < columns; j++) {
  12505. cptr[j] = cindex.length;
  12506. var mark = j + 1;
  12507. for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  12508. i2 = aindex[k];
  12509. cindex.push(i2);
  12510. wa[i2] = mark;
  12511. if (xa) {
  12512. xa[i2] = avalues[k];
  12513. }
  12514. }
  12515. for (k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  12516. i2 = bindex[k];
  12517. if (wa[i2] === mark) {
  12518. if (xa) {
  12519. var v = cf(xa[i2], bvalues[k]);
  12520. if (!eq(v, zero)) {
  12521. xa[i2] = v;
  12522. } else {
  12523. wa[i2] = null;
  12524. }
  12525. }
  12526. } else {
  12527. cindex.push(i2);
  12528. wb[i2] = mark;
  12529. if (xb) {
  12530. xb[i2] = bvalues[k];
  12531. }
  12532. }
  12533. }
  12534. if (xa && xb) {
  12535. k = cptr[j];
  12536. while (k < cindex.length) {
  12537. i2 = cindex[k];
  12538. if (wa[i2] === mark) {
  12539. cvalues[k] = xa[i2];
  12540. k++;
  12541. } else if (wb[i2] === mark) {
  12542. cvalues[k] = xb[i2];
  12543. k++;
  12544. } else {
  12545. cindex.splice(k, 1);
  12546. }
  12547. }
  12548. }
  12549. }
  12550. cptr[columns] = cindex.length;
  12551. return a.createSparseMatrix({
  12552. values: cvalues,
  12553. index: cindex,
  12554. ptr: cptr,
  12555. size: [rows, columns],
  12556. datatype: dt
  12557. });
  12558. };
  12559. });
  12560. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo10xSids.js
  12561. var name47 = "matAlgo10xSids";
  12562. var dependencies48 = ["typed", "DenseMatrix"];
  12563. var createMatAlgo10xSids = factory(name47, dependencies48, (_ref) => {
  12564. var {
  12565. typed: typed2,
  12566. DenseMatrix: DenseMatrix2
  12567. } = _ref;
  12568. return function matAlgo10xSids(s, b, callback, inverse) {
  12569. var avalues = s._values;
  12570. var aindex = s._index;
  12571. var aptr = s._ptr;
  12572. var asize = s._size;
  12573. var adt = s._datatype;
  12574. if (!avalues) {
  12575. throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
  12576. }
  12577. var rows = asize[0];
  12578. var columns = asize[1];
  12579. var dt;
  12580. var cf = callback;
  12581. if (typeof adt === "string") {
  12582. dt = adt;
  12583. b = typed2.convert(b, dt);
  12584. cf = typed2.find(callback, [dt, dt]);
  12585. }
  12586. var cdata = [];
  12587. var x = [];
  12588. var w = [];
  12589. for (var j = 0; j < columns; j++) {
  12590. var mark = j + 1;
  12591. for (var k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  12592. var r = aindex[k];
  12593. x[r] = avalues[k];
  12594. w[r] = mark;
  12595. }
  12596. for (var i2 = 0; i2 < rows; i2++) {
  12597. if (j === 0) {
  12598. cdata[i2] = [];
  12599. }
  12600. if (w[i2] === mark) {
  12601. cdata[i2][j] = inverse ? cf(b, x[i2]) : cf(x[i2], b);
  12602. } else {
  12603. cdata[i2][j] = b;
  12604. }
  12605. }
  12606. }
  12607. return new DenseMatrix2({
  12608. data: cdata,
  12609. size: [rows, columns],
  12610. datatype: dt
  12611. });
  12612. };
  12613. });
  12614. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo13xDD.js
  12615. var name48 = "matAlgo13xDD";
  12616. var dependencies49 = ["typed"];
  12617. var createMatAlgo13xDD = factory(name48, dependencies49, (_ref) => {
  12618. var {
  12619. typed: typed2
  12620. } = _ref;
  12621. return function matAlgo13xDD(a, b, callback) {
  12622. var adata = a._data;
  12623. var asize = a._size;
  12624. var adt = a._datatype;
  12625. var bdata = b._data;
  12626. var bsize = b._size;
  12627. var bdt = b._datatype;
  12628. var csize = [];
  12629. if (asize.length !== bsize.length) {
  12630. throw new DimensionError(asize.length, bsize.length);
  12631. }
  12632. for (var s = 0; s < asize.length; s++) {
  12633. if (asize[s] !== bsize[s]) {
  12634. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  12635. }
  12636. csize[s] = asize[s];
  12637. }
  12638. var dt;
  12639. var cf = callback;
  12640. if (typeof adt === "string" && adt === bdt) {
  12641. dt = adt;
  12642. cf = typed2.find(callback, [dt, dt]);
  12643. }
  12644. var cdata = csize.length > 0 ? _iterate(cf, 0, csize, csize[0], adata, bdata) : [];
  12645. return a.createDenseMatrix({
  12646. data: cdata,
  12647. size: csize,
  12648. datatype: dt
  12649. });
  12650. };
  12651. function _iterate(f, level, s, n, av, bv) {
  12652. var cv = [];
  12653. if (level === s.length - 1) {
  12654. for (var i2 = 0; i2 < n; i2++) {
  12655. cv[i2] = f(av[i2], bv[i2]);
  12656. }
  12657. } else {
  12658. for (var j = 0; j < n; j++) {
  12659. cv[j] = _iterate(f, level + 1, s, s[level + 1], av[j], bv[j]);
  12660. }
  12661. }
  12662. return cv;
  12663. }
  12664. });
  12665. // node_modules/mathjs/lib/esm/type/matrix/utils/broadcast.js
  12666. var name49 = "broadcast";
  12667. var dependancies = ["concat"];
  12668. var createBroadcast = factory(name49, dependancies, (_ref) => {
  12669. var {
  12670. concat: concat2
  12671. } = _ref;
  12672. return function(A, B) {
  12673. var N = Math.max(A._size.length, B._size.length);
  12674. if (A._size.length === B._size.length) {
  12675. if (A._size.every((dim2, i2) => dim2 === B._size[i2])) {
  12676. return [A, B];
  12677. }
  12678. }
  12679. var sizeA = _padLeft(A._size, N, 0);
  12680. var sizeB = _padLeft(B._size, N, 0);
  12681. var sizeMax = [];
  12682. for (var dim = 0; dim < N; dim++) {
  12683. sizeMax[dim] = Math.max(sizeA[dim], sizeB[dim]);
  12684. }
  12685. for (var _dim = 0; _dim < N; _dim++) {
  12686. _checkRules(sizeA, sizeMax, _dim);
  12687. _checkRules(sizeB, sizeMax, _dim);
  12688. }
  12689. var AA = A.clone();
  12690. var BB = B.clone();
  12691. if (AA._size.length < N) {
  12692. AA.reshape(_padLeft(AA._size, N, 1));
  12693. } else if (BB._size.length < N) {
  12694. BB.reshape(_padLeft(BB._size, N, 1));
  12695. }
  12696. for (var _dim2 = 0; _dim2 < N; _dim2++) {
  12697. if (AA._size[_dim2] < sizeMax[_dim2]) {
  12698. AA = _stretch(AA, sizeMax[_dim2], _dim2);
  12699. }
  12700. if (BB._size[_dim2] < sizeMax[_dim2]) {
  12701. BB = _stretch(BB, sizeMax[_dim2], _dim2);
  12702. }
  12703. }
  12704. return [AA, BB];
  12705. };
  12706. function _padLeft(shape, N, filler) {
  12707. return [...Array(N - shape.length).fill(filler), ...shape];
  12708. }
  12709. function _stretch(arrayToStretch, sizeToStretch, dimToStretch) {
  12710. return concat2(...Array(sizeToStretch).fill(arrayToStretch), dimToStretch);
  12711. }
  12712. function _checkRules(shape, sizeMax, dim) {
  12713. if (shape[dim] < sizeMax[dim] & shape[dim] > 1) {
  12714. throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(shape, ") not possible to broadcast dimension ").concat(dim, " with size ").concat(shape[dim], " to size ").concat(sizeMax[dim]));
  12715. }
  12716. }
  12717. });
  12718. // node_modules/mathjs/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js
  12719. var name50 = "matrixAlgorithmSuite";
  12720. var dependencies50 = ["typed", "matrix", "concat"];
  12721. var createMatrixAlgorithmSuite = factory(name50, dependencies50, (_ref) => {
  12722. var {
  12723. typed: typed2,
  12724. matrix: matrix2,
  12725. concat: concat2
  12726. } = _ref;
  12727. var matAlgo13xDD = createMatAlgo13xDD({
  12728. typed: typed2
  12729. });
  12730. var matAlgo14xDs = createMatAlgo14xDs({
  12731. typed: typed2
  12732. });
  12733. var broadcast = createBroadcast({
  12734. concat: concat2
  12735. });
  12736. return function matrixAlgorithmSuite(options) {
  12737. var elop = options.elop;
  12738. var SD = options.SD || options.DS;
  12739. var matrixSignatures;
  12740. if (elop) {
  12741. matrixSignatures = {
  12742. "DenseMatrix, DenseMatrix": (x, y) => matAlgo13xDD(...broadcast(x, y), elop),
  12743. "Array, Array": (x, y) => matAlgo13xDD(...broadcast(matrix2(x), matrix2(y)), elop).valueOf(),
  12744. "Array, DenseMatrix": (x, y) => matAlgo13xDD(...broadcast(matrix2(x), y), elop),
  12745. "DenseMatrix, Array": (x, y) => matAlgo13xDD(...broadcast(x, matrix2(y)), elop)
  12746. };
  12747. if (options.SS) {
  12748. matrixSignatures["SparseMatrix, SparseMatrix"] = (x, y) => options.SS(...broadcast(x, y), elop, false);
  12749. }
  12750. if (options.DS) {
  12751. matrixSignatures["DenseMatrix, SparseMatrix"] = (x, y) => options.DS(...broadcast(x, y), elop, false);
  12752. matrixSignatures["Array, SparseMatrix"] = (x, y) => options.DS(...broadcast(matrix2(x), y), elop, false);
  12753. }
  12754. if (SD) {
  12755. matrixSignatures["SparseMatrix, DenseMatrix"] = (x, y) => SD(...broadcast(y, x), elop, true);
  12756. matrixSignatures["SparseMatrix, Array"] = (x, y) => SD(...broadcast(matrix2(y), x), elop, true);
  12757. }
  12758. } else {
  12759. matrixSignatures = {
  12760. "DenseMatrix, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  12761. return matAlgo13xDD(...broadcast(x, y), self2);
  12762. }),
  12763. "Array, Array": typed2.referToSelf((self2) => (x, y) => {
  12764. return matAlgo13xDD(...broadcast(matrix2(x), matrix2(y)), self2).valueOf();
  12765. }),
  12766. "Array, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  12767. return matAlgo13xDD(...broadcast(matrix2(x), y), self2);
  12768. }),
  12769. "DenseMatrix, Array": typed2.referToSelf((self2) => (x, y) => {
  12770. return matAlgo13xDD(...broadcast(x, matrix2(y)), self2);
  12771. })
  12772. };
  12773. if (options.SS) {
  12774. matrixSignatures["SparseMatrix, SparseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12775. return options.SS(...broadcast(x, y), self2, false);
  12776. });
  12777. }
  12778. if (options.DS) {
  12779. matrixSignatures["DenseMatrix, SparseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12780. return options.DS(...broadcast(x, y), self2, false);
  12781. });
  12782. matrixSignatures["Array, SparseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12783. return options.DS(...broadcast(matrix2(x), y), self2, false);
  12784. });
  12785. }
  12786. if (SD) {
  12787. matrixSignatures["SparseMatrix, DenseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12788. return SD(...broadcast(y, x), self2, true);
  12789. });
  12790. matrixSignatures["SparseMatrix, Array"] = typed2.referToSelf((self2) => (x, y) => {
  12791. return SD(...broadcast(matrix2(y), x), self2, true);
  12792. });
  12793. }
  12794. }
  12795. var scalar = options.scalar || "any";
  12796. var Ds = options.Ds || options.Ss;
  12797. if (Ds) {
  12798. if (elop) {
  12799. matrixSignatures["DenseMatrix," + scalar] = (x, y) => matAlgo14xDs(x, y, elop, false);
  12800. matrixSignatures[scalar + ", DenseMatrix"] = (x, y) => matAlgo14xDs(y, x, elop, true);
  12801. matrixSignatures["Array," + scalar] = (x, y) => matAlgo14xDs(matrix2(x), y, elop, false).valueOf();
  12802. matrixSignatures[scalar + ", Array"] = (x, y) => matAlgo14xDs(matrix2(y), x, elop, true).valueOf();
  12803. } else {
  12804. matrixSignatures["DenseMatrix," + scalar] = typed2.referToSelf((self2) => (x, y) => {
  12805. return matAlgo14xDs(x, y, self2, false);
  12806. });
  12807. matrixSignatures[scalar + ", DenseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12808. return matAlgo14xDs(y, x, self2, true);
  12809. });
  12810. matrixSignatures["Array," + scalar] = typed2.referToSelf((self2) => (x, y) => {
  12811. return matAlgo14xDs(matrix2(x), y, self2, false).valueOf();
  12812. });
  12813. matrixSignatures[scalar + ", Array"] = typed2.referToSelf((self2) => (x, y) => {
  12814. return matAlgo14xDs(matrix2(y), x, self2, true).valueOf();
  12815. });
  12816. }
  12817. }
  12818. var sS = options.sS !== void 0 ? options.sS : options.Ss;
  12819. if (elop) {
  12820. if (options.Ss) {
  12821. matrixSignatures["SparseMatrix," + scalar] = (x, y) => options.Ss(x, y, elop, false);
  12822. }
  12823. if (sS) {
  12824. matrixSignatures[scalar + ", SparseMatrix"] = (x, y) => sS(y, x, elop, true);
  12825. }
  12826. } else {
  12827. if (options.Ss) {
  12828. matrixSignatures["SparseMatrix," + scalar] = typed2.referToSelf((self2) => (x, y) => {
  12829. return options.Ss(x, y, self2, false);
  12830. });
  12831. }
  12832. if (sS) {
  12833. matrixSignatures[scalar + ", SparseMatrix"] = typed2.referToSelf((self2) => (x, y) => {
  12834. return sS(y, x, self2, true);
  12835. });
  12836. }
  12837. }
  12838. if (elop && elop.signatures) {
  12839. extend(matrixSignatures, elop.signatures);
  12840. }
  12841. return matrixSignatures;
  12842. };
  12843. });
  12844. // node_modules/mathjs/lib/esm/error/ArgumentsError.js
  12845. function ArgumentsError(fn, count2, min3, max3) {
  12846. if (!(this instanceof ArgumentsError)) {
  12847. throw new SyntaxError("Constructor must be called with the new operator");
  12848. }
  12849. this.fn = fn;
  12850. this.count = count2;
  12851. this.min = min3;
  12852. this.max = max3;
  12853. this.message = "Wrong number of arguments in function " + fn + " (" + count2 + " provided, " + min3 + (max3 !== void 0 && max3 !== null ? "-" + max3 : "") + " expected)";
  12854. this.stack = new Error().stack;
  12855. }
  12856. ArgumentsError.prototype = new Error();
  12857. ArgumentsError.prototype.constructor = Error;
  12858. ArgumentsError.prototype.name = "ArgumentsError";
  12859. ArgumentsError.prototype.isArgumentsError = true;
  12860. // node_modules/mathjs/lib/esm/function/arithmetic/gcd.js
  12861. var name51 = "gcd";
  12862. var dependencies51 = ["typed", "matrix", "equalScalar", "BigNumber", "DenseMatrix", "concat"];
  12863. var gcdTypes = "number | BigNumber | Fraction | Matrix | Array";
  12864. var gcdManyTypesSignature = "".concat(gcdTypes, ", ").concat(gcdTypes, ", ...").concat(gcdTypes);
  12865. function is1d(array) {
  12866. return !array.some((element) => Array.isArray(element));
  12867. }
  12868. var createGcd = factory(name51, dependencies51, (_ref) => {
  12869. var {
  12870. typed: typed2,
  12871. matrix: matrix2,
  12872. equalScalar: equalScalar2,
  12873. BigNumber: BigNumber2,
  12874. DenseMatrix: DenseMatrix2,
  12875. concat: concat2
  12876. } = _ref;
  12877. var matAlgo01xDSid = createMatAlgo01xDSid({
  12878. typed: typed2
  12879. });
  12880. var matAlgo04xSidSid = createMatAlgo04xSidSid({
  12881. typed: typed2,
  12882. equalScalar: equalScalar2
  12883. });
  12884. var matAlgo10xSids = createMatAlgo10xSids({
  12885. typed: typed2,
  12886. DenseMatrix: DenseMatrix2
  12887. });
  12888. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  12889. typed: typed2,
  12890. matrix: matrix2,
  12891. concat: concat2
  12892. });
  12893. return typed2(name51, {
  12894. "number, number": gcdNumber,
  12895. "BigNumber, BigNumber": _gcdBigNumber,
  12896. "Fraction, Fraction": (x, y) => x.gcd(y)
  12897. }, matrixAlgorithmSuite({
  12898. SS: matAlgo04xSidSid,
  12899. DS: matAlgo01xDSid,
  12900. Ss: matAlgo10xSids
  12901. }), {
  12902. [gcdManyTypesSignature]: typed2.referToSelf((self2) => (a, b, args) => {
  12903. var res = self2(a, b);
  12904. for (var i2 = 0; i2 < args.length; i2++) {
  12905. res = self2(res, args[i2]);
  12906. }
  12907. return res;
  12908. }),
  12909. Array: typed2.referToSelf((self2) => (array) => {
  12910. if (array.length === 1 && Array.isArray(array[0]) && is1d(array[0])) {
  12911. return self2(...array[0]);
  12912. }
  12913. if (is1d(array)) {
  12914. return self2(...array);
  12915. }
  12916. throw new ArgumentsError("gcd() supports only 1d matrices!");
  12917. }),
  12918. Matrix: typed2.referToSelf((self2) => (matrix3) => {
  12919. return self2(matrix3.toArray());
  12920. })
  12921. });
  12922. function _gcdBigNumber(a, b) {
  12923. if (!a.isInt() || !b.isInt()) {
  12924. throw new Error("Parameters in function gcd must be integer numbers");
  12925. }
  12926. var zero = new BigNumber2(0);
  12927. while (!b.isZero()) {
  12928. var r = a.mod(b);
  12929. a = b;
  12930. b = r;
  12931. }
  12932. return a.lt(zero) ? a.neg() : a;
  12933. }
  12934. });
  12935. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo02xDS0.js
  12936. var name52 = "matAlgo02xDS0";
  12937. var dependencies52 = ["typed", "equalScalar"];
  12938. var createMatAlgo02xDS0 = factory(name52, dependencies52, (_ref) => {
  12939. var {
  12940. typed: typed2,
  12941. equalScalar: equalScalar2
  12942. } = _ref;
  12943. return function matAlgo02xDS0(denseMatrix, sparseMatrix, callback, inverse) {
  12944. var adata = denseMatrix._data;
  12945. var asize = denseMatrix._size;
  12946. var adt = denseMatrix._datatype;
  12947. var bvalues = sparseMatrix._values;
  12948. var bindex = sparseMatrix._index;
  12949. var bptr = sparseMatrix._ptr;
  12950. var bsize = sparseMatrix._size;
  12951. var bdt = sparseMatrix._datatype;
  12952. if (asize.length !== bsize.length) {
  12953. throw new DimensionError(asize.length, bsize.length);
  12954. }
  12955. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  12956. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  12957. }
  12958. if (!bvalues) {
  12959. throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");
  12960. }
  12961. var rows = asize[0];
  12962. var columns = asize[1];
  12963. var dt;
  12964. var eq = equalScalar2;
  12965. var zero = 0;
  12966. var cf = callback;
  12967. if (typeof adt === "string" && adt === bdt) {
  12968. dt = adt;
  12969. eq = typed2.find(equalScalar2, [dt, dt]);
  12970. zero = typed2.convert(0, dt);
  12971. cf = typed2.find(callback, [dt, dt]);
  12972. }
  12973. var cvalues = [];
  12974. var cindex = [];
  12975. var cptr = [];
  12976. for (var j = 0; j < columns; j++) {
  12977. cptr[j] = cindex.length;
  12978. for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  12979. var i2 = bindex[k];
  12980. var cij = inverse ? cf(bvalues[k], adata[i2][j]) : cf(adata[i2][j], bvalues[k]);
  12981. if (!eq(cij, zero)) {
  12982. cindex.push(i2);
  12983. cvalues.push(cij);
  12984. }
  12985. }
  12986. }
  12987. cptr[columns] = cindex.length;
  12988. return sparseMatrix.createSparseMatrix({
  12989. values: cvalues,
  12990. index: cindex,
  12991. ptr: cptr,
  12992. size: [rows, columns],
  12993. datatype: dt
  12994. });
  12995. };
  12996. });
  12997. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo06xS0S0.js
  12998. var name53 = "matAlgo06xS0S0";
  12999. var dependencies53 = ["typed", "equalScalar"];
  13000. var createMatAlgo06xS0S0 = factory(name53, dependencies53, (_ref) => {
  13001. var {
  13002. typed: typed2,
  13003. equalScalar: equalScalar2
  13004. } = _ref;
  13005. return function matAlgo06xS0S0(a, b, callback) {
  13006. var avalues = a._values;
  13007. var asize = a._size;
  13008. var adt = a._datatype;
  13009. var bvalues = b._values;
  13010. var bsize = b._size;
  13011. var bdt = b._datatype;
  13012. if (asize.length !== bsize.length) {
  13013. throw new DimensionError(asize.length, bsize.length);
  13014. }
  13015. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  13016. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  13017. }
  13018. var rows = asize[0];
  13019. var columns = asize[1];
  13020. var dt;
  13021. var eq = equalScalar2;
  13022. var zero = 0;
  13023. var cf = callback;
  13024. if (typeof adt === "string" && adt === bdt) {
  13025. dt = adt;
  13026. eq = typed2.find(equalScalar2, [dt, dt]);
  13027. zero = typed2.convert(0, dt);
  13028. cf = typed2.find(callback, [dt, dt]);
  13029. }
  13030. var cvalues = avalues && bvalues ? [] : void 0;
  13031. var cindex = [];
  13032. var cptr = [];
  13033. var x = cvalues ? [] : void 0;
  13034. var w = [];
  13035. var u = [];
  13036. for (var j = 0; j < columns; j++) {
  13037. cptr[j] = cindex.length;
  13038. var mark = j + 1;
  13039. scatter(a, j, w, x, u, mark, cindex, cf);
  13040. scatter(b, j, w, x, u, mark, cindex, cf);
  13041. if (x) {
  13042. var k = cptr[j];
  13043. while (k < cindex.length) {
  13044. var i2 = cindex[k];
  13045. if (u[i2] === mark) {
  13046. var v = x[i2];
  13047. if (!eq(v, zero)) {
  13048. cvalues.push(v);
  13049. k++;
  13050. } else {
  13051. cindex.splice(k, 1);
  13052. }
  13053. } else {
  13054. cindex.splice(k, 1);
  13055. }
  13056. }
  13057. } else {
  13058. var p = cptr[j];
  13059. while (p < cindex.length) {
  13060. var r = cindex[p];
  13061. if (u[r] !== mark) {
  13062. cindex.splice(p, 1);
  13063. } else {
  13064. p++;
  13065. }
  13066. }
  13067. }
  13068. }
  13069. cptr[columns] = cindex.length;
  13070. return a.createSparseMatrix({
  13071. values: cvalues,
  13072. index: cindex,
  13073. ptr: cptr,
  13074. size: [rows, columns],
  13075. datatype: dt
  13076. });
  13077. };
  13078. });
  13079. // node_modules/mathjs/lib/esm/function/arithmetic/lcm.js
  13080. var name54 = "lcm";
  13081. var dependencies54 = ["typed", "matrix", "equalScalar", "concat"];
  13082. var createLcm = factory(name54, dependencies54, (_ref) => {
  13083. var {
  13084. typed: typed2,
  13085. matrix: matrix2,
  13086. equalScalar: equalScalar2,
  13087. concat: concat2
  13088. } = _ref;
  13089. var matAlgo02xDS0 = createMatAlgo02xDS0({
  13090. typed: typed2,
  13091. equalScalar: equalScalar2
  13092. });
  13093. var matAlgo06xS0S0 = createMatAlgo06xS0S0({
  13094. typed: typed2,
  13095. equalScalar: equalScalar2
  13096. });
  13097. var matAlgo11xS0s = createMatAlgo11xS0s({
  13098. typed: typed2,
  13099. equalScalar: equalScalar2
  13100. });
  13101. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  13102. typed: typed2,
  13103. matrix: matrix2,
  13104. concat: concat2
  13105. });
  13106. var lcmTypes = "number | BigNumber | Fraction | Matrix | Array";
  13107. var lcmManySignature = {};
  13108. lcmManySignature["".concat(lcmTypes, ", ").concat(lcmTypes, ", ...").concat(lcmTypes)] = typed2.referToSelf((self2) => (a, b, args) => {
  13109. var res = self2(a, b);
  13110. for (var i2 = 0; i2 < args.length; i2++) {
  13111. res = self2(res, args[i2]);
  13112. }
  13113. return res;
  13114. });
  13115. return typed2(name54, {
  13116. "number, number": lcmNumber,
  13117. "BigNumber, BigNumber": _lcmBigNumber,
  13118. "Fraction, Fraction": (x, y) => x.lcm(y)
  13119. }, matrixAlgorithmSuite({
  13120. SS: matAlgo06xS0S0,
  13121. DS: matAlgo02xDS0,
  13122. Ss: matAlgo11xS0s
  13123. }), lcmManySignature);
  13124. function _lcmBigNumber(a, b) {
  13125. if (!a.isInt() || !b.isInt()) {
  13126. throw new Error("Parameters in function lcm must be integer numbers");
  13127. }
  13128. if (a.isZero()) {
  13129. return a;
  13130. }
  13131. if (b.isZero()) {
  13132. return b;
  13133. }
  13134. var prod2 = a.times(b);
  13135. while (!b.isZero()) {
  13136. var t = b;
  13137. b = a.mod(t);
  13138. a = t;
  13139. }
  13140. return prod2.div(a).abs();
  13141. }
  13142. });
  13143. // node_modules/mathjs/lib/esm/function/arithmetic/log10.js
  13144. var name55 = "log10";
  13145. var dependencies55 = ["typed", "config", "Complex"];
  13146. var createLog10 = factory(name55, dependencies55, (_ref) => {
  13147. var {
  13148. typed: typed2,
  13149. config: config4,
  13150. Complex: _Complex
  13151. } = _ref;
  13152. return typed2(name55, {
  13153. number: function number2(x) {
  13154. if (x >= 0 || config4.predictable) {
  13155. return log10Number(x);
  13156. } else {
  13157. return new _Complex(x, 0).log().div(Math.LN10);
  13158. }
  13159. },
  13160. Complex: function Complex3(x) {
  13161. return new _Complex(x).log().div(Math.LN10);
  13162. },
  13163. BigNumber: function BigNumber2(x) {
  13164. if (!x.isNegative() || config4.predictable) {
  13165. return x.log();
  13166. } else {
  13167. return new _Complex(x.toNumber(), 0).log().div(Math.LN10);
  13168. }
  13169. },
  13170. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  13171. });
  13172. });
  13173. // node_modules/mathjs/lib/esm/function/arithmetic/log2.js
  13174. var name56 = "log2";
  13175. var dependencies56 = ["typed", "config", "Complex"];
  13176. var createLog2 = factory(name56, dependencies56, (_ref) => {
  13177. var {
  13178. typed: typed2,
  13179. config: config4,
  13180. Complex: Complex3
  13181. } = _ref;
  13182. return typed2(name56, {
  13183. number: function number2(x) {
  13184. if (x >= 0 || config4.predictable) {
  13185. return log2Number(x);
  13186. } else {
  13187. return _log2Complex(new Complex3(x, 0));
  13188. }
  13189. },
  13190. Complex: _log2Complex,
  13191. BigNumber: function BigNumber2(x) {
  13192. if (!x.isNegative() || config4.predictable) {
  13193. return x.log(2);
  13194. } else {
  13195. return _log2Complex(new Complex3(x.toNumber(), 0));
  13196. }
  13197. },
  13198. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  13199. });
  13200. function _log2Complex(x) {
  13201. var newX = Math.sqrt(x.re * x.re + x.im * x.im);
  13202. return new Complex3(Math.log2 ? Math.log2(newX) : Math.log(newX) / Math.LN2, Math.atan2(x.im, x.re) / Math.LN2);
  13203. }
  13204. });
  13205. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo03xDSf.js
  13206. var name57 = "matAlgo03xDSf";
  13207. var dependencies57 = ["typed"];
  13208. var createMatAlgo03xDSf = factory(name57, dependencies57, (_ref) => {
  13209. var {
  13210. typed: typed2
  13211. } = _ref;
  13212. return function matAlgo03xDSf(denseMatrix, sparseMatrix, callback, inverse) {
  13213. var adata = denseMatrix._data;
  13214. var asize = denseMatrix._size;
  13215. var adt = denseMatrix._datatype;
  13216. var bvalues = sparseMatrix._values;
  13217. var bindex = sparseMatrix._index;
  13218. var bptr = sparseMatrix._ptr;
  13219. var bsize = sparseMatrix._size;
  13220. var bdt = sparseMatrix._datatype;
  13221. if (asize.length !== bsize.length) {
  13222. throw new DimensionError(asize.length, bsize.length);
  13223. }
  13224. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  13225. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  13226. }
  13227. if (!bvalues) {
  13228. throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");
  13229. }
  13230. var rows = asize[0];
  13231. var columns = asize[1];
  13232. var dt;
  13233. var zero = 0;
  13234. var cf = callback;
  13235. if (typeof adt === "string" && adt === bdt) {
  13236. dt = adt;
  13237. zero = typed2.convert(0, dt);
  13238. cf = typed2.find(callback, [dt, dt]);
  13239. }
  13240. var cdata = [];
  13241. for (var z = 0; z < rows; z++) {
  13242. cdata[z] = [];
  13243. }
  13244. var x = [];
  13245. var w = [];
  13246. for (var j = 0; j < columns; j++) {
  13247. var mark = j + 1;
  13248. for (var k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  13249. var i2 = bindex[k];
  13250. x[i2] = inverse ? cf(bvalues[k], adata[i2][j]) : cf(adata[i2][j], bvalues[k]);
  13251. w[i2] = mark;
  13252. }
  13253. for (var y = 0; y < rows; y++) {
  13254. if (w[y] === mark) {
  13255. cdata[y][j] = x[y];
  13256. } else {
  13257. cdata[y][j] = inverse ? cf(zero, adata[y][j]) : cf(adata[y][j], zero);
  13258. }
  13259. }
  13260. }
  13261. return denseMatrix.createDenseMatrix({
  13262. data: cdata,
  13263. size: [rows, columns],
  13264. datatype: dt
  13265. });
  13266. };
  13267. });
  13268. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo05xSfSf.js
  13269. var name58 = "matAlgo05xSfSf";
  13270. var dependencies58 = ["typed", "equalScalar"];
  13271. var createMatAlgo05xSfSf = factory(name58, dependencies58, (_ref) => {
  13272. var {
  13273. typed: typed2,
  13274. equalScalar: equalScalar2
  13275. } = _ref;
  13276. return function matAlgo05xSfSf(a, b, callback) {
  13277. var avalues = a._values;
  13278. var aindex = a._index;
  13279. var aptr = a._ptr;
  13280. var asize = a._size;
  13281. var adt = a._datatype;
  13282. var bvalues = b._values;
  13283. var bindex = b._index;
  13284. var bptr = b._ptr;
  13285. var bsize = b._size;
  13286. var bdt = b._datatype;
  13287. if (asize.length !== bsize.length) {
  13288. throw new DimensionError(asize.length, bsize.length);
  13289. }
  13290. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  13291. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  13292. }
  13293. var rows = asize[0];
  13294. var columns = asize[1];
  13295. var dt;
  13296. var eq = equalScalar2;
  13297. var zero = 0;
  13298. var cf = callback;
  13299. if (typeof adt === "string" && adt === bdt) {
  13300. dt = adt;
  13301. eq = typed2.find(equalScalar2, [dt, dt]);
  13302. zero = typed2.convert(0, dt);
  13303. cf = typed2.find(callback, [dt, dt]);
  13304. }
  13305. var cvalues = avalues && bvalues ? [] : void 0;
  13306. var cindex = [];
  13307. var cptr = [];
  13308. var xa = cvalues ? [] : void 0;
  13309. var xb = cvalues ? [] : void 0;
  13310. var wa = [];
  13311. var wb = [];
  13312. var i2, j, k, k1;
  13313. for (j = 0; j < columns; j++) {
  13314. cptr[j] = cindex.length;
  13315. var mark = j + 1;
  13316. for (k = aptr[j], k1 = aptr[j + 1]; k < k1; k++) {
  13317. i2 = aindex[k];
  13318. cindex.push(i2);
  13319. wa[i2] = mark;
  13320. if (xa) {
  13321. xa[i2] = avalues[k];
  13322. }
  13323. }
  13324. for (k = bptr[j], k1 = bptr[j + 1]; k < k1; k++) {
  13325. i2 = bindex[k];
  13326. if (wa[i2] !== mark) {
  13327. cindex.push(i2);
  13328. }
  13329. wb[i2] = mark;
  13330. if (xb) {
  13331. xb[i2] = bvalues[k];
  13332. }
  13333. }
  13334. if (cvalues) {
  13335. k = cptr[j];
  13336. while (k < cindex.length) {
  13337. i2 = cindex[k];
  13338. var wai = wa[i2];
  13339. var wbi = wb[i2];
  13340. if (wai === mark || wbi === mark) {
  13341. var va = wai === mark ? xa[i2] : zero;
  13342. var vb = wbi === mark ? xb[i2] : zero;
  13343. var vc = cf(va, vb);
  13344. if (!eq(vc, zero)) {
  13345. cvalues.push(vc);
  13346. k++;
  13347. } else {
  13348. cindex.splice(k, 1);
  13349. }
  13350. }
  13351. }
  13352. }
  13353. }
  13354. cptr[columns] = cindex.length;
  13355. return a.createSparseMatrix({
  13356. values: cvalues,
  13357. index: cindex,
  13358. ptr: cptr,
  13359. size: [rows, columns],
  13360. datatype: dt
  13361. });
  13362. };
  13363. });
  13364. // node_modules/mathjs/lib/esm/function/arithmetic/mod.js
  13365. var name59 = "mod";
  13366. var dependencies59 = ["typed", "matrix", "equalScalar", "DenseMatrix", "concat"];
  13367. var createMod = factory(name59, dependencies59, (_ref) => {
  13368. var {
  13369. typed: typed2,
  13370. matrix: matrix2,
  13371. equalScalar: equalScalar2,
  13372. DenseMatrix: DenseMatrix2,
  13373. concat: concat2
  13374. } = _ref;
  13375. var matAlgo02xDS0 = createMatAlgo02xDS0({
  13376. typed: typed2,
  13377. equalScalar: equalScalar2
  13378. });
  13379. var matAlgo03xDSf = createMatAlgo03xDSf({
  13380. typed: typed2
  13381. });
  13382. var matAlgo05xSfSf = createMatAlgo05xSfSf({
  13383. typed: typed2,
  13384. equalScalar: equalScalar2
  13385. });
  13386. var matAlgo11xS0s = createMatAlgo11xS0s({
  13387. typed: typed2,
  13388. equalScalar: equalScalar2
  13389. });
  13390. var matAlgo12xSfs = createMatAlgo12xSfs({
  13391. typed: typed2,
  13392. DenseMatrix: DenseMatrix2
  13393. });
  13394. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  13395. typed: typed2,
  13396. matrix: matrix2,
  13397. concat: concat2
  13398. });
  13399. return typed2(name59, {
  13400. "number, number": modNumber,
  13401. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  13402. if (y.isNeg()) {
  13403. throw new Error("Cannot calculate mod for a negative divisor");
  13404. }
  13405. return y.isZero() ? x : x.mod(y);
  13406. },
  13407. "Fraction, Fraction": function FractionFraction(x, y) {
  13408. if (y.compare(0) < 0) {
  13409. throw new Error("Cannot calculate mod for a negative divisor");
  13410. }
  13411. return x.compare(0) >= 0 ? x.mod(y) : x.mod(y).add(y).mod(y);
  13412. }
  13413. }, matrixAlgorithmSuite({
  13414. SS: matAlgo05xSfSf,
  13415. DS: matAlgo03xDSf,
  13416. SD: matAlgo02xDS0,
  13417. Ss: matAlgo11xS0s,
  13418. sS: matAlgo12xSfs
  13419. }));
  13420. });
  13421. // node_modules/mathjs/lib/esm/function/arithmetic/multiplyScalar.js
  13422. var name60 = "multiplyScalar";
  13423. var dependencies60 = ["typed"];
  13424. var createMultiplyScalar = factory(name60, dependencies60, (_ref) => {
  13425. var {
  13426. typed: typed2
  13427. } = _ref;
  13428. return typed2("multiplyScalar", {
  13429. "number, number": multiplyNumber,
  13430. "Complex, Complex": function ComplexComplex(x, y) {
  13431. return x.mul(y);
  13432. },
  13433. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  13434. return x.times(y);
  13435. },
  13436. "Fraction, Fraction": function FractionFraction(x, y) {
  13437. return x.mul(y);
  13438. },
  13439. "number | Fraction | BigNumber | Complex, Unit": (x, y) => y.multiply(x),
  13440. "Unit, number | Fraction | BigNumber | Complex | Unit": (x, y) => x.multiply(y)
  13441. });
  13442. });
  13443. // node_modules/mathjs/lib/esm/function/arithmetic/multiply.js
  13444. var name61 = "multiply";
  13445. var dependencies61 = ["typed", "matrix", "addScalar", "multiplyScalar", "equalScalar", "dot"];
  13446. var createMultiply = factory(name61, dependencies61, (_ref) => {
  13447. var {
  13448. typed: typed2,
  13449. matrix: matrix2,
  13450. addScalar: addScalar2,
  13451. multiplyScalar: multiplyScalar2,
  13452. equalScalar: equalScalar2,
  13453. dot: dot2
  13454. } = _ref;
  13455. var matAlgo11xS0s = createMatAlgo11xS0s({
  13456. typed: typed2,
  13457. equalScalar: equalScalar2
  13458. });
  13459. var matAlgo14xDs = createMatAlgo14xDs({
  13460. typed: typed2
  13461. });
  13462. function _validateMatrixDimensions(size1, size2) {
  13463. switch (size1.length) {
  13464. case 1:
  13465. switch (size2.length) {
  13466. case 1:
  13467. if (size1[0] !== size2[0]) {
  13468. throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");
  13469. }
  13470. break;
  13471. case 2:
  13472. if (size1[0] !== size2[0]) {
  13473. throw new RangeError("Dimension mismatch in multiplication. Vector length (" + size1[0] + ") must match Matrix rows (" + size2[0] + ")");
  13474. }
  13475. break;
  13476. default:
  13477. throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has " + size2.length + " dimensions)");
  13478. }
  13479. break;
  13480. case 2:
  13481. switch (size2.length) {
  13482. case 1:
  13483. if (size1[1] !== size2[0]) {
  13484. throw new RangeError("Dimension mismatch in multiplication. Matrix columns (" + size1[1] + ") must match Vector length (" + size2[0] + ")");
  13485. }
  13486. break;
  13487. case 2:
  13488. if (size1[1] !== size2[0]) {
  13489. throw new RangeError("Dimension mismatch in multiplication. Matrix A columns (" + size1[1] + ") must match Matrix B rows (" + size2[0] + ")");
  13490. }
  13491. break;
  13492. default:
  13493. throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has " + size2.length + " dimensions)");
  13494. }
  13495. break;
  13496. default:
  13497. throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has " + size1.length + " dimensions)");
  13498. }
  13499. }
  13500. function _multiplyVectorVector(a, b, n) {
  13501. if (n === 0) {
  13502. throw new Error("Cannot multiply two empty vectors");
  13503. }
  13504. return dot2(a, b);
  13505. }
  13506. function _multiplyVectorMatrix(a, b) {
  13507. if (b.storage() !== "dense") {
  13508. throw new Error("Support for SparseMatrix not implemented");
  13509. }
  13510. return _multiplyVectorDenseMatrix(a, b);
  13511. }
  13512. function _multiplyVectorDenseMatrix(a, b) {
  13513. var adata = a._data;
  13514. var asize = a._size;
  13515. var adt = a._datatype;
  13516. var bdata = b._data;
  13517. var bsize = b._size;
  13518. var bdt = b._datatype;
  13519. var alength = asize[0];
  13520. var bcolumns = bsize[1];
  13521. var dt;
  13522. var af = addScalar2;
  13523. var mf = multiplyScalar2;
  13524. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13525. dt = adt;
  13526. af = typed2.find(addScalar2, [dt, dt]);
  13527. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13528. }
  13529. var c = [];
  13530. for (var j = 0; j < bcolumns; j++) {
  13531. var sum3 = mf(adata[0], bdata[0][j]);
  13532. for (var i2 = 1; i2 < alength; i2++) {
  13533. sum3 = af(sum3, mf(adata[i2], bdata[i2][j]));
  13534. }
  13535. c[j] = sum3;
  13536. }
  13537. return a.createDenseMatrix({
  13538. data: c,
  13539. size: [bcolumns],
  13540. datatype: dt
  13541. });
  13542. }
  13543. var _multiplyMatrixVector = typed2("_multiplyMatrixVector", {
  13544. "DenseMatrix, any": _multiplyDenseMatrixVector,
  13545. "SparseMatrix, any": _multiplySparseMatrixVector
  13546. });
  13547. var _multiplyMatrixMatrix = typed2("_multiplyMatrixMatrix", {
  13548. "DenseMatrix, DenseMatrix": _multiplyDenseMatrixDenseMatrix,
  13549. "DenseMatrix, SparseMatrix": _multiplyDenseMatrixSparseMatrix,
  13550. "SparseMatrix, DenseMatrix": _multiplySparseMatrixDenseMatrix,
  13551. "SparseMatrix, SparseMatrix": _multiplySparseMatrixSparseMatrix
  13552. });
  13553. function _multiplyDenseMatrixVector(a, b) {
  13554. var adata = a._data;
  13555. var asize = a._size;
  13556. var adt = a._datatype;
  13557. var bdata = b._data;
  13558. var bdt = b._datatype;
  13559. var arows = asize[0];
  13560. var acolumns = asize[1];
  13561. var dt;
  13562. var af = addScalar2;
  13563. var mf = multiplyScalar2;
  13564. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13565. dt = adt;
  13566. af = typed2.find(addScalar2, [dt, dt]);
  13567. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13568. }
  13569. var c = [];
  13570. for (var i2 = 0; i2 < arows; i2++) {
  13571. var row2 = adata[i2];
  13572. var sum3 = mf(row2[0], bdata[0]);
  13573. for (var j = 1; j < acolumns; j++) {
  13574. sum3 = af(sum3, mf(row2[j], bdata[j]));
  13575. }
  13576. c[i2] = sum3;
  13577. }
  13578. return a.createDenseMatrix({
  13579. data: c,
  13580. size: [arows],
  13581. datatype: dt
  13582. });
  13583. }
  13584. function _multiplyDenseMatrixDenseMatrix(a, b) {
  13585. var adata = a._data;
  13586. var asize = a._size;
  13587. var adt = a._datatype;
  13588. var bdata = b._data;
  13589. var bsize = b._size;
  13590. var bdt = b._datatype;
  13591. var arows = asize[0];
  13592. var acolumns = asize[1];
  13593. var bcolumns = bsize[1];
  13594. var dt;
  13595. var af = addScalar2;
  13596. var mf = multiplyScalar2;
  13597. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13598. dt = adt;
  13599. af = typed2.find(addScalar2, [dt, dt]);
  13600. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13601. }
  13602. var c = [];
  13603. for (var i2 = 0; i2 < arows; i2++) {
  13604. var row2 = adata[i2];
  13605. c[i2] = [];
  13606. for (var j = 0; j < bcolumns; j++) {
  13607. var sum3 = mf(row2[0], bdata[0][j]);
  13608. for (var x = 1; x < acolumns; x++) {
  13609. sum3 = af(sum3, mf(row2[x], bdata[x][j]));
  13610. }
  13611. c[i2][j] = sum3;
  13612. }
  13613. }
  13614. return a.createDenseMatrix({
  13615. data: c,
  13616. size: [arows, bcolumns],
  13617. datatype: dt
  13618. });
  13619. }
  13620. function _multiplyDenseMatrixSparseMatrix(a, b) {
  13621. var adata = a._data;
  13622. var asize = a._size;
  13623. var adt = a._datatype;
  13624. var bvalues = b._values;
  13625. var bindex = b._index;
  13626. var bptr = b._ptr;
  13627. var bsize = b._size;
  13628. var bdt = b._datatype;
  13629. if (!bvalues) {
  13630. throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");
  13631. }
  13632. var arows = asize[0];
  13633. var bcolumns = bsize[1];
  13634. var dt;
  13635. var af = addScalar2;
  13636. var mf = multiplyScalar2;
  13637. var eq = equalScalar2;
  13638. var zero = 0;
  13639. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13640. dt = adt;
  13641. af = typed2.find(addScalar2, [dt, dt]);
  13642. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13643. eq = typed2.find(equalScalar2, [dt, dt]);
  13644. zero = typed2.convert(0, dt);
  13645. }
  13646. var cvalues = [];
  13647. var cindex = [];
  13648. var cptr = [];
  13649. var c = b.createSparseMatrix({
  13650. values: cvalues,
  13651. index: cindex,
  13652. ptr: cptr,
  13653. size: [arows, bcolumns],
  13654. datatype: dt
  13655. });
  13656. for (var jb = 0; jb < bcolumns; jb++) {
  13657. cptr[jb] = cindex.length;
  13658. var kb0 = bptr[jb];
  13659. var kb1 = bptr[jb + 1];
  13660. if (kb1 > kb0) {
  13661. var last = 0;
  13662. for (var i2 = 0; i2 < arows; i2++) {
  13663. var mark = i2 + 1;
  13664. var cij = void 0;
  13665. for (var kb = kb0; kb < kb1; kb++) {
  13666. var ib = bindex[kb];
  13667. if (last !== mark) {
  13668. cij = mf(adata[i2][ib], bvalues[kb]);
  13669. last = mark;
  13670. } else {
  13671. cij = af(cij, mf(adata[i2][ib], bvalues[kb]));
  13672. }
  13673. }
  13674. if (last === mark && !eq(cij, zero)) {
  13675. cindex.push(i2);
  13676. cvalues.push(cij);
  13677. }
  13678. }
  13679. }
  13680. }
  13681. cptr[bcolumns] = cindex.length;
  13682. return c;
  13683. }
  13684. function _multiplySparseMatrixVector(a, b) {
  13685. var avalues = a._values;
  13686. var aindex = a._index;
  13687. var aptr = a._ptr;
  13688. var adt = a._datatype;
  13689. if (!avalues) {
  13690. throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");
  13691. }
  13692. var bdata = b._data;
  13693. var bdt = b._datatype;
  13694. var arows = a._size[0];
  13695. var brows = b._size[0];
  13696. var cvalues = [];
  13697. var cindex = [];
  13698. var cptr = [];
  13699. var dt;
  13700. var af = addScalar2;
  13701. var mf = multiplyScalar2;
  13702. var eq = equalScalar2;
  13703. var zero = 0;
  13704. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13705. dt = adt;
  13706. af = typed2.find(addScalar2, [dt, dt]);
  13707. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13708. eq = typed2.find(equalScalar2, [dt, dt]);
  13709. zero = typed2.convert(0, dt);
  13710. }
  13711. var x = [];
  13712. var w = [];
  13713. cptr[0] = 0;
  13714. for (var ib = 0; ib < brows; ib++) {
  13715. var vbi = bdata[ib];
  13716. if (!eq(vbi, zero)) {
  13717. for (var ka0 = aptr[ib], ka1 = aptr[ib + 1], ka = ka0; ka < ka1; ka++) {
  13718. var ia = aindex[ka];
  13719. if (!w[ia]) {
  13720. w[ia] = true;
  13721. cindex.push(ia);
  13722. x[ia] = mf(vbi, avalues[ka]);
  13723. } else {
  13724. x[ia] = af(x[ia], mf(vbi, avalues[ka]));
  13725. }
  13726. }
  13727. }
  13728. }
  13729. for (var p1 = cindex.length, p = 0; p < p1; p++) {
  13730. var ic = cindex[p];
  13731. cvalues[p] = x[ic];
  13732. }
  13733. cptr[1] = cindex.length;
  13734. return a.createSparseMatrix({
  13735. values: cvalues,
  13736. index: cindex,
  13737. ptr: cptr,
  13738. size: [arows, 1],
  13739. datatype: dt
  13740. });
  13741. }
  13742. function _multiplySparseMatrixDenseMatrix(a, b) {
  13743. var avalues = a._values;
  13744. var aindex = a._index;
  13745. var aptr = a._ptr;
  13746. var adt = a._datatype;
  13747. if (!avalues) {
  13748. throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");
  13749. }
  13750. var bdata = b._data;
  13751. var bdt = b._datatype;
  13752. var arows = a._size[0];
  13753. var brows = b._size[0];
  13754. var bcolumns = b._size[1];
  13755. var dt;
  13756. var af = addScalar2;
  13757. var mf = multiplyScalar2;
  13758. var eq = equalScalar2;
  13759. var zero = 0;
  13760. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13761. dt = adt;
  13762. af = typed2.find(addScalar2, [dt, dt]);
  13763. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13764. eq = typed2.find(equalScalar2, [dt, dt]);
  13765. zero = typed2.convert(0, dt);
  13766. }
  13767. var cvalues = [];
  13768. var cindex = [];
  13769. var cptr = [];
  13770. var c = a.createSparseMatrix({
  13771. values: cvalues,
  13772. index: cindex,
  13773. ptr: cptr,
  13774. size: [arows, bcolumns],
  13775. datatype: dt
  13776. });
  13777. var x = [];
  13778. var w = [];
  13779. for (var jb = 0; jb < bcolumns; jb++) {
  13780. cptr[jb] = cindex.length;
  13781. var mark = jb + 1;
  13782. for (var ib = 0; ib < brows; ib++) {
  13783. var vbij = bdata[ib][jb];
  13784. if (!eq(vbij, zero)) {
  13785. for (var ka0 = aptr[ib], ka1 = aptr[ib + 1], ka = ka0; ka < ka1; ka++) {
  13786. var ia = aindex[ka];
  13787. if (w[ia] !== mark) {
  13788. w[ia] = mark;
  13789. cindex.push(ia);
  13790. x[ia] = mf(vbij, avalues[ka]);
  13791. } else {
  13792. x[ia] = af(x[ia], mf(vbij, avalues[ka]));
  13793. }
  13794. }
  13795. }
  13796. }
  13797. for (var p0 = cptr[jb], p1 = cindex.length, p = p0; p < p1; p++) {
  13798. var ic = cindex[p];
  13799. cvalues[p] = x[ic];
  13800. }
  13801. }
  13802. cptr[bcolumns] = cindex.length;
  13803. return c;
  13804. }
  13805. function _multiplySparseMatrixSparseMatrix(a, b) {
  13806. var avalues = a._values;
  13807. var aindex = a._index;
  13808. var aptr = a._ptr;
  13809. var adt = a._datatype;
  13810. var bvalues = b._values;
  13811. var bindex = b._index;
  13812. var bptr = b._ptr;
  13813. var bdt = b._datatype;
  13814. var arows = a._size[0];
  13815. var bcolumns = b._size[1];
  13816. var values2 = avalues && bvalues;
  13817. var dt;
  13818. var af = addScalar2;
  13819. var mf = multiplyScalar2;
  13820. if (adt && bdt && adt === bdt && typeof adt === "string") {
  13821. dt = adt;
  13822. af = typed2.find(addScalar2, [dt, dt]);
  13823. mf = typed2.find(multiplyScalar2, [dt, dt]);
  13824. }
  13825. var cvalues = values2 ? [] : void 0;
  13826. var cindex = [];
  13827. var cptr = [];
  13828. var c = a.createSparseMatrix({
  13829. values: cvalues,
  13830. index: cindex,
  13831. ptr: cptr,
  13832. size: [arows, bcolumns],
  13833. datatype: dt
  13834. });
  13835. var x = values2 ? [] : void 0;
  13836. var w = [];
  13837. var ka, ka0, ka1, kb, kb0, kb1, ia, ib;
  13838. for (var jb = 0; jb < bcolumns; jb++) {
  13839. cptr[jb] = cindex.length;
  13840. var mark = jb + 1;
  13841. for (kb0 = bptr[jb], kb1 = bptr[jb + 1], kb = kb0; kb < kb1; kb++) {
  13842. ib = bindex[kb];
  13843. if (values2) {
  13844. for (ka0 = aptr[ib], ka1 = aptr[ib + 1], ka = ka0; ka < ka1; ka++) {
  13845. ia = aindex[ka];
  13846. if (w[ia] !== mark) {
  13847. w[ia] = mark;
  13848. cindex.push(ia);
  13849. x[ia] = mf(bvalues[kb], avalues[ka]);
  13850. } else {
  13851. x[ia] = af(x[ia], mf(bvalues[kb], avalues[ka]));
  13852. }
  13853. }
  13854. } else {
  13855. for (ka0 = aptr[ib], ka1 = aptr[ib + 1], ka = ka0; ka < ka1; ka++) {
  13856. ia = aindex[ka];
  13857. if (w[ia] !== mark) {
  13858. w[ia] = mark;
  13859. cindex.push(ia);
  13860. }
  13861. }
  13862. }
  13863. }
  13864. if (values2) {
  13865. for (var p0 = cptr[jb], p1 = cindex.length, p = p0; p < p1; p++) {
  13866. var ic = cindex[p];
  13867. cvalues[p] = x[ic];
  13868. }
  13869. }
  13870. }
  13871. cptr[bcolumns] = cindex.length;
  13872. return c;
  13873. }
  13874. return typed2(name61, multiplyScalar2, {
  13875. // we extend the signatures of multiplyScalar with signatures dealing with matrices
  13876. "Array, Array": typed2.referTo("Matrix, Matrix", (selfMM) => (x, y) => {
  13877. _validateMatrixDimensions(arraySize(x), arraySize(y));
  13878. var m = selfMM(matrix2(x), matrix2(y));
  13879. return isMatrix(m) ? m.valueOf() : m;
  13880. }),
  13881. "Matrix, Matrix": function MatrixMatrix(x, y) {
  13882. var xsize = x.size();
  13883. var ysize = y.size();
  13884. _validateMatrixDimensions(xsize, ysize);
  13885. if (xsize.length === 1) {
  13886. if (ysize.length === 1) {
  13887. return _multiplyVectorVector(x, y, xsize[0]);
  13888. }
  13889. return _multiplyVectorMatrix(x, y);
  13890. }
  13891. if (ysize.length === 1) {
  13892. return _multiplyMatrixVector(x, y);
  13893. }
  13894. return _multiplyMatrixMatrix(x, y);
  13895. },
  13896. "Matrix, Array": typed2.referTo("Matrix,Matrix", (selfMM) => (x, y) => selfMM(x, matrix2(y))),
  13897. "Array, Matrix": typed2.referToSelf((self2) => (x, y) => {
  13898. return self2(matrix2(x, y.storage()), y);
  13899. }),
  13900. "SparseMatrix, any": function SparseMatrixAny(x, y) {
  13901. return matAlgo11xS0s(x, y, multiplyScalar2, false);
  13902. },
  13903. "DenseMatrix, any": function DenseMatrixAny(x, y) {
  13904. return matAlgo14xDs(x, y, multiplyScalar2, false);
  13905. },
  13906. "any, SparseMatrix": function anySparseMatrix(x, y) {
  13907. return matAlgo11xS0s(y, x, multiplyScalar2, true);
  13908. },
  13909. "any, DenseMatrix": function anyDenseMatrix(x, y) {
  13910. return matAlgo14xDs(y, x, multiplyScalar2, true);
  13911. },
  13912. "Array, any": function ArrayAny(x, y) {
  13913. return matAlgo14xDs(matrix2(x), y, multiplyScalar2, false).valueOf();
  13914. },
  13915. "any, Array": function anyArray(x, y) {
  13916. return matAlgo14xDs(matrix2(y), x, multiplyScalar2, true).valueOf();
  13917. },
  13918. "any, any": multiplyScalar2,
  13919. "any, any, ...any": typed2.referToSelf((self2) => (x, y, rest) => {
  13920. var result = self2(x, y);
  13921. for (var i2 = 0; i2 < rest.length; i2++) {
  13922. result = self2(result, rest[i2]);
  13923. }
  13924. return result;
  13925. })
  13926. });
  13927. });
  13928. // node_modules/mathjs/lib/esm/function/arithmetic/nthRoot.js
  13929. var name62 = "nthRoot";
  13930. var dependencies62 = ["typed", "matrix", "equalScalar", "BigNumber", "concat"];
  13931. var createNthRoot = factory(name62, dependencies62, (_ref) => {
  13932. var {
  13933. typed: typed2,
  13934. matrix: matrix2,
  13935. equalScalar: equalScalar2,
  13936. BigNumber: _BigNumber,
  13937. concat: concat2
  13938. } = _ref;
  13939. var matAlgo01xDSid = createMatAlgo01xDSid({
  13940. typed: typed2
  13941. });
  13942. var matAlgo02xDS0 = createMatAlgo02xDS0({
  13943. typed: typed2,
  13944. equalScalar: equalScalar2
  13945. });
  13946. var matAlgo06xS0S0 = createMatAlgo06xS0S0({
  13947. typed: typed2,
  13948. equalScalar: equalScalar2
  13949. });
  13950. var matAlgo11xS0s = createMatAlgo11xS0s({
  13951. typed: typed2,
  13952. equalScalar: equalScalar2
  13953. });
  13954. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  13955. typed: typed2,
  13956. matrix: matrix2,
  13957. concat: concat2
  13958. });
  13959. function complexErr() {
  13960. throw new Error("Complex number not supported in function nthRoot. Use nthRoots instead.");
  13961. }
  13962. return typed2(name62, {
  13963. number: nthRootNumber,
  13964. "number, number": nthRootNumber,
  13965. BigNumber: (x) => _bigNthRoot(x, new _BigNumber(2)),
  13966. "BigNumber, BigNumber": _bigNthRoot,
  13967. Complex: complexErr,
  13968. "Complex, number": complexErr,
  13969. Array: typed2.referTo("DenseMatrix,number", (selfDn) => (x) => selfDn(matrix2(x), 2).valueOf()),
  13970. DenseMatrix: typed2.referTo("DenseMatrix,number", (selfDn) => (x) => selfDn(x, 2)),
  13971. SparseMatrix: typed2.referTo("SparseMatrix,number", (selfSn) => (x) => selfSn(x, 2)),
  13972. "SparseMatrix, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  13973. if (y.density() === 1) {
  13974. return matAlgo06xS0S0(x, y, self2);
  13975. } else {
  13976. throw new Error("Root must be non-zero");
  13977. }
  13978. }),
  13979. "DenseMatrix, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  13980. if (y.density() === 1) {
  13981. return matAlgo01xDSid(x, y, self2, false);
  13982. } else {
  13983. throw new Error("Root must be non-zero");
  13984. }
  13985. }),
  13986. "Array, SparseMatrix": typed2.referTo("DenseMatrix,SparseMatrix", (selfDS) => (x, y) => selfDS(matrix2(x), y)),
  13987. "number | BigNumber, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  13988. if (y.density() === 1) {
  13989. return matAlgo11xS0s(y, x, self2, true);
  13990. } else {
  13991. throw new Error("Root must be non-zero");
  13992. }
  13993. })
  13994. }, matrixAlgorithmSuite({
  13995. scalar: "number | BigNumber",
  13996. SD: matAlgo02xDS0,
  13997. Ss: matAlgo11xS0s,
  13998. sS: false
  13999. }));
  14000. function _bigNthRoot(a, root) {
  14001. var precision = _BigNumber.precision;
  14002. var Big = _BigNumber.clone({
  14003. precision: precision + 2
  14004. });
  14005. var zero = new _BigNumber(0);
  14006. var one = new Big(1);
  14007. var inv2 = root.isNegative();
  14008. if (inv2) {
  14009. root = root.neg();
  14010. }
  14011. if (root.isZero()) {
  14012. throw new Error("Root must be non-zero");
  14013. }
  14014. if (a.isNegative() && !root.abs().mod(2).equals(1)) {
  14015. throw new Error("Root must be odd when a is negative.");
  14016. }
  14017. if (a.isZero()) {
  14018. return inv2 ? new Big(Infinity) : 0;
  14019. }
  14020. if (!a.isFinite()) {
  14021. return inv2 ? zero : a;
  14022. }
  14023. var x = a.abs().pow(one.div(root));
  14024. x = a.isNeg() ? x.neg() : x;
  14025. return new _BigNumber((inv2 ? one.div(x) : x).toPrecision(precision));
  14026. }
  14027. });
  14028. var createNthRootNumber = factory(name62, ["typed"], (_ref2) => {
  14029. var {
  14030. typed: typed2
  14031. } = _ref2;
  14032. return typed2(name62, {
  14033. number: nthRootNumber,
  14034. "number, number": nthRootNumber
  14035. });
  14036. });
  14037. // node_modules/mathjs/lib/esm/function/arithmetic/sign.js
  14038. var name63 = "sign";
  14039. var dependencies63 = ["typed", "BigNumber", "Fraction", "complex"];
  14040. var createSign = factory(name63, dependencies63, (_ref) => {
  14041. var {
  14042. typed: typed2,
  14043. BigNumber: _BigNumber,
  14044. complex: complex2,
  14045. Fraction: _Fraction
  14046. } = _ref;
  14047. return typed2(name63, {
  14048. number: signNumber,
  14049. Complex: function Complex3(x) {
  14050. return x.im === 0 ? complex2(signNumber(x.re)) : x.sign();
  14051. },
  14052. BigNumber: function BigNumber2(x) {
  14053. return new _BigNumber(x.cmp(0));
  14054. },
  14055. Fraction: function Fraction3(x) {
  14056. return new _Fraction(x.s, 1);
  14057. },
  14058. // deep map collection, skip zeros since sign(0) = 0
  14059. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2, true)),
  14060. Unit: typed2.referToSelf((self2) => (x) => {
  14061. if (!x._isDerived() && x.units[0].unit.offset !== 0) {
  14062. throw new TypeError("sign is ambiguous for units with offset");
  14063. }
  14064. return typed2.find(self2, x.valueType())(x.value);
  14065. })
  14066. });
  14067. });
  14068. // node_modules/mathjs/lib/esm/function/arithmetic/sqrt.js
  14069. var name64 = "sqrt";
  14070. var dependencies64 = ["config", "typed", "Complex"];
  14071. var createSqrt = factory(name64, dependencies64, (_ref) => {
  14072. var {
  14073. config: config4,
  14074. typed: typed2,
  14075. Complex: Complex3
  14076. } = _ref;
  14077. return typed2("sqrt", {
  14078. number: _sqrtNumber,
  14079. Complex: function Complex4(x) {
  14080. return x.sqrt();
  14081. },
  14082. BigNumber: function BigNumber2(x) {
  14083. if (!x.isNegative() || config4.predictable) {
  14084. return x.sqrt();
  14085. } else {
  14086. return _sqrtNumber(x.toNumber());
  14087. }
  14088. },
  14089. Unit: function Unit2(x) {
  14090. return x.pow(0.5);
  14091. }
  14092. });
  14093. function _sqrtNumber(x) {
  14094. if (isNaN(x)) {
  14095. return NaN;
  14096. } else if (x >= 0 || config4.predictable) {
  14097. return Math.sqrt(x);
  14098. } else {
  14099. return new Complex3(x, 0).sqrt();
  14100. }
  14101. }
  14102. });
  14103. // node_modules/mathjs/lib/esm/function/arithmetic/square.js
  14104. var name65 = "square";
  14105. var dependencies65 = ["typed"];
  14106. var createSquare = factory(name65, dependencies65, (_ref) => {
  14107. var {
  14108. typed: typed2
  14109. } = _ref;
  14110. return typed2(name65, {
  14111. number: squareNumber,
  14112. Complex: function Complex3(x) {
  14113. return x.mul(x);
  14114. },
  14115. BigNumber: function BigNumber2(x) {
  14116. return x.times(x);
  14117. },
  14118. Fraction: function Fraction3(x) {
  14119. return x.mul(x);
  14120. },
  14121. Unit: function Unit2(x) {
  14122. return x.pow(2);
  14123. }
  14124. });
  14125. });
  14126. // node_modules/mathjs/lib/esm/function/arithmetic/subtract.js
  14127. var name66 = "subtract";
  14128. var dependencies66 = ["typed", "matrix", "equalScalar", "addScalar", "unaryMinus", "DenseMatrix", "concat"];
  14129. var createSubtract = factory(name66, dependencies66, (_ref) => {
  14130. var {
  14131. typed: typed2,
  14132. matrix: matrix2,
  14133. equalScalar: equalScalar2,
  14134. addScalar: addScalar2,
  14135. unaryMinus: unaryMinus2,
  14136. DenseMatrix: DenseMatrix2,
  14137. concat: concat2
  14138. } = _ref;
  14139. var matAlgo01xDSid = createMatAlgo01xDSid({
  14140. typed: typed2
  14141. });
  14142. var matAlgo03xDSf = createMatAlgo03xDSf({
  14143. typed: typed2
  14144. });
  14145. var matAlgo05xSfSf = createMatAlgo05xSfSf({
  14146. typed: typed2,
  14147. equalScalar: equalScalar2
  14148. });
  14149. var matAlgo10xSids = createMatAlgo10xSids({
  14150. typed: typed2,
  14151. DenseMatrix: DenseMatrix2
  14152. });
  14153. var matAlgo12xSfs = createMatAlgo12xSfs({
  14154. typed: typed2,
  14155. DenseMatrix: DenseMatrix2
  14156. });
  14157. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14158. typed: typed2,
  14159. matrix: matrix2,
  14160. concat: concat2
  14161. });
  14162. return typed2(name66, {
  14163. "number, number": (x, y) => x - y,
  14164. "Complex, Complex": (x, y) => x.sub(y),
  14165. "BigNumber, BigNumber": (x, y) => x.minus(y),
  14166. "Fraction, Fraction": (x, y) => x.sub(y),
  14167. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => {
  14168. if (x.value === null) {
  14169. throw new Error("Parameter x contains a unit with undefined value");
  14170. }
  14171. if (y.value === null) {
  14172. throw new Error("Parameter y contains a unit with undefined value");
  14173. }
  14174. if (!x.equalBase(y)) {
  14175. throw new Error("Units do not match");
  14176. }
  14177. var res = x.clone();
  14178. res.value = typed2.find(self2, [res.valueType(), y.valueType()])(res.value, y.value);
  14179. res.fixPrefix = false;
  14180. return res;
  14181. })
  14182. }, matrixAlgorithmSuite({
  14183. SS: matAlgo05xSfSf,
  14184. DS: matAlgo01xDSid,
  14185. SD: matAlgo03xDSf,
  14186. Ss: matAlgo12xSfs,
  14187. sS: matAlgo10xSids
  14188. }));
  14189. });
  14190. // node_modules/mathjs/lib/esm/function/arithmetic/xgcd.js
  14191. var name67 = "xgcd";
  14192. var dependencies67 = ["typed", "config", "matrix", "BigNumber"];
  14193. var createXgcd = factory(name67, dependencies67, (_ref) => {
  14194. var {
  14195. typed: typed2,
  14196. config: config4,
  14197. matrix: matrix2,
  14198. BigNumber: BigNumber2
  14199. } = _ref;
  14200. return typed2(name67, {
  14201. "number, number": function numberNumber(a, b) {
  14202. var res = xgcdNumber(a, b);
  14203. return config4.matrix === "Array" ? res : matrix2(res);
  14204. },
  14205. "BigNumber, BigNumber": _xgcdBigNumber
  14206. // TODO: implement support for Fraction
  14207. });
  14208. function _xgcdBigNumber(a, b) {
  14209. var t;
  14210. var q;
  14211. var r;
  14212. var zero = new BigNumber2(0);
  14213. var one = new BigNumber2(1);
  14214. var x = zero;
  14215. var lastx = one;
  14216. var y = one;
  14217. var lasty = zero;
  14218. if (!a.isInt() || !b.isInt()) {
  14219. throw new Error("Parameters in function xgcd must be integer numbers");
  14220. }
  14221. while (!b.isZero()) {
  14222. q = a.div(b).floor();
  14223. r = a.mod(b);
  14224. t = x;
  14225. x = lastx.minus(q.times(x));
  14226. lastx = t;
  14227. t = y;
  14228. y = lasty.minus(q.times(y));
  14229. lasty = t;
  14230. a = b;
  14231. b = r;
  14232. }
  14233. var res;
  14234. if (a.lt(zero)) {
  14235. res = [a.neg(), lastx.neg(), lasty.neg()];
  14236. } else {
  14237. res = [a, !a.isZero() ? lastx : 0, lasty];
  14238. }
  14239. return config4.matrix === "Array" ? res : matrix2(res);
  14240. }
  14241. });
  14242. // node_modules/mathjs/lib/esm/function/arithmetic/invmod.js
  14243. var name68 = "invmod";
  14244. var dependencies68 = ["typed", "config", "BigNumber", "xgcd", "equal", "smaller", "mod", "add", "isInteger"];
  14245. var createInvmod = factory(name68, dependencies68, (_ref) => {
  14246. var {
  14247. typed: typed2,
  14248. config: config4,
  14249. BigNumber: BigNumber2,
  14250. xgcd: xgcd2,
  14251. equal: equal2,
  14252. smaller: smaller2,
  14253. mod: mod3,
  14254. add: add3,
  14255. isInteger: isInteger3
  14256. } = _ref;
  14257. return typed2(name68, {
  14258. "number, number": invmod2,
  14259. "BigNumber, BigNumber": invmod2
  14260. });
  14261. function invmod2(a, b) {
  14262. if (!isInteger3(a) || !isInteger3(b))
  14263. throw new Error("Parameters in function invmod must be integer numbers");
  14264. a = mod3(a, b);
  14265. if (equal2(b, 0))
  14266. throw new Error("Divisor must be non zero");
  14267. var res = xgcd2(a, b);
  14268. res = res.valueOf();
  14269. var [gcd2, inv2] = res;
  14270. if (!equal2(gcd2, BigNumber2(1)))
  14271. return NaN;
  14272. inv2 = mod3(inv2, b);
  14273. if (smaller2(inv2, BigNumber2(0)))
  14274. inv2 = add3(inv2, b);
  14275. return inv2;
  14276. }
  14277. });
  14278. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo09xS0Sf.js
  14279. var name69 = "matAlgo09xS0Sf";
  14280. var dependencies69 = ["typed", "equalScalar"];
  14281. var createMatAlgo09xS0Sf = factory(name69, dependencies69, (_ref) => {
  14282. var {
  14283. typed: typed2,
  14284. equalScalar: equalScalar2
  14285. } = _ref;
  14286. return function matAlgo09xS0Sf(a, b, callback) {
  14287. var avalues = a._values;
  14288. var aindex = a._index;
  14289. var aptr = a._ptr;
  14290. var asize = a._size;
  14291. var adt = a._datatype;
  14292. var bvalues = b._values;
  14293. var bindex = b._index;
  14294. var bptr = b._ptr;
  14295. var bsize = b._size;
  14296. var bdt = b._datatype;
  14297. if (asize.length !== bsize.length) {
  14298. throw new DimensionError(asize.length, bsize.length);
  14299. }
  14300. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  14301. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  14302. }
  14303. var rows = asize[0];
  14304. var columns = asize[1];
  14305. var dt;
  14306. var eq = equalScalar2;
  14307. var zero = 0;
  14308. var cf = callback;
  14309. if (typeof adt === "string" && adt === bdt) {
  14310. dt = adt;
  14311. eq = typed2.find(equalScalar2, [dt, dt]);
  14312. zero = typed2.convert(0, dt);
  14313. cf = typed2.find(callback, [dt, dt]);
  14314. }
  14315. var cvalues = avalues && bvalues ? [] : void 0;
  14316. var cindex = [];
  14317. var cptr = [];
  14318. var x = cvalues ? [] : void 0;
  14319. var w = [];
  14320. var i2, j, k, k0, k1;
  14321. for (j = 0; j < columns; j++) {
  14322. cptr[j] = cindex.length;
  14323. var mark = j + 1;
  14324. if (x) {
  14325. for (k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  14326. i2 = bindex[k];
  14327. w[i2] = mark;
  14328. x[i2] = bvalues[k];
  14329. }
  14330. }
  14331. for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  14332. i2 = aindex[k];
  14333. if (x) {
  14334. var vb = w[i2] === mark ? x[i2] : zero;
  14335. var vc = cf(avalues[k], vb);
  14336. if (!eq(vc, zero)) {
  14337. cindex.push(i2);
  14338. cvalues.push(vc);
  14339. }
  14340. } else {
  14341. cindex.push(i2);
  14342. }
  14343. }
  14344. }
  14345. cptr[columns] = cindex.length;
  14346. return a.createSparseMatrix({
  14347. values: cvalues,
  14348. index: cindex,
  14349. ptr: cptr,
  14350. size: [rows, columns],
  14351. datatype: dt
  14352. });
  14353. };
  14354. });
  14355. // node_modules/mathjs/lib/esm/function/arithmetic/dotMultiply.js
  14356. var name70 = "dotMultiply";
  14357. var dependencies70 = ["typed", "matrix", "equalScalar", "multiplyScalar", "concat"];
  14358. var createDotMultiply = factory(name70, dependencies70, (_ref) => {
  14359. var {
  14360. typed: typed2,
  14361. matrix: matrix2,
  14362. equalScalar: equalScalar2,
  14363. multiplyScalar: multiplyScalar2,
  14364. concat: concat2
  14365. } = _ref;
  14366. var matAlgo02xDS0 = createMatAlgo02xDS0({
  14367. typed: typed2,
  14368. equalScalar: equalScalar2
  14369. });
  14370. var matAlgo09xS0Sf = createMatAlgo09xS0Sf({
  14371. typed: typed2,
  14372. equalScalar: equalScalar2
  14373. });
  14374. var matAlgo11xS0s = createMatAlgo11xS0s({
  14375. typed: typed2,
  14376. equalScalar: equalScalar2
  14377. });
  14378. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14379. typed: typed2,
  14380. matrix: matrix2,
  14381. concat: concat2
  14382. });
  14383. return typed2(name70, matrixAlgorithmSuite({
  14384. elop: multiplyScalar2,
  14385. SS: matAlgo09xS0Sf,
  14386. DS: matAlgo02xDS0,
  14387. Ss: matAlgo11xS0s
  14388. }));
  14389. });
  14390. // node_modules/mathjs/lib/esm/utils/bignumber/bitwise.js
  14391. function bitAndBigNumber(x, y) {
  14392. if (x.isFinite() && !x.isInteger() || y.isFinite() && !y.isInteger()) {
  14393. throw new Error("Integers expected in function bitAnd");
  14394. }
  14395. var BigNumber2 = x.constructor;
  14396. if (x.isNaN() || y.isNaN()) {
  14397. return new BigNumber2(NaN);
  14398. }
  14399. if (x.isZero() || y.eq(-1) || x.eq(y)) {
  14400. return x;
  14401. }
  14402. if (y.isZero() || x.eq(-1)) {
  14403. return y;
  14404. }
  14405. if (!x.isFinite() || !y.isFinite()) {
  14406. if (!x.isFinite() && !y.isFinite()) {
  14407. if (x.isNegative() === y.isNegative()) {
  14408. return x;
  14409. }
  14410. return new BigNumber2(0);
  14411. }
  14412. if (!x.isFinite()) {
  14413. if (y.isNegative()) {
  14414. return x;
  14415. }
  14416. if (x.isNegative()) {
  14417. return new BigNumber2(0);
  14418. }
  14419. return y;
  14420. }
  14421. if (!y.isFinite()) {
  14422. if (x.isNegative()) {
  14423. return y;
  14424. }
  14425. if (y.isNegative()) {
  14426. return new BigNumber2(0);
  14427. }
  14428. return x;
  14429. }
  14430. }
  14431. return bitwise(x, y, function(a, b) {
  14432. return a & b;
  14433. });
  14434. }
  14435. function bitNotBigNumber(x) {
  14436. if (x.isFinite() && !x.isInteger()) {
  14437. throw new Error("Integer expected in function bitNot");
  14438. }
  14439. var BigNumber2 = x.constructor;
  14440. var prevPrec = BigNumber2.precision;
  14441. BigNumber2.config({
  14442. precision: 1e9
  14443. });
  14444. var result = x.plus(new BigNumber2(1));
  14445. result.s = -result.s || null;
  14446. BigNumber2.config({
  14447. precision: prevPrec
  14448. });
  14449. return result;
  14450. }
  14451. function bitOrBigNumber(x, y) {
  14452. if (x.isFinite() && !x.isInteger() || y.isFinite() && !y.isInteger()) {
  14453. throw new Error("Integers expected in function bitOr");
  14454. }
  14455. var BigNumber2 = x.constructor;
  14456. if (x.isNaN() || y.isNaN()) {
  14457. return new BigNumber2(NaN);
  14458. }
  14459. var negOne = new BigNumber2(-1);
  14460. if (x.isZero() || y.eq(negOne) || x.eq(y)) {
  14461. return y;
  14462. }
  14463. if (y.isZero() || x.eq(negOne)) {
  14464. return x;
  14465. }
  14466. if (!x.isFinite() || !y.isFinite()) {
  14467. if (!x.isFinite() && !x.isNegative() && y.isNegative() || x.isNegative() && !y.isNegative() && !y.isFinite()) {
  14468. return negOne;
  14469. }
  14470. if (x.isNegative() && y.isNegative()) {
  14471. return x.isFinite() ? x : y;
  14472. }
  14473. return x.isFinite() ? y : x;
  14474. }
  14475. return bitwise(x, y, function(a, b) {
  14476. return a | b;
  14477. });
  14478. }
  14479. function bitwise(x, y, func) {
  14480. var BigNumber2 = x.constructor;
  14481. var xBits, yBits;
  14482. var xSign = +(x.s < 0);
  14483. var ySign = +(y.s < 0);
  14484. if (xSign) {
  14485. xBits = decCoefficientToBinaryString(bitNotBigNumber(x));
  14486. for (var i2 = 0; i2 < xBits.length; ++i2) {
  14487. xBits[i2] ^= 1;
  14488. }
  14489. } else {
  14490. xBits = decCoefficientToBinaryString(x);
  14491. }
  14492. if (ySign) {
  14493. yBits = decCoefficientToBinaryString(bitNotBigNumber(y));
  14494. for (var _i = 0; _i < yBits.length; ++_i) {
  14495. yBits[_i] ^= 1;
  14496. }
  14497. } else {
  14498. yBits = decCoefficientToBinaryString(y);
  14499. }
  14500. var minBits, maxBits, minSign;
  14501. if (xBits.length <= yBits.length) {
  14502. minBits = xBits;
  14503. maxBits = yBits;
  14504. minSign = xSign;
  14505. } else {
  14506. minBits = yBits;
  14507. maxBits = xBits;
  14508. minSign = ySign;
  14509. }
  14510. var shortLen = minBits.length;
  14511. var longLen = maxBits.length;
  14512. var expFuncVal = func(xSign, ySign) ^ 1;
  14513. var outVal = new BigNumber2(expFuncVal ^ 1);
  14514. var twoPower = new BigNumber2(1);
  14515. var two = new BigNumber2(2);
  14516. var prevPrec = BigNumber2.precision;
  14517. BigNumber2.config({
  14518. precision: 1e9
  14519. });
  14520. while (shortLen > 0) {
  14521. if (func(minBits[--shortLen], maxBits[--longLen]) === expFuncVal) {
  14522. outVal = outVal.plus(twoPower);
  14523. }
  14524. twoPower = twoPower.times(two);
  14525. }
  14526. while (longLen > 0) {
  14527. if (func(minSign, maxBits[--longLen]) === expFuncVal) {
  14528. outVal = outVal.plus(twoPower);
  14529. }
  14530. twoPower = twoPower.times(two);
  14531. }
  14532. BigNumber2.config({
  14533. precision: prevPrec
  14534. });
  14535. if (expFuncVal === 0) {
  14536. outVal.s = -outVal.s;
  14537. }
  14538. return outVal;
  14539. }
  14540. function decCoefficientToBinaryString(x) {
  14541. var a = x.d;
  14542. var r = a[0] + "";
  14543. for (var i2 = 1; i2 < a.length; ++i2) {
  14544. var s = a[i2] + "";
  14545. for (var z = 7 - s.length; z--; ) {
  14546. s = "0" + s;
  14547. }
  14548. r += s;
  14549. }
  14550. var j = r.length;
  14551. while (r.charAt(j) === "0") {
  14552. j--;
  14553. }
  14554. var xe = x.e;
  14555. var str = r.slice(0, j + 1 || 1);
  14556. var strL = str.length;
  14557. if (xe > 0) {
  14558. if (++xe > strL) {
  14559. xe -= strL;
  14560. while (xe--) {
  14561. str += "0";
  14562. }
  14563. } else if (xe < strL) {
  14564. str = str.slice(0, xe) + "." + str.slice(xe);
  14565. }
  14566. }
  14567. var arr = [0];
  14568. for (var _i2 = 0; _i2 < str.length; ) {
  14569. var arrL = arr.length;
  14570. while (arrL--) {
  14571. arr[arrL] *= 10;
  14572. }
  14573. arr[0] += parseInt(str.charAt(_i2++));
  14574. for (var _j = 0; _j < arr.length; ++_j) {
  14575. if (arr[_j] > 1) {
  14576. if (arr[_j + 1] === null || arr[_j + 1] === void 0) {
  14577. arr[_j + 1] = 0;
  14578. }
  14579. arr[_j + 1] += arr[_j] >> 1;
  14580. arr[_j] &= 1;
  14581. }
  14582. }
  14583. }
  14584. return arr.reverse();
  14585. }
  14586. function bitXor(x, y) {
  14587. if (x.isFinite() && !x.isInteger() || y.isFinite() && !y.isInteger()) {
  14588. throw new Error("Integers expected in function bitXor");
  14589. }
  14590. var BigNumber2 = x.constructor;
  14591. if (x.isNaN() || y.isNaN()) {
  14592. return new BigNumber2(NaN);
  14593. }
  14594. if (x.isZero()) {
  14595. return y;
  14596. }
  14597. if (y.isZero()) {
  14598. return x;
  14599. }
  14600. if (x.eq(y)) {
  14601. return new BigNumber2(0);
  14602. }
  14603. var negOne = new BigNumber2(-1);
  14604. if (x.eq(negOne)) {
  14605. return bitNotBigNumber(y);
  14606. }
  14607. if (y.eq(negOne)) {
  14608. return bitNotBigNumber(x);
  14609. }
  14610. if (!x.isFinite() || !y.isFinite()) {
  14611. if (!x.isFinite() && !y.isFinite()) {
  14612. return negOne;
  14613. }
  14614. return new BigNumber2(x.isNegative() === y.isNegative() ? Infinity : -Infinity);
  14615. }
  14616. return bitwise(x, y, function(a, b) {
  14617. return a ^ b;
  14618. });
  14619. }
  14620. function leftShiftBigNumber(x, y) {
  14621. if (x.isFinite() && !x.isInteger() || y.isFinite() && !y.isInteger()) {
  14622. throw new Error("Integers expected in function leftShift");
  14623. }
  14624. var BigNumber2 = x.constructor;
  14625. if (x.isNaN() || y.isNaN() || y.isNegative() && !y.isZero()) {
  14626. return new BigNumber2(NaN);
  14627. }
  14628. if (x.isZero() || y.isZero()) {
  14629. return x;
  14630. }
  14631. if (!x.isFinite() && !y.isFinite()) {
  14632. return new BigNumber2(NaN);
  14633. }
  14634. if (y.lt(55)) {
  14635. return x.times(Math.pow(2, y.toNumber()) + "");
  14636. }
  14637. return x.times(new BigNumber2(2).pow(y));
  14638. }
  14639. function rightArithShiftBigNumber(x, y) {
  14640. if (x.isFinite() && !x.isInteger() || y.isFinite() && !y.isInteger()) {
  14641. throw new Error("Integers expected in function rightArithShift");
  14642. }
  14643. var BigNumber2 = x.constructor;
  14644. if (x.isNaN() || y.isNaN() || y.isNegative() && !y.isZero()) {
  14645. return new BigNumber2(NaN);
  14646. }
  14647. if (x.isZero() || y.isZero()) {
  14648. return x;
  14649. }
  14650. if (!y.isFinite()) {
  14651. if (x.isNegative()) {
  14652. return new BigNumber2(-1);
  14653. }
  14654. if (!x.isFinite()) {
  14655. return new BigNumber2(NaN);
  14656. }
  14657. return new BigNumber2(0);
  14658. }
  14659. if (y.lt(55)) {
  14660. return x.div(Math.pow(2, y.toNumber()) + "").floor();
  14661. }
  14662. return x.div(new BigNumber2(2).pow(y)).floor();
  14663. }
  14664. // node_modules/mathjs/lib/esm/function/bitwise/bitAnd.js
  14665. var name71 = "bitAnd";
  14666. var dependencies71 = ["typed", "matrix", "equalScalar", "concat"];
  14667. var createBitAnd = factory(name71, dependencies71, (_ref) => {
  14668. var {
  14669. typed: typed2,
  14670. matrix: matrix2,
  14671. equalScalar: equalScalar2,
  14672. concat: concat2
  14673. } = _ref;
  14674. var matAlgo02xDS0 = createMatAlgo02xDS0({
  14675. typed: typed2,
  14676. equalScalar: equalScalar2
  14677. });
  14678. var matAlgo06xS0S0 = createMatAlgo06xS0S0({
  14679. typed: typed2,
  14680. equalScalar: equalScalar2
  14681. });
  14682. var matAlgo11xS0s = createMatAlgo11xS0s({
  14683. typed: typed2,
  14684. equalScalar: equalScalar2
  14685. });
  14686. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14687. typed: typed2,
  14688. matrix: matrix2,
  14689. concat: concat2
  14690. });
  14691. return typed2(name71, {
  14692. "number, number": bitAndNumber,
  14693. "BigNumber, BigNumber": bitAndBigNumber
  14694. }, matrixAlgorithmSuite({
  14695. SS: matAlgo06xS0S0,
  14696. DS: matAlgo02xDS0,
  14697. Ss: matAlgo11xS0s
  14698. }));
  14699. });
  14700. // node_modules/mathjs/lib/esm/function/bitwise/bitNot.js
  14701. var name72 = "bitNot";
  14702. var dependencies72 = ["typed"];
  14703. var createBitNot = factory(name72, dependencies72, (_ref) => {
  14704. var {
  14705. typed: typed2
  14706. } = _ref;
  14707. return typed2(name72, {
  14708. number: bitNotNumber,
  14709. BigNumber: bitNotBigNumber,
  14710. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14711. });
  14712. });
  14713. // node_modules/mathjs/lib/esm/function/bitwise/bitOr.js
  14714. var name73 = "bitOr";
  14715. var dependencies73 = ["typed", "matrix", "equalScalar", "DenseMatrix", "concat"];
  14716. var createBitOr = factory(name73, dependencies73, (_ref) => {
  14717. var {
  14718. typed: typed2,
  14719. matrix: matrix2,
  14720. equalScalar: equalScalar2,
  14721. DenseMatrix: DenseMatrix2,
  14722. concat: concat2
  14723. } = _ref;
  14724. var matAlgo01xDSid = createMatAlgo01xDSid({
  14725. typed: typed2
  14726. });
  14727. var matAlgo04xSidSid = createMatAlgo04xSidSid({
  14728. typed: typed2,
  14729. equalScalar: equalScalar2
  14730. });
  14731. var matAlgo10xSids = createMatAlgo10xSids({
  14732. typed: typed2,
  14733. DenseMatrix: DenseMatrix2
  14734. });
  14735. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14736. typed: typed2,
  14737. matrix: matrix2,
  14738. concat: concat2
  14739. });
  14740. return typed2(name73, {
  14741. "number, number": bitOrNumber,
  14742. "BigNumber, BigNumber": bitOrBigNumber
  14743. }, matrixAlgorithmSuite({
  14744. SS: matAlgo04xSidSid,
  14745. DS: matAlgo01xDSid,
  14746. Ss: matAlgo10xSids
  14747. }));
  14748. });
  14749. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo07xSSf.js
  14750. var name74 = "matAlgo07xSSf";
  14751. var dependencies74 = ["typed", "DenseMatrix"];
  14752. var createMatAlgo07xSSf = factory(name74, dependencies74, (_ref) => {
  14753. var {
  14754. typed: typed2,
  14755. DenseMatrix: DenseMatrix2
  14756. } = _ref;
  14757. return function matAlgo07xSSf(a, b, callback) {
  14758. var asize = a._size;
  14759. var adt = a._datatype;
  14760. var bsize = b._size;
  14761. var bdt = b._datatype;
  14762. if (asize.length !== bsize.length) {
  14763. throw new DimensionError(asize.length, bsize.length);
  14764. }
  14765. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  14766. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  14767. }
  14768. var rows = asize[0];
  14769. var columns = asize[1];
  14770. var dt;
  14771. var zero = 0;
  14772. var cf = callback;
  14773. if (typeof adt === "string" && adt === bdt) {
  14774. dt = adt;
  14775. zero = typed2.convert(0, dt);
  14776. cf = typed2.find(callback, [dt, dt]);
  14777. }
  14778. var i2, j;
  14779. var cdata = [];
  14780. for (i2 = 0; i2 < rows; i2++) {
  14781. cdata[i2] = [];
  14782. }
  14783. var xa = [];
  14784. var xb = [];
  14785. var wa = [];
  14786. var wb = [];
  14787. for (j = 0; j < columns; j++) {
  14788. var mark = j + 1;
  14789. _scatter(a, j, wa, xa, mark);
  14790. _scatter(b, j, wb, xb, mark);
  14791. for (i2 = 0; i2 < rows; i2++) {
  14792. var va = wa[i2] === mark ? xa[i2] : zero;
  14793. var vb = wb[i2] === mark ? xb[i2] : zero;
  14794. cdata[i2][j] = cf(va, vb);
  14795. }
  14796. }
  14797. return new DenseMatrix2({
  14798. data: cdata,
  14799. size: [rows, columns],
  14800. datatype: dt
  14801. });
  14802. };
  14803. function _scatter(m, j, w, x, mark) {
  14804. var values2 = m._values;
  14805. var index2 = m._index;
  14806. var ptr = m._ptr;
  14807. for (var k = ptr[j], k1 = ptr[j + 1]; k < k1; k++) {
  14808. var i2 = index2[k];
  14809. w[i2] = mark;
  14810. x[i2] = values2[k];
  14811. }
  14812. }
  14813. });
  14814. // node_modules/mathjs/lib/esm/function/bitwise/bitXor.js
  14815. var name75 = "bitXor";
  14816. var dependencies75 = ["typed", "matrix", "DenseMatrix", "concat"];
  14817. var createBitXor = factory(name75, dependencies75, (_ref) => {
  14818. var {
  14819. typed: typed2,
  14820. matrix: matrix2,
  14821. DenseMatrix: DenseMatrix2,
  14822. concat: concat2
  14823. } = _ref;
  14824. var matAlgo03xDSf = createMatAlgo03xDSf({
  14825. typed: typed2
  14826. });
  14827. var matAlgo07xSSf = createMatAlgo07xSSf({
  14828. typed: typed2,
  14829. DenseMatrix: DenseMatrix2
  14830. });
  14831. var matAlgo12xSfs = createMatAlgo12xSfs({
  14832. typed: typed2,
  14833. DenseMatrix: DenseMatrix2
  14834. });
  14835. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14836. typed: typed2,
  14837. matrix: matrix2,
  14838. concat: concat2
  14839. });
  14840. return typed2(name75, {
  14841. "number, number": bitXorNumber,
  14842. "BigNumber, BigNumber": bitXor
  14843. }, matrixAlgorithmSuite({
  14844. SS: matAlgo07xSSf,
  14845. DS: matAlgo03xDSf,
  14846. Ss: matAlgo12xSfs
  14847. }));
  14848. });
  14849. // node_modules/mathjs/lib/esm/function/complex/arg.js
  14850. var name76 = "arg";
  14851. var dependencies76 = ["typed"];
  14852. var createArg = factory(name76, dependencies76, (_ref) => {
  14853. var {
  14854. typed: typed2
  14855. } = _ref;
  14856. return typed2(name76, {
  14857. number: function number2(x) {
  14858. return Math.atan2(0, x);
  14859. },
  14860. BigNumber: function BigNumber2(x) {
  14861. return x.constructor.atan2(0, x);
  14862. },
  14863. Complex: function Complex3(x) {
  14864. return x.arg();
  14865. },
  14866. // TODO: implement BigNumber support for function arg
  14867. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14868. });
  14869. });
  14870. // node_modules/mathjs/lib/esm/function/complex/conj.js
  14871. var name77 = "conj";
  14872. var dependencies77 = ["typed"];
  14873. var createConj = factory(name77, dependencies77, (_ref) => {
  14874. var {
  14875. typed: typed2
  14876. } = _ref;
  14877. return typed2(name77, {
  14878. "number | BigNumber | Fraction": (x) => x,
  14879. Complex: (x) => x.conjugate(),
  14880. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14881. });
  14882. });
  14883. // node_modules/mathjs/lib/esm/function/complex/im.js
  14884. var name78 = "im";
  14885. var dependencies78 = ["typed"];
  14886. var createIm = factory(name78, dependencies78, (_ref) => {
  14887. var {
  14888. typed: typed2
  14889. } = _ref;
  14890. return typed2(name78, {
  14891. number: () => 0,
  14892. "BigNumber | Fraction": (x) => x.mul(0),
  14893. Complex: (x) => x.im,
  14894. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14895. });
  14896. });
  14897. // node_modules/mathjs/lib/esm/function/complex/re.js
  14898. var name79 = "re";
  14899. var dependencies79 = ["typed"];
  14900. var createRe = factory(name79, dependencies79, (_ref) => {
  14901. var {
  14902. typed: typed2
  14903. } = _ref;
  14904. return typed2(name79, {
  14905. "number | BigNumber | Fraction": (x) => x,
  14906. Complex: (x) => x.re,
  14907. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14908. });
  14909. });
  14910. // node_modules/mathjs/lib/esm/function/logical/not.js
  14911. var name80 = "not";
  14912. var dependencies80 = ["typed"];
  14913. var createNot = factory(name80, dependencies80, (_ref) => {
  14914. var {
  14915. typed: typed2
  14916. } = _ref;
  14917. return typed2(name80, {
  14918. "null | undefined": () => true,
  14919. number: notNumber,
  14920. Complex: function Complex3(x) {
  14921. return x.re === 0 && x.im === 0;
  14922. },
  14923. BigNumber: function BigNumber2(x) {
  14924. return x.isZero() || x.isNaN();
  14925. },
  14926. Unit: typed2.referToSelf((self2) => (x) => typed2.find(self2, x.valueType())(x.value)),
  14927. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  14928. });
  14929. });
  14930. // node_modules/mathjs/lib/esm/function/logical/or.js
  14931. var name81 = "or";
  14932. var dependencies81 = ["typed", "matrix", "equalScalar", "DenseMatrix", "concat"];
  14933. var createOr = factory(name81, dependencies81, (_ref) => {
  14934. var {
  14935. typed: typed2,
  14936. matrix: matrix2,
  14937. equalScalar: equalScalar2,
  14938. DenseMatrix: DenseMatrix2,
  14939. concat: concat2
  14940. } = _ref;
  14941. var matAlgo03xDSf = createMatAlgo03xDSf({
  14942. typed: typed2
  14943. });
  14944. var matAlgo05xSfSf = createMatAlgo05xSfSf({
  14945. typed: typed2,
  14946. equalScalar: equalScalar2
  14947. });
  14948. var matAlgo12xSfs = createMatAlgo12xSfs({
  14949. typed: typed2,
  14950. DenseMatrix: DenseMatrix2
  14951. });
  14952. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14953. typed: typed2,
  14954. matrix: matrix2,
  14955. concat: concat2
  14956. });
  14957. return typed2(name81, {
  14958. "number, number": orNumber,
  14959. "Complex, Complex": function ComplexComplex(x, y) {
  14960. return x.re !== 0 || x.im !== 0 || y.re !== 0 || y.im !== 0;
  14961. },
  14962. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  14963. return !x.isZero() && !x.isNaN() || !y.isZero() && !y.isNaN();
  14964. },
  14965. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => self2(x.value || 0, y.value || 0))
  14966. }, matrixAlgorithmSuite({
  14967. SS: matAlgo05xSfSf,
  14968. DS: matAlgo03xDSf,
  14969. Ss: matAlgo12xSfs
  14970. }));
  14971. });
  14972. // node_modules/mathjs/lib/esm/function/logical/xor.js
  14973. var name82 = "xor";
  14974. var dependencies82 = ["typed", "matrix", "DenseMatrix", "concat"];
  14975. var createXor = factory(name82, dependencies82, (_ref) => {
  14976. var {
  14977. typed: typed2,
  14978. matrix: matrix2,
  14979. DenseMatrix: DenseMatrix2,
  14980. concat: concat2
  14981. } = _ref;
  14982. var matAlgo03xDSf = createMatAlgo03xDSf({
  14983. typed: typed2
  14984. });
  14985. var matAlgo07xSSf = createMatAlgo07xSSf({
  14986. typed: typed2,
  14987. DenseMatrix: DenseMatrix2
  14988. });
  14989. var matAlgo12xSfs = createMatAlgo12xSfs({
  14990. typed: typed2,
  14991. DenseMatrix: DenseMatrix2
  14992. });
  14993. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  14994. typed: typed2,
  14995. matrix: matrix2,
  14996. concat: concat2
  14997. });
  14998. return typed2(name82, {
  14999. "number, number": xorNumber,
  15000. "Complex, Complex": function ComplexComplex(x, y) {
  15001. return (x.re !== 0 || x.im !== 0) !== (y.re !== 0 || y.im !== 0);
  15002. },
  15003. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  15004. return (!x.isZero() && !x.isNaN()) !== (!y.isZero() && !y.isNaN());
  15005. },
  15006. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => self2(x.value || 0, y.value || 0))
  15007. }, matrixAlgorithmSuite({
  15008. SS: matAlgo07xSSf,
  15009. DS: matAlgo03xDSf,
  15010. Ss: matAlgo12xSfs
  15011. }));
  15012. });
  15013. // node_modules/mathjs/lib/esm/function/matrix/concat.js
  15014. var name83 = "concat";
  15015. var dependencies83 = ["typed", "matrix", "isInteger"];
  15016. var createConcat = factory(name83, dependencies83, (_ref) => {
  15017. var {
  15018. typed: typed2,
  15019. matrix: matrix2,
  15020. isInteger: isInteger3
  15021. } = _ref;
  15022. return typed2(name83, {
  15023. // TODO: change signature to '...Array | Matrix, dim?' when supported
  15024. "...Array | Matrix | number | BigNumber": function ArrayMatrixNumberBigNumber(args) {
  15025. var i2;
  15026. var len = args.length;
  15027. var dim = -1;
  15028. var prevDim;
  15029. var asMatrix = false;
  15030. var matrices = [];
  15031. for (i2 = 0; i2 < len; i2++) {
  15032. var arg2 = args[i2];
  15033. if (isMatrix(arg2)) {
  15034. asMatrix = true;
  15035. }
  15036. if (isNumber(arg2) || isBigNumber(arg2)) {
  15037. if (i2 !== len - 1) {
  15038. throw new Error("Dimension must be specified as last argument");
  15039. }
  15040. prevDim = dim;
  15041. dim = arg2.valueOf();
  15042. if (!isInteger3(dim)) {
  15043. throw new TypeError("Integer number expected for dimension");
  15044. }
  15045. if (dim < 0 || i2 > 0 && dim > prevDim) {
  15046. throw new IndexError(dim, prevDim + 1);
  15047. }
  15048. } else {
  15049. var m = clone(arg2).valueOf();
  15050. var size2 = arraySize(m);
  15051. matrices[i2] = m;
  15052. prevDim = dim;
  15053. dim = size2.length - 1;
  15054. if (i2 > 0 && dim !== prevDim) {
  15055. throw new DimensionError(prevDim + 1, dim + 1);
  15056. }
  15057. }
  15058. }
  15059. if (matrices.length === 0) {
  15060. throw new SyntaxError("At least one matrix expected");
  15061. }
  15062. var res = matrices.shift();
  15063. while (matrices.length) {
  15064. res = _concat(res, matrices.shift(), dim, 0);
  15065. }
  15066. return asMatrix ? matrix2(res) : res;
  15067. },
  15068. "...string": function string2(args) {
  15069. return args.join("");
  15070. }
  15071. });
  15072. });
  15073. function _concat(a, b, concatDim, dim) {
  15074. if (dim < concatDim) {
  15075. if (a.length !== b.length) {
  15076. throw new DimensionError(a.length, b.length);
  15077. }
  15078. var c = [];
  15079. for (var i2 = 0; i2 < a.length; i2++) {
  15080. c[i2] = _concat(a[i2], b[i2], concatDim, dim + 1);
  15081. }
  15082. return c;
  15083. } else {
  15084. return a.concat(b);
  15085. }
  15086. }
  15087. // node_modules/mathjs/lib/esm/function/matrix/column.js
  15088. var name84 = "column";
  15089. var dependencies84 = ["typed", "Index", "matrix", "range"];
  15090. var createColumn = factory(name84, dependencies84, (_ref) => {
  15091. var {
  15092. typed: typed2,
  15093. Index: Index2,
  15094. matrix: matrix2,
  15095. range: range2
  15096. } = _ref;
  15097. return typed2(name84, {
  15098. "Matrix, number": _column,
  15099. "Array, number": function ArrayNumber(value, column2) {
  15100. return _column(matrix2(clone(value)), column2).valueOf();
  15101. }
  15102. });
  15103. function _column(value, column2) {
  15104. if (value.size().length !== 2) {
  15105. throw new Error("Only two dimensional matrix is supported");
  15106. }
  15107. validateIndex(column2, value.size()[1]);
  15108. var rowRange = range2(0, value.size()[0]);
  15109. var index2 = new Index2(rowRange, column2);
  15110. var result = value.subset(index2);
  15111. return isMatrix(result) ? result : matrix2([[result]]);
  15112. }
  15113. });
  15114. // node_modules/mathjs/lib/esm/function/matrix/count.js
  15115. var name85 = "count";
  15116. var dependencies85 = ["typed", "size", "prod"];
  15117. var createCount = factory(name85, dependencies85, (_ref) => {
  15118. var {
  15119. typed: typed2,
  15120. size: size2,
  15121. prod: prod2
  15122. } = _ref;
  15123. return typed2(name85, {
  15124. string: function string2(x) {
  15125. return x.length;
  15126. },
  15127. "Matrix | Array": function MatrixArray(x) {
  15128. return prod2(size2(x));
  15129. }
  15130. });
  15131. });
  15132. // node_modules/mathjs/lib/esm/function/matrix/cross.js
  15133. var name86 = "cross";
  15134. var dependencies86 = ["typed", "matrix", "subtract", "multiply"];
  15135. var createCross = factory(name86, dependencies86, (_ref) => {
  15136. var {
  15137. typed: typed2,
  15138. matrix: matrix2,
  15139. subtract: subtract2,
  15140. multiply: multiply2
  15141. } = _ref;
  15142. return typed2(name86, {
  15143. "Matrix, Matrix": function MatrixMatrix(x, y) {
  15144. return matrix2(_cross(x.toArray(), y.toArray()));
  15145. },
  15146. "Matrix, Array": function MatrixArray(x, y) {
  15147. return matrix2(_cross(x.toArray(), y));
  15148. },
  15149. "Array, Matrix": function ArrayMatrix(x, y) {
  15150. return matrix2(_cross(x, y.toArray()));
  15151. },
  15152. "Array, Array": _cross
  15153. });
  15154. function _cross(x, y) {
  15155. var highestDimension = Math.max(arraySize(x).length, arraySize(y).length);
  15156. x = squeeze(x);
  15157. y = squeeze(y);
  15158. var xSize = arraySize(x);
  15159. var ySize = arraySize(y);
  15160. if (xSize.length !== 1 || ySize.length !== 1 || xSize[0] !== 3 || ySize[0] !== 3) {
  15161. throw new RangeError("Vectors with length 3 expected (Size A = [" + xSize.join(", ") + "], B = [" + ySize.join(", ") + "])");
  15162. }
  15163. var product3 = [subtract2(multiply2(x[1], y[2]), multiply2(x[2], y[1])), subtract2(multiply2(x[2], y[0]), multiply2(x[0], y[2])), subtract2(multiply2(x[0], y[1]), multiply2(x[1], y[0]))];
  15164. if (highestDimension > 1) {
  15165. return [product3];
  15166. } else {
  15167. return product3;
  15168. }
  15169. }
  15170. });
  15171. // node_modules/mathjs/lib/esm/function/matrix/diag.js
  15172. var name87 = "diag";
  15173. var dependencies87 = ["typed", "matrix", "DenseMatrix", "SparseMatrix"];
  15174. var createDiag = factory(name87, dependencies87, (_ref) => {
  15175. var {
  15176. typed: typed2,
  15177. matrix: matrix2,
  15178. DenseMatrix: DenseMatrix2,
  15179. SparseMatrix: SparseMatrix2
  15180. } = _ref;
  15181. return typed2(name87, {
  15182. // FIXME: simplify this huge amount of signatures as soon as typed-function supports optional arguments
  15183. Array: function Array2(x) {
  15184. return _diag(x, 0, arraySize(x), null);
  15185. },
  15186. "Array, number": function ArrayNumber(x, k) {
  15187. return _diag(x, k, arraySize(x), null);
  15188. },
  15189. "Array, BigNumber": function ArrayBigNumber(x, k) {
  15190. return _diag(x, k.toNumber(), arraySize(x), null);
  15191. },
  15192. "Array, string": function ArrayString(x, format5) {
  15193. return _diag(x, 0, arraySize(x), format5);
  15194. },
  15195. "Array, number, string": function ArrayNumberString(x, k, format5) {
  15196. return _diag(x, k, arraySize(x), format5);
  15197. },
  15198. "Array, BigNumber, string": function ArrayBigNumberString(x, k, format5) {
  15199. return _diag(x, k.toNumber(), arraySize(x), format5);
  15200. },
  15201. Matrix: function Matrix2(x) {
  15202. return _diag(x, 0, x.size(), x.storage());
  15203. },
  15204. "Matrix, number": function MatrixNumber(x, k) {
  15205. return _diag(x, k, x.size(), x.storage());
  15206. },
  15207. "Matrix, BigNumber": function MatrixBigNumber(x, k) {
  15208. return _diag(x, k.toNumber(), x.size(), x.storage());
  15209. },
  15210. "Matrix, string": function MatrixString(x, format5) {
  15211. return _diag(x, 0, x.size(), format5);
  15212. },
  15213. "Matrix, number, string": function MatrixNumberString(x, k, format5) {
  15214. return _diag(x, k, x.size(), format5);
  15215. },
  15216. "Matrix, BigNumber, string": function MatrixBigNumberString(x, k, format5) {
  15217. return _diag(x, k.toNumber(), x.size(), format5);
  15218. }
  15219. });
  15220. function _diag(x, k, size2, format5) {
  15221. if (!isInteger(k)) {
  15222. throw new TypeError("Second parameter in function diag must be an integer");
  15223. }
  15224. var kSuper = k > 0 ? k : 0;
  15225. var kSub = k < 0 ? -k : 0;
  15226. switch (size2.length) {
  15227. case 1:
  15228. return _createDiagonalMatrix(x, k, format5, size2[0], kSub, kSuper);
  15229. case 2:
  15230. return _getDiagonal(x, k, format5, size2, kSub, kSuper);
  15231. }
  15232. throw new RangeError("Matrix for function diag must be 2 dimensional");
  15233. }
  15234. function _createDiagonalMatrix(x, k, format5, l, kSub, kSuper) {
  15235. var ms = [l + kSub, l + kSuper];
  15236. if (format5 && format5 !== "sparse" && format5 !== "dense") {
  15237. throw new TypeError("Unknown matrix type ".concat(format5, '"'));
  15238. }
  15239. var m = format5 === "sparse" ? SparseMatrix2.diagonal(ms, x, k) : DenseMatrix2.diagonal(ms, x, k);
  15240. return format5 !== null ? m : m.valueOf();
  15241. }
  15242. function _getDiagonal(x, k, format5, s, kSub, kSuper) {
  15243. if (isMatrix(x)) {
  15244. var dm = x.diagonal(k);
  15245. if (format5 !== null) {
  15246. if (format5 !== dm.storage()) {
  15247. return matrix2(dm, format5);
  15248. }
  15249. return dm;
  15250. }
  15251. return dm.valueOf();
  15252. }
  15253. var n = Math.min(s[0] - kSub, s[1] - kSuper);
  15254. var vector = [];
  15255. for (var i2 = 0; i2 < n; i2++) {
  15256. vector[i2] = x[i2 + kSub][i2 + kSuper];
  15257. }
  15258. return format5 !== null ? matrix2(vector) : vector;
  15259. }
  15260. });
  15261. // node_modules/mathjs/lib/esm/function/matrix/filter.js
  15262. var name88 = "filter";
  15263. var dependencies88 = ["typed"];
  15264. var createFilter = factory(name88, dependencies88, (_ref) => {
  15265. var {
  15266. typed: typed2
  15267. } = _ref;
  15268. return typed2("filter", {
  15269. "Array, function": _filterCallback,
  15270. "Matrix, function": function MatrixFunction(x, test) {
  15271. return x.create(_filterCallback(x.toArray(), test));
  15272. },
  15273. "Array, RegExp": filterRegExp,
  15274. "Matrix, RegExp": function MatrixRegExp(x, test) {
  15275. return x.create(filterRegExp(x.toArray(), test));
  15276. }
  15277. });
  15278. });
  15279. function _filterCallback(x, callback) {
  15280. var args = maxArgumentCount(callback);
  15281. return filter(x, function(value, index2, array) {
  15282. if (args === 1) {
  15283. return callback(value);
  15284. } else if (args === 2) {
  15285. return callback(value, [index2]);
  15286. } else {
  15287. return callback(value, [index2], array);
  15288. }
  15289. });
  15290. }
  15291. // node_modules/mathjs/lib/esm/function/matrix/flatten.js
  15292. var name89 = "flatten";
  15293. var dependencies89 = ["typed", "matrix"];
  15294. var createFlatten = factory(name89, dependencies89, (_ref) => {
  15295. var {
  15296. typed: typed2,
  15297. matrix: matrix2
  15298. } = _ref;
  15299. return typed2(name89, {
  15300. Array: function Array2(x) {
  15301. return flatten(x);
  15302. },
  15303. Matrix: function Matrix2(x) {
  15304. var flat = flatten(x.toArray());
  15305. return matrix2(flat);
  15306. }
  15307. });
  15308. });
  15309. // node_modules/mathjs/lib/esm/function/matrix/forEach.js
  15310. var name90 = "forEach";
  15311. var dependencies90 = ["typed"];
  15312. var createForEach = factory(name90, dependencies90, (_ref) => {
  15313. var {
  15314. typed: typed2
  15315. } = _ref;
  15316. return typed2(name90, {
  15317. "Array, function": _forEach,
  15318. "Matrix, function": function MatrixFunction(x, callback) {
  15319. x.forEach(callback);
  15320. }
  15321. });
  15322. });
  15323. function _forEach(array, callback) {
  15324. var args = maxArgumentCount(callback);
  15325. var recurse = function recurse2(value, index2) {
  15326. if (Array.isArray(value)) {
  15327. forEach(value, function(child, i2) {
  15328. recurse2(child, index2.concat(i2));
  15329. });
  15330. } else {
  15331. if (args === 1) {
  15332. callback(value);
  15333. } else if (args === 2) {
  15334. callback(value, index2);
  15335. } else {
  15336. callback(value, index2, array);
  15337. }
  15338. }
  15339. };
  15340. recurse(array, []);
  15341. }
  15342. // node_modules/mathjs/lib/esm/function/matrix/getMatrixDataType.js
  15343. var name91 = "getMatrixDataType";
  15344. var dependencies91 = ["typed"];
  15345. var createGetMatrixDataType = factory(name91, dependencies91, (_ref) => {
  15346. var {
  15347. typed: typed2
  15348. } = _ref;
  15349. return typed2(name91, {
  15350. Array: function Array2(x) {
  15351. return getArrayDataType(x, typeOf);
  15352. },
  15353. Matrix: function Matrix2(x) {
  15354. return x.getDataType();
  15355. }
  15356. });
  15357. });
  15358. // node_modules/mathjs/lib/esm/function/matrix/identity.js
  15359. var name92 = "identity";
  15360. var dependencies92 = ["typed", "config", "matrix", "BigNumber", "DenseMatrix", "SparseMatrix"];
  15361. var createIdentity = factory(name92, dependencies92, (_ref) => {
  15362. var {
  15363. typed: typed2,
  15364. config: config4,
  15365. matrix: matrix2,
  15366. BigNumber: BigNumber2,
  15367. DenseMatrix: DenseMatrix2,
  15368. SparseMatrix: SparseMatrix2
  15369. } = _ref;
  15370. return typed2(name92, {
  15371. "": function _() {
  15372. return config4.matrix === "Matrix" ? matrix2([]) : [];
  15373. },
  15374. string: function string2(format5) {
  15375. return matrix2(format5);
  15376. },
  15377. "number | BigNumber": function numberBigNumber(rows) {
  15378. return _identity(rows, rows, config4.matrix === "Matrix" ? "dense" : void 0);
  15379. },
  15380. "number | BigNumber, string": function numberBigNumberString(rows, format5) {
  15381. return _identity(rows, rows, format5);
  15382. },
  15383. "number | BigNumber, number | BigNumber": function numberBigNumberNumberBigNumber(rows, cols) {
  15384. return _identity(rows, cols, config4.matrix === "Matrix" ? "dense" : void 0);
  15385. },
  15386. "number | BigNumber, number | BigNumber, string": function numberBigNumberNumberBigNumberString(rows, cols, format5) {
  15387. return _identity(rows, cols, format5);
  15388. },
  15389. Array: function Array2(size2) {
  15390. return _identityVector(size2);
  15391. },
  15392. "Array, string": function ArrayString(size2, format5) {
  15393. return _identityVector(size2, format5);
  15394. },
  15395. Matrix: function Matrix2(size2) {
  15396. return _identityVector(size2.valueOf(), size2.storage());
  15397. },
  15398. "Matrix, string": function MatrixString(size2, format5) {
  15399. return _identityVector(size2.valueOf(), format5);
  15400. }
  15401. });
  15402. function _identityVector(size2, format5) {
  15403. switch (size2.length) {
  15404. case 0:
  15405. return format5 ? matrix2(format5) : [];
  15406. case 1:
  15407. return _identity(size2[0], size2[0], format5);
  15408. case 2:
  15409. return _identity(size2[0], size2[1], format5);
  15410. default:
  15411. throw new Error("Vector containing two values expected");
  15412. }
  15413. }
  15414. function _identity(rows, cols, format5) {
  15415. var Big = isBigNumber(rows) || isBigNumber(cols) ? BigNumber2 : null;
  15416. if (isBigNumber(rows))
  15417. rows = rows.toNumber();
  15418. if (isBigNumber(cols))
  15419. cols = cols.toNumber();
  15420. if (!isInteger(rows) || rows < 1) {
  15421. throw new Error("Parameters in function identity must be positive integers");
  15422. }
  15423. if (!isInteger(cols) || cols < 1) {
  15424. throw new Error("Parameters in function identity must be positive integers");
  15425. }
  15426. var one = Big ? new BigNumber2(1) : 1;
  15427. var defaultValue = Big ? new Big(0) : 0;
  15428. var size2 = [rows, cols];
  15429. if (format5) {
  15430. if (format5 === "sparse") {
  15431. return SparseMatrix2.diagonal(size2, one, 0, defaultValue);
  15432. }
  15433. if (format5 === "dense") {
  15434. return DenseMatrix2.diagonal(size2, one, 0, defaultValue);
  15435. }
  15436. throw new TypeError('Unknown matrix type "'.concat(format5, '"'));
  15437. }
  15438. var res = resize([], size2, defaultValue);
  15439. var minimum = rows < cols ? rows : cols;
  15440. for (var d = 0; d < minimum; d++) {
  15441. res[d][d] = one;
  15442. }
  15443. return res;
  15444. }
  15445. });
  15446. // node_modules/mathjs/lib/esm/function/matrix/kron.js
  15447. var name93 = "kron";
  15448. var dependencies93 = ["typed", "matrix", "multiplyScalar"];
  15449. var createKron = factory(name93, dependencies93, (_ref) => {
  15450. var {
  15451. typed: typed2,
  15452. matrix: matrix2,
  15453. multiplyScalar: multiplyScalar2
  15454. } = _ref;
  15455. return typed2(name93, {
  15456. "Matrix, Matrix": function MatrixMatrix(x, y) {
  15457. return matrix2(_kron(x.toArray(), y.toArray()));
  15458. },
  15459. "Matrix, Array": function MatrixArray(x, y) {
  15460. return matrix2(_kron(x.toArray(), y));
  15461. },
  15462. "Array, Matrix": function ArrayMatrix(x, y) {
  15463. return matrix2(_kron(x, y.toArray()));
  15464. },
  15465. "Array, Array": _kron
  15466. });
  15467. function _kron(a, b) {
  15468. if (arraySize(a).length === 1) {
  15469. a = [a];
  15470. }
  15471. if (arraySize(b).length === 1) {
  15472. b = [b];
  15473. }
  15474. if (arraySize(a).length > 2 || arraySize(b).length > 2) {
  15475. throw new RangeError("Vectors with dimensions greater then 2 are not supported expected (Size x = " + JSON.stringify(a.length) + ", y = " + JSON.stringify(b.length) + ")");
  15476. }
  15477. var t = [];
  15478. var r = [];
  15479. return a.map(function(a2) {
  15480. return b.map(function(b2) {
  15481. r = [];
  15482. t.push(r);
  15483. return a2.map(function(y) {
  15484. return b2.map(function(x) {
  15485. return r.push(multiplyScalar2(y, x));
  15486. });
  15487. });
  15488. });
  15489. }) && t;
  15490. }
  15491. });
  15492. // node_modules/mathjs/lib/esm/function/matrix/map.js
  15493. var name94 = "map";
  15494. var dependencies94 = ["typed"];
  15495. var createMap2 = factory(name94, dependencies94, (_ref) => {
  15496. var {
  15497. typed: typed2
  15498. } = _ref;
  15499. return typed2(name94, {
  15500. "Array, function": _map,
  15501. "Matrix, function": function MatrixFunction(x, callback) {
  15502. return x.map(callback);
  15503. }
  15504. });
  15505. });
  15506. function _map(array, callback) {
  15507. var args = maxArgumentCount(callback);
  15508. var recurse = function recurse2(value, index2) {
  15509. if (Array.isArray(value)) {
  15510. return value.map(function(child, i2) {
  15511. return recurse2(child, index2.concat(i2));
  15512. });
  15513. } else {
  15514. try {
  15515. if (args === 1) {
  15516. return callback(value);
  15517. } else if (args === 2) {
  15518. return callback(value, index2);
  15519. } else {
  15520. return callback(value, index2, array);
  15521. }
  15522. } catch (err) {
  15523. if (err instanceof TypeError && "data" in err && err.data.category === "wrongType") {
  15524. var newmsg = "map attempted to call '".concat(err.data.fn, "(").concat(value);
  15525. var indexString = JSON.stringify(index2);
  15526. if (args === 2) {
  15527. newmsg += "," + indexString;
  15528. } else if (args !== 1) {
  15529. newmsg += ",".concat(indexString, ",").concat(array);
  15530. }
  15531. newmsg += ")' but argument ".concat(err.data.index + 1, " of type ");
  15532. newmsg += "".concat(err.data.actual, " does not match expected type ");
  15533. newmsg += err.data.expected.join(" or ");
  15534. throw new TypeError(newmsg);
  15535. }
  15536. throw err;
  15537. }
  15538. }
  15539. };
  15540. return recurse(array, []);
  15541. }
  15542. // node_modules/mathjs/lib/esm/function/matrix/diff.js
  15543. var name95 = "diff";
  15544. var dependencies95 = ["typed", "matrix", "subtract", "number"];
  15545. var createDiff = factory(name95, dependencies95, (_ref) => {
  15546. var {
  15547. typed: typed2,
  15548. matrix: matrix2,
  15549. subtract: subtract2,
  15550. number: number2
  15551. } = _ref;
  15552. return typed2(name95, {
  15553. "Array | Matrix": function ArrayMatrix(arr) {
  15554. if (isMatrix(arr)) {
  15555. return matrix2(_diff(arr.toArray()));
  15556. } else {
  15557. return _diff(arr);
  15558. }
  15559. },
  15560. "Array | Matrix, number": function ArrayMatrixNumber(arr, dim) {
  15561. if (!isInteger(dim))
  15562. throw new RangeError("Dimension must be a whole number");
  15563. if (isMatrix(arr)) {
  15564. return matrix2(_recursive(arr.toArray(), dim));
  15565. } else {
  15566. return _recursive(arr, dim);
  15567. }
  15568. },
  15569. "Array, BigNumber": typed2.referTo("Array,number", (selfAn) => (arr, dim) => selfAn(arr, number2(dim))),
  15570. "Matrix, BigNumber": typed2.referTo("Matrix,number", (selfMn) => (arr, dim) => selfMn(arr, number2(dim)))
  15571. });
  15572. function _recursive(arr, dim) {
  15573. if (isMatrix(arr)) {
  15574. arr = arr.toArray();
  15575. }
  15576. if (!Array.isArray(arr)) {
  15577. throw RangeError("Array/Matrix does not have that many dimensions");
  15578. }
  15579. if (dim > 0) {
  15580. var result = [];
  15581. arr.forEach((element) => {
  15582. result.push(_recursive(element, dim - 1));
  15583. });
  15584. return result;
  15585. } else if (dim === 0) {
  15586. return _diff(arr);
  15587. } else {
  15588. throw RangeError("Cannot have negative dimension");
  15589. }
  15590. }
  15591. function _diff(arr) {
  15592. var result = [];
  15593. var size2 = arr.length;
  15594. for (var i2 = 1; i2 < size2; i2++) {
  15595. result.push(_ElementDiff(arr[i2 - 1], arr[i2]));
  15596. }
  15597. return result;
  15598. }
  15599. function _ElementDiff(obj1, obj2) {
  15600. if (isMatrix(obj1))
  15601. obj1 = obj1.toArray();
  15602. if (isMatrix(obj2))
  15603. obj2 = obj2.toArray();
  15604. var obj1IsArray = Array.isArray(obj1);
  15605. var obj2IsArray = Array.isArray(obj2);
  15606. if (obj1IsArray && obj2IsArray) {
  15607. return _ArrayDiff(obj1, obj2);
  15608. }
  15609. if (!obj1IsArray && !obj2IsArray) {
  15610. return subtract2(obj2, obj1);
  15611. }
  15612. throw TypeError("Cannot calculate difference between 1 array and 1 non-array");
  15613. }
  15614. function _ArrayDiff(arr1, arr2) {
  15615. if (arr1.length !== arr2.length) {
  15616. throw RangeError("Not all sub-arrays have the same length");
  15617. }
  15618. var result = [];
  15619. var size2 = arr1.length;
  15620. for (var i2 = 0; i2 < size2; i2++) {
  15621. result.push(_ElementDiff(arr1[i2], arr2[i2]));
  15622. }
  15623. return result;
  15624. }
  15625. });
  15626. // node_modules/mathjs/lib/esm/function/matrix/ones.js
  15627. var name96 = "ones";
  15628. var dependencies96 = ["typed", "config", "matrix", "BigNumber"];
  15629. var createOnes = factory(name96, dependencies96, (_ref) => {
  15630. var {
  15631. typed: typed2,
  15632. config: config4,
  15633. matrix: matrix2,
  15634. BigNumber: BigNumber2
  15635. } = _ref;
  15636. return typed2("ones", {
  15637. "": function _() {
  15638. return config4.matrix === "Array" ? _ones([]) : _ones([], "default");
  15639. },
  15640. // math.ones(m, n, p, ..., format)
  15641. // TODO: more accurate signature '...number | BigNumber, string' as soon as typed-function supports this
  15642. "...number | BigNumber | string": function numberBigNumberString(size2) {
  15643. var last = size2[size2.length - 1];
  15644. if (typeof last === "string") {
  15645. var format5 = size2.pop();
  15646. return _ones(size2, format5);
  15647. } else if (config4.matrix === "Array") {
  15648. return _ones(size2);
  15649. } else {
  15650. return _ones(size2, "default");
  15651. }
  15652. },
  15653. Array: _ones,
  15654. Matrix: function Matrix2(size2) {
  15655. var format5 = size2.storage();
  15656. return _ones(size2.valueOf(), format5);
  15657. },
  15658. "Array | Matrix, string": function ArrayMatrixString(size2, format5) {
  15659. return _ones(size2.valueOf(), format5);
  15660. }
  15661. });
  15662. function _ones(size2, format5) {
  15663. var hasBigNumbers = _normalize(size2);
  15664. var defaultValue = hasBigNumbers ? new BigNumber2(1) : 1;
  15665. _validate2(size2);
  15666. if (format5) {
  15667. var m = matrix2(format5);
  15668. if (size2.length > 0) {
  15669. return m.resize(size2, defaultValue);
  15670. }
  15671. return m;
  15672. } else {
  15673. var arr = [];
  15674. if (size2.length > 0) {
  15675. return resize(arr, size2, defaultValue);
  15676. }
  15677. return arr;
  15678. }
  15679. }
  15680. function _normalize(size2) {
  15681. var hasBigNumbers = false;
  15682. size2.forEach(function(value, index2, arr) {
  15683. if (isBigNumber(value)) {
  15684. hasBigNumbers = true;
  15685. arr[index2] = value.toNumber();
  15686. }
  15687. });
  15688. return hasBigNumbers;
  15689. }
  15690. function _validate2(size2) {
  15691. size2.forEach(function(value) {
  15692. if (typeof value !== "number" || !isInteger(value) || value < 0) {
  15693. throw new Error("Parameters in function ones must be positive integers");
  15694. }
  15695. });
  15696. }
  15697. });
  15698. // node_modules/mathjs/lib/esm/utils/noop.js
  15699. function noBignumber() {
  15700. throw new Error('No "bignumber" implementation available');
  15701. }
  15702. function noFraction() {
  15703. throw new Error('No "fraction" implementation available');
  15704. }
  15705. function noMatrix() {
  15706. throw new Error('No "matrix" implementation available');
  15707. }
  15708. // node_modules/mathjs/lib/esm/function/matrix/range.js
  15709. var name97 = "range";
  15710. var dependencies97 = ["typed", "config", "?matrix", "?bignumber", "smaller", "smallerEq", "larger", "largerEq"];
  15711. var createRange = factory(name97, dependencies97, (_ref) => {
  15712. var {
  15713. typed: typed2,
  15714. config: config4,
  15715. matrix: matrix2,
  15716. bignumber: bignumber2,
  15717. smaller: smaller2,
  15718. smallerEq: smallerEq2,
  15719. larger: larger2,
  15720. largerEq: largerEq2
  15721. } = _ref;
  15722. return typed2(name97, {
  15723. // TODO: simplify signatures when typed-function supports default values and optional arguments
  15724. // TODO: a number or boolean should not be converted to string here
  15725. string: _strRange,
  15726. "string, boolean": _strRange,
  15727. "number, number": function numberNumber(start, end) {
  15728. return _out(_rangeEx(start, end, 1));
  15729. },
  15730. "number, number, number": function numberNumberNumber(start, end, step) {
  15731. return _out(_rangeEx(start, end, step));
  15732. },
  15733. "number, number, boolean": function numberNumberBoolean(start, end, includeEnd) {
  15734. return includeEnd ? _out(_rangeInc(start, end, 1)) : _out(_rangeEx(start, end, 1));
  15735. },
  15736. "number, number, number, boolean": function numberNumberNumberBoolean(start, end, step, includeEnd) {
  15737. return includeEnd ? _out(_rangeInc(start, end, step)) : _out(_rangeEx(start, end, step));
  15738. },
  15739. "BigNumber, BigNumber": function BigNumberBigNumber(start, end) {
  15740. var BigNumber2 = start.constructor;
  15741. return _out(_bigRangeEx(start, end, new BigNumber2(1)));
  15742. },
  15743. "BigNumber, BigNumber, BigNumber": function BigNumberBigNumberBigNumber(start, end, step) {
  15744. return _out(_bigRangeEx(start, end, step));
  15745. },
  15746. "BigNumber, BigNumber, boolean": function BigNumberBigNumberBoolean(start, end, includeEnd) {
  15747. var BigNumber2 = start.constructor;
  15748. return includeEnd ? _out(_bigRangeInc(start, end, new BigNumber2(1))) : _out(_bigRangeEx(start, end, new BigNumber2(1)));
  15749. },
  15750. "BigNumber, BigNumber, BigNumber, boolean": function BigNumberBigNumberBigNumberBoolean(start, end, step, includeEnd) {
  15751. return includeEnd ? _out(_bigRangeInc(start, end, step)) : _out(_bigRangeEx(start, end, step));
  15752. }
  15753. });
  15754. function _out(arr) {
  15755. if (config4.matrix === "Matrix") {
  15756. return matrix2 ? matrix2(arr) : noMatrix();
  15757. }
  15758. return arr;
  15759. }
  15760. function _strRange(str, includeEnd) {
  15761. var r = _parse(str);
  15762. if (!r) {
  15763. throw new SyntaxError('String "' + str + '" is no valid range');
  15764. }
  15765. var fn;
  15766. if (config4.number === "BigNumber") {
  15767. if (bignumber2 === void 0) {
  15768. noBignumber();
  15769. }
  15770. fn = includeEnd ? _bigRangeInc : _bigRangeEx;
  15771. return _out(fn(bignumber2(r.start), bignumber2(r.end), bignumber2(r.step)));
  15772. } else {
  15773. fn = includeEnd ? _rangeInc : _rangeEx;
  15774. return _out(fn(r.start, r.end, r.step));
  15775. }
  15776. }
  15777. function _rangeEx(start, end, step) {
  15778. var array = [];
  15779. var x = start;
  15780. if (step > 0) {
  15781. while (smaller2(x, end)) {
  15782. array.push(x);
  15783. x += step;
  15784. }
  15785. } else if (step < 0) {
  15786. while (larger2(x, end)) {
  15787. array.push(x);
  15788. x += step;
  15789. }
  15790. }
  15791. return array;
  15792. }
  15793. function _rangeInc(start, end, step) {
  15794. var array = [];
  15795. var x = start;
  15796. if (step > 0) {
  15797. while (smallerEq2(x, end)) {
  15798. array.push(x);
  15799. x += step;
  15800. }
  15801. } else if (step < 0) {
  15802. while (largerEq2(x, end)) {
  15803. array.push(x);
  15804. x += step;
  15805. }
  15806. }
  15807. return array;
  15808. }
  15809. function _bigRangeEx(start, end, step) {
  15810. var zero = bignumber2(0);
  15811. var array = [];
  15812. var x = start;
  15813. if (step.gt(zero)) {
  15814. while (smaller2(x, end)) {
  15815. array.push(x);
  15816. x = x.plus(step);
  15817. }
  15818. } else if (step.lt(zero)) {
  15819. while (larger2(x, end)) {
  15820. array.push(x);
  15821. x = x.plus(step);
  15822. }
  15823. }
  15824. return array;
  15825. }
  15826. function _bigRangeInc(start, end, step) {
  15827. var zero = bignumber2(0);
  15828. var array = [];
  15829. var x = start;
  15830. if (step.gt(zero)) {
  15831. while (smallerEq2(x, end)) {
  15832. array.push(x);
  15833. x = x.plus(step);
  15834. }
  15835. } else if (step.lt(zero)) {
  15836. while (largerEq2(x, end)) {
  15837. array.push(x);
  15838. x = x.plus(step);
  15839. }
  15840. }
  15841. return array;
  15842. }
  15843. function _parse(str) {
  15844. var args = str.split(":");
  15845. var nums = args.map(function(arg2) {
  15846. return Number(arg2);
  15847. });
  15848. var invalid = nums.some(function(num) {
  15849. return isNaN(num);
  15850. });
  15851. if (invalid) {
  15852. return null;
  15853. }
  15854. switch (nums.length) {
  15855. case 2:
  15856. return {
  15857. start: nums[0],
  15858. end: nums[1],
  15859. step: 1
  15860. };
  15861. case 3:
  15862. return {
  15863. start: nums[0],
  15864. end: nums[2],
  15865. step: nums[1]
  15866. };
  15867. default:
  15868. return null;
  15869. }
  15870. }
  15871. });
  15872. // node_modules/mathjs/lib/esm/function/matrix/reshape.js
  15873. var name98 = "reshape";
  15874. var dependencies98 = ["typed", "isInteger", "matrix"];
  15875. var createReshape = factory(name98, dependencies98, (_ref) => {
  15876. var {
  15877. typed: typed2,
  15878. isInteger: isInteger3
  15879. } = _ref;
  15880. return typed2(name98, {
  15881. "Matrix, Array": function MatrixArray(x, sizes) {
  15882. return x.reshape(sizes, true);
  15883. },
  15884. "Array, Array": function ArrayArray(x, sizes) {
  15885. sizes.forEach(function(size2) {
  15886. if (!isInteger3(size2)) {
  15887. throw new TypeError("Invalid size for dimension: " + size2);
  15888. }
  15889. });
  15890. return reshape(x, sizes);
  15891. }
  15892. });
  15893. });
  15894. // node_modules/mathjs/lib/esm/function/matrix/resize.js
  15895. var name99 = "resize";
  15896. var dependencies99 = ["config", "matrix"];
  15897. var createResize = factory(name99, dependencies99, (_ref) => {
  15898. var {
  15899. config: config4,
  15900. matrix: matrix2
  15901. } = _ref;
  15902. return function resize3(x, size2, defaultValue) {
  15903. if (arguments.length !== 2 && arguments.length !== 3) {
  15904. throw new ArgumentsError("resize", arguments.length, 2, 3);
  15905. }
  15906. if (isMatrix(size2)) {
  15907. size2 = size2.valueOf();
  15908. }
  15909. if (isBigNumber(size2[0])) {
  15910. size2 = size2.map(function(value) {
  15911. return !isBigNumber(value) ? value : value.toNumber();
  15912. });
  15913. }
  15914. if (isMatrix(x)) {
  15915. return x.resize(size2, defaultValue, true);
  15916. }
  15917. if (typeof x === "string") {
  15918. return _resizeString(x, size2, defaultValue);
  15919. }
  15920. var asMatrix = Array.isArray(x) ? false : config4.matrix !== "Array";
  15921. if (size2.length === 0) {
  15922. while (Array.isArray(x)) {
  15923. x = x[0];
  15924. }
  15925. return clone(x);
  15926. } else {
  15927. if (!Array.isArray(x)) {
  15928. x = [x];
  15929. }
  15930. x = clone(x);
  15931. var res = resize(x, size2, defaultValue);
  15932. return asMatrix ? matrix2(res) : res;
  15933. }
  15934. };
  15935. function _resizeString(str, size2, defaultChar) {
  15936. if (defaultChar !== void 0) {
  15937. if (typeof defaultChar !== "string" || defaultChar.length !== 1) {
  15938. throw new TypeError("Single character expected as defaultValue");
  15939. }
  15940. } else {
  15941. defaultChar = " ";
  15942. }
  15943. if (size2.length !== 1) {
  15944. throw new DimensionError(size2.length, 1);
  15945. }
  15946. var len = size2[0];
  15947. if (typeof len !== "number" || !isInteger(len)) {
  15948. throw new TypeError("Invalid size, must contain positive integers (size: " + format3(size2) + ")");
  15949. }
  15950. if (str.length > len) {
  15951. return str.substring(0, len);
  15952. } else if (str.length < len) {
  15953. var res = str;
  15954. for (var i2 = 0, ii = len - str.length; i2 < ii; i2++) {
  15955. res += defaultChar;
  15956. }
  15957. return res;
  15958. } else {
  15959. return str;
  15960. }
  15961. }
  15962. });
  15963. // node_modules/mathjs/lib/esm/function/matrix/rotate.js
  15964. var name100 = "rotate";
  15965. var dependencies100 = ["typed", "multiply", "rotationMatrix"];
  15966. var createRotate = factory(name100, dependencies100, (_ref) => {
  15967. var {
  15968. typed: typed2,
  15969. multiply: multiply2,
  15970. rotationMatrix: rotationMatrix2
  15971. } = _ref;
  15972. return typed2(name100, {
  15973. "Array , number | BigNumber | Complex | Unit": function ArrayNumberBigNumberComplexUnit(w, theta) {
  15974. _validateSize(w, 2);
  15975. var matrixRes = multiply2(rotationMatrix2(theta), w);
  15976. return matrixRes.toArray();
  15977. },
  15978. "Matrix , number | BigNumber | Complex | Unit": function MatrixNumberBigNumberComplexUnit(w, theta) {
  15979. _validateSize(w, 2);
  15980. return multiply2(rotationMatrix2(theta), w);
  15981. },
  15982. "Array, number | BigNumber | Complex | Unit, Array | Matrix": function ArrayNumberBigNumberComplexUnitArrayMatrix(w, theta, v) {
  15983. _validateSize(w, 3);
  15984. var matrixRes = multiply2(rotationMatrix2(theta, v), w);
  15985. return matrixRes;
  15986. },
  15987. "Matrix, number | BigNumber | Complex | Unit, Array | Matrix": function MatrixNumberBigNumberComplexUnitArrayMatrix(w, theta, v) {
  15988. _validateSize(w, 3);
  15989. return multiply2(rotationMatrix2(theta, v), w);
  15990. }
  15991. });
  15992. function _validateSize(v, expectedSize) {
  15993. var actualSize = Array.isArray(v) ? arraySize(v) : v.size();
  15994. if (actualSize.length > 2) {
  15995. throw new RangeError("Vector must be of dimensions 1x".concat(expectedSize));
  15996. }
  15997. if (actualSize.length === 2 && actualSize[1] !== 1) {
  15998. throw new RangeError("Vector must be of dimensions 1x".concat(expectedSize));
  15999. }
  16000. if (actualSize[0] !== expectedSize) {
  16001. throw new RangeError("Vector must be of dimensions 1x".concat(expectedSize));
  16002. }
  16003. }
  16004. });
  16005. // node_modules/mathjs/lib/esm/function/matrix/rotationMatrix.js
  16006. var name101 = "rotationMatrix";
  16007. var dependencies101 = ["typed", "config", "multiplyScalar", "addScalar", "unaryMinus", "norm", "matrix", "BigNumber", "DenseMatrix", "SparseMatrix", "cos", "sin"];
  16008. var createRotationMatrix = factory(name101, dependencies101, (_ref) => {
  16009. var {
  16010. typed: typed2,
  16011. config: config4,
  16012. multiplyScalar: multiplyScalar2,
  16013. addScalar: addScalar2,
  16014. unaryMinus: unaryMinus2,
  16015. norm: norm2,
  16016. BigNumber: BigNumber2,
  16017. matrix: matrix2,
  16018. DenseMatrix: DenseMatrix2,
  16019. SparseMatrix: SparseMatrix2,
  16020. cos: cos3,
  16021. sin: sin3
  16022. } = _ref;
  16023. return typed2(name101, {
  16024. "": function _() {
  16025. return config4.matrix === "Matrix" ? matrix2([]) : [];
  16026. },
  16027. string: function string2(format5) {
  16028. return matrix2(format5);
  16029. },
  16030. "number | BigNumber | Complex | Unit": function numberBigNumberComplexUnit(theta) {
  16031. return _rotationMatrix2x2(theta, config4.matrix === "Matrix" ? "dense" : void 0);
  16032. },
  16033. "number | BigNumber | Complex | Unit, string": function numberBigNumberComplexUnitString(theta, format5) {
  16034. return _rotationMatrix2x2(theta, format5);
  16035. },
  16036. "number | BigNumber | Complex | Unit, Array": function numberBigNumberComplexUnitArray(theta, v) {
  16037. var matrixV = matrix2(v);
  16038. _validateVector(matrixV);
  16039. return _rotationMatrix3x3(theta, matrixV, void 0);
  16040. },
  16041. "number | BigNumber | Complex | Unit, Matrix": function numberBigNumberComplexUnitMatrix(theta, v) {
  16042. _validateVector(v);
  16043. var storageType = v.storage() || (config4.matrix === "Matrix" ? "dense" : void 0);
  16044. return _rotationMatrix3x3(theta, v, storageType);
  16045. },
  16046. "number | BigNumber | Complex | Unit, Array, string": function numberBigNumberComplexUnitArrayString(theta, v, format5) {
  16047. var matrixV = matrix2(v);
  16048. _validateVector(matrixV);
  16049. return _rotationMatrix3x3(theta, matrixV, format5);
  16050. },
  16051. "number | BigNumber | Complex | Unit, Matrix, string": function numberBigNumberComplexUnitMatrixString(theta, v, format5) {
  16052. _validateVector(v);
  16053. return _rotationMatrix3x3(theta, v, format5);
  16054. }
  16055. });
  16056. function _rotationMatrix2x2(theta, format5) {
  16057. var Big = isBigNumber(theta);
  16058. var minusOne = Big ? new BigNumber2(-1) : -1;
  16059. var cosTheta = cos3(theta);
  16060. var sinTheta = sin3(theta);
  16061. var data = [[cosTheta, multiplyScalar2(minusOne, sinTheta)], [sinTheta, cosTheta]];
  16062. return _convertToFormat(data, format5);
  16063. }
  16064. function _validateVector(v) {
  16065. var size2 = v.size();
  16066. if (size2.length < 1 || size2[0] !== 3) {
  16067. throw new RangeError("Vector must be of dimensions 1x3");
  16068. }
  16069. }
  16070. function _mul(array) {
  16071. return array.reduce((p, curr) => multiplyScalar2(p, curr));
  16072. }
  16073. function _convertToFormat(data, format5) {
  16074. if (format5) {
  16075. if (format5 === "sparse") {
  16076. return new SparseMatrix2(data);
  16077. }
  16078. if (format5 === "dense") {
  16079. return new DenseMatrix2(data);
  16080. }
  16081. throw new TypeError('Unknown matrix type "'.concat(format5, '"'));
  16082. }
  16083. return data;
  16084. }
  16085. function _rotationMatrix3x3(theta, v, format5) {
  16086. var normV = norm2(v);
  16087. if (normV === 0) {
  16088. throw new RangeError("Rotation around zero vector");
  16089. }
  16090. var Big = isBigNumber(theta) ? BigNumber2 : null;
  16091. var one = Big ? new Big(1) : 1;
  16092. var minusOne = Big ? new Big(-1) : -1;
  16093. var vx = Big ? new Big(v.get([0]) / normV) : v.get([0]) / normV;
  16094. var vy = Big ? new Big(v.get([1]) / normV) : v.get([1]) / normV;
  16095. var vz = Big ? new Big(v.get([2]) / normV) : v.get([2]) / normV;
  16096. var c = cos3(theta);
  16097. var oneMinusC = addScalar2(one, unaryMinus2(c));
  16098. var s = sin3(theta);
  16099. var r11 = addScalar2(c, _mul([vx, vx, oneMinusC]));
  16100. var r12 = addScalar2(_mul([vx, vy, oneMinusC]), _mul([minusOne, vz, s]));
  16101. var r13 = addScalar2(_mul([vx, vz, oneMinusC]), _mul([vy, s]));
  16102. var r21 = addScalar2(_mul([vx, vy, oneMinusC]), _mul([vz, s]));
  16103. var r22 = addScalar2(c, _mul([vy, vy, oneMinusC]));
  16104. var r23 = addScalar2(_mul([vy, vz, oneMinusC]), _mul([minusOne, vx, s]));
  16105. var r31 = addScalar2(_mul([vx, vz, oneMinusC]), _mul([minusOne, vy, s]));
  16106. var r32 = addScalar2(_mul([vy, vz, oneMinusC]), _mul([vx, s]));
  16107. var r33 = addScalar2(c, _mul([vz, vz, oneMinusC]));
  16108. var data = [[r11, r12, r13], [r21, r22, r23], [r31, r32, r33]];
  16109. return _convertToFormat(data, format5);
  16110. }
  16111. });
  16112. // node_modules/mathjs/lib/esm/function/matrix/row.js
  16113. var name102 = "row";
  16114. var dependencies102 = ["typed", "Index", "matrix", "range"];
  16115. var createRow = factory(name102, dependencies102, (_ref) => {
  16116. var {
  16117. typed: typed2,
  16118. Index: Index2,
  16119. matrix: matrix2,
  16120. range: range2
  16121. } = _ref;
  16122. return typed2(name102, {
  16123. "Matrix, number": _row,
  16124. "Array, number": function ArrayNumber(value, row2) {
  16125. return _row(matrix2(clone(value)), row2).valueOf();
  16126. }
  16127. });
  16128. function _row(value, row2) {
  16129. if (value.size().length !== 2) {
  16130. throw new Error("Only two dimensional matrix is supported");
  16131. }
  16132. validateIndex(row2, value.size()[0]);
  16133. var columnRange = range2(0, value.size()[1]);
  16134. var index2 = new Index2(row2, columnRange);
  16135. var result = value.subset(index2);
  16136. return isMatrix(result) ? result : matrix2([[result]]);
  16137. }
  16138. });
  16139. // node_modules/mathjs/lib/esm/function/matrix/size.js
  16140. var name103 = "size";
  16141. var dependencies103 = ["typed", "config", "?matrix"];
  16142. var createSize = factory(name103, dependencies103, (_ref) => {
  16143. var {
  16144. typed: typed2,
  16145. config: config4,
  16146. matrix: matrix2
  16147. } = _ref;
  16148. return typed2(name103, {
  16149. Matrix: function Matrix2(x) {
  16150. return x.create(x.size());
  16151. },
  16152. Array: arraySize,
  16153. string: function string2(x) {
  16154. return config4.matrix === "Array" ? [x.length] : matrix2([x.length]);
  16155. },
  16156. "number | Complex | BigNumber | Unit | boolean | null": function numberComplexBigNumberUnitBooleanNull(x) {
  16157. return config4.matrix === "Array" ? [] : matrix2 ? matrix2([]) : noMatrix();
  16158. }
  16159. });
  16160. });
  16161. // node_modules/mathjs/lib/esm/function/matrix/squeeze.js
  16162. var name104 = "squeeze";
  16163. var dependencies104 = ["typed", "matrix"];
  16164. var createSqueeze = factory(name104, dependencies104, (_ref) => {
  16165. var {
  16166. typed: typed2,
  16167. matrix: matrix2
  16168. } = _ref;
  16169. return typed2(name104, {
  16170. Array: function Array2(x) {
  16171. return squeeze(clone(x));
  16172. },
  16173. Matrix: function Matrix2(x) {
  16174. var res = squeeze(x.toArray());
  16175. return Array.isArray(res) ? matrix2(res) : res;
  16176. },
  16177. any: function any(x) {
  16178. return clone(x);
  16179. }
  16180. });
  16181. });
  16182. // node_modules/mathjs/lib/esm/function/matrix/subset.js
  16183. var name105 = "subset";
  16184. var dependencies105 = ["typed", "matrix"];
  16185. var createSubset = factory(name105, dependencies105, (_ref) => {
  16186. var {
  16187. typed: typed2,
  16188. matrix: matrix2
  16189. } = _ref;
  16190. return typed2(name105, {
  16191. // get subset
  16192. "Array, Index": function ArrayIndex(value, index2) {
  16193. var m = matrix2(value);
  16194. var subset2 = m.subset(index2);
  16195. return index2.isScalar() ? subset2 : subset2.valueOf();
  16196. },
  16197. "Matrix, Index": function MatrixIndex(value, index2) {
  16198. return value.subset(index2);
  16199. },
  16200. "Object, Index": _getObjectProperty,
  16201. "string, Index": _getSubstring,
  16202. // set subset
  16203. "Array, Index, any": function ArrayIndexAny(value, index2, replacement) {
  16204. return matrix2(clone(value)).subset(index2, replacement, void 0).valueOf();
  16205. },
  16206. "Array, Index, any, any": function ArrayIndexAnyAny(value, index2, replacement, defaultValue) {
  16207. return matrix2(clone(value)).subset(index2, replacement, defaultValue).valueOf();
  16208. },
  16209. "Matrix, Index, any": function MatrixIndexAny(value, index2, replacement) {
  16210. return value.clone().subset(index2, replacement);
  16211. },
  16212. "Matrix, Index, any, any": function MatrixIndexAnyAny(value, index2, replacement, defaultValue) {
  16213. return value.clone().subset(index2, replacement, defaultValue);
  16214. },
  16215. "string, Index, string": _setSubstring,
  16216. "string, Index, string, string": _setSubstring,
  16217. "Object, Index, any": _setObjectProperty
  16218. });
  16219. });
  16220. function _getSubstring(str, index2) {
  16221. if (!isIndex(index2)) {
  16222. throw new TypeError("Index expected");
  16223. }
  16224. if (index2.size().length !== 1) {
  16225. throw new DimensionError(index2.size().length, 1);
  16226. }
  16227. var strLen = str.length;
  16228. validateIndex(index2.min()[0], strLen);
  16229. validateIndex(index2.max()[0], strLen);
  16230. var range2 = index2.dimension(0);
  16231. var substr = "";
  16232. range2.forEach(function(v) {
  16233. substr += str.charAt(v);
  16234. });
  16235. return substr;
  16236. }
  16237. function _setSubstring(str, index2, replacement, defaultValue) {
  16238. if (!index2 || index2.isIndex !== true) {
  16239. throw new TypeError("Index expected");
  16240. }
  16241. if (index2.size().length !== 1) {
  16242. throw new DimensionError(index2.size().length, 1);
  16243. }
  16244. if (defaultValue !== void 0) {
  16245. if (typeof defaultValue !== "string" || defaultValue.length !== 1) {
  16246. throw new TypeError("Single character expected as defaultValue");
  16247. }
  16248. } else {
  16249. defaultValue = " ";
  16250. }
  16251. var range2 = index2.dimension(0);
  16252. var len = range2.size()[0];
  16253. if (len !== replacement.length) {
  16254. throw new DimensionError(range2.size()[0], replacement.length);
  16255. }
  16256. var strLen = str.length;
  16257. validateIndex(index2.min()[0]);
  16258. validateIndex(index2.max()[0]);
  16259. var chars = [];
  16260. for (var i2 = 0; i2 < strLen; i2++) {
  16261. chars[i2] = str.charAt(i2);
  16262. }
  16263. range2.forEach(function(v, i3) {
  16264. chars[v] = replacement.charAt(i3[0]);
  16265. });
  16266. if (chars.length > strLen) {
  16267. for (var _i = strLen - 1, _len = chars.length; _i < _len; _i++) {
  16268. if (!chars[_i]) {
  16269. chars[_i] = defaultValue;
  16270. }
  16271. }
  16272. }
  16273. return chars.join("");
  16274. }
  16275. function _getObjectProperty(object, index2) {
  16276. if (index2.size().length !== 1) {
  16277. throw new DimensionError(index2.size(), 1);
  16278. }
  16279. var key = index2.dimension(0);
  16280. if (typeof key !== "string") {
  16281. throw new TypeError("String expected as index to retrieve an object property");
  16282. }
  16283. return getSafeProperty(object, key);
  16284. }
  16285. function _setObjectProperty(object, index2, replacement) {
  16286. if (index2.size().length !== 1) {
  16287. throw new DimensionError(index2.size(), 1);
  16288. }
  16289. var key = index2.dimension(0);
  16290. if (typeof key !== "string") {
  16291. throw new TypeError("String expected as index to retrieve an object property");
  16292. }
  16293. var updated = clone(object);
  16294. setSafeProperty(updated, key, replacement);
  16295. return updated;
  16296. }
  16297. // node_modules/mathjs/lib/esm/function/matrix/transpose.js
  16298. var name106 = "transpose";
  16299. var dependencies106 = ["typed", "matrix"];
  16300. var createTranspose = factory(name106, dependencies106, (_ref) => {
  16301. var {
  16302. typed: typed2,
  16303. matrix: matrix2
  16304. } = _ref;
  16305. return typed2(name106, {
  16306. Array: (x) => transposeMatrix(matrix2(x)).valueOf(),
  16307. Matrix: transposeMatrix,
  16308. any: clone
  16309. // scalars
  16310. });
  16311. function transposeMatrix(x) {
  16312. var size2 = x.size();
  16313. var c;
  16314. switch (size2.length) {
  16315. case 1:
  16316. c = x.clone();
  16317. break;
  16318. case 2:
  16319. {
  16320. var rows = size2[0];
  16321. var columns = size2[1];
  16322. if (columns === 0) {
  16323. throw new RangeError("Cannot transpose a 2D matrix with no columns (size: " + format3(size2) + ")");
  16324. }
  16325. switch (x.storage()) {
  16326. case "dense":
  16327. c = _denseTranspose(x, rows, columns);
  16328. break;
  16329. case "sparse":
  16330. c = _sparseTranspose(x, rows, columns);
  16331. break;
  16332. }
  16333. }
  16334. break;
  16335. default:
  16336. throw new RangeError("Matrix must be a vector or two dimensional (size: " + format3(size2) + ")");
  16337. }
  16338. return c;
  16339. }
  16340. function _denseTranspose(m, rows, columns) {
  16341. var data = m._data;
  16342. var transposed = [];
  16343. var transposedRow;
  16344. for (var j = 0; j < columns; j++) {
  16345. transposedRow = transposed[j] = [];
  16346. for (var i2 = 0; i2 < rows; i2++) {
  16347. transposedRow[i2] = clone(data[i2][j]);
  16348. }
  16349. }
  16350. return m.createDenseMatrix({
  16351. data: transposed,
  16352. size: [columns, rows],
  16353. datatype: m._datatype
  16354. });
  16355. }
  16356. function _sparseTranspose(m, rows, columns) {
  16357. var values2 = m._values;
  16358. var index2 = m._index;
  16359. var ptr = m._ptr;
  16360. var cvalues = values2 ? [] : void 0;
  16361. var cindex = [];
  16362. var cptr = [];
  16363. var w = [];
  16364. for (var x = 0; x < rows; x++) {
  16365. w[x] = 0;
  16366. }
  16367. var p, l, j;
  16368. for (p = 0, l = index2.length; p < l; p++) {
  16369. w[index2[p]]++;
  16370. }
  16371. var sum3 = 0;
  16372. for (var i2 = 0; i2 < rows; i2++) {
  16373. cptr.push(sum3);
  16374. sum3 += w[i2];
  16375. w[i2] = cptr[i2];
  16376. }
  16377. cptr.push(sum3);
  16378. for (j = 0; j < columns; j++) {
  16379. for (var k0 = ptr[j], k1 = ptr[j + 1], k = k0; k < k1; k++) {
  16380. var q = w[index2[k]]++;
  16381. cindex[q] = j;
  16382. if (values2) {
  16383. cvalues[q] = clone(values2[k]);
  16384. }
  16385. }
  16386. }
  16387. return m.createSparseMatrix({
  16388. values: cvalues,
  16389. index: cindex,
  16390. ptr: cptr,
  16391. size: [columns, rows],
  16392. datatype: m._datatype
  16393. });
  16394. }
  16395. });
  16396. // node_modules/mathjs/lib/esm/function/matrix/ctranspose.js
  16397. var name107 = "ctranspose";
  16398. var dependencies107 = ["typed", "transpose", "conj"];
  16399. var createCtranspose = factory(name107, dependencies107, (_ref) => {
  16400. var {
  16401. typed: typed2,
  16402. transpose: transpose2,
  16403. conj: conj2
  16404. } = _ref;
  16405. return typed2(name107, {
  16406. any: function any(x) {
  16407. return conj2(transpose2(x));
  16408. }
  16409. });
  16410. });
  16411. // node_modules/mathjs/lib/esm/function/matrix/zeros.js
  16412. var name108 = "zeros";
  16413. var dependencies108 = ["typed", "config", "matrix", "BigNumber"];
  16414. var createZeros = factory(name108, dependencies108, (_ref) => {
  16415. var {
  16416. typed: typed2,
  16417. config: config4,
  16418. matrix: matrix2,
  16419. BigNumber: BigNumber2
  16420. } = _ref;
  16421. return typed2(name108, {
  16422. "": function _() {
  16423. return config4.matrix === "Array" ? _zeros([]) : _zeros([], "default");
  16424. },
  16425. // math.zeros(m, n, p, ..., format)
  16426. // TODO: more accurate signature '...number | BigNumber, string' as soon as typed-function supports this
  16427. "...number | BigNumber | string": function numberBigNumberString(size2) {
  16428. var last = size2[size2.length - 1];
  16429. if (typeof last === "string") {
  16430. var format5 = size2.pop();
  16431. return _zeros(size2, format5);
  16432. } else if (config4.matrix === "Array") {
  16433. return _zeros(size2);
  16434. } else {
  16435. return _zeros(size2, "default");
  16436. }
  16437. },
  16438. Array: _zeros,
  16439. Matrix: function Matrix2(size2) {
  16440. var format5 = size2.storage();
  16441. return _zeros(size2.valueOf(), format5);
  16442. },
  16443. "Array | Matrix, string": function ArrayMatrixString(size2, format5) {
  16444. return _zeros(size2.valueOf(), format5);
  16445. }
  16446. });
  16447. function _zeros(size2, format5) {
  16448. var hasBigNumbers = _normalize(size2);
  16449. var defaultValue = hasBigNumbers ? new BigNumber2(0) : 0;
  16450. _validate2(size2);
  16451. if (format5) {
  16452. var m = matrix2(format5);
  16453. if (size2.length > 0) {
  16454. return m.resize(size2, defaultValue);
  16455. }
  16456. return m;
  16457. } else {
  16458. var arr = [];
  16459. if (size2.length > 0) {
  16460. return resize(arr, size2, defaultValue);
  16461. }
  16462. return arr;
  16463. }
  16464. }
  16465. function _normalize(size2) {
  16466. var hasBigNumbers = false;
  16467. size2.forEach(function(value, index2, arr) {
  16468. if (isBigNumber(value)) {
  16469. hasBigNumbers = true;
  16470. arr[index2] = value.toNumber();
  16471. }
  16472. });
  16473. return hasBigNumbers;
  16474. }
  16475. function _validate2(size2) {
  16476. size2.forEach(function(value) {
  16477. if (typeof value !== "number" || !isInteger(value) || value < 0) {
  16478. throw new Error("Parameters in function zeros must be positive integers");
  16479. }
  16480. });
  16481. }
  16482. });
  16483. // node_modules/mathjs/lib/esm/function/matrix/fft.js
  16484. var name109 = "fft";
  16485. var dependencies109 = ["typed", "matrix", "addScalar", "multiplyScalar", "divideScalar", "exp", "tau", "i", "dotDivide", "conj", "pow", "ceil", "log2"];
  16486. var createFft = factory(name109, dependencies109, (_ref) => {
  16487. var {
  16488. typed: typed2,
  16489. matrix: matrix2,
  16490. addScalar: addScalar2,
  16491. multiplyScalar: multiplyScalar2,
  16492. divideScalar: divideScalar2,
  16493. exp: exp3,
  16494. tau: tau3,
  16495. i: I,
  16496. dotDivide: dotDivide2,
  16497. conj: conj2,
  16498. pow: pow3,
  16499. ceil: ceil3,
  16500. log2: log25
  16501. } = _ref;
  16502. return typed2(name109, {
  16503. Array: _ndFft,
  16504. Matrix: function Matrix2(matrix3) {
  16505. return matrix3.create(_ndFft(matrix3.toArray()));
  16506. }
  16507. });
  16508. function _ndFft(arr) {
  16509. var size2 = arraySize(arr);
  16510. if (size2.length === 1)
  16511. return _fft(arr, size2[0]);
  16512. return _1dFft(arr.map((slice) => _ndFft(slice, size2.slice(1))), 0);
  16513. }
  16514. function _1dFft(arr, dim) {
  16515. var size2 = arraySize(arr);
  16516. if (dim !== 0)
  16517. return new Array(size2[0]).fill(0).map((_, i2) => _1dFft(arr[i2], dim - 1));
  16518. if (size2.length === 1)
  16519. return _fft(arr);
  16520. function _transpose(arr2) {
  16521. var size3 = arraySize(arr2);
  16522. return new Array(size3[1]).fill(0).map((_, j) => new Array(size3[0]).fill(0).map((_2, i2) => arr2[i2][j]));
  16523. }
  16524. return _transpose(_1dFft(_transpose(arr), 1));
  16525. }
  16526. function _czt(arr) {
  16527. var n = arr.length;
  16528. var w = exp3(divideScalar2(multiplyScalar2(-1, multiplyScalar2(I, tau3)), n));
  16529. var chirp = [];
  16530. for (var i2 = 1 - n; i2 < n; i2++) {
  16531. chirp.push(pow3(w, divideScalar2(pow3(i2, 2), 2)));
  16532. }
  16533. var N2 = pow3(2, ceil3(log25(n + n - 1)));
  16534. var xp = [...new Array(n).fill(0).map((_, i3) => multiplyScalar2(arr[i3], chirp[n - 1 + i3])), ...new Array(N2 - n).fill(0)];
  16535. var ichirp = [...new Array(n + n - 1).fill(0).map((_, i3) => divideScalar2(1, chirp[i3])), ...new Array(N2 - (n + n - 1)).fill(0)];
  16536. var fftXp = _fft(xp);
  16537. var fftIchirp = _fft(ichirp);
  16538. var fftProduct = new Array(N2).fill(0).map((_, i3) => multiplyScalar2(fftXp[i3], fftIchirp[i3]));
  16539. var ifftProduct = dotDivide2(conj2(_ndFft(conj2(fftProduct))), N2);
  16540. var ret = [];
  16541. for (var _i = n - 1; _i < n + n - 1; _i++) {
  16542. ret.push(multiplyScalar2(ifftProduct[_i], chirp[_i]));
  16543. }
  16544. return ret;
  16545. }
  16546. function _fft(arr) {
  16547. var len = arr.length;
  16548. if (len === 1)
  16549. return [arr[0]];
  16550. if (len % 2 === 0) {
  16551. var ret = [..._fft(arr.filter((_, i2) => i2 % 2 === 0), len / 2), ..._fft(arr.filter((_, i2) => i2 % 2 === 1), len / 2)];
  16552. for (var k = 0; k < len / 2; k++) {
  16553. var p = ret[k];
  16554. var q = multiplyScalar2(ret[k + len / 2], exp3(multiplyScalar2(multiplyScalar2(tau3, I), divideScalar2(-k, len))));
  16555. ret[k] = addScalar2(p, q);
  16556. ret[k + len / 2] = addScalar2(p, multiplyScalar2(-1, q));
  16557. }
  16558. return ret;
  16559. } else {
  16560. return _czt(arr);
  16561. }
  16562. }
  16563. });
  16564. // node_modules/mathjs/lib/esm/function/matrix/ifft.js
  16565. var name110 = "ifft";
  16566. var dependencies110 = ["typed", "fft", "dotDivide", "conj"];
  16567. var createIfft = factory(name110, dependencies110, (_ref) => {
  16568. var {
  16569. typed: typed2,
  16570. fft: fft2,
  16571. dotDivide: dotDivide2,
  16572. conj: conj2
  16573. } = _ref;
  16574. return typed2(name110, {
  16575. "Array | Matrix": function ArrayMatrix(arr) {
  16576. var size2 = isMatrix(arr) ? arr.size() : arraySize(arr);
  16577. return dotDivide2(conj2(fft2(conj2(arr))), size2.reduce((acc, curr) => acc * curr, 1));
  16578. }
  16579. });
  16580. });
  16581. // node_modules/mathjs/lib/esm/function/special/erf.js
  16582. var name111 = "erf";
  16583. var dependencies111 = ["typed"];
  16584. var createErf = factory(name111, dependencies111, (_ref) => {
  16585. var {
  16586. typed: typed2
  16587. } = _ref;
  16588. return typed2("name", {
  16589. number: function number2(x) {
  16590. var y = Math.abs(x);
  16591. if (y >= MAX_NUM) {
  16592. return sign(x);
  16593. }
  16594. if (y <= THRESH) {
  16595. return sign(x) * erf1(y);
  16596. }
  16597. if (y <= 4) {
  16598. return sign(x) * (1 - erfc2(y));
  16599. }
  16600. return sign(x) * (1 - erfc3(y));
  16601. },
  16602. "Array | Matrix": typed2.referToSelf((self2) => (n) => deepMap(n, self2))
  16603. // TODO: For complex numbers, use the approximation for the Faddeeva function
  16604. // from "More Efficient Computation of the Complex Error Function" (AMS)
  16605. });
  16606. function erf1(y) {
  16607. var ysq = y * y;
  16608. var xnum = P2[0][4] * ysq;
  16609. var xden = ysq;
  16610. var i2;
  16611. for (i2 = 0; i2 < 3; i2 += 1) {
  16612. xnum = (xnum + P2[0][i2]) * ysq;
  16613. xden = (xden + Q[0][i2]) * ysq;
  16614. }
  16615. return y * (xnum + P2[0][3]) / (xden + Q[0][3]);
  16616. }
  16617. function erfc2(y) {
  16618. var xnum = P2[1][8] * y;
  16619. var xden = y;
  16620. var i2;
  16621. for (i2 = 0; i2 < 7; i2 += 1) {
  16622. xnum = (xnum + P2[1][i2]) * y;
  16623. xden = (xden + Q[1][i2]) * y;
  16624. }
  16625. var result = (xnum + P2[1][7]) / (xden + Q[1][7]);
  16626. var ysq = parseInt(y * 16) / 16;
  16627. var del = (y - ysq) * (y + ysq);
  16628. return Math.exp(-ysq * ysq) * Math.exp(-del) * result;
  16629. }
  16630. function erfc3(y) {
  16631. var ysq = 1 / (y * y);
  16632. var xnum = P2[2][5] * ysq;
  16633. var xden = ysq;
  16634. var i2;
  16635. for (i2 = 0; i2 < 4; i2 += 1) {
  16636. xnum = (xnum + P2[2][i2]) * ysq;
  16637. xden = (xden + Q[2][i2]) * ysq;
  16638. }
  16639. var result = ysq * (xnum + P2[2][4]) / (xden + Q[2][4]);
  16640. result = (SQRPI - result) / y;
  16641. ysq = parseInt(y * 16) / 16;
  16642. var del = (y - ysq) * (y + ysq);
  16643. return Math.exp(-ysq * ysq) * Math.exp(-del) * result;
  16644. }
  16645. });
  16646. var THRESH = 0.46875;
  16647. var SQRPI = 0.5641895835477563;
  16648. var P2 = [[3.1611237438705655, 113.86415415105016, 377.485237685302, 3209.3775891384694, 0.18577770618460315], [0.5641884969886701, 8.883149794388377, 66.11919063714163, 298.6351381974001, 881.952221241769, 1712.0476126340707, 2051.0783778260716, 1230.3393547979972, 21531153547440383e-24], [0.30532663496123236, 0.36034489994980445, 0.12578172611122926, 0.016083785148742275, 6587491615298378e-19, 0.016315387137302097]];
  16649. var Q = [[23.601290952344122, 244.02463793444417, 1282.6165260773723, 2844.236833439171], [15.744926110709835, 117.6939508913125, 537.1811018620099, 1621.3895745666903, 3290.7992357334597, 4362.619090143247, 3439.3676741437216, 1230.3393548037495], [2.568520192289822, 1.8729528499234604, 0.5279051029514285, 0.06051834131244132, 0.0023352049762686918]];
  16650. var MAX_NUM = Math.pow(2, 53);
  16651. // node_modules/mathjs/lib/esm/function/statistics/mode.js
  16652. var name112 = "mode";
  16653. var dependencies112 = ["typed", "isNaN", "isNumeric"];
  16654. var createMode = factory(name112, dependencies112, (_ref) => {
  16655. var {
  16656. typed: typed2,
  16657. isNaN: isNaN3,
  16658. isNumeric: isNumeric2
  16659. } = _ref;
  16660. return typed2(name112, {
  16661. "Array | Matrix": _mode,
  16662. "...": function _(args) {
  16663. return _mode(args);
  16664. }
  16665. });
  16666. function _mode(values2) {
  16667. values2 = flatten(values2.valueOf());
  16668. var num = values2.length;
  16669. if (num === 0) {
  16670. throw new Error("Cannot calculate mode of an empty array");
  16671. }
  16672. var count2 = {};
  16673. var mode2 = [];
  16674. var max3 = 0;
  16675. for (var i2 = 0; i2 < values2.length; i2++) {
  16676. var value = values2[i2];
  16677. if (isNumeric2(value) && isNaN3(value)) {
  16678. throw new Error("Cannot calculate mode of an array containing NaN values");
  16679. }
  16680. if (!(value in count2)) {
  16681. count2[value] = 0;
  16682. }
  16683. count2[value]++;
  16684. if (count2[value] === max3) {
  16685. mode2.push(value);
  16686. } else if (count2[value] > max3) {
  16687. max3 = count2[value];
  16688. mode2 = [value];
  16689. }
  16690. }
  16691. return mode2;
  16692. }
  16693. });
  16694. // node_modules/mathjs/lib/esm/function/statistics/utils/improveErrorMessage.js
  16695. function improveErrorMessage(err, fnName, value) {
  16696. var details;
  16697. if (String(err).indexOf("Unexpected type") !== -1) {
  16698. details = arguments.length > 2 ? " (type: " + typeOf(value) + ", value: " + JSON.stringify(value) + ")" : " (type: " + err.data.actual + ")";
  16699. return new TypeError("Cannot calculate " + fnName + ", unexpected type of argument" + details);
  16700. }
  16701. if (String(err).indexOf("complex numbers") !== -1) {
  16702. details = arguments.length > 2 ? " (type: " + typeOf(value) + ", value: " + JSON.stringify(value) + ")" : "";
  16703. return new TypeError("Cannot calculate " + fnName + ", no ordering relation is defined for complex numbers" + details);
  16704. }
  16705. return err;
  16706. }
  16707. // node_modules/mathjs/lib/esm/function/statistics/prod.js
  16708. var name113 = "prod";
  16709. var dependencies113 = ["typed", "config", "multiplyScalar", "numeric"];
  16710. var createProd = factory(name113, dependencies113, (_ref) => {
  16711. var {
  16712. typed: typed2,
  16713. config: config4,
  16714. multiplyScalar: multiplyScalar2,
  16715. numeric: numeric3
  16716. } = _ref;
  16717. return typed2(name113, {
  16718. // prod([a, b, c, d, ...])
  16719. "Array | Matrix": _prod,
  16720. // prod([a, b, c, d, ...], dim)
  16721. "Array | Matrix, number | BigNumber": function ArrayMatrixNumberBigNumber(array, dim) {
  16722. throw new Error("prod(A, dim) is not yet supported");
  16723. },
  16724. // prod(a, b, c, d, ...)
  16725. "...": function _(args) {
  16726. return _prod(args);
  16727. }
  16728. });
  16729. function _prod(array) {
  16730. var prod2;
  16731. deepForEach(array, function(value) {
  16732. try {
  16733. prod2 = prod2 === void 0 ? value : multiplyScalar2(prod2, value);
  16734. } catch (err) {
  16735. throw improveErrorMessage(err, "prod", value);
  16736. }
  16737. });
  16738. if (typeof prod2 === "string") {
  16739. prod2 = numeric3(prod2, config4.number);
  16740. }
  16741. if (prod2 === void 0) {
  16742. throw new Error("Cannot calculate prod of an empty array");
  16743. }
  16744. return prod2;
  16745. }
  16746. });
  16747. // node_modules/mathjs/lib/esm/function/string/format.js
  16748. var name114 = "format";
  16749. var dependencies114 = ["typed"];
  16750. var createFormat = factory(name114, dependencies114, (_ref) => {
  16751. var {
  16752. typed: typed2
  16753. } = _ref;
  16754. return typed2(name114, {
  16755. any: format3,
  16756. "any, Object | function | number": format3
  16757. });
  16758. });
  16759. // node_modules/mathjs/lib/esm/function/string/bin.js
  16760. var name115 = "bin";
  16761. var dependencies115 = ["typed", "format"];
  16762. var createBin = factory(name115, dependencies115, (_ref) => {
  16763. var {
  16764. typed: typed2,
  16765. format: format5
  16766. } = _ref;
  16767. return typed2(name115, {
  16768. "number | BigNumber": function numberBigNumber(n) {
  16769. return format5(n, {
  16770. notation: "bin"
  16771. });
  16772. },
  16773. "number | BigNumber, number": function numberBigNumberNumber(n, wordSize) {
  16774. return format5(n, {
  16775. notation: "bin",
  16776. wordSize
  16777. });
  16778. }
  16779. });
  16780. });
  16781. // node_modules/mathjs/lib/esm/function/string/oct.js
  16782. var name116 = "oct";
  16783. var dependencies116 = ["typed", "format"];
  16784. var createOct = factory(name116, dependencies116, (_ref) => {
  16785. var {
  16786. typed: typed2,
  16787. format: format5
  16788. } = _ref;
  16789. return typed2(name116, {
  16790. "number | BigNumber": function numberBigNumber(n) {
  16791. return format5(n, {
  16792. notation: "oct"
  16793. });
  16794. },
  16795. "number | BigNumber, number": function numberBigNumberNumber(n, wordSize) {
  16796. return format5(n, {
  16797. notation: "oct",
  16798. wordSize
  16799. });
  16800. }
  16801. });
  16802. });
  16803. // node_modules/mathjs/lib/esm/function/string/hex.js
  16804. var name117 = "hex";
  16805. var dependencies117 = ["typed", "format"];
  16806. var createHex = factory(name117, dependencies117, (_ref) => {
  16807. var {
  16808. typed: typed2,
  16809. format: format5
  16810. } = _ref;
  16811. return typed2(name117, {
  16812. "number | BigNumber": function numberBigNumber(n) {
  16813. return format5(n, {
  16814. notation: "hex"
  16815. });
  16816. },
  16817. "number | BigNumber, number": function numberBigNumberNumber(n, wordSize) {
  16818. return format5(n, {
  16819. notation: "hex",
  16820. wordSize
  16821. });
  16822. }
  16823. });
  16824. });
  16825. // node_modules/mathjs/lib/esm/function/string/print.js
  16826. var name118 = "print";
  16827. var dependencies118 = ["typed"];
  16828. var createPrint = factory(name118, dependencies118, (_ref) => {
  16829. var {
  16830. typed: typed2
  16831. } = _ref;
  16832. return typed2(name118, {
  16833. // note: Matrix will be converted automatically to an Array
  16834. "string, Object | Array": _print,
  16835. "string, Object | Array, number | Object": _print
  16836. });
  16837. });
  16838. function _print(template, values2, options) {
  16839. return template.replace(/\$([\w.]+)/g, function(original, key) {
  16840. var keys = key.split(".");
  16841. var value = values2[keys.shift()];
  16842. while (keys.length && value !== void 0) {
  16843. var k = keys.shift();
  16844. value = k ? value[k] : value + ".";
  16845. }
  16846. if (value !== void 0) {
  16847. if (!isString(value)) {
  16848. return format3(value, options);
  16849. } else {
  16850. return value;
  16851. }
  16852. }
  16853. return original;
  16854. });
  16855. }
  16856. // node_modules/mathjs/lib/esm/function/unit/to.js
  16857. var name119 = "to";
  16858. var dependencies119 = ["typed", "matrix", "concat"];
  16859. var createTo = factory(name119, dependencies119, (_ref) => {
  16860. var {
  16861. typed: typed2,
  16862. matrix: matrix2,
  16863. concat: concat2
  16864. } = _ref;
  16865. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  16866. typed: typed2,
  16867. matrix: matrix2,
  16868. concat: concat2
  16869. });
  16870. return typed2(name119, {
  16871. "Unit, Unit | string": (x, unit2) => x.to(unit2)
  16872. }, matrixAlgorithmSuite({
  16873. Ds: true
  16874. }));
  16875. });
  16876. // node_modules/mathjs/lib/esm/function/utils/isPrime.js
  16877. var name120 = "isPrime";
  16878. var dependencies120 = ["typed"];
  16879. var createIsPrime = factory(name120, dependencies120, (_ref) => {
  16880. var {
  16881. typed: typed2
  16882. } = _ref;
  16883. return typed2(name120, {
  16884. number: function number2(x) {
  16885. if (x * 0 !== 0) {
  16886. return false;
  16887. }
  16888. if (x <= 3) {
  16889. return x > 1;
  16890. }
  16891. if (x % 2 === 0 || x % 3 === 0) {
  16892. return false;
  16893. }
  16894. for (var i2 = 5; i2 * i2 <= x; i2 += 6) {
  16895. if (x % i2 === 0 || x % (i2 + 2) === 0) {
  16896. return false;
  16897. }
  16898. }
  16899. return true;
  16900. },
  16901. BigNumber: function BigNumber2(n) {
  16902. if (n.toNumber() * 0 !== 0) {
  16903. return false;
  16904. }
  16905. if (n.lte(3))
  16906. return n.gt(1);
  16907. if (n.mod(2).eq(0) || n.mod(3).eq(0))
  16908. return false;
  16909. if (n.lt(Math.pow(2, 32))) {
  16910. var x = n.toNumber();
  16911. for (var i2 = 5; i2 * i2 <= x; i2 += 6) {
  16912. if (x % i2 === 0 || x % (i2 + 2) === 0) {
  16913. return false;
  16914. }
  16915. }
  16916. return true;
  16917. }
  16918. function modPow(base, exponent, modulus) {
  16919. var accumulator = 1;
  16920. while (!exponent.eq(0)) {
  16921. if (exponent.mod(2).eq(0)) {
  16922. exponent = exponent.div(2);
  16923. base = base.mul(base).mod(modulus);
  16924. } else {
  16925. exponent = exponent.sub(1);
  16926. accumulator = base.mul(accumulator).mod(modulus);
  16927. }
  16928. }
  16929. return accumulator;
  16930. }
  16931. var Decimal2 = n.constructor.clone({
  16932. precision: n.toFixed(0).length * 2
  16933. });
  16934. n = new Decimal2(n);
  16935. var r = 0;
  16936. var d = n.sub(1);
  16937. while (d.mod(2).eq(0)) {
  16938. d = d.div(2);
  16939. r += 1;
  16940. }
  16941. var bases = null;
  16942. if (n.lt("3317044064679887385961981")) {
  16943. bases = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41].filter((x2) => x2 < n);
  16944. } else {
  16945. var max3 = Math.min(n.toNumber() - 2, Math.floor(2 * Math.pow(n.toFixed(0).length * Math.log(10), 2)));
  16946. bases = [];
  16947. for (var _i = 2; _i <= max3; _i += 1) {
  16948. bases.push(max3);
  16949. }
  16950. }
  16951. for (var _i2 = 0; _i2 < bases.length; _i2 += 1) {
  16952. var a = bases[_i2];
  16953. var adn = modPow(n.sub(n).add(a), d, n);
  16954. if (!adn.eq(1)) {
  16955. for (var _i3 = 0, _x = adn; !_x.eq(n.sub(1)); _i3 += 1, _x = _x.mul(_x).mod(n)) {
  16956. if (_i3 === r - 1) {
  16957. return false;
  16958. }
  16959. }
  16960. }
  16961. }
  16962. return true;
  16963. },
  16964. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  16965. });
  16966. });
  16967. // node_modules/mathjs/lib/esm/function/utils/numeric.js
  16968. var name121 = "numeric";
  16969. var dependencies121 = ["number", "?bignumber", "?fraction"];
  16970. var createNumeric = factory(name121, dependencies121, (_ref) => {
  16971. var {
  16972. number: _number,
  16973. bignumber: bignumber2,
  16974. fraction: fraction2
  16975. } = _ref;
  16976. var validInputTypes = {
  16977. string: true,
  16978. number: true,
  16979. BigNumber: true,
  16980. Fraction: true
  16981. };
  16982. var validOutputTypes = {
  16983. number: (x) => _number(x),
  16984. BigNumber: bignumber2 ? (x) => bignumber2(x) : noBignumber,
  16985. Fraction: fraction2 ? (x) => fraction2(x) : noFraction
  16986. };
  16987. return function numeric3(value) {
  16988. var outputType = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "number";
  16989. var check = arguments.length > 2 ? arguments[2] : void 0;
  16990. if (check !== void 0) {
  16991. throw new SyntaxError("numeric() takes one or two arguments");
  16992. }
  16993. var inputType = typeOf(value);
  16994. if (!(inputType in validInputTypes)) {
  16995. throw new TypeError("Cannot convert " + value + ' of type "' + inputType + '"; valid input types are ' + Object.keys(validInputTypes).join(", "));
  16996. }
  16997. if (!(outputType in validOutputTypes)) {
  16998. throw new TypeError("Cannot convert " + value + ' to type "' + outputType + '"; valid output types are ' + Object.keys(validOutputTypes).join(", "));
  16999. }
  17000. if (outputType === inputType) {
  17001. return value;
  17002. } else {
  17003. return validOutputTypes[outputType](value);
  17004. }
  17005. };
  17006. });
  17007. // node_modules/mathjs/lib/esm/function/arithmetic/divideScalar.js
  17008. var name122 = "divideScalar";
  17009. var dependencies122 = ["typed", "numeric"];
  17010. var createDivideScalar = factory(name122, dependencies122, (_ref) => {
  17011. var {
  17012. typed: typed2,
  17013. numeric: numeric3
  17014. } = _ref;
  17015. return typed2(name122, {
  17016. "number, number": function numberNumber(x, y) {
  17017. return x / y;
  17018. },
  17019. "Complex, Complex": function ComplexComplex(x, y) {
  17020. return x.div(y);
  17021. },
  17022. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  17023. return x.div(y);
  17024. },
  17025. "Fraction, Fraction": function FractionFraction(x, y) {
  17026. return x.div(y);
  17027. },
  17028. "Unit, number | Complex | Fraction | BigNumber | Unit": (x, y) => x.divide(y),
  17029. "number | Fraction | Complex | BigNumber, Unit": (x, y) => y.divideInto(x)
  17030. });
  17031. });
  17032. // node_modules/mathjs/lib/esm/function/arithmetic/pow.js
  17033. var name123 = "pow";
  17034. var dependencies123 = ["typed", "config", "identity", "multiply", "matrix", "inv", "fraction", "number", "Complex"];
  17035. var createPow = factory(name123, dependencies123, (_ref) => {
  17036. var {
  17037. typed: typed2,
  17038. config: config4,
  17039. identity: identity2,
  17040. multiply: multiply2,
  17041. matrix: matrix2,
  17042. inv: inv2,
  17043. number: number2,
  17044. fraction: fraction2,
  17045. Complex: Complex3
  17046. } = _ref;
  17047. return typed2(name123, {
  17048. "number, number": _pow,
  17049. "Complex, Complex": function ComplexComplex(x, y) {
  17050. return x.pow(y);
  17051. },
  17052. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  17053. if (y.isInteger() || x >= 0 || config4.predictable) {
  17054. return x.pow(y);
  17055. } else {
  17056. return new Complex3(x.toNumber(), 0).pow(y.toNumber(), 0);
  17057. }
  17058. },
  17059. "Fraction, Fraction": function FractionFraction(x, y) {
  17060. var result = x.pow(y);
  17061. if (result != null) {
  17062. return result;
  17063. }
  17064. if (config4.predictable) {
  17065. throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");
  17066. } else {
  17067. return _pow(x.valueOf(), y.valueOf());
  17068. }
  17069. },
  17070. "Array, number": _powArray,
  17071. "Array, BigNumber": function ArrayBigNumber(x, y) {
  17072. return _powArray(x, y.toNumber());
  17073. },
  17074. "Matrix, number": _powMatrix,
  17075. "Matrix, BigNumber": function MatrixBigNumber(x, y) {
  17076. return _powMatrix(x, y.toNumber());
  17077. },
  17078. "Unit, number | BigNumber": function UnitNumberBigNumber(x, y) {
  17079. return x.pow(y);
  17080. }
  17081. });
  17082. function _pow(x, y) {
  17083. if (config4.predictable && !isInteger(y) && x < 0) {
  17084. try {
  17085. var yFrac = fraction2(y);
  17086. var yNum = number2(yFrac);
  17087. if (y === yNum || Math.abs((y - yNum) / y) < 1e-14) {
  17088. if (yFrac.d % 2 === 1) {
  17089. return (yFrac.n % 2 === 0 ? 1 : -1) * Math.pow(-x, y);
  17090. }
  17091. }
  17092. } catch (ex) {
  17093. }
  17094. }
  17095. if (config4.predictable && (x < -1 && y === Infinity || x > -1 && x < 0 && y === -Infinity)) {
  17096. return NaN;
  17097. }
  17098. if (isInteger(y) || x >= 0 || config4.predictable) {
  17099. return powNumber(x, y);
  17100. } else {
  17101. if (x * x < 1 && y === Infinity || x * x > 1 && y === -Infinity) {
  17102. return 0;
  17103. }
  17104. return new Complex3(x, 0).pow(y, 0);
  17105. }
  17106. }
  17107. function _powArray(x, y) {
  17108. if (!isInteger(y)) {
  17109. throw new TypeError("For A^b, b must be an integer (value is " + y + ")");
  17110. }
  17111. var s = arraySize(x);
  17112. if (s.length !== 2) {
  17113. throw new Error("For A^b, A must be 2 dimensional (A has " + s.length + " dimensions)");
  17114. }
  17115. if (s[0] !== s[1]) {
  17116. throw new Error("For A^b, A must be square (size is " + s[0] + "x" + s[1] + ")");
  17117. }
  17118. if (y < 0) {
  17119. try {
  17120. return _powArray(inv2(x), -y);
  17121. } catch (error) {
  17122. if (error.message === "Cannot calculate inverse, determinant is zero") {
  17123. throw new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is " + y + ")");
  17124. }
  17125. throw error;
  17126. }
  17127. }
  17128. var res = identity2(s[0]).valueOf();
  17129. var px = x;
  17130. while (y >= 1) {
  17131. if ((y & 1) === 1) {
  17132. res = multiply2(px, res);
  17133. }
  17134. y >>= 1;
  17135. px = multiply2(px, px);
  17136. }
  17137. return res;
  17138. }
  17139. function _powMatrix(x, y) {
  17140. return matrix2(_powArray(x.valueOf(), y));
  17141. }
  17142. });
  17143. // node_modules/mathjs/lib/esm/function/arithmetic/round.js
  17144. var NO_INT = "Number of decimals in function round must be an integer";
  17145. var name124 = "round";
  17146. var dependencies124 = ["typed", "matrix", "equalScalar", "zeros", "BigNumber", "DenseMatrix"];
  17147. var createRound = factory(name124, dependencies124, (_ref) => {
  17148. var {
  17149. typed: typed2,
  17150. matrix: matrix2,
  17151. equalScalar: equalScalar2,
  17152. zeros: zeros3,
  17153. BigNumber: BigNumber2,
  17154. DenseMatrix: DenseMatrix2
  17155. } = _ref;
  17156. var matAlgo11xS0s = createMatAlgo11xS0s({
  17157. typed: typed2,
  17158. equalScalar: equalScalar2
  17159. });
  17160. var matAlgo12xSfs = createMatAlgo12xSfs({
  17161. typed: typed2,
  17162. DenseMatrix: DenseMatrix2
  17163. });
  17164. var matAlgo14xDs = createMatAlgo14xDs({
  17165. typed: typed2
  17166. });
  17167. return typed2(name124, {
  17168. number: roundNumber,
  17169. "number, number": roundNumber,
  17170. "number, BigNumber": function numberBigNumber(x, n) {
  17171. if (!n.isInteger()) {
  17172. throw new TypeError(NO_INT);
  17173. }
  17174. return new BigNumber2(x).toDecimalPlaces(n.toNumber());
  17175. },
  17176. Complex: function Complex3(x) {
  17177. return x.round();
  17178. },
  17179. "Complex, number": function ComplexNumber(x, n) {
  17180. if (n % 1) {
  17181. throw new TypeError(NO_INT);
  17182. }
  17183. return x.round(n);
  17184. },
  17185. "Complex, BigNumber": function ComplexBigNumber(x, n) {
  17186. if (!n.isInteger()) {
  17187. throw new TypeError(NO_INT);
  17188. }
  17189. var _n = n.toNumber();
  17190. return x.round(_n);
  17191. },
  17192. BigNumber: function BigNumber3(x) {
  17193. return x.toDecimalPlaces(0);
  17194. },
  17195. "BigNumber, BigNumber": function BigNumberBigNumber(x, n) {
  17196. if (!n.isInteger()) {
  17197. throw new TypeError(NO_INT);
  17198. }
  17199. return x.toDecimalPlaces(n.toNumber());
  17200. },
  17201. Fraction: function Fraction3(x) {
  17202. return x.round();
  17203. },
  17204. "Fraction, number": function FractionNumber(x, n) {
  17205. if (n % 1) {
  17206. throw new TypeError(NO_INT);
  17207. }
  17208. return x.round(n);
  17209. },
  17210. "Fraction, BigNumber": function FractionBigNumber(x, n) {
  17211. if (!n.isInteger()) {
  17212. throw new TypeError(NO_INT);
  17213. }
  17214. return x.round(n.toNumber());
  17215. },
  17216. // deep map collection, skip zeros since round(0) = 0
  17217. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2, true)),
  17218. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  17219. return matAlgo11xS0s(x, y, self2, false);
  17220. }),
  17221. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  17222. return matAlgo14xDs(x, y, self2, false);
  17223. }),
  17224. "Array, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  17225. return matAlgo14xDs(matrix2(x), y, self2, false).valueOf();
  17226. }),
  17227. "number | Complex | BigNumber | Fraction, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  17228. if (equalScalar2(x, 0)) {
  17229. return zeros3(y.size(), y.storage());
  17230. }
  17231. return matAlgo12xSfs(y, x, self2, true);
  17232. }),
  17233. "number | Complex | BigNumber | Fraction, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  17234. if (equalScalar2(x, 0)) {
  17235. return zeros3(y.size(), y.storage());
  17236. }
  17237. return matAlgo14xDs(y, x, self2, true);
  17238. }),
  17239. "number | Complex | BigNumber | Fraction, Array": typed2.referToSelf((self2) => (x, y) => {
  17240. return matAlgo14xDs(matrix2(y), x, self2, true).valueOf();
  17241. })
  17242. });
  17243. });
  17244. // node_modules/mathjs/lib/esm/function/arithmetic/log.js
  17245. var name125 = "log";
  17246. var dependencies125 = ["config", "typed", "divideScalar", "Complex"];
  17247. var createLog = factory(name125, dependencies125, (_ref) => {
  17248. var {
  17249. typed: typed2,
  17250. config: config4,
  17251. divideScalar: divideScalar2,
  17252. Complex: Complex3
  17253. } = _ref;
  17254. return typed2(name125, {
  17255. number: function number2(x) {
  17256. if (x >= 0 || config4.predictable) {
  17257. return logNumber(x);
  17258. } else {
  17259. return new Complex3(x, 0).log();
  17260. }
  17261. },
  17262. Complex: function Complex4(x) {
  17263. return x.log();
  17264. },
  17265. BigNumber: function BigNumber2(x) {
  17266. if (!x.isNegative() || config4.predictable) {
  17267. return x.ln();
  17268. } else {
  17269. return new Complex3(x.toNumber(), 0).log();
  17270. }
  17271. },
  17272. "any, any": typed2.referToSelf((self2) => (x, base) => {
  17273. return divideScalar2(self2(x), self2(base));
  17274. })
  17275. });
  17276. });
  17277. // node_modules/mathjs/lib/esm/function/arithmetic/log1p.js
  17278. var name126 = "log1p";
  17279. var dependencies126 = ["typed", "config", "divideScalar", "log", "Complex"];
  17280. var createLog1p = factory(name126, dependencies126, (_ref) => {
  17281. var {
  17282. typed: typed2,
  17283. config: config4,
  17284. divideScalar: divideScalar2,
  17285. log: log4,
  17286. Complex: Complex3
  17287. } = _ref;
  17288. return typed2(name126, {
  17289. number: function number2(x) {
  17290. if (x >= -1 || config4.predictable) {
  17291. return log1p(x);
  17292. } else {
  17293. return _log1pComplex(new Complex3(x, 0));
  17294. }
  17295. },
  17296. Complex: _log1pComplex,
  17297. BigNumber: function BigNumber2(x) {
  17298. var y = x.plus(1);
  17299. if (!y.isNegative() || config4.predictable) {
  17300. return y.ln();
  17301. } else {
  17302. return _log1pComplex(new Complex3(x.toNumber(), 0));
  17303. }
  17304. },
  17305. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2)),
  17306. "any, any": typed2.referToSelf((self2) => (x, base) => {
  17307. return divideScalar2(self2(x), log4(base));
  17308. })
  17309. });
  17310. function _log1pComplex(x) {
  17311. var xRe1p = x.re + 1;
  17312. return new Complex3(Math.log(Math.sqrt(xRe1p * xRe1p + x.im * x.im)), Math.atan2(x.im, xRe1p));
  17313. }
  17314. });
  17315. // node_modules/mathjs/lib/esm/function/arithmetic/nthRoots.js
  17316. var name127 = "nthRoots";
  17317. var dependencies127 = ["config", "typed", "divideScalar", "Complex"];
  17318. var createNthRoots = factory(name127, dependencies127, (_ref) => {
  17319. var {
  17320. typed: typed2,
  17321. config: config4,
  17322. divideScalar: divideScalar2,
  17323. Complex: Complex3
  17324. } = _ref;
  17325. var _calculateExactResult = [function realPos(val) {
  17326. return new Complex3(val, 0);
  17327. }, function imagPos(val) {
  17328. return new Complex3(0, val);
  17329. }, function realNeg(val) {
  17330. return new Complex3(-val, 0);
  17331. }, function imagNeg(val) {
  17332. return new Complex3(0, -val);
  17333. }];
  17334. function _nthComplexRoots(a, root) {
  17335. if (root < 0)
  17336. throw new Error("Root must be greater than zero");
  17337. if (root === 0)
  17338. throw new Error("Root must be non-zero");
  17339. if (root % 1 !== 0)
  17340. throw new Error("Root must be an integer");
  17341. if (a === 0 || a.abs() === 0)
  17342. return [new Complex3(0, 0)];
  17343. var aIsNumeric = typeof a === "number";
  17344. var offset;
  17345. if (aIsNumeric || a.re === 0 || a.im === 0) {
  17346. if (aIsNumeric) {
  17347. offset = 2 * +(a < 0);
  17348. } else if (a.im === 0) {
  17349. offset = 2 * +(a.re < 0);
  17350. } else {
  17351. offset = 2 * +(a.im < 0) + 1;
  17352. }
  17353. }
  17354. var arg2 = a.arg();
  17355. var abs3 = a.abs();
  17356. var roots = [];
  17357. var r = Math.pow(abs3, 1 / root);
  17358. for (var k = 0; k < root; k++) {
  17359. var halfPiFactor = (offset + 4 * k) / root;
  17360. if (halfPiFactor === Math.round(halfPiFactor)) {
  17361. roots.push(_calculateExactResult[halfPiFactor % 4](r));
  17362. continue;
  17363. }
  17364. roots.push(new Complex3({
  17365. r,
  17366. phi: (arg2 + 2 * Math.PI * k) / root
  17367. }));
  17368. }
  17369. return roots;
  17370. }
  17371. return typed2(name127, {
  17372. Complex: function Complex4(x) {
  17373. return _nthComplexRoots(x, 2);
  17374. },
  17375. "Complex, number": _nthComplexRoots
  17376. });
  17377. });
  17378. // node_modules/mathjs/lib/esm/function/arithmetic/dotPow.js
  17379. var name128 = "dotPow";
  17380. var dependencies128 = ["typed", "equalScalar", "matrix", "pow", "DenseMatrix", "concat"];
  17381. var createDotPow = factory(name128, dependencies128, (_ref) => {
  17382. var {
  17383. typed: typed2,
  17384. equalScalar: equalScalar2,
  17385. matrix: matrix2,
  17386. pow: pow3,
  17387. DenseMatrix: DenseMatrix2,
  17388. concat: concat2
  17389. } = _ref;
  17390. var matAlgo03xDSf = createMatAlgo03xDSf({
  17391. typed: typed2
  17392. });
  17393. var matAlgo07xSSf = createMatAlgo07xSSf({
  17394. typed: typed2,
  17395. DenseMatrix: DenseMatrix2
  17396. });
  17397. var matAlgo11xS0s = createMatAlgo11xS0s({
  17398. typed: typed2,
  17399. equalScalar: equalScalar2
  17400. });
  17401. var matAlgo12xSfs = createMatAlgo12xSfs({
  17402. typed: typed2,
  17403. DenseMatrix: DenseMatrix2
  17404. });
  17405. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  17406. typed: typed2,
  17407. matrix: matrix2,
  17408. concat: concat2
  17409. });
  17410. var powScalarSignatures = {};
  17411. for (var signature in pow3.signatures) {
  17412. if (Object.prototype.hasOwnProperty.call(pow3.signatures, signature)) {
  17413. if (!signature.includes("Matrix") && !signature.includes("Array")) {
  17414. powScalarSignatures[signature] = pow3.signatures[signature];
  17415. }
  17416. }
  17417. }
  17418. var powScalar = typed2(powScalarSignatures);
  17419. return typed2(name128, matrixAlgorithmSuite({
  17420. elop: powScalar,
  17421. SS: matAlgo07xSSf,
  17422. DS: matAlgo03xDSf,
  17423. Ss: matAlgo11xS0s,
  17424. sS: matAlgo12xSfs
  17425. }));
  17426. });
  17427. // node_modules/mathjs/lib/esm/function/arithmetic/dotDivide.js
  17428. var name129 = "dotDivide";
  17429. var dependencies129 = ["typed", "matrix", "equalScalar", "divideScalar", "DenseMatrix", "concat"];
  17430. var createDotDivide = factory(name129, dependencies129, (_ref) => {
  17431. var {
  17432. typed: typed2,
  17433. matrix: matrix2,
  17434. equalScalar: equalScalar2,
  17435. divideScalar: divideScalar2,
  17436. DenseMatrix: DenseMatrix2,
  17437. concat: concat2
  17438. } = _ref;
  17439. var matAlgo02xDS0 = createMatAlgo02xDS0({
  17440. typed: typed2,
  17441. equalScalar: equalScalar2
  17442. });
  17443. var matAlgo03xDSf = createMatAlgo03xDSf({
  17444. typed: typed2
  17445. });
  17446. var matAlgo07xSSf = createMatAlgo07xSSf({
  17447. typed: typed2,
  17448. DenseMatrix: DenseMatrix2
  17449. });
  17450. var matAlgo11xS0s = createMatAlgo11xS0s({
  17451. typed: typed2,
  17452. equalScalar: equalScalar2
  17453. });
  17454. var matAlgo12xSfs = createMatAlgo12xSfs({
  17455. typed: typed2,
  17456. DenseMatrix: DenseMatrix2
  17457. });
  17458. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  17459. typed: typed2,
  17460. matrix: matrix2,
  17461. concat: concat2
  17462. });
  17463. return typed2(name129, matrixAlgorithmSuite({
  17464. elop: divideScalar2,
  17465. SS: matAlgo07xSSf,
  17466. DS: matAlgo03xDSf,
  17467. SD: matAlgo02xDS0,
  17468. Ss: matAlgo11xS0s,
  17469. sS: matAlgo12xSfs
  17470. }));
  17471. });
  17472. // node_modules/mathjs/lib/esm/function/algebra/solver/utils/solveValidation.js
  17473. function createSolveValidation(_ref) {
  17474. var {
  17475. DenseMatrix: DenseMatrix2
  17476. } = _ref;
  17477. return function solveValidation(m, b, copy) {
  17478. var mSize = m.size();
  17479. if (mSize.length !== 2) {
  17480. throw new RangeError("Matrix must be two dimensional (size: " + format3(mSize) + ")");
  17481. }
  17482. var rows = mSize[0];
  17483. var columns = mSize[1];
  17484. if (rows !== columns) {
  17485. throw new RangeError("Matrix must be square (size: " + format3(mSize) + ")");
  17486. }
  17487. var data = [];
  17488. if (isMatrix(b)) {
  17489. var bSize = b.size();
  17490. var bdata = b._data;
  17491. if (bSize.length === 1) {
  17492. if (bSize[0] !== rows) {
  17493. throw new RangeError("Dimension mismatch. Matrix columns must match vector length.");
  17494. }
  17495. for (var i2 = 0; i2 < rows; i2++) {
  17496. data[i2] = [bdata[i2]];
  17497. }
  17498. return new DenseMatrix2({
  17499. data,
  17500. size: [rows, 1],
  17501. datatype: b._datatype
  17502. });
  17503. }
  17504. if (bSize.length === 2) {
  17505. if (bSize[0] !== rows || bSize[1] !== 1) {
  17506. throw new RangeError("Dimension mismatch. Matrix columns must match vector length.");
  17507. }
  17508. if (isDenseMatrix(b)) {
  17509. if (copy) {
  17510. data = [];
  17511. for (var _i = 0; _i < rows; _i++) {
  17512. data[_i] = [bdata[_i][0]];
  17513. }
  17514. return new DenseMatrix2({
  17515. data,
  17516. size: [rows, 1],
  17517. datatype: b._datatype
  17518. });
  17519. }
  17520. return b;
  17521. }
  17522. if (isSparseMatrix(b)) {
  17523. for (var _i2 = 0; _i2 < rows; _i2++) {
  17524. data[_i2] = [0];
  17525. }
  17526. var values2 = b._values;
  17527. var index2 = b._index;
  17528. var ptr = b._ptr;
  17529. for (var k1 = ptr[1], k = ptr[0]; k < k1; k++) {
  17530. var _i3 = index2[k];
  17531. data[_i3][0] = values2[k];
  17532. }
  17533. return new DenseMatrix2({
  17534. data,
  17535. size: [rows, 1],
  17536. datatype: b._datatype
  17537. });
  17538. }
  17539. }
  17540. throw new RangeError("Dimension mismatch. The right side has to be either 1- or 2-dimensional vector.");
  17541. }
  17542. if (isArray(b)) {
  17543. var bsize = arraySize(b);
  17544. if (bsize.length === 1) {
  17545. if (bsize[0] !== rows) {
  17546. throw new RangeError("Dimension mismatch. Matrix columns must match vector length.");
  17547. }
  17548. for (var _i4 = 0; _i4 < rows; _i4++) {
  17549. data[_i4] = [b[_i4]];
  17550. }
  17551. return new DenseMatrix2({
  17552. data,
  17553. size: [rows, 1]
  17554. });
  17555. }
  17556. if (bsize.length === 2) {
  17557. if (bsize[0] !== rows || bsize[1] !== 1) {
  17558. throw new RangeError("Dimension mismatch. Matrix columns must match vector length.");
  17559. }
  17560. for (var _i5 = 0; _i5 < rows; _i5++) {
  17561. data[_i5] = [b[_i5][0]];
  17562. }
  17563. return new DenseMatrix2({
  17564. data,
  17565. size: [rows, 1]
  17566. });
  17567. }
  17568. throw new RangeError("Dimension mismatch. The right side has to be either 1- or 2-dimensional vector.");
  17569. }
  17570. };
  17571. }
  17572. // node_modules/mathjs/lib/esm/function/algebra/solver/lsolve.js
  17573. var name130 = "lsolve";
  17574. var dependencies130 = ["typed", "matrix", "divideScalar", "multiplyScalar", "subtract", "equalScalar", "DenseMatrix"];
  17575. var createLsolve = factory(name130, dependencies130, (_ref) => {
  17576. var {
  17577. typed: typed2,
  17578. matrix: matrix2,
  17579. divideScalar: divideScalar2,
  17580. multiplyScalar: multiplyScalar2,
  17581. subtract: subtract2,
  17582. equalScalar: equalScalar2,
  17583. DenseMatrix: DenseMatrix2
  17584. } = _ref;
  17585. var solveValidation = createSolveValidation({
  17586. DenseMatrix: DenseMatrix2
  17587. });
  17588. return typed2(name130, {
  17589. "SparseMatrix, Array | Matrix": function SparseMatrixArrayMatrix(m, b) {
  17590. return _sparseForwardSubstitution(m, b);
  17591. },
  17592. "DenseMatrix, Array | Matrix": function DenseMatrixArrayMatrix(m, b) {
  17593. return _denseForwardSubstitution(m, b);
  17594. },
  17595. "Array, Array | Matrix": function ArrayArrayMatrix(a, b) {
  17596. var m = matrix2(a);
  17597. var r = _denseForwardSubstitution(m, b);
  17598. return r.valueOf();
  17599. }
  17600. });
  17601. function _denseForwardSubstitution(m, b) {
  17602. b = solveValidation(m, b, true);
  17603. var bdata = b._data;
  17604. var rows = m._size[0];
  17605. var columns = m._size[1];
  17606. var x = [];
  17607. var mdata = m._data;
  17608. for (var j = 0; j < columns; j++) {
  17609. var bj = bdata[j][0] || 0;
  17610. var xj = void 0;
  17611. if (!equalScalar2(bj, 0)) {
  17612. var vjj = mdata[j][j];
  17613. if (equalScalar2(vjj, 0)) {
  17614. throw new Error("Linear system cannot be solved since matrix is singular");
  17615. }
  17616. xj = divideScalar2(bj, vjj);
  17617. for (var i2 = j + 1; i2 < rows; i2++) {
  17618. bdata[i2] = [subtract2(bdata[i2][0] || 0, multiplyScalar2(xj, mdata[i2][j]))];
  17619. }
  17620. } else {
  17621. xj = 0;
  17622. }
  17623. x[j] = [xj];
  17624. }
  17625. return new DenseMatrix2({
  17626. data: x,
  17627. size: [rows, 1]
  17628. });
  17629. }
  17630. function _sparseForwardSubstitution(m, b) {
  17631. b = solveValidation(m, b, true);
  17632. var bdata = b._data;
  17633. var rows = m._size[0];
  17634. var columns = m._size[1];
  17635. var values2 = m._values;
  17636. var index2 = m._index;
  17637. var ptr = m._ptr;
  17638. var x = [];
  17639. for (var j = 0; j < columns; j++) {
  17640. var bj = bdata[j][0] || 0;
  17641. if (!equalScalar2(bj, 0)) {
  17642. var vjj = 0;
  17643. var jValues = [];
  17644. var jIndices = [];
  17645. var firstIndex = ptr[j];
  17646. var lastIndex = ptr[j + 1];
  17647. for (var k = firstIndex; k < lastIndex; k++) {
  17648. var i2 = index2[k];
  17649. if (i2 === j) {
  17650. vjj = values2[k];
  17651. } else if (i2 > j) {
  17652. jValues.push(values2[k]);
  17653. jIndices.push(i2);
  17654. }
  17655. }
  17656. if (equalScalar2(vjj, 0)) {
  17657. throw new Error("Linear system cannot be solved since matrix is singular");
  17658. }
  17659. var xj = divideScalar2(bj, vjj);
  17660. for (var _k = 0, l = jIndices.length; _k < l; _k++) {
  17661. var _i = jIndices[_k];
  17662. bdata[_i] = [subtract2(bdata[_i][0] || 0, multiplyScalar2(xj, jValues[_k]))];
  17663. }
  17664. x[j] = [xj];
  17665. } else {
  17666. x[j] = [0];
  17667. }
  17668. }
  17669. return new DenseMatrix2({
  17670. data: x,
  17671. size: [rows, 1]
  17672. });
  17673. }
  17674. });
  17675. // node_modules/mathjs/lib/esm/function/algebra/solver/usolve.js
  17676. var name131 = "usolve";
  17677. var dependencies131 = ["typed", "matrix", "divideScalar", "multiplyScalar", "subtract", "equalScalar", "DenseMatrix"];
  17678. var createUsolve = factory(name131, dependencies131, (_ref) => {
  17679. var {
  17680. typed: typed2,
  17681. matrix: matrix2,
  17682. divideScalar: divideScalar2,
  17683. multiplyScalar: multiplyScalar2,
  17684. subtract: subtract2,
  17685. equalScalar: equalScalar2,
  17686. DenseMatrix: DenseMatrix2
  17687. } = _ref;
  17688. var solveValidation = createSolveValidation({
  17689. DenseMatrix: DenseMatrix2
  17690. });
  17691. return typed2(name131, {
  17692. "SparseMatrix, Array | Matrix": function SparseMatrixArrayMatrix(m, b) {
  17693. return _sparseBackwardSubstitution(m, b);
  17694. },
  17695. "DenseMatrix, Array | Matrix": function DenseMatrixArrayMatrix(m, b) {
  17696. return _denseBackwardSubstitution(m, b);
  17697. },
  17698. "Array, Array | Matrix": function ArrayArrayMatrix(a, b) {
  17699. var m = matrix2(a);
  17700. var r = _denseBackwardSubstitution(m, b);
  17701. return r.valueOf();
  17702. }
  17703. });
  17704. function _denseBackwardSubstitution(m, b) {
  17705. b = solveValidation(m, b, true);
  17706. var bdata = b._data;
  17707. var rows = m._size[0];
  17708. var columns = m._size[1];
  17709. var x = [];
  17710. var mdata = m._data;
  17711. for (var j = columns - 1; j >= 0; j--) {
  17712. var bj = bdata[j][0] || 0;
  17713. var xj = void 0;
  17714. if (!equalScalar2(bj, 0)) {
  17715. var vjj = mdata[j][j];
  17716. if (equalScalar2(vjj, 0)) {
  17717. throw new Error("Linear system cannot be solved since matrix is singular");
  17718. }
  17719. xj = divideScalar2(bj, vjj);
  17720. for (var i2 = j - 1; i2 >= 0; i2--) {
  17721. bdata[i2] = [subtract2(bdata[i2][0] || 0, multiplyScalar2(xj, mdata[i2][j]))];
  17722. }
  17723. } else {
  17724. xj = 0;
  17725. }
  17726. x[j] = [xj];
  17727. }
  17728. return new DenseMatrix2({
  17729. data: x,
  17730. size: [rows, 1]
  17731. });
  17732. }
  17733. function _sparseBackwardSubstitution(m, b) {
  17734. b = solveValidation(m, b, true);
  17735. var bdata = b._data;
  17736. var rows = m._size[0];
  17737. var columns = m._size[1];
  17738. var values2 = m._values;
  17739. var index2 = m._index;
  17740. var ptr = m._ptr;
  17741. var x = [];
  17742. for (var j = columns - 1; j >= 0; j--) {
  17743. var bj = bdata[j][0] || 0;
  17744. if (!equalScalar2(bj, 0)) {
  17745. var vjj = 0;
  17746. var jValues = [];
  17747. var jIndices = [];
  17748. var firstIndex = ptr[j];
  17749. var lastIndex = ptr[j + 1];
  17750. for (var k = lastIndex - 1; k >= firstIndex; k--) {
  17751. var i2 = index2[k];
  17752. if (i2 === j) {
  17753. vjj = values2[k];
  17754. } else if (i2 < j) {
  17755. jValues.push(values2[k]);
  17756. jIndices.push(i2);
  17757. }
  17758. }
  17759. if (equalScalar2(vjj, 0)) {
  17760. throw new Error("Linear system cannot be solved since matrix is singular");
  17761. }
  17762. var xj = divideScalar2(bj, vjj);
  17763. for (var _k = 0, _lastIndex = jIndices.length; _k < _lastIndex; _k++) {
  17764. var _i = jIndices[_k];
  17765. bdata[_i] = [subtract2(bdata[_i][0], multiplyScalar2(xj, jValues[_k]))];
  17766. }
  17767. x[j] = [xj];
  17768. } else {
  17769. x[j] = [0];
  17770. }
  17771. }
  17772. return new DenseMatrix2({
  17773. data: x,
  17774. size: [rows, 1]
  17775. });
  17776. }
  17777. });
  17778. // node_modules/mathjs/lib/esm/function/algebra/solver/lsolveAll.js
  17779. var name132 = "lsolveAll";
  17780. var dependencies132 = ["typed", "matrix", "divideScalar", "multiplyScalar", "subtract", "equalScalar", "DenseMatrix"];
  17781. var createLsolveAll = factory(name132, dependencies132, (_ref) => {
  17782. var {
  17783. typed: typed2,
  17784. matrix: matrix2,
  17785. divideScalar: divideScalar2,
  17786. multiplyScalar: multiplyScalar2,
  17787. subtract: subtract2,
  17788. equalScalar: equalScalar2,
  17789. DenseMatrix: DenseMatrix2
  17790. } = _ref;
  17791. var solveValidation = createSolveValidation({
  17792. DenseMatrix: DenseMatrix2
  17793. });
  17794. return typed2(name132, {
  17795. "SparseMatrix, Array | Matrix": function SparseMatrixArrayMatrix(m, b) {
  17796. return _sparseForwardSubstitution(m, b);
  17797. },
  17798. "DenseMatrix, Array | Matrix": function DenseMatrixArrayMatrix(m, b) {
  17799. return _denseForwardSubstitution(m, b);
  17800. },
  17801. "Array, Array | Matrix": function ArrayArrayMatrix(a, b) {
  17802. var m = matrix2(a);
  17803. var R = _denseForwardSubstitution(m, b);
  17804. return R.map((r) => r.valueOf());
  17805. }
  17806. });
  17807. function _denseForwardSubstitution(m, b_) {
  17808. var B = [solveValidation(m, b_, true)._data.map((e3) => e3[0])];
  17809. var M = m._data;
  17810. var rows = m._size[0];
  17811. var columns = m._size[1];
  17812. for (var i2 = 0; i2 < columns; i2++) {
  17813. var L = B.length;
  17814. for (var k = 0; k < L; k++) {
  17815. var b = B[k];
  17816. if (!equalScalar2(M[i2][i2], 0)) {
  17817. b[i2] = divideScalar2(b[i2], M[i2][i2]);
  17818. for (var j = i2 + 1; j < columns; j++) {
  17819. b[j] = subtract2(b[j], multiplyScalar2(b[i2], M[j][i2]));
  17820. }
  17821. } else if (!equalScalar2(b[i2], 0)) {
  17822. if (k === 0) {
  17823. return [];
  17824. } else {
  17825. B.splice(k, 1);
  17826. k -= 1;
  17827. L -= 1;
  17828. }
  17829. } else if (k === 0) {
  17830. var bNew = [...b];
  17831. bNew[i2] = 1;
  17832. for (var _j = i2 + 1; _j < columns; _j++) {
  17833. bNew[_j] = subtract2(bNew[_j], M[_j][i2]);
  17834. }
  17835. B.push(bNew);
  17836. }
  17837. }
  17838. }
  17839. return B.map((x) => new DenseMatrix2({
  17840. data: x.map((e3) => [e3]),
  17841. size: [rows, 1]
  17842. }));
  17843. }
  17844. function _sparseForwardSubstitution(m, b_) {
  17845. var B = [solveValidation(m, b_, true)._data.map((e3) => e3[0])];
  17846. var rows = m._size[0];
  17847. var columns = m._size[1];
  17848. var values2 = m._values;
  17849. var index2 = m._index;
  17850. var ptr = m._ptr;
  17851. for (var i2 = 0; i2 < columns; i2++) {
  17852. var L = B.length;
  17853. for (var k = 0; k < L; k++) {
  17854. var b = B[k];
  17855. var iValues = [];
  17856. var iIndices = [];
  17857. var firstIndex = ptr[i2];
  17858. var lastIndex = ptr[i2 + 1];
  17859. var Mii = 0;
  17860. for (var j = firstIndex; j < lastIndex; j++) {
  17861. var J = index2[j];
  17862. if (J === i2) {
  17863. Mii = values2[j];
  17864. } else if (J > i2) {
  17865. iValues.push(values2[j]);
  17866. iIndices.push(J);
  17867. }
  17868. }
  17869. if (!equalScalar2(Mii, 0)) {
  17870. b[i2] = divideScalar2(b[i2], Mii);
  17871. for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {
  17872. var _J = iIndices[_j2];
  17873. b[_J] = subtract2(b[_J], multiplyScalar2(b[i2], iValues[_j2]));
  17874. }
  17875. } else if (!equalScalar2(b[i2], 0)) {
  17876. if (k === 0) {
  17877. return [];
  17878. } else {
  17879. B.splice(k, 1);
  17880. k -= 1;
  17881. L -= 1;
  17882. }
  17883. } else if (k === 0) {
  17884. var bNew = [...b];
  17885. bNew[i2] = 1;
  17886. for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {
  17887. var _J2 = iIndices[_j3];
  17888. bNew[_J2] = subtract2(bNew[_J2], iValues[_j3]);
  17889. }
  17890. B.push(bNew);
  17891. }
  17892. }
  17893. }
  17894. return B.map((x) => new DenseMatrix2({
  17895. data: x.map((e3) => [e3]),
  17896. size: [rows, 1]
  17897. }));
  17898. }
  17899. });
  17900. // node_modules/mathjs/lib/esm/function/algebra/solver/usolveAll.js
  17901. var name133 = "usolveAll";
  17902. var dependencies133 = ["typed", "matrix", "divideScalar", "multiplyScalar", "subtract", "equalScalar", "DenseMatrix"];
  17903. var createUsolveAll = factory(name133, dependencies133, (_ref) => {
  17904. var {
  17905. typed: typed2,
  17906. matrix: matrix2,
  17907. divideScalar: divideScalar2,
  17908. multiplyScalar: multiplyScalar2,
  17909. subtract: subtract2,
  17910. equalScalar: equalScalar2,
  17911. DenseMatrix: DenseMatrix2
  17912. } = _ref;
  17913. var solveValidation = createSolveValidation({
  17914. DenseMatrix: DenseMatrix2
  17915. });
  17916. return typed2(name133, {
  17917. "SparseMatrix, Array | Matrix": function SparseMatrixArrayMatrix(m, b) {
  17918. return _sparseBackwardSubstitution(m, b);
  17919. },
  17920. "DenseMatrix, Array | Matrix": function DenseMatrixArrayMatrix(m, b) {
  17921. return _denseBackwardSubstitution(m, b);
  17922. },
  17923. "Array, Array | Matrix": function ArrayArrayMatrix(a, b) {
  17924. var m = matrix2(a);
  17925. var R = _denseBackwardSubstitution(m, b);
  17926. return R.map((r) => r.valueOf());
  17927. }
  17928. });
  17929. function _denseBackwardSubstitution(m, b_) {
  17930. var B = [solveValidation(m, b_, true)._data.map((e3) => e3[0])];
  17931. var M = m._data;
  17932. var rows = m._size[0];
  17933. var columns = m._size[1];
  17934. for (var i2 = columns - 1; i2 >= 0; i2--) {
  17935. var L = B.length;
  17936. for (var k = 0; k < L; k++) {
  17937. var b = B[k];
  17938. if (!equalScalar2(M[i2][i2], 0)) {
  17939. b[i2] = divideScalar2(b[i2], M[i2][i2]);
  17940. for (var j = i2 - 1; j >= 0; j--) {
  17941. b[j] = subtract2(b[j], multiplyScalar2(b[i2], M[j][i2]));
  17942. }
  17943. } else if (!equalScalar2(b[i2], 0)) {
  17944. if (k === 0) {
  17945. return [];
  17946. } else {
  17947. B.splice(k, 1);
  17948. k -= 1;
  17949. L -= 1;
  17950. }
  17951. } else if (k === 0) {
  17952. var bNew = [...b];
  17953. bNew[i2] = 1;
  17954. for (var _j = i2 - 1; _j >= 0; _j--) {
  17955. bNew[_j] = subtract2(bNew[_j], M[_j][i2]);
  17956. }
  17957. B.push(bNew);
  17958. }
  17959. }
  17960. }
  17961. return B.map((x) => new DenseMatrix2({
  17962. data: x.map((e3) => [e3]),
  17963. size: [rows, 1]
  17964. }));
  17965. }
  17966. function _sparseBackwardSubstitution(m, b_) {
  17967. var B = [solveValidation(m, b_, true)._data.map((e3) => e3[0])];
  17968. var rows = m._size[0];
  17969. var columns = m._size[1];
  17970. var values2 = m._values;
  17971. var index2 = m._index;
  17972. var ptr = m._ptr;
  17973. for (var i2 = columns - 1; i2 >= 0; i2--) {
  17974. var L = B.length;
  17975. for (var k = 0; k < L; k++) {
  17976. var b = B[k];
  17977. var iValues = [];
  17978. var iIndices = [];
  17979. var firstIndex = ptr[i2];
  17980. var lastIndex = ptr[i2 + 1];
  17981. var Mii = 0;
  17982. for (var j = lastIndex - 1; j >= firstIndex; j--) {
  17983. var J = index2[j];
  17984. if (J === i2) {
  17985. Mii = values2[j];
  17986. } else if (J < i2) {
  17987. iValues.push(values2[j]);
  17988. iIndices.push(J);
  17989. }
  17990. }
  17991. if (!equalScalar2(Mii, 0)) {
  17992. b[i2] = divideScalar2(b[i2], Mii);
  17993. for (var _j2 = 0, _lastIndex = iIndices.length; _j2 < _lastIndex; _j2++) {
  17994. var _J = iIndices[_j2];
  17995. b[_J] = subtract2(b[_J], multiplyScalar2(b[i2], iValues[_j2]));
  17996. }
  17997. } else if (!equalScalar2(b[i2], 0)) {
  17998. if (k === 0) {
  17999. return [];
  18000. } else {
  18001. B.splice(k, 1);
  18002. k -= 1;
  18003. L -= 1;
  18004. }
  18005. } else if (k === 0) {
  18006. var bNew = [...b];
  18007. bNew[i2] = 1;
  18008. for (var _j3 = 0, _lastIndex2 = iIndices.length; _j3 < _lastIndex2; _j3++) {
  18009. var _J2 = iIndices[_j3];
  18010. bNew[_J2] = subtract2(bNew[_J2], iValues[_j3]);
  18011. }
  18012. B.push(bNew);
  18013. }
  18014. }
  18015. }
  18016. return B.map((x) => new DenseMatrix2({
  18017. data: x.map((e3) => [e3]),
  18018. size: [rows, 1]
  18019. }));
  18020. }
  18021. });
  18022. // node_modules/mathjs/lib/esm/type/matrix/utils/matAlgo08xS0Sid.js
  18023. var name134 = "matAlgo08xS0Sid";
  18024. var dependencies134 = ["typed", "equalScalar"];
  18025. var createMatAlgo08xS0Sid = factory(name134, dependencies134, (_ref) => {
  18026. var {
  18027. typed: typed2,
  18028. equalScalar: equalScalar2
  18029. } = _ref;
  18030. return function matAlgo08xS0Sid(a, b, callback) {
  18031. var avalues = a._values;
  18032. var aindex = a._index;
  18033. var aptr = a._ptr;
  18034. var asize = a._size;
  18035. var adt = a._datatype;
  18036. var bvalues = b._values;
  18037. var bindex = b._index;
  18038. var bptr = b._ptr;
  18039. var bsize = b._size;
  18040. var bdt = b._datatype;
  18041. if (asize.length !== bsize.length) {
  18042. throw new DimensionError(asize.length, bsize.length);
  18043. }
  18044. if (asize[0] !== bsize[0] || asize[1] !== bsize[1]) {
  18045. throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
  18046. }
  18047. if (!avalues || !bvalues) {
  18048. throw new Error("Cannot perform operation on Pattern Sparse Matrices");
  18049. }
  18050. var rows = asize[0];
  18051. var columns = asize[1];
  18052. var dt;
  18053. var eq = equalScalar2;
  18054. var zero = 0;
  18055. var cf = callback;
  18056. if (typeof adt === "string" && adt === bdt) {
  18057. dt = adt;
  18058. eq = typed2.find(equalScalar2, [dt, dt]);
  18059. zero = typed2.convert(0, dt);
  18060. cf = typed2.find(callback, [dt, dt]);
  18061. }
  18062. var cvalues = [];
  18063. var cindex = [];
  18064. var cptr = [];
  18065. var x = [];
  18066. var w = [];
  18067. var k, k0, k1, i2;
  18068. for (var j = 0; j < columns; j++) {
  18069. cptr[j] = cindex.length;
  18070. var mark = j + 1;
  18071. for (k0 = aptr[j], k1 = aptr[j + 1], k = k0; k < k1; k++) {
  18072. i2 = aindex[k];
  18073. w[i2] = mark;
  18074. x[i2] = avalues[k];
  18075. cindex.push(i2);
  18076. }
  18077. for (k0 = bptr[j], k1 = bptr[j + 1], k = k0; k < k1; k++) {
  18078. i2 = bindex[k];
  18079. if (w[i2] === mark) {
  18080. x[i2] = cf(x[i2], bvalues[k]);
  18081. }
  18082. }
  18083. k = cptr[j];
  18084. while (k < cindex.length) {
  18085. i2 = cindex[k];
  18086. var v = x[i2];
  18087. if (!eq(v, zero)) {
  18088. cvalues.push(v);
  18089. k++;
  18090. } else {
  18091. cindex.splice(k, 1);
  18092. }
  18093. }
  18094. }
  18095. cptr[columns] = cindex.length;
  18096. return a.createSparseMatrix({
  18097. values: cvalues,
  18098. index: cindex,
  18099. ptr: cptr,
  18100. size: [rows, columns],
  18101. datatype: dt
  18102. });
  18103. };
  18104. });
  18105. // node_modules/mathjs/lib/esm/function/bitwise/useMatrixForArrayScalar.js
  18106. var createUseMatrixForArrayScalar = factory("useMatrixForArrayScalar", ["typed", "matrix"], (_ref) => {
  18107. var {
  18108. typed: typed2,
  18109. matrix: matrix2
  18110. } = _ref;
  18111. return {
  18112. "Array, number": typed2.referTo("DenseMatrix, number", (selfDn) => (x, y) => selfDn(matrix2(x), y).valueOf()),
  18113. "Array, BigNumber": typed2.referTo("DenseMatrix, BigNumber", (selfDB) => (x, y) => selfDB(matrix2(x), y).valueOf()),
  18114. "number, Array": typed2.referTo("number, DenseMatrix", (selfnD) => (x, y) => selfnD(x, matrix2(y)).valueOf()),
  18115. "BigNumber, Array": typed2.referTo("BigNumber, DenseMatrix", (selfBD) => (x, y) => selfBD(x, matrix2(y)).valueOf())
  18116. };
  18117. });
  18118. // node_modules/mathjs/lib/esm/function/bitwise/leftShift.js
  18119. var name135 = "leftShift";
  18120. var dependencies135 = ["typed", "matrix", "equalScalar", "zeros", "DenseMatrix", "concat"];
  18121. var createLeftShift = factory(name135, dependencies135, (_ref) => {
  18122. var {
  18123. typed: typed2,
  18124. matrix: matrix2,
  18125. equalScalar: equalScalar2,
  18126. zeros: zeros3,
  18127. DenseMatrix: DenseMatrix2,
  18128. concat: concat2
  18129. } = _ref;
  18130. var matAlgo01xDSid = createMatAlgo01xDSid({
  18131. typed: typed2
  18132. });
  18133. var matAlgo02xDS0 = createMatAlgo02xDS0({
  18134. typed: typed2,
  18135. equalScalar: equalScalar2
  18136. });
  18137. var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
  18138. typed: typed2,
  18139. equalScalar: equalScalar2
  18140. });
  18141. var matAlgo10xSids = createMatAlgo10xSids({
  18142. typed: typed2,
  18143. DenseMatrix: DenseMatrix2
  18144. });
  18145. var matAlgo11xS0s = createMatAlgo11xS0s({
  18146. typed: typed2,
  18147. equalScalar: equalScalar2
  18148. });
  18149. var matAlgo14xDs = createMatAlgo14xDs({
  18150. typed: typed2
  18151. });
  18152. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18153. typed: typed2,
  18154. matrix: matrix2,
  18155. concat: concat2
  18156. });
  18157. var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
  18158. typed: typed2,
  18159. matrix: matrix2
  18160. });
  18161. return typed2(name135, {
  18162. "number, number": leftShiftNumber,
  18163. "BigNumber, BigNumber": leftShiftBigNumber,
  18164. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18165. if (equalScalar2(y, 0)) {
  18166. return x.clone();
  18167. }
  18168. return matAlgo11xS0s(x, y, self2, false);
  18169. }),
  18170. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18171. if (equalScalar2(y, 0)) {
  18172. return x.clone();
  18173. }
  18174. return matAlgo14xDs(x, y, self2, false);
  18175. }),
  18176. "number | BigNumber, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18177. if (equalScalar2(x, 0)) {
  18178. return zeros3(y.size(), y.storage());
  18179. }
  18180. return matAlgo10xSids(y, x, self2, true);
  18181. }),
  18182. "number | BigNumber, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18183. if (equalScalar2(x, 0)) {
  18184. return zeros3(y.size(), y.storage());
  18185. }
  18186. return matAlgo14xDs(y, x, self2, true);
  18187. })
  18188. }, useMatrixForArrayScalar, matrixAlgorithmSuite({
  18189. SS: matAlgo08xS0Sid,
  18190. DS: matAlgo01xDSid,
  18191. SD: matAlgo02xDS0
  18192. }));
  18193. });
  18194. // node_modules/mathjs/lib/esm/function/bitwise/rightArithShift.js
  18195. var name136 = "rightArithShift";
  18196. var dependencies136 = ["typed", "matrix", "equalScalar", "zeros", "DenseMatrix", "concat"];
  18197. var createRightArithShift = factory(name136, dependencies136, (_ref) => {
  18198. var {
  18199. typed: typed2,
  18200. matrix: matrix2,
  18201. equalScalar: equalScalar2,
  18202. zeros: zeros3,
  18203. DenseMatrix: DenseMatrix2,
  18204. concat: concat2
  18205. } = _ref;
  18206. var matAlgo01xDSid = createMatAlgo01xDSid({
  18207. typed: typed2
  18208. });
  18209. var matAlgo02xDS0 = createMatAlgo02xDS0({
  18210. typed: typed2,
  18211. equalScalar: equalScalar2
  18212. });
  18213. var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
  18214. typed: typed2,
  18215. equalScalar: equalScalar2
  18216. });
  18217. var matAlgo10xSids = createMatAlgo10xSids({
  18218. typed: typed2,
  18219. DenseMatrix: DenseMatrix2
  18220. });
  18221. var matAlgo11xS0s = createMatAlgo11xS0s({
  18222. typed: typed2,
  18223. equalScalar: equalScalar2
  18224. });
  18225. var matAlgo14xDs = createMatAlgo14xDs({
  18226. typed: typed2
  18227. });
  18228. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18229. typed: typed2,
  18230. matrix: matrix2,
  18231. concat: concat2
  18232. });
  18233. var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
  18234. typed: typed2,
  18235. matrix: matrix2
  18236. });
  18237. return typed2(name136, {
  18238. "number, number": rightArithShiftNumber,
  18239. "BigNumber, BigNumber": rightArithShiftBigNumber,
  18240. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18241. if (equalScalar2(y, 0)) {
  18242. return x.clone();
  18243. }
  18244. return matAlgo11xS0s(x, y, self2, false);
  18245. }),
  18246. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18247. if (equalScalar2(y, 0)) {
  18248. return x.clone();
  18249. }
  18250. return matAlgo14xDs(x, y, self2, false);
  18251. }),
  18252. "number | BigNumber, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18253. if (equalScalar2(x, 0)) {
  18254. return zeros3(y.size(), y.storage());
  18255. }
  18256. return matAlgo10xSids(y, x, self2, true);
  18257. }),
  18258. "number | BigNumber, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18259. if (equalScalar2(x, 0)) {
  18260. return zeros3(y.size(), y.storage());
  18261. }
  18262. return matAlgo14xDs(y, x, self2, true);
  18263. })
  18264. }, useMatrixForArrayScalar, matrixAlgorithmSuite({
  18265. SS: matAlgo08xS0Sid,
  18266. DS: matAlgo01xDSid,
  18267. SD: matAlgo02xDS0
  18268. }));
  18269. });
  18270. // node_modules/mathjs/lib/esm/function/bitwise/rightLogShift.js
  18271. var name137 = "rightLogShift";
  18272. var dependencies137 = ["typed", "matrix", "equalScalar", "zeros", "DenseMatrix", "concat"];
  18273. var createRightLogShift = factory(name137, dependencies137, (_ref) => {
  18274. var {
  18275. typed: typed2,
  18276. matrix: matrix2,
  18277. equalScalar: equalScalar2,
  18278. zeros: zeros3,
  18279. DenseMatrix: DenseMatrix2,
  18280. concat: concat2
  18281. } = _ref;
  18282. var matAlgo01xDSid = createMatAlgo01xDSid({
  18283. typed: typed2
  18284. });
  18285. var matAlgo02xDS0 = createMatAlgo02xDS0({
  18286. typed: typed2,
  18287. equalScalar: equalScalar2
  18288. });
  18289. var matAlgo08xS0Sid = createMatAlgo08xS0Sid({
  18290. typed: typed2,
  18291. equalScalar: equalScalar2
  18292. });
  18293. var matAlgo10xSids = createMatAlgo10xSids({
  18294. typed: typed2,
  18295. DenseMatrix: DenseMatrix2
  18296. });
  18297. var matAlgo11xS0s = createMatAlgo11xS0s({
  18298. typed: typed2,
  18299. equalScalar: equalScalar2
  18300. });
  18301. var matAlgo14xDs = createMatAlgo14xDs({
  18302. typed: typed2
  18303. });
  18304. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18305. typed: typed2,
  18306. matrix: matrix2,
  18307. concat: concat2
  18308. });
  18309. var useMatrixForArrayScalar = createUseMatrixForArrayScalar({
  18310. typed: typed2,
  18311. matrix: matrix2
  18312. });
  18313. return typed2(name137, {
  18314. "number, number": rightLogShiftNumber,
  18315. // 'BigNumber, BigNumber': ..., // TODO: implement BigNumber support for rightLogShift
  18316. "SparseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18317. if (equalScalar2(y, 0)) {
  18318. return x.clone();
  18319. }
  18320. return matAlgo11xS0s(x, y, self2, false);
  18321. }),
  18322. "DenseMatrix, number | BigNumber": typed2.referToSelf((self2) => (x, y) => {
  18323. if (equalScalar2(y, 0)) {
  18324. return x.clone();
  18325. }
  18326. return matAlgo14xDs(x, y, self2, false);
  18327. }),
  18328. "number | BigNumber, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18329. if (equalScalar2(x, 0)) {
  18330. return zeros3(y.size(), y.storage());
  18331. }
  18332. return matAlgo10xSids(y, x, self2, true);
  18333. }),
  18334. "number | BigNumber, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18335. if (equalScalar2(x, 0)) {
  18336. return zeros3(y.size(), y.storage());
  18337. }
  18338. return matAlgo14xDs(y, x, self2, true);
  18339. })
  18340. }, useMatrixForArrayScalar, matrixAlgorithmSuite({
  18341. SS: matAlgo08xS0Sid,
  18342. DS: matAlgo01xDSid,
  18343. SD: matAlgo02xDS0
  18344. }));
  18345. });
  18346. // node_modules/mathjs/lib/esm/function/logical/and.js
  18347. var name138 = "and";
  18348. var dependencies138 = ["typed", "matrix", "equalScalar", "zeros", "not", "concat"];
  18349. var createAnd = factory(name138, dependencies138, (_ref) => {
  18350. var {
  18351. typed: typed2,
  18352. matrix: matrix2,
  18353. equalScalar: equalScalar2,
  18354. zeros: zeros3,
  18355. not: not2,
  18356. concat: concat2
  18357. } = _ref;
  18358. var matAlgo02xDS0 = createMatAlgo02xDS0({
  18359. typed: typed2,
  18360. equalScalar: equalScalar2
  18361. });
  18362. var matAlgo06xS0S0 = createMatAlgo06xS0S0({
  18363. typed: typed2,
  18364. equalScalar: equalScalar2
  18365. });
  18366. var matAlgo11xS0s = createMatAlgo11xS0s({
  18367. typed: typed2,
  18368. equalScalar: equalScalar2
  18369. });
  18370. var matAlgo14xDs = createMatAlgo14xDs({
  18371. typed: typed2
  18372. });
  18373. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18374. typed: typed2,
  18375. matrix: matrix2,
  18376. concat: concat2
  18377. });
  18378. return typed2(name138, {
  18379. "number, number": andNumber,
  18380. "Complex, Complex": function ComplexComplex(x, y) {
  18381. return (x.re !== 0 || x.im !== 0) && (y.re !== 0 || y.im !== 0);
  18382. },
  18383. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18384. return !x.isZero() && !y.isZero() && !x.isNaN() && !y.isNaN();
  18385. },
  18386. "Unit, Unit": typed2.referToSelf((self2) => (x, y) => self2(x.value || 0, y.value || 0)),
  18387. "SparseMatrix, any": typed2.referToSelf((self2) => (x, y) => {
  18388. if (not2(y)) {
  18389. return zeros3(x.size(), x.storage());
  18390. }
  18391. return matAlgo11xS0s(x, y, self2, false);
  18392. }),
  18393. "DenseMatrix, any": typed2.referToSelf((self2) => (x, y) => {
  18394. if (not2(y)) {
  18395. return zeros3(x.size(), x.storage());
  18396. }
  18397. return matAlgo14xDs(x, y, self2, false);
  18398. }),
  18399. "any, SparseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18400. if (not2(x)) {
  18401. return zeros3(x.size(), x.storage());
  18402. }
  18403. return matAlgo11xS0s(y, x, self2, true);
  18404. }),
  18405. "any, DenseMatrix": typed2.referToSelf((self2) => (x, y) => {
  18406. if (not2(x)) {
  18407. return zeros3(x.size(), x.storage());
  18408. }
  18409. return matAlgo14xDs(y, x, self2, true);
  18410. }),
  18411. "Array, any": typed2.referToSelf((self2) => (x, y) => {
  18412. return self2(matrix2(x), y).valueOf();
  18413. }),
  18414. "any, Array": typed2.referToSelf((self2) => (x, y) => {
  18415. return self2(x, matrix2(y)).valueOf();
  18416. })
  18417. }, matrixAlgorithmSuite({
  18418. SS: matAlgo06xS0S0,
  18419. DS: matAlgo02xDS0
  18420. }));
  18421. });
  18422. // node_modules/mathjs/lib/esm/function/relational/compare.js
  18423. var name139 = "compare";
  18424. var dependencies139 = ["typed", "config", "matrix", "equalScalar", "BigNumber", "Fraction", "DenseMatrix", "concat"];
  18425. var createCompare = factory(name139, dependencies139, (_ref) => {
  18426. var {
  18427. typed: typed2,
  18428. config: config4,
  18429. equalScalar: equalScalar2,
  18430. matrix: matrix2,
  18431. BigNumber: BigNumber2,
  18432. Fraction: Fraction3,
  18433. DenseMatrix: DenseMatrix2,
  18434. concat: concat2
  18435. } = _ref;
  18436. var matAlgo03xDSf = createMatAlgo03xDSf({
  18437. typed: typed2
  18438. });
  18439. var matAlgo05xSfSf = createMatAlgo05xSfSf({
  18440. typed: typed2,
  18441. equalScalar: equalScalar2
  18442. });
  18443. var matAlgo12xSfs = createMatAlgo12xSfs({
  18444. typed: typed2,
  18445. DenseMatrix: DenseMatrix2
  18446. });
  18447. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18448. typed: typed2,
  18449. matrix: matrix2,
  18450. concat: concat2
  18451. });
  18452. var compareUnits = createCompareUnits({
  18453. typed: typed2
  18454. });
  18455. return typed2(name139, createCompareNumber({
  18456. typed: typed2,
  18457. config: config4
  18458. }), {
  18459. "boolean, boolean": function booleanBoolean(x, y) {
  18460. return x === y ? 0 : x > y ? 1 : -1;
  18461. },
  18462. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18463. return nearlyEqual2(x, y, config4.epsilon) ? new BigNumber2(0) : new BigNumber2(x.cmp(y));
  18464. },
  18465. "Fraction, Fraction": function FractionFraction(x, y) {
  18466. return new Fraction3(x.compare(y));
  18467. },
  18468. "Complex, Complex": function ComplexComplex() {
  18469. throw new TypeError("No ordering relation is defined for complex numbers");
  18470. }
  18471. }, compareUnits, matrixAlgorithmSuite({
  18472. SS: matAlgo05xSfSf,
  18473. DS: matAlgo03xDSf,
  18474. Ss: matAlgo12xSfs
  18475. }));
  18476. });
  18477. var createCompareNumber = factory(name139, ["typed", "config"], (_ref2) => {
  18478. var {
  18479. typed: typed2,
  18480. config: config4
  18481. } = _ref2;
  18482. return typed2(name139, {
  18483. "number, number": function numberNumber(x, y) {
  18484. return nearlyEqual(x, y, config4.epsilon) ? 0 : x > y ? 1 : -1;
  18485. }
  18486. });
  18487. });
  18488. // node_modules/mathjs/lib/esm/function/relational/compareNatural.js
  18489. var import_javascript_natural_sort = __toESM(require_naturalSort(), 1);
  18490. var name140 = "compareNatural";
  18491. var dependencies140 = ["typed", "compare"];
  18492. var createCompareNatural = factory(name140, dependencies140, (_ref) => {
  18493. var {
  18494. typed: typed2,
  18495. compare: compare2
  18496. } = _ref;
  18497. var compareBooleans = compare2.signatures["boolean,boolean"];
  18498. return typed2(name140, {
  18499. "any, any": _compareNatural
  18500. });
  18501. function _compareNatural(x, y) {
  18502. var typeX = typeOf(x);
  18503. var typeY = typeOf(y);
  18504. var c;
  18505. if ((typeX === "number" || typeX === "BigNumber" || typeX === "Fraction") && (typeY === "number" || typeY === "BigNumber" || typeY === "Fraction")) {
  18506. c = compare2(x, y);
  18507. if (c.toString() !== "0") {
  18508. return c > 0 ? 1 : -1;
  18509. } else {
  18510. return (0, import_javascript_natural_sort.default)(typeX, typeY);
  18511. }
  18512. }
  18513. var matTypes = ["Array", "DenseMatrix", "SparseMatrix"];
  18514. if (matTypes.includes(typeX) || matTypes.includes(typeY)) {
  18515. c = compareMatricesAndArrays(_compareNatural, x, y);
  18516. if (c !== 0) {
  18517. return c;
  18518. } else {
  18519. return (0, import_javascript_natural_sort.default)(typeX, typeY);
  18520. }
  18521. }
  18522. if (typeX !== typeY) {
  18523. return (0, import_javascript_natural_sort.default)(typeX, typeY);
  18524. }
  18525. if (typeX === "Complex") {
  18526. return compareComplexNumbers(x, y);
  18527. }
  18528. if (typeX === "Unit") {
  18529. if (x.equalBase(y)) {
  18530. return _compareNatural(x.value, y.value);
  18531. }
  18532. return compareArrays(_compareNatural, x.formatUnits(), y.formatUnits());
  18533. }
  18534. if (typeX === "boolean") {
  18535. return compareBooleans(x, y);
  18536. }
  18537. if (typeX === "string") {
  18538. return (0, import_javascript_natural_sort.default)(x, y);
  18539. }
  18540. if (typeX === "Object") {
  18541. return compareObjects(_compareNatural, x, y);
  18542. }
  18543. if (typeX === "null") {
  18544. return 0;
  18545. }
  18546. if (typeX === "undefined") {
  18547. return 0;
  18548. }
  18549. throw new TypeError('Unsupported type of value "' + typeX + '"');
  18550. }
  18551. function compareMatricesAndArrays(compareNatural2, x, y) {
  18552. if (isSparseMatrix(x) && isSparseMatrix(y)) {
  18553. return compareArrays(compareNatural2, x.toJSON().values, y.toJSON().values);
  18554. }
  18555. if (isSparseMatrix(x)) {
  18556. return compareMatricesAndArrays(compareNatural2, x.toArray(), y);
  18557. }
  18558. if (isSparseMatrix(y)) {
  18559. return compareMatricesAndArrays(compareNatural2, x, y.toArray());
  18560. }
  18561. if (isDenseMatrix(x)) {
  18562. return compareMatricesAndArrays(compareNatural2, x.toJSON().data, y);
  18563. }
  18564. if (isDenseMatrix(y)) {
  18565. return compareMatricesAndArrays(compareNatural2, x, y.toJSON().data);
  18566. }
  18567. if (!Array.isArray(x)) {
  18568. return compareMatricesAndArrays(compareNatural2, [x], y);
  18569. }
  18570. if (!Array.isArray(y)) {
  18571. return compareMatricesAndArrays(compareNatural2, x, [y]);
  18572. }
  18573. return compareArrays(compareNatural2, x, y);
  18574. }
  18575. function compareArrays(compareNatural2, x, y) {
  18576. for (var i2 = 0, ii = Math.min(x.length, y.length); i2 < ii; i2++) {
  18577. var v = compareNatural2(x[i2], y[i2]);
  18578. if (v !== 0) {
  18579. return v;
  18580. }
  18581. }
  18582. if (x.length > y.length) {
  18583. return 1;
  18584. }
  18585. if (x.length < y.length) {
  18586. return -1;
  18587. }
  18588. return 0;
  18589. }
  18590. function compareObjects(compareNatural2, x, y) {
  18591. var keysX = Object.keys(x);
  18592. var keysY = Object.keys(y);
  18593. keysX.sort(import_javascript_natural_sort.default);
  18594. keysY.sort(import_javascript_natural_sort.default);
  18595. var c = compareArrays(compareNatural2, keysX, keysY);
  18596. if (c !== 0) {
  18597. return c;
  18598. }
  18599. for (var i2 = 0; i2 < keysX.length; i2++) {
  18600. var v = compareNatural2(x[keysX[i2]], y[keysY[i2]]);
  18601. if (v !== 0) {
  18602. return v;
  18603. }
  18604. }
  18605. return 0;
  18606. }
  18607. });
  18608. function compareComplexNumbers(x, y) {
  18609. if (x.re > y.re) {
  18610. return 1;
  18611. }
  18612. if (x.re < y.re) {
  18613. return -1;
  18614. }
  18615. if (x.im > y.im) {
  18616. return 1;
  18617. }
  18618. if (x.im < y.im) {
  18619. return -1;
  18620. }
  18621. return 0;
  18622. }
  18623. // node_modules/mathjs/lib/esm/function/relational/compareText.js
  18624. var name141 = "compareText";
  18625. var dependencies141 = ["typed", "matrix", "concat"];
  18626. compareText.signature = "any, any";
  18627. var createCompareText = factory(name141, dependencies141, (_ref) => {
  18628. var {
  18629. typed: typed2,
  18630. matrix: matrix2,
  18631. concat: concat2
  18632. } = _ref;
  18633. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18634. typed: typed2,
  18635. matrix: matrix2,
  18636. concat: concat2
  18637. });
  18638. return typed2(name141, compareText, matrixAlgorithmSuite({
  18639. elop: compareText,
  18640. Ds: true
  18641. }));
  18642. });
  18643. var createCompareTextNumber = factory(name141, ["typed"], (_ref2) => {
  18644. var {
  18645. typed: typed2
  18646. } = _ref2;
  18647. return typed2(name141, compareText);
  18648. });
  18649. // node_modules/mathjs/lib/esm/function/relational/equal.js
  18650. var name142 = "equal";
  18651. var dependencies142 = ["typed", "matrix", "equalScalar", "DenseMatrix", "concat"];
  18652. var createEqual = factory(name142, dependencies142, (_ref) => {
  18653. var {
  18654. typed: typed2,
  18655. matrix: matrix2,
  18656. equalScalar: equalScalar2,
  18657. DenseMatrix: DenseMatrix2,
  18658. concat: concat2
  18659. } = _ref;
  18660. var matAlgo03xDSf = createMatAlgo03xDSf({
  18661. typed: typed2
  18662. });
  18663. var matAlgo07xSSf = createMatAlgo07xSSf({
  18664. typed: typed2,
  18665. DenseMatrix: DenseMatrix2
  18666. });
  18667. var matAlgo12xSfs = createMatAlgo12xSfs({
  18668. typed: typed2,
  18669. DenseMatrix: DenseMatrix2
  18670. });
  18671. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18672. typed: typed2,
  18673. matrix: matrix2,
  18674. concat: concat2
  18675. });
  18676. return typed2(name142, createEqualNumber({
  18677. typed: typed2,
  18678. equalScalar: equalScalar2
  18679. }), matrixAlgorithmSuite({
  18680. elop: equalScalar2,
  18681. SS: matAlgo07xSSf,
  18682. DS: matAlgo03xDSf,
  18683. Ss: matAlgo12xSfs
  18684. }));
  18685. });
  18686. var createEqualNumber = factory(name142, ["typed", "equalScalar"], (_ref2) => {
  18687. var {
  18688. typed: typed2,
  18689. equalScalar: equalScalar2
  18690. } = _ref2;
  18691. return typed2(name142, {
  18692. "any, any": function anyAny(x, y) {
  18693. if (x === null) {
  18694. return y === null;
  18695. }
  18696. if (y === null) {
  18697. return x === null;
  18698. }
  18699. if (x === void 0) {
  18700. return y === void 0;
  18701. }
  18702. if (y === void 0) {
  18703. return x === void 0;
  18704. }
  18705. return equalScalar2(x, y);
  18706. }
  18707. });
  18708. });
  18709. // node_modules/mathjs/lib/esm/function/relational/equalText.js
  18710. var name143 = "equalText";
  18711. var dependencies143 = ["typed", "compareText", "isZero"];
  18712. var createEqualText = factory(name143, dependencies143, (_ref) => {
  18713. var {
  18714. typed: typed2,
  18715. compareText: compareText3,
  18716. isZero: isZero2
  18717. } = _ref;
  18718. return typed2(name143, {
  18719. "any, any": function anyAny(x, y) {
  18720. return isZero2(compareText3(x, y));
  18721. }
  18722. });
  18723. });
  18724. // node_modules/mathjs/lib/esm/function/relational/smaller.js
  18725. var name144 = "smaller";
  18726. var dependencies144 = ["typed", "config", "matrix", "DenseMatrix", "concat"];
  18727. var createSmaller = factory(name144, dependencies144, (_ref) => {
  18728. var {
  18729. typed: typed2,
  18730. config: config4,
  18731. matrix: matrix2,
  18732. DenseMatrix: DenseMatrix2,
  18733. concat: concat2
  18734. } = _ref;
  18735. var matAlgo03xDSf = createMatAlgo03xDSf({
  18736. typed: typed2
  18737. });
  18738. var matAlgo07xSSf = createMatAlgo07xSSf({
  18739. typed: typed2,
  18740. DenseMatrix: DenseMatrix2
  18741. });
  18742. var matAlgo12xSfs = createMatAlgo12xSfs({
  18743. typed: typed2,
  18744. DenseMatrix: DenseMatrix2
  18745. });
  18746. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18747. typed: typed2,
  18748. matrix: matrix2,
  18749. concat: concat2
  18750. });
  18751. var compareUnits = createCompareUnits({
  18752. typed: typed2
  18753. });
  18754. return typed2(name144, createSmallerNumber({
  18755. typed: typed2,
  18756. config: config4
  18757. }), {
  18758. "boolean, boolean": (x, y) => x < y,
  18759. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18760. return x.lt(y) && !nearlyEqual2(x, y, config4.epsilon);
  18761. },
  18762. "Fraction, Fraction": (x, y) => x.compare(y) === -1,
  18763. "Complex, Complex": function ComplexComplex(x, y) {
  18764. throw new TypeError("No ordering relation is defined for complex numbers");
  18765. }
  18766. }, compareUnits, matrixAlgorithmSuite({
  18767. SS: matAlgo07xSSf,
  18768. DS: matAlgo03xDSf,
  18769. Ss: matAlgo12xSfs
  18770. }));
  18771. });
  18772. var createSmallerNumber = factory(name144, ["typed", "config"], (_ref2) => {
  18773. var {
  18774. typed: typed2,
  18775. config: config4
  18776. } = _ref2;
  18777. return typed2(name144, {
  18778. "number, number": function numberNumber(x, y) {
  18779. return x < y && !nearlyEqual(x, y, config4.epsilon);
  18780. }
  18781. });
  18782. });
  18783. // node_modules/mathjs/lib/esm/function/relational/smallerEq.js
  18784. var name145 = "smallerEq";
  18785. var dependencies145 = ["typed", "config", "matrix", "DenseMatrix", "concat"];
  18786. var createSmallerEq = factory(name145, dependencies145, (_ref) => {
  18787. var {
  18788. typed: typed2,
  18789. config: config4,
  18790. matrix: matrix2,
  18791. DenseMatrix: DenseMatrix2,
  18792. concat: concat2
  18793. } = _ref;
  18794. var matAlgo03xDSf = createMatAlgo03xDSf({
  18795. typed: typed2
  18796. });
  18797. var matAlgo07xSSf = createMatAlgo07xSSf({
  18798. typed: typed2,
  18799. DenseMatrix: DenseMatrix2
  18800. });
  18801. var matAlgo12xSfs = createMatAlgo12xSfs({
  18802. typed: typed2,
  18803. DenseMatrix: DenseMatrix2
  18804. });
  18805. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18806. typed: typed2,
  18807. matrix: matrix2,
  18808. concat: concat2
  18809. });
  18810. var compareUnits = createCompareUnits({
  18811. typed: typed2
  18812. });
  18813. return typed2(name145, createSmallerEqNumber({
  18814. typed: typed2,
  18815. config: config4
  18816. }), {
  18817. "boolean, boolean": (x, y) => x <= y,
  18818. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18819. return x.lte(y) || nearlyEqual2(x, y, config4.epsilon);
  18820. },
  18821. "Fraction, Fraction": (x, y) => x.compare(y) !== 1,
  18822. "Complex, Complex": function ComplexComplex() {
  18823. throw new TypeError("No ordering relation is defined for complex numbers");
  18824. }
  18825. }, compareUnits, matrixAlgorithmSuite({
  18826. SS: matAlgo07xSSf,
  18827. DS: matAlgo03xDSf,
  18828. Ss: matAlgo12xSfs
  18829. }));
  18830. });
  18831. var createSmallerEqNumber = factory(name145, ["typed", "config"], (_ref2) => {
  18832. var {
  18833. typed: typed2,
  18834. config: config4
  18835. } = _ref2;
  18836. return typed2(name145, {
  18837. "number, number": function numberNumber(x, y) {
  18838. return x <= y || nearlyEqual(x, y, config4.epsilon);
  18839. }
  18840. });
  18841. });
  18842. // node_modules/mathjs/lib/esm/function/relational/larger.js
  18843. var name146 = "larger";
  18844. var dependencies146 = ["typed", "config", "matrix", "DenseMatrix", "concat"];
  18845. var createLarger = factory(name146, dependencies146, (_ref) => {
  18846. var {
  18847. typed: typed2,
  18848. config: config4,
  18849. matrix: matrix2,
  18850. DenseMatrix: DenseMatrix2,
  18851. concat: concat2
  18852. } = _ref;
  18853. var matAlgo03xDSf = createMatAlgo03xDSf({
  18854. typed: typed2
  18855. });
  18856. var matAlgo07xSSf = createMatAlgo07xSSf({
  18857. typed: typed2,
  18858. DenseMatrix: DenseMatrix2
  18859. });
  18860. var matAlgo12xSfs = createMatAlgo12xSfs({
  18861. typed: typed2,
  18862. DenseMatrix: DenseMatrix2
  18863. });
  18864. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18865. typed: typed2,
  18866. matrix: matrix2,
  18867. concat: concat2
  18868. });
  18869. var compareUnits = createCompareUnits({
  18870. typed: typed2
  18871. });
  18872. return typed2(name146, createLargerNumber({
  18873. typed: typed2,
  18874. config: config4
  18875. }), {
  18876. "boolean, boolean": (x, y) => x > y,
  18877. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18878. return x.gt(y) && !nearlyEqual2(x, y, config4.epsilon);
  18879. },
  18880. "Fraction, Fraction": (x, y) => x.compare(y) === 1,
  18881. "Complex, Complex": function ComplexComplex() {
  18882. throw new TypeError("No ordering relation is defined for complex numbers");
  18883. }
  18884. }, compareUnits, matrixAlgorithmSuite({
  18885. SS: matAlgo07xSSf,
  18886. DS: matAlgo03xDSf,
  18887. Ss: matAlgo12xSfs
  18888. }));
  18889. });
  18890. var createLargerNumber = factory(name146, ["typed", "config"], (_ref2) => {
  18891. var {
  18892. typed: typed2,
  18893. config: config4
  18894. } = _ref2;
  18895. return typed2(name146, {
  18896. "number, number": function numberNumber(x, y) {
  18897. return x > y && !nearlyEqual(x, y, config4.epsilon);
  18898. }
  18899. });
  18900. });
  18901. // node_modules/mathjs/lib/esm/function/relational/largerEq.js
  18902. var name147 = "largerEq";
  18903. var dependencies147 = ["typed", "config", "matrix", "DenseMatrix", "concat"];
  18904. var createLargerEq = factory(name147, dependencies147, (_ref) => {
  18905. var {
  18906. typed: typed2,
  18907. config: config4,
  18908. matrix: matrix2,
  18909. DenseMatrix: DenseMatrix2,
  18910. concat: concat2
  18911. } = _ref;
  18912. var matAlgo03xDSf = createMatAlgo03xDSf({
  18913. typed: typed2
  18914. });
  18915. var matAlgo07xSSf = createMatAlgo07xSSf({
  18916. typed: typed2,
  18917. DenseMatrix: DenseMatrix2
  18918. });
  18919. var matAlgo12xSfs = createMatAlgo12xSfs({
  18920. typed: typed2,
  18921. DenseMatrix: DenseMatrix2
  18922. });
  18923. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  18924. typed: typed2,
  18925. matrix: matrix2,
  18926. concat: concat2
  18927. });
  18928. var compareUnits = createCompareUnits({
  18929. typed: typed2
  18930. });
  18931. return typed2(name147, createLargerEqNumber({
  18932. typed: typed2,
  18933. config: config4
  18934. }), {
  18935. "boolean, boolean": (x, y) => x >= y,
  18936. "BigNumber, BigNumber": function BigNumberBigNumber(x, y) {
  18937. return x.gte(y) || nearlyEqual2(x, y, config4.epsilon);
  18938. },
  18939. "Fraction, Fraction": (x, y) => x.compare(y) !== -1,
  18940. "Complex, Complex": function ComplexComplex() {
  18941. throw new TypeError("No ordering relation is defined for complex numbers");
  18942. }
  18943. }, compareUnits, matrixAlgorithmSuite({
  18944. SS: matAlgo07xSSf,
  18945. DS: matAlgo03xDSf,
  18946. Ss: matAlgo12xSfs
  18947. }));
  18948. });
  18949. var createLargerEqNumber = factory(name147, ["typed", "config"], (_ref2) => {
  18950. var {
  18951. typed: typed2,
  18952. config: config4
  18953. } = _ref2;
  18954. return typed2(name147, {
  18955. "number, number": function numberNumber(x, y) {
  18956. return x >= y || nearlyEqual(x, y, config4.epsilon);
  18957. }
  18958. });
  18959. });
  18960. // node_modules/mathjs/lib/esm/function/relational/deepEqual.js
  18961. var name148 = "deepEqual";
  18962. var dependencies148 = ["typed", "equal"];
  18963. var createDeepEqual = factory(name148, dependencies148, (_ref) => {
  18964. var {
  18965. typed: typed2,
  18966. equal: equal2
  18967. } = _ref;
  18968. return typed2(name148, {
  18969. "any, any": function anyAny(x, y) {
  18970. return _deepEqual(x.valueOf(), y.valueOf());
  18971. }
  18972. });
  18973. function _deepEqual(x, y) {
  18974. if (Array.isArray(x)) {
  18975. if (Array.isArray(y)) {
  18976. var len = x.length;
  18977. if (len !== y.length) {
  18978. return false;
  18979. }
  18980. for (var i2 = 0; i2 < len; i2++) {
  18981. if (!_deepEqual(x[i2], y[i2])) {
  18982. return false;
  18983. }
  18984. }
  18985. return true;
  18986. } else {
  18987. return false;
  18988. }
  18989. } else {
  18990. if (Array.isArray(y)) {
  18991. return false;
  18992. } else {
  18993. return equal2(x, y);
  18994. }
  18995. }
  18996. }
  18997. });
  18998. // node_modules/mathjs/lib/esm/function/relational/unequal.js
  18999. var name149 = "unequal";
  19000. var dependencies149 = ["typed", "config", "equalScalar", "matrix", "DenseMatrix", "concat"];
  19001. var createUnequal = factory(name149, dependencies149, (_ref) => {
  19002. var {
  19003. typed: typed2,
  19004. config: config4,
  19005. equalScalar: equalScalar2,
  19006. matrix: matrix2,
  19007. DenseMatrix: DenseMatrix2,
  19008. concat: concat2
  19009. } = _ref;
  19010. var matAlgo03xDSf = createMatAlgo03xDSf({
  19011. typed: typed2
  19012. });
  19013. var matAlgo07xSSf = createMatAlgo07xSSf({
  19014. typed: typed2,
  19015. DenseMatrix: DenseMatrix2
  19016. });
  19017. var matAlgo12xSfs = createMatAlgo12xSfs({
  19018. typed: typed2,
  19019. DenseMatrix: DenseMatrix2
  19020. });
  19021. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  19022. typed: typed2,
  19023. matrix: matrix2,
  19024. concat: concat2
  19025. });
  19026. return typed2(name149, createUnequalNumber({
  19027. typed: typed2,
  19028. equalScalar: equalScalar2
  19029. }), matrixAlgorithmSuite({
  19030. elop: _unequal,
  19031. SS: matAlgo07xSSf,
  19032. DS: matAlgo03xDSf,
  19033. Ss: matAlgo12xSfs
  19034. }));
  19035. function _unequal(x, y) {
  19036. return !equalScalar2(x, y);
  19037. }
  19038. });
  19039. var createUnequalNumber = factory(name149, ["typed", "equalScalar"], (_ref2) => {
  19040. var {
  19041. typed: typed2,
  19042. equalScalar: equalScalar2
  19043. } = _ref2;
  19044. return typed2(name149, {
  19045. "any, any": function anyAny(x, y) {
  19046. if (x === null) {
  19047. return y !== null;
  19048. }
  19049. if (y === null) {
  19050. return x !== null;
  19051. }
  19052. if (x === void 0) {
  19053. return y !== void 0;
  19054. }
  19055. if (y === void 0) {
  19056. return x !== void 0;
  19057. }
  19058. return !equalScalar2(x, y);
  19059. }
  19060. });
  19061. });
  19062. // node_modules/mathjs/lib/esm/function/matrix/partitionSelect.js
  19063. var name150 = "partitionSelect";
  19064. var dependencies150 = ["typed", "isNumeric", "isNaN", "compare"];
  19065. var createPartitionSelect = factory(name150, dependencies150, (_ref) => {
  19066. var {
  19067. typed: typed2,
  19068. isNumeric: isNumeric2,
  19069. isNaN: isNaN3,
  19070. compare: compare2
  19071. } = _ref;
  19072. var asc = compare2;
  19073. var desc = (a, b) => -compare2(a, b);
  19074. return typed2(name150, {
  19075. "Array | Matrix, number": function ArrayMatrixNumber(x, k) {
  19076. return _partitionSelect(x, k, asc);
  19077. },
  19078. "Array | Matrix, number, string": function ArrayMatrixNumberString(x, k, compare3) {
  19079. if (compare3 === "asc") {
  19080. return _partitionSelect(x, k, asc);
  19081. } else if (compare3 === "desc") {
  19082. return _partitionSelect(x, k, desc);
  19083. } else {
  19084. throw new Error('Compare string must be "asc" or "desc"');
  19085. }
  19086. },
  19087. "Array | Matrix, number, function": _partitionSelect
  19088. });
  19089. function _partitionSelect(x, k, compare3) {
  19090. if (!isInteger(k) || k < 0) {
  19091. throw new Error("k must be a non-negative integer");
  19092. }
  19093. if (isMatrix(x)) {
  19094. var size2 = x.size();
  19095. if (size2.length > 1) {
  19096. throw new Error("Only one dimensional matrices supported");
  19097. }
  19098. return quickSelect(x.valueOf(), k, compare3);
  19099. }
  19100. if (Array.isArray(x)) {
  19101. return quickSelect(x, k, compare3);
  19102. }
  19103. }
  19104. function quickSelect(arr, k, compare3) {
  19105. if (k >= arr.length) {
  19106. throw new Error("k out of bounds");
  19107. }
  19108. for (var i2 = 0; i2 < arr.length; i2++) {
  19109. if (isNumeric2(arr[i2]) && isNaN3(arr[i2])) {
  19110. return arr[i2];
  19111. }
  19112. }
  19113. var from = 0;
  19114. var to2 = arr.length - 1;
  19115. while (from < to2) {
  19116. var r = from;
  19117. var w = to2;
  19118. var pivot = arr[Math.floor(Math.random() * (to2 - from + 1)) + from];
  19119. while (r < w) {
  19120. if (compare3(arr[r], pivot) >= 0) {
  19121. var tmp = arr[w];
  19122. arr[w] = arr[r];
  19123. arr[r] = tmp;
  19124. --w;
  19125. } else {
  19126. ++r;
  19127. }
  19128. }
  19129. if (compare3(arr[r], pivot) > 0) {
  19130. --r;
  19131. }
  19132. if (k <= r) {
  19133. to2 = r;
  19134. } else {
  19135. from = r + 1;
  19136. }
  19137. }
  19138. return arr[k];
  19139. }
  19140. });
  19141. // node_modules/mathjs/lib/esm/function/matrix/sort.js
  19142. var name151 = "sort";
  19143. var dependencies151 = ["typed", "matrix", "compare", "compareNatural"];
  19144. var createSort = factory(name151, dependencies151, (_ref) => {
  19145. var {
  19146. typed: typed2,
  19147. matrix: matrix2,
  19148. compare: compare2,
  19149. compareNatural: compareNatural2
  19150. } = _ref;
  19151. var compareAsc = compare2;
  19152. var compareDesc = (a, b) => -compare2(a, b);
  19153. return typed2(name151, {
  19154. Array: function Array2(x) {
  19155. _arrayIsVector(x);
  19156. return x.sort(compareAsc);
  19157. },
  19158. Matrix: function Matrix2(x) {
  19159. _matrixIsVector(x);
  19160. return matrix2(x.toArray().sort(compareAsc), x.storage());
  19161. },
  19162. "Array, function": function ArrayFunction(x, _comparator2) {
  19163. _arrayIsVector(x);
  19164. return x.sort(_comparator2);
  19165. },
  19166. "Matrix, function": function MatrixFunction(x, _comparator2) {
  19167. _matrixIsVector(x);
  19168. return matrix2(x.toArray().sort(_comparator2), x.storage());
  19169. },
  19170. "Array, string": function ArrayString(x, order) {
  19171. _arrayIsVector(x);
  19172. return x.sort(_comparator(order));
  19173. },
  19174. "Matrix, string": function MatrixString(x, order) {
  19175. _matrixIsVector(x);
  19176. return matrix2(x.toArray().sort(_comparator(order)), x.storage());
  19177. }
  19178. });
  19179. function _comparator(order) {
  19180. if (order === "asc") {
  19181. return compareAsc;
  19182. } else if (order === "desc") {
  19183. return compareDesc;
  19184. } else if (order === "natural") {
  19185. return compareNatural2;
  19186. } else {
  19187. throw new Error('String "asc", "desc", or "natural" expected');
  19188. }
  19189. }
  19190. function _arrayIsVector(array) {
  19191. if (arraySize(array).length !== 1) {
  19192. throw new Error("One dimensional array expected");
  19193. }
  19194. }
  19195. function _matrixIsVector(matrix3) {
  19196. if (matrix3.size().length !== 1) {
  19197. throw new Error("One dimensional matrix expected");
  19198. }
  19199. }
  19200. });
  19201. // node_modules/mathjs/lib/esm/function/statistics/max.js
  19202. var name152 = "max";
  19203. var dependencies152 = ["typed", "config", "numeric", "larger"];
  19204. var createMax = factory(name152, dependencies152, (_ref) => {
  19205. var {
  19206. typed: typed2,
  19207. config: config4,
  19208. numeric: numeric3,
  19209. larger: larger2
  19210. } = _ref;
  19211. return typed2(name152, {
  19212. // max([a, b, c, d, ...])
  19213. "Array | Matrix": _max,
  19214. // max([a, b, c, d, ...], dim)
  19215. "Array | Matrix, number | BigNumber": function ArrayMatrixNumberBigNumber(array, dim) {
  19216. return reduce(array, dim.valueOf(), _largest);
  19217. },
  19218. // max(a, b, c, d, ...)
  19219. "...": function _(args) {
  19220. if (containsCollections(args)) {
  19221. throw new TypeError("Scalar values expected in function max");
  19222. }
  19223. return _max(args);
  19224. }
  19225. });
  19226. function _largest(x, y) {
  19227. try {
  19228. return larger2(x, y) ? x : y;
  19229. } catch (err) {
  19230. throw improveErrorMessage(err, "max", y);
  19231. }
  19232. }
  19233. function _max(array) {
  19234. var res;
  19235. deepForEach(array, function(value) {
  19236. try {
  19237. if (isNaN(value) && typeof value === "number") {
  19238. res = NaN;
  19239. } else if (res === void 0 || larger2(value, res)) {
  19240. res = value;
  19241. }
  19242. } catch (err) {
  19243. throw improveErrorMessage(err, "max", value);
  19244. }
  19245. });
  19246. if (res === void 0) {
  19247. throw new Error("Cannot calculate max of an empty array");
  19248. }
  19249. if (typeof res === "string") {
  19250. res = numeric3(res, config4.number);
  19251. }
  19252. return res;
  19253. }
  19254. });
  19255. // node_modules/mathjs/lib/esm/function/statistics/min.js
  19256. var name153 = "min";
  19257. var dependencies153 = ["typed", "config", "numeric", "smaller"];
  19258. var createMin = factory(name153, dependencies153, (_ref) => {
  19259. var {
  19260. typed: typed2,
  19261. config: config4,
  19262. numeric: numeric3,
  19263. smaller: smaller2
  19264. } = _ref;
  19265. return typed2(name153, {
  19266. // min([a, b, c, d, ...])
  19267. "Array | Matrix": _min,
  19268. // min([a, b, c, d, ...], dim)
  19269. "Array | Matrix, number | BigNumber": function ArrayMatrixNumberBigNumber(array, dim) {
  19270. return reduce(array, dim.valueOf(), _smallest);
  19271. },
  19272. // min(a, b, c, d, ...)
  19273. "...": function _(args) {
  19274. if (containsCollections(args)) {
  19275. throw new TypeError("Scalar values expected in function min");
  19276. }
  19277. return _min(args);
  19278. }
  19279. });
  19280. function _smallest(x, y) {
  19281. try {
  19282. return smaller2(x, y) ? x : y;
  19283. } catch (err) {
  19284. throw improveErrorMessage(err, "min", y);
  19285. }
  19286. }
  19287. function _min(array) {
  19288. var min3;
  19289. deepForEach(array, function(value) {
  19290. try {
  19291. if (isNaN(value) && typeof value === "number") {
  19292. min3 = NaN;
  19293. } else if (min3 === void 0 || smaller2(value, min3)) {
  19294. min3 = value;
  19295. }
  19296. } catch (err) {
  19297. throw improveErrorMessage(err, "min", value);
  19298. }
  19299. });
  19300. if (min3 === void 0) {
  19301. throw new Error("Cannot calculate min of an empty array");
  19302. }
  19303. if (typeof min3 === "string") {
  19304. min3 = numeric3(min3, config4.number);
  19305. }
  19306. return min3;
  19307. }
  19308. });
  19309. // node_modules/mathjs/lib/esm/type/matrix/ImmutableDenseMatrix.js
  19310. var name154 = "ImmutableDenseMatrix";
  19311. var dependencies154 = ["smaller", "DenseMatrix"];
  19312. var createImmutableDenseMatrixClass = factory(name154, dependencies154, (_ref) => {
  19313. var {
  19314. smaller: smaller2,
  19315. DenseMatrix: DenseMatrix2
  19316. } = _ref;
  19317. function ImmutableDenseMatrix2(data, datatype) {
  19318. if (!(this instanceof ImmutableDenseMatrix2)) {
  19319. throw new SyntaxError("Constructor must be called with the new operator");
  19320. }
  19321. if (datatype && !isString(datatype)) {
  19322. throw new Error("Invalid datatype: " + datatype);
  19323. }
  19324. if (isMatrix(data) || isArray(data)) {
  19325. var matrix2 = new DenseMatrix2(data, datatype);
  19326. this._data = matrix2._data;
  19327. this._size = matrix2._size;
  19328. this._datatype = matrix2._datatype;
  19329. this._min = null;
  19330. this._max = null;
  19331. } else if (data && isArray(data.data) && isArray(data.size)) {
  19332. this._data = data.data;
  19333. this._size = data.size;
  19334. this._datatype = data.datatype;
  19335. this._min = typeof data.min !== "undefined" ? data.min : null;
  19336. this._max = typeof data.max !== "undefined" ? data.max : null;
  19337. } else if (data) {
  19338. throw new TypeError("Unsupported type of data (" + typeOf(data) + ")");
  19339. } else {
  19340. this._data = [];
  19341. this._size = [0];
  19342. this._datatype = datatype;
  19343. this._min = null;
  19344. this._max = null;
  19345. }
  19346. }
  19347. ImmutableDenseMatrix2.prototype = new DenseMatrix2();
  19348. ImmutableDenseMatrix2.prototype.type = "ImmutableDenseMatrix";
  19349. ImmutableDenseMatrix2.prototype.isImmutableDenseMatrix = true;
  19350. ImmutableDenseMatrix2.prototype.subset = function(index2) {
  19351. switch (arguments.length) {
  19352. case 1: {
  19353. var m = DenseMatrix2.prototype.subset.call(this, index2);
  19354. if (isMatrix(m)) {
  19355. return new ImmutableDenseMatrix2({
  19356. data: m._data,
  19357. size: m._size,
  19358. datatype: m._datatype
  19359. });
  19360. }
  19361. return m;
  19362. }
  19363. case 2:
  19364. case 3:
  19365. throw new Error("Cannot invoke set subset on an Immutable Matrix instance");
  19366. default:
  19367. throw new SyntaxError("Wrong number of arguments");
  19368. }
  19369. };
  19370. ImmutableDenseMatrix2.prototype.set = function() {
  19371. throw new Error("Cannot invoke set on an Immutable Matrix instance");
  19372. };
  19373. ImmutableDenseMatrix2.prototype.resize = function() {
  19374. throw new Error("Cannot invoke resize on an Immutable Matrix instance");
  19375. };
  19376. ImmutableDenseMatrix2.prototype.reshape = function() {
  19377. throw new Error("Cannot invoke reshape on an Immutable Matrix instance");
  19378. };
  19379. ImmutableDenseMatrix2.prototype.clone = function() {
  19380. return new ImmutableDenseMatrix2({
  19381. data: clone(this._data),
  19382. size: clone(this._size),
  19383. datatype: this._datatype
  19384. });
  19385. };
  19386. ImmutableDenseMatrix2.prototype.toJSON = function() {
  19387. return {
  19388. mathjs: "ImmutableDenseMatrix",
  19389. data: this._data,
  19390. size: this._size,
  19391. datatype: this._datatype
  19392. };
  19393. };
  19394. ImmutableDenseMatrix2.fromJSON = function(json) {
  19395. return new ImmutableDenseMatrix2(json);
  19396. };
  19397. ImmutableDenseMatrix2.prototype.swapRows = function() {
  19398. throw new Error("Cannot invoke swapRows on an Immutable Matrix instance");
  19399. };
  19400. ImmutableDenseMatrix2.prototype.min = function() {
  19401. if (this._min === null) {
  19402. var m = null;
  19403. this.forEach(function(v) {
  19404. if (m === null || smaller2(v, m)) {
  19405. m = v;
  19406. }
  19407. });
  19408. this._min = m !== null ? m : void 0;
  19409. }
  19410. return this._min;
  19411. };
  19412. ImmutableDenseMatrix2.prototype.max = function() {
  19413. if (this._max === null) {
  19414. var m = null;
  19415. this.forEach(function(v) {
  19416. if (m === null || smaller2(m, v)) {
  19417. m = v;
  19418. }
  19419. });
  19420. this._max = m !== null ? m : void 0;
  19421. }
  19422. return this._max;
  19423. };
  19424. return ImmutableDenseMatrix2;
  19425. }, {
  19426. isClass: true
  19427. });
  19428. // node_modules/mathjs/lib/esm/type/matrix/MatrixIndex.js
  19429. var name155 = "Index";
  19430. var dependencies155 = ["ImmutableDenseMatrix"];
  19431. var createIndexClass = factory(name155, dependencies155, (_ref) => {
  19432. var {
  19433. ImmutableDenseMatrix: ImmutableDenseMatrix2
  19434. } = _ref;
  19435. function Index2(ranges) {
  19436. if (!(this instanceof Index2)) {
  19437. throw new SyntaxError("Constructor must be called with the new operator");
  19438. }
  19439. this._dimensions = [];
  19440. this._isScalar = true;
  19441. for (var i2 = 0, ii = arguments.length; i2 < ii; i2++) {
  19442. var arg2 = arguments[i2];
  19443. if (isRange(arg2)) {
  19444. this._dimensions.push(arg2);
  19445. this._isScalar = false;
  19446. } else if (Array.isArray(arg2) || isMatrix(arg2)) {
  19447. var m = _createImmutableMatrix(arg2.valueOf());
  19448. this._dimensions.push(m);
  19449. var size2 = m.size();
  19450. if (size2.length !== 1 || size2[0] !== 1) {
  19451. this._isScalar = false;
  19452. }
  19453. } else if (typeof arg2 === "number") {
  19454. this._dimensions.push(_createImmutableMatrix([arg2]));
  19455. } else if (typeof arg2 === "string") {
  19456. this._dimensions.push(arg2);
  19457. } else {
  19458. throw new TypeError("Dimension must be an Array, Matrix, number, string, or Range");
  19459. }
  19460. }
  19461. }
  19462. Index2.prototype.type = "Index";
  19463. Index2.prototype.isIndex = true;
  19464. function _createImmutableMatrix(arg2) {
  19465. for (var i2 = 0, l = arg2.length; i2 < l; i2++) {
  19466. if (typeof arg2[i2] !== "number" || !isInteger(arg2[i2])) {
  19467. throw new TypeError("Index parameters must be positive integer numbers");
  19468. }
  19469. }
  19470. return new ImmutableDenseMatrix2(arg2);
  19471. }
  19472. Index2.prototype.clone = function() {
  19473. var index2 = new Index2();
  19474. index2._dimensions = clone(this._dimensions);
  19475. index2._isScalar = this._isScalar;
  19476. return index2;
  19477. };
  19478. Index2.create = function(ranges) {
  19479. var index2 = new Index2();
  19480. Index2.apply(index2, ranges);
  19481. return index2;
  19482. };
  19483. Index2.prototype.size = function() {
  19484. var size2 = [];
  19485. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19486. var d = this._dimensions[i2];
  19487. size2[i2] = typeof d === "string" ? 1 : d.size()[0];
  19488. }
  19489. return size2;
  19490. };
  19491. Index2.prototype.max = function() {
  19492. var values2 = [];
  19493. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19494. var range2 = this._dimensions[i2];
  19495. values2[i2] = typeof range2 === "string" ? range2 : range2.max();
  19496. }
  19497. return values2;
  19498. };
  19499. Index2.prototype.min = function() {
  19500. var values2 = [];
  19501. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19502. var range2 = this._dimensions[i2];
  19503. values2[i2] = typeof range2 === "string" ? range2 : range2.min();
  19504. }
  19505. return values2;
  19506. };
  19507. Index2.prototype.forEach = function(callback) {
  19508. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19509. callback(this._dimensions[i2], i2, this);
  19510. }
  19511. };
  19512. Index2.prototype.dimension = function(dim) {
  19513. return this._dimensions[dim] || null;
  19514. };
  19515. Index2.prototype.isObjectProperty = function() {
  19516. return this._dimensions.length === 1 && typeof this._dimensions[0] === "string";
  19517. };
  19518. Index2.prototype.getObjectProperty = function() {
  19519. return this.isObjectProperty() ? this._dimensions[0] : null;
  19520. };
  19521. Index2.prototype.isScalar = function() {
  19522. return this._isScalar;
  19523. };
  19524. Index2.prototype.toArray = function() {
  19525. var array = [];
  19526. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19527. var dimension = this._dimensions[i2];
  19528. array.push(typeof dimension === "string" ? dimension : dimension.toArray());
  19529. }
  19530. return array;
  19531. };
  19532. Index2.prototype.valueOf = Index2.prototype.toArray;
  19533. Index2.prototype.toString = function() {
  19534. var strings = [];
  19535. for (var i2 = 0, ii = this._dimensions.length; i2 < ii; i2++) {
  19536. var dimension = this._dimensions[i2];
  19537. if (typeof dimension === "string") {
  19538. strings.push(JSON.stringify(dimension));
  19539. } else {
  19540. strings.push(dimension.toString());
  19541. }
  19542. }
  19543. return "[" + strings.join(", ") + "]";
  19544. };
  19545. Index2.prototype.toJSON = function() {
  19546. return {
  19547. mathjs: "Index",
  19548. dimensions: this._dimensions
  19549. };
  19550. };
  19551. Index2.fromJSON = function(json) {
  19552. return Index2.create(json.dimensions);
  19553. };
  19554. return Index2;
  19555. }, {
  19556. isClass: true
  19557. });
  19558. // node_modules/mathjs/lib/esm/type/matrix/FibonacciHeap.js
  19559. var name156 = "FibonacciHeap";
  19560. var dependencies156 = ["smaller", "larger"];
  19561. var createFibonacciHeapClass = factory(name156, dependencies156, (_ref) => {
  19562. var {
  19563. smaller: smaller2,
  19564. larger: larger2
  19565. } = _ref;
  19566. var oneOverLogPhi = 1 / Math.log((1 + Math.sqrt(5)) / 2);
  19567. function FibonacciHeap2() {
  19568. if (!(this instanceof FibonacciHeap2)) {
  19569. throw new SyntaxError("Constructor must be called with the new operator");
  19570. }
  19571. this._minimum = null;
  19572. this._size = 0;
  19573. }
  19574. FibonacciHeap2.prototype.type = "FibonacciHeap";
  19575. FibonacciHeap2.prototype.isFibonacciHeap = true;
  19576. FibonacciHeap2.prototype.insert = function(key, value) {
  19577. var node = {
  19578. key,
  19579. value,
  19580. degree: 0
  19581. };
  19582. if (this._minimum) {
  19583. var minimum = this._minimum;
  19584. node.left = minimum;
  19585. node.right = minimum.right;
  19586. minimum.right = node;
  19587. node.right.left = node;
  19588. if (smaller2(key, minimum.key)) {
  19589. this._minimum = node;
  19590. }
  19591. } else {
  19592. node.left = node;
  19593. node.right = node;
  19594. this._minimum = node;
  19595. }
  19596. this._size++;
  19597. return node;
  19598. };
  19599. FibonacciHeap2.prototype.size = function() {
  19600. return this._size;
  19601. };
  19602. FibonacciHeap2.prototype.clear = function() {
  19603. this._minimum = null;
  19604. this._size = 0;
  19605. };
  19606. FibonacciHeap2.prototype.isEmpty = function() {
  19607. return this._size === 0;
  19608. };
  19609. FibonacciHeap2.prototype.extractMinimum = function() {
  19610. var node = this._minimum;
  19611. if (node === null) {
  19612. return node;
  19613. }
  19614. var minimum = this._minimum;
  19615. var numberOfChildren = node.degree;
  19616. var x = node.child;
  19617. while (numberOfChildren > 0) {
  19618. var tempRight = x.right;
  19619. x.left.right = x.right;
  19620. x.right.left = x.left;
  19621. x.left = minimum;
  19622. x.right = minimum.right;
  19623. minimum.right = x;
  19624. x.right.left = x;
  19625. x.parent = null;
  19626. x = tempRight;
  19627. numberOfChildren--;
  19628. }
  19629. node.left.right = node.right;
  19630. node.right.left = node.left;
  19631. if (node === node.right) {
  19632. minimum = null;
  19633. } else {
  19634. minimum = node.right;
  19635. minimum = _findMinimumNode(minimum, this._size);
  19636. }
  19637. this._size--;
  19638. this._minimum = minimum;
  19639. return node;
  19640. };
  19641. FibonacciHeap2.prototype.remove = function(node) {
  19642. this._minimum = _decreaseKey(this._minimum, node, -1);
  19643. this.extractMinimum();
  19644. };
  19645. function _decreaseKey(minimum, node, key) {
  19646. node.key = key;
  19647. var parent = node.parent;
  19648. if (parent && smaller2(node.key, parent.key)) {
  19649. _cut(minimum, node, parent);
  19650. _cascadingCut(minimum, parent);
  19651. }
  19652. if (smaller2(node.key, minimum.key)) {
  19653. minimum = node;
  19654. }
  19655. return minimum;
  19656. }
  19657. function _cut(minimum, node, parent) {
  19658. node.left.right = node.right;
  19659. node.right.left = node.left;
  19660. parent.degree--;
  19661. if (parent.child === node) {
  19662. parent.child = node.right;
  19663. }
  19664. if (parent.degree === 0) {
  19665. parent.child = null;
  19666. }
  19667. node.left = minimum;
  19668. node.right = minimum.right;
  19669. minimum.right = node;
  19670. node.right.left = node;
  19671. node.parent = null;
  19672. node.mark = false;
  19673. }
  19674. function _cascadingCut(minimum, node) {
  19675. var parent = node.parent;
  19676. if (!parent) {
  19677. return;
  19678. }
  19679. if (!node.mark) {
  19680. node.mark = true;
  19681. } else {
  19682. _cut(minimum, node, parent);
  19683. _cascadingCut(parent);
  19684. }
  19685. }
  19686. var _linkNodes = function _linkNodes2(node, parent) {
  19687. node.left.right = node.right;
  19688. node.right.left = node.left;
  19689. node.parent = parent;
  19690. if (!parent.child) {
  19691. parent.child = node;
  19692. node.right = node;
  19693. node.left = node;
  19694. } else {
  19695. node.left = parent.child;
  19696. node.right = parent.child.right;
  19697. parent.child.right = node;
  19698. node.right.left = node;
  19699. }
  19700. parent.degree++;
  19701. node.mark = false;
  19702. };
  19703. function _findMinimumNode(minimum, size2) {
  19704. var arraySize2 = Math.floor(Math.log(size2) * oneOverLogPhi) + 1;
  19705. var array = new Array(arraySize2);
  19706. var numRoots = 0;
  19707. var x = minimum;
  19708. if (x) {
  19709. numRoots++;
  19710. x = x.right;
  19711. while (x !== minimum) {
  19712. numRoots++;
  19713. x = x.right;
  19714. }
  19715. }
  19716. var y;
  19717. while (numRoots > 0) {
  19718. var d = x.degree;
  19719. var next = x.right;
  19720. while (true) {
  19721. y = array[d];
  19722. if (!y) {
  19723. break;
  19724. }
  19725. if (larger2(x.key, y.key)) {
  19726. var temp = y;
  19727. y = x;
  19728. x = temp;
  19729. }
  19730. _linkNodes(y, x);
  19731. array[d] = null;
  19732. d++;
  19733. }
  19734. array[d] = x;
  19735. x = next;
  19736. numRoots--;
  19737. }
  19738. minimum = null;
  19739. for (var i2 = 0; i2 < arraySize2; i2++) {
  19740. y = array[i2];
  19741. if (!y) {
  19742. continue;
  19743. }
  19744. if (minimum) {
  19745. y.left.right = y.right;
  19746. y.right.left = y.left;
  19747. y.left = minimum;
  19748. y.right = minimum.right;
  19749. minimum.right = y;
  19750. y.right.left = y;
  19751. if (smaller2(y.key, minimum.key)) {
  19752. minimum = y;
  19753. }
  19754. } else {
  19755. minimum = y;
  19756. }
  19757. }
  19758. return minimum;
  19759. }
  19760. return FibonacciHeap2;
  19761. }, {
  19762. isClass: true
  19763. });
  19764. // node_modules/mathjs/lib/esm/type/matrix/Spa.js
  19765. var name157 = "Spa";
  19766. var dependencies157 = ["addScalar", "equalScalar", "FibonacciHeap"];
  19767. var createSpaClass = factory(name157, dependencies157, (_ref) => {
  19768. var {
  19769. addScalar: addScalar2,
  19770. equalScalar: equalScalar2,
  19771. FibonacciHeap: FibonacciHeap2
  19772. } = _ref;
  19773. function Spa2() {
  19774. if (!(this instanceof Spa2)) {
  19775. throw new SyntaxError("Constructor must be called with the new operator");
  19776. }
  19777. this._values = [];
  19778. this._heap = new FibonacciHeap2();
  19779. }
  19780. Spa2.prototype.type = "Spa";
  19781. Spa2.prototype.isSpa = true;
  19782. Spa2.prototype.set = function(i2, v) {
  19783. if (!this._values[i2]) {
  19784. var node = this._heap.insert(i2, v);
  19785. this._values[i2] = node;
  19786. } else {
  19787. this._values[i2].value = v;
  19788. }
  19789. };
  19790. Spa2.prototype.get = function(i2) {
  19791. var node = this._values[i2];
  19792. if (node) {
  19793. return node.value;
  19794. }
  19795. return 0;
  19796. };
  19797. Spa2.prototype.accumulate = function(i2, v) {
  19798. var node = this._values[i2];
  19799. if (!node) {
  19800. node = this._heap.insert(i2, v);
  19801. this._values[i2] = node;
  19802. } else {
  19803. node.value = addScalar2(node.value, v);
  19804. }
  19805. };
  19806. Spa2.prototype.forEach = function(from, to2, callback) {
  19807. var heap = this._heap;
  19808. var values2 = this._values;
  19809. var nodes = [];
  19810. var node = heap.extractMinimum();
  19811. if (node) {
  19812. nodes.push(node);
  19813. }
  19814. while (node && node.key <= to2) {
  19815. if (node.key >= from) {
  19816. if (!equalScalar2(node.value, 0)) {
  19817. callback(node.key, node.value, this);
  19818. }
  19819. }
  19820. node = heap.extractMinimum();
  19821. if (node) {
  19822. nodes.push(node);
  19823. }
  19824. }
  19825. for (var i2 = 0; i2 < nodes.length; i2++) {
  19826. var n = nodes[i2];
  19827. node = heap.insert(n.key, n.value);
  19828. values2[node.key] = node;
  19829. }
  19830. };
  19831. Spa2.prototype.swap = function(i2, j) {
  19832. var nodei = this._values[i2];
  19833. var nodej = this._values[j];
  19834. if (!nodei && nodej) {
  19835. nodei = this._heap.insert(i2, nodej.value);
  19836. this._heap.remove(nodej);
  19837. this._values[i2] = nodei;
  19838. this._values[j] = void 0;
  19839. } else if (nodei && !nodej) {
  19840. nodej = this._heap.insert(j, nodei.value);
  19841. this._heap.remove(nodei);
  19842. this._values[j] = nodej;
  19843. this._values[i2] = void 0;
  19844. } else if (nodei && nodej) {
  19845. var v = nodei.value;
  19846. nodei.value = nodej.value;
  19847. nodej.value = v;
  19848. }
  19849. };
  19850. return Spa2;
  19851. }, {
  19852. isClass: true
  19853. });
  19854. // node_modules/mathjs/lib/esm/utils/bignumber/constants.js
  19855. var createBigNumberE = memoize(function(BigNumber2) {
  19856. return new BigNumber2(1).exp();
  19857. }, {
  19858. hasher
  19859. });
  19860. var createBigNumberPhi = memoize(function(BigNumber2) {
  19861. return new BigNumber2(1).plus(new BigNumber2(5).sqrt()).div(2);
  19862. }, {
  19863. hasher
  19864. });
  19865. var createBigNumberPi = memoize(function(BigNumber2) {
  19866. return BigNumber2.acos(-1);
  19867. }, {
  19868. hasher
  19869. });
  19870. var createBigNumberTau = memoize(function(BigNumber2) {
  19871. return createBigNumberPi(BigNumber2).times(2);
  19872. }, {
  19873. hasher
  19874. });
  19875. function hasher(args) {
  19876. return args[0].precision;
  19877. }
  19878. // node_modules/mathjs/lib/esm/type/unit/Unit.js
  19879. function ownKeys(object, enumerableOnly) {
  19880. var keys = Object.keys(object);
  19881. if (Object.getOwnPropertySymbols) {
  19882. var symbols = Object.getOwnPropertySymbols(object);
  19883. enumerableOnly && (symbols = symbols.filter(function(sym) {
  19884. return Object.getOwnPropertyDescriptor(object, sym).enumerable;
  19885. })), keys.push.apply(keys, symbols);
  19886. }
  19887. return keys;
  19888. }
  19889. function _objectSpread(target) {
  19890. for (var i2 = 1; i2 < arguments.length; i2++) {
  19891. var source = null != arguments[i2] ? arguments[i2] : {};
  19892. i2 % 2 ? ownKeys(Object(source), true).forEach(function(key) {
  19893. _defineProperty(target, key, source[key]);
  19894. }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
  19895. Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
  19896. });
  19897. }
  19898. return target;
  19899. }
  19900. var name158 = "Unit";
  19901. var dependencies158 = ["?on", "config", "addScalar", "subtract", "multiplyScalar", "divideScalar", "pow", "abs", "fix", "round", "equal", "isNumeric", "format", "number", "Complex", "BigNumber", "Fraction"];
  19902. var createUnitClass = factory(name158, dependencies158, (_ref) => {
  19903. var {
  19904. on,
  19905. config: config4,
  19906. addScalar: addScalar2,
  19907. subtract: subtract2,
  19908. multiplyScalar: multiplyScalar2,
  19909. divideScalar: divideScalar2,
  19910. pow: pow3,
  19911. abs: abs3,
  19912. fix: fix2,
  19913. round: round3,
  19914. equal: equal2,
  19915. isNumeric: isNumeric2,
  19916. format: format5,
  19917. number: number2,
  19918. Complex: Complex3,
  19919. BigNumber: _BigNumber,
  19920. Fraction: _Fraction
  19921. } = _ref;
  19922. var toNumber = number2;
  19923. function Unit2(value, valuelessUnit) {
  19924. if (!(this instanceof Unit2)) {
  19925. throw new Error("Constructor must be called with the new operator");
  19926. }
  19927. if (!(value === null || value === void 0 || isNumeric2(value) || isComplex(value))) {
  19928. throw new TypeError("First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined");
  19929. }
  19930. this.fixPrefix = false;
  19931. this.skipAutomaticSimplification = true;
  19932. if (valuelessUnit === void 0) {
  19933. this.units = [];
  19934. this.dimensions = BASE_DIMENSIONS.map((x) => 0);
  19935. } else if (typeof valuelessUnit === "string") {
  19936. var u = Unit2.parse(valuelessUnit);
  19937. this.units = u.units;
  19938. this.dimensions = u.dimensions;
  19939. } else if (isUnit(valuelessUnit) && valuelessUnit.value === null) {
  19940. this.fixPrefix = valuelessUnit.fixPrefix;
  19941. this.skipAutomaticSimplification = valuelessUnit.skipAutomaticSimplification;
  19942. this.dimensions = valuelessUnit.dimensions.slice(0);
  19943. this.units = valuelessUnit.units.map((u2) => _extends({}, u2));
  19944. } else {
  19945. throw new TypeError("Second parameter in Unit constructor must be a string or valueless Unit");
  19946. }
  19947. this.value = this._normalize(value);
  19948. }
  19949. Object.defineProperty(Unit2, "name", {
  19950. value: "Unit"
  19951. });
  19952. Unit2.prototype.constructor = Unit2;
  19953. Unit2.prototype.type = "Unit";
  19954. Unit2.prototype.isUnit = true;
  19955. var text, index2, c;
  19956. function skipWhitespace() {
  19957. while (c === " " || c === " ") {
  19958. next();
  19959. }
  19960. }
  19961. function isDigitDot(c2) {
  19962. return c2 >= "0" && c2 <= "9" || c2 === ".";
  19963. }
  19964. function isDigit(c2) {
  19965. return c2 >= "0" && c2 <= "9";
  19966. }
  19967. function next() {
  19968. index2++;
  19969. c = text.charAt(index2);
  19970. }
  19971. function revert(oldIndex) {
  19972. index2 = oldIndex;
  19973. c = text.charAt(index2);
  19974. }
  19975. function parseNumber() {
  19976. var number3 = "";
  19977. var oldIndex = index2;
  19978. if (c === "+") {
  19979. next();
  19980. } else if (c === "-") {
  19981. number3 += c;
  19982. next();
  19983. }
  19984. if (!isDigitDot(c)) {
  19985. revert(oldIndex);
  19986. return null;
  19987. }
  19988. if (c === ".") {
  19989. number3 += c;
  19990. next();
  19991. if (!isDigit(c)) {
  19992. revert(oldIndex);
  19993. return null;
  19994. }
  19995. } else {
  19996. while (isDigit(c)) {
  19997. number3 += c;
  19998. next();
  19999. }
  20000. if (c === ".") {
  20001. number3 += c;
  20002. next();
  20003. }
  20004. }
  20005. while (isDigit(c)) {
  20006. number3 += c;
  20007. next();
  20008. }
  20009. if (c === "E" || c === "e") {
  20010. var tentativeNumber = "";
  20011. var tentativeIndex = index2;
  20012. tentativeNumber += c;
  20013. next();
  20014. if (c === "+" || c === "-") {
  20015. tentativeNumber += c;
  20016. next();
  20017. }
  20018. if (!isDigit(c)) {
  20019. revert(tentativeIndex);
  20020. return number3;
  20021. }
  20022. number3 = number3 + tentativeNumber;
  20023. while (isDigit(c)) {
  20024. number3 += c;
  20025. next();
  20026. }
  20027. }
  20028. return number3;
  20029. }
  20030. function parseUnit() {
  20031. var unitName = "";
  20032. while (isDigit(c) || Unit2.isValidAlpha(c)) {
  20033. unitName += c;
  20034. next();
  20035. }
  20036. var firstC = unitName.charAt(0);
  20037. if (Unit2.isValidAlpha(firstC)) {
  20038. return unitName;
  20039. } else {
  20040. return null;
  20041. }
  20042. }
  20043. function parseCharacter(toFind) {
  20044. if (c === toFind) {
  20045. next();
  20046. return toFind;
  20047. } else {
  20048. return null;
  20049. }
  20050. }
  20051. Unit2.parse = function(str, options) {
  20052. options = options || {};
  20053. text = str;
  20054. index2 = -1;
  20055. c = "";
  20056. if (typeof text !== "string") {
  20057. throw new TypeError("Invalid argument in Unit.parse, string expected");
  20058. }
  20059. var unit3 = new Unit2();
  20060. unit3.units = [];
  20061. var powerMultiplierCurrent = 1;
  20062. var expectingUnit = false;
  20063. next();
  20064. skipWhitespace();
  20065. var valueStr = parseNumber();
  20066. var value = null;
  20067. if (valueStr) {
  20068. if (config4.number === "BigNumber") {
  20069. value = new _BigNumber(valueStr);
  20070. } else if (config4.number === "Fraction") {
  20071. try {
  20072. value = new _Fraction(valueStr);
  20073. } catch (err) {
  20074. value = parseFloat(valueStr);
  20075. }
  20076. } else {
  20077. value = parseFloat(valueStr);
  20078. }
  20079. skipWhitespace();
  20080. if (parseCharacter("*")) {
  20081. powerMultiplierCurrent = 1;
  20082. expectingUnit = true;
  20083. } else if (parseCharacter("/")) {
  20084. powerMultiplierCurrent = -1;
  20085. expectingUnit = true;
  20086. }
  20087. }
  20088. var powerMultiplierStack = [];
  20089. var powerMultiplierStackProduct = 1;
  20090. while (true) {
  20091. skipWhitespace();
  20092. while (c === "(") {
  20093. powerMultiplierStack.push(powerMultiplierCurrent);
  20094. powerMultiplierStackProduct *= powerMultiplierCurrent;
  20095. powerMultiplierCurrent = 1;
  20096. next();
  20097. skipWhitespace();
  20098. }
  20099. var uStr = void 0;
  20100. if (c) {
  20101. var oldC = c;
  20102. uStr = parseUnit();
  20103. if (uStr === null) {
  20104. throw new SyntaxError('Unexpected "' + oldC + '" in "' + text + '" at index ' + index2.toString());
  20105. }
  20106. } else {
  20107. break;
  20108. }
  20109. var res = _findUnit(uStr);
  20110. if (res === null) {
  20111. throw new SyntaxError('Unit "' + uStr + '" not found.');
  20112. }
  20113. var power = powerMultiplierCurrent * powerMultiplierStackProduct;
  20114. skipWhitespace();
  20115. if (parseCharacter("^")) {
  20116. skipWhitespace();
  20117. var p = parseNumber();
  20118. if (p === null) {
  20119. throw new SyntaxError('In "' + str + '", "^" must be followed by a floating-point number');
  20120. }
  20121. power *= p;
  20122. }
  20123. unit3.units.push({
  20124. unit: res.unit,
  20125. prefix: res.prefix,
  20126. power
  20127. });
  20128. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20129. unit3.dimensions[i2] += (res.unit.dimensions[i2] || 0) * power;
  20130. }
  20131. skipWhitespace();
  20132. while (c === ")") {
  20133. if (powerMultiplierStack.length === 0) {
  20134. throw new SyntaxError('Unmatched ")" in "' + text + '" at index ' + index2.toString());
  20135. }
  20136. powerMultiplierStackProduct /= powerMultiplierStack.pop();
  20137. next();
  20138. skipWhitespace();
  20139. }
  20140. expectingUnit = false;
  20141. if (parseCharacter("*")) {
  20142. powerMultiplierCurrent = 1;
  20143. expectingUnit = true;
  20144. } else if (parseCharacter("/")) {
  20145. powerMultiplierCurrent = -1;
  20146. expectingUnit = true;
  20147. } else {
  20148. powerMultiplierCurrent = 1;
  20149. }
  20150. if (res.unit.base) {
  20151. var baseDim = res.unit.base.key;
  20152. UNIT_SYSTEMS.auto[baseDim] = {
  20153. unit: res.unit,
  20154. prefix: res.prefix
  20155. };
  20156. }
  20157. }
  20158. skipWhitespace();
  20159. if (c) {
  20160. throw new SyntaxError('Could not parse: "' + str + '"');
  20161. }
  20162. if (expectingUnit) {
  20163. throw new SyntaxError('Trailing characters: "' + str + '"');
  20164. }
  20165. if (powerMultiplierStack.length !== 0) {
  20166. throw new SyntaxError('Unmatched "(" in "' + text + '"');
  20167. }
  20168. if (unit3.units.length === 0 && !options.allowNoUnits) {
  20169. throw new SyntaxError('"' + str + '" contains no units');
  20170. }
  20171. unit3.value = value !== void 0 ? unit3._normalize(value) : null;
  20172. return unit3;
  20173. };
  20174. Unit2.prototype.clone = function() {
  20175. var unit3 = new Unit2();
  20176. unit3.fixPrefix = this.fixPrefix;
  20177. unit3.skipAutomaticSimplification = this.skipAutomaticSimplification;
  20178. unit3.value = clone(this.value);
  20179. unit3.dimensions = this.dimensions.slice(0);
  20180. unit3.units = [];
  20181. for (var i2 = 0; i2 < this.units.length; i2++) {
  20182. unit3.units[i2] = {};
  20183. for (var p in this.units[i2]) {
  20184. if (hasOwnProperty2(this.units[i2], p)) {
  20185. unit3.units[i2][p] = this.units[i2][p];
  20186. }
  20187. }
  20188. }
  20189. return unit3;
  20190. };
  20191. Unit2.prototype.valueType = function() {
  20192. return typeOf(this.value);
  20193. };
  20194. Unit2.prototype._isDerived = function() {
  20195. if (this.units.length === 0) {
  20196. return false;
  20197. }
  20198. return this.units.length > 1 || Math.abs(this.units[0].power - 1) > 1e-15;
  20199. };
  20200. Unit2.prototype._normalize = function(value) {
  20201. if (value === null || value === void 0 || this.units.length === 0) {
  20202. return value;
  20203. }
  20204. var res = value;
  20205. var convert = Unit2._getNumberConverter(typeOf(value));
  20206. for (var i2 = 0; i2 < this.units.length; i2++) {
  20207. var unitValue = convert(this.units[i2].unit.value);
  20208. var unitPrefixValue = convert(this.units[i2].prefix.value);
  20209. var unitPower = convert(this.units[i2].power);
  20210. res = multiplyScalar2(res, pow3(multiplyScalar2(unitValue, unitPrefixValue), unitPower));
  20211. }
  20212. return res;
  20213. };
  20214. Unit2.prototype._denormalize = function(value, prefixValue) {
  20215. if (value === null || value === void 0 || this.units.length === 0) {
  20216. return value;
  20217. }
  20218. var res = value;
  20219. var convert = Unit2._getNumberConverter(typeOf(value));
  20220. for (var i2 = 0; i2 < this.units.length; i2++) {
  20221. var unitValue = convert(this.units[i2].unit.value);
  20222. var unitPrefixValue = convert(this.units[i2].prefix.value);
  20223. var unitPower = convert(this.units[i2].power);
  20224. res = divideScalar2(res, pow3(multiplyScalar2(unitValue, unitPrefixValue), unitPower));
  20225. }
  20226. return res;
  20227. };
  20228. var _findUnit = memoize((str) => {
  20229. if (hasOwnProperty2(UNITS, str)) {
  20230. var unit3 = UNITS[str];
  20231. var prefix = unit3.prefixes[""];
  20232. return {
  20233. unit: unit3,
  20234. prefix
  20235. };
  20236. }
  20237. for (var _name in UNITS) {
  20238. if (hasOwnProperty2(UNITS, _name)) {
  20239. if (endsWith(str, _name)) {
  20240. var _unit = UNITS[_name];
  20241. var prefixLen = str.length - _name.length;
  20242. var prefixName = str.substring(0, prefixLen);
  20243. var _prefix = hasOwnProperty2(_unit.prefixes, prefixName) ? _unit.prefixes[prefixName] : void 0;
  20244. if (_prefix !== void 0) {
  20245. return {
  20246. unit: _unit,
  20247. prefix: _prefix
  20248. };
  20249. }
  20250. }
  20251. }
  20252. }
  20253. return null;
  20254. }, {
  20255. hasher: (args) => args[0],
  20256. limit: 100
  20257. });
  20258. Unit2.isValuelessUnit = function(name302) {
  20259. return _findUnit(name302) !== null;
  20260. };
  20261. Unit2.prototype.hasBase = function(base) {
  20262. if (typeof base === "string") {
  20263. base = BASE_UNITS[base];
  20264. }
  20265. if (!base) {
  20266. return false;
  20267. }
  20268. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20269. if (Math.abs((this.dimensions[i2] || 0) - (base.dimensions[i2] || 0)) > 1e-12) {
  20270. return false;
  20271. }
  20272. }
  20273. return true;
  20274. };
  20275. Unit2.prototype.equalBase = function(other) {
  20276. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20277. if (Math.abs((this.dimensions[i2] || 0) - (other.dimensions[i2] || 0)) > 1e-12) {
  20278. return false;
  20279. }
  20280. }
  20281. return true;
  20282. };
  20283. Unit2.prototype.equals = function(other) {
  20284. return this.equalBase(other) && equal2(this.value, other.value);
  20285. };
  20286. Unit2.prototype.multiply = function(_other) {
  20287. var res = this.clone();
  20288. var other = isUnit(_other) ? _other : new Unit2(_other);
  20289. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20290. res.dimensions[i2] = (this.dimensions[i2] || 0) + (other.dimensions[i2] || 0);
  20291. }
  20292. for (var _i = 0; _i < other.units.length; _i++) {
  20293. var inverted = _objectSpread({}, other.units[_i]);
  20294. res.units.push(inverted);
  20295. }
  20296. if (this.value !== null || other.value !== null) {
  20297. var valThis = this.value === null ? this._normalize(1) : this.value;
  20298. var valOther = other.value === null ? other._normalize(1) : other.value;
  20299. res.value = multiplyScalar2(valThis, valOther);
  20300. } else {
  20301. res.value = null;
  20302. }
  20303. if (isUnit(_other)) {
  20304. res.skipAutomaticSimplification = false;
  20305. }
  20306. return getNumericIfUnitless(res);
  20307. };
  20308. Unit2.prototype.divideInto = function(numerator) {
  20309. return new Unit2(numerator).divide(this);
  20310. };
  20311. Unit2.prototype.divide = function(_other) {
  20312. var res = this.clone();
  20313. var other = isUnit(_other) ? _other : new Unit2(_other);
  20314. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20315. res.dimensions[i2] = (this.dimensions[i2] || 0) - (other.dimensions[i2] || 0);
  20316. }
  20317. for (var _i2 = 0; _i2 < other.units.length; _i2++) {
  20318. var inverted = _objectSpread(_objectSpread({}, other.units[_i2]), {}, {
  20319. power: -other.units[_i2].power
  20320. });
  20321. res.units.push(inverted);
  20322. }
  20323. if (this.value !== null || other.value !== null) {
  20324. var valThis = this.value === null ? this._normalize(1) : this.value;
  20325. var valOther = other.value === null ? other._normalize(1) : other.value;
  20326. res.value = divideScalar2(valThis, valOther);
  20327. } else {
  20328. res.value = null;
  20329. }
  20330. if (isUnit(_other)) {
  20331. res.skipAutomaticSimplification = false;
  20332. }
  20333. return getNumericIfUnitless(res);
  20334. };
  20335. Unit2.prototype.pow = function(p) {
  20336. var res = this.clone();
  20337. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20338. res.dimensions[i2] = (this.dimensions[i2] || 0) * p;
  20339. }
  20340. for (var _i3 = 0; _i3 < res.units.length; _i3++) {
  20341. res.units[_i3].power *= p;
  20342. }
  20343. if (res.value !== null) {
  20344. res.value = pow3(res.value, p);
  20345. } else {
  20346. res.value = null;
  20347. }
  20348. res.skipAutomaticSimplification = false;
  20349. return getNumericIfUnitless(res);
  20350. };
  20351. function getNumericIfUnitless(unit3) {
  20352. if (unit3.equalBase(BASE_UNITS.NONE) && unit3.value !== null && !config4.predictable) {
  20353. return unit3.value;
  20354. } else {
  20355. return unit3;
  20356. }
  20357. }
  20358. Unit2.prototype.abs = function() {
  20359. var ret = this.clone();
  20360. if (ret.value !== null) {
  20361. if (ret._isDerived() || ret.units[0].unit.offset === 0) {
  20362. ret.value = abs3(ret.value);
  20363. } else {
  20364. var convert = ret._numberConverter();
  20365. var unitValue = convert(ret.units[0].unit.value);
  20366. var nominalOffset = convert(ret.units[0].unit.offset);
  20367. var unitOffset = multiplyScalar2(unitValue, nominalOffset);
  20368. ret.value = subtract2(abs3(addScalar2(ret.value, unitOffset)), unitOffset);
  20369. }
  20370. }
  20371. for (var i2 in ret.units) {
  20372. if (ret.units[i2].unit.name === "VA" || ret.units[i2].unit.name === "VAR") {
  20373. ret.units[i2].unit = UNITS.W;
  20374. }
  20375. }
  20376. return ret;
  20377. };
  20378. Unit2.prototype.to = function(valuelessUnit) {
  20379. var value = this.value === null ? this._normalize(1) : this.value;
  20380. var other;
  20381. if (typeof valuelessUnit === "string") {
  20382. other = Unit2.parse(valuelessUnit);
  20383. } else if (isUnit(valuelessUnit)) {
  20384. other = valuelessUnit.clone();
  20385. } else {
  20386. throw new Error("String or Unit expected as parameter");
  20387. }
  20388. if (!this.equalBase(other)) {
  20389. throw new Error("Units do not match ('".concat(other.toString(), "' != '").concat(this.toString(), "')"));
  20390. }
  20391. if (other.value !== null) {
  20392. throw new Error("Cannot convert to a unit with a value");
  20393. }
  20394. if (this.value === null || this._isDerived() || this.units[0].unit.offset === other.units[0].unit.offset) {
  20395. other.value = clone(value);
  20396. } else {
  20397. var convert = Unit2._getNumberConverter(typeOf(value));
  20398. var thisUnitValue = convert(this.units[0].unit.value);
  20399. var thisNominalOffset = convert(this.units[0].unit.offset);
  20400. var thisUnitOffset = multiplyScalar2(thisUnitValue, thisNominalOffset);
  20401. var otherUnitValue = convert(other.units[0].unit.value);
  20402. var otherNominalOffset = convert(other.units[0].unit.offset);
  20403. var otherUnitOffset = multiplyScalar2(otherUnitValue, otherNominalOffset);
  20404. other.value = subtract2(addScalar2(value, thisUnitOffset), otherUnitOffset);
  20405. }
  20406. other.fixPrefix = true;
  20407. other.skipAutomaticSimplification = true;
  20408. return other;
  20409. };
  20410. Unit2.prototype.toNumber = function(valuelessUnit) {
  20411. return toNumber(this.toNumeric(valuelessUnit));
  20412. };
  20413. Unit2.prototype.toNumeric = function(valuelessUnit) {
  20414. var other;
  20415. if (valuelessUnit) {
  20416. other = this.to(valuelessUnit);
  20417. } else {
  20418. other = this.clone();
  20419. }
  20420. if (other._isDerived() || other.units.length === 0) {
  20421. return other._denormalize(other.value);
  20422. } else {
  20423. return other._denormalize(other.value, other.units[0].prefix.value);
  20424. }
  20425. };
  20426. Unit2.prototype.toString = function() {
  20427. return this.format();
  20428. };
  20429. Unit2.prototype.toJSON = function() {
  20430. return {
  20431. mathjs: "Unit",
  20432. value: this._denormalize(this.value),
  20433. unit: this.formatUnits(),
  20434. fixPrefix: this.fixPrefix
  20435. };
  20436. };
  20437. Unit2.fromJSON = function(json) {
  20438. var unit3 = new Unit2(json.value, json.unit);
  20439. unit3.fixPrefix = json.fixPrefix || false;
  20440. return unit3;
  20441. };
  20442. Unit2.prototype.valueOf = Unit2.prototype.toString;
  20443. Unit2.prototype.simplify = function() {
  20444. var ret = this.clone();
  20445. var proposedUnitList = [];
  20446. var matchingBase;
  20447. for (var key2 in currentUnitSystem) {
  20448. if (hasOwnProperty2(currentUnitSystem, key2)) {
  20449. if (ret.hasBase(BASE_UNITS[key2])) {
  20450. matchingBase = key2;
  20451. break;
  20452. }
  20453. }
  20454. }
  20455. if (matchingBase === "NONE") {
  20456. ret.units = [];
  20457. } else {
  20458. var matchingUnit;
  20459. if (matchingBase) {
  20460. if (hasOwnProperty2(currentUnitSystem, matchingBase)) {
  20461. matchingUnit = currentUnitSystem[matchingBase];
  20462. }
  20463. }
  20464. if (matchingUnit) {
  20465. ret.units = [{
  20466. unit: matchingUnit.unit,
  20467. prefix: matchingUnit.prefix,
  20468. power: 1
  20469. }];
  20470. } else {
  20471. var missingBaseDim = false;
  20472. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20473. var baseDim = BASE_DIMENSIONS[i2];
  20474. if (Math.abs(ret.dimensions[i2] || 0) > 1e-12) {
  20475. if (hasOwnProperty2(currentUnitSystem, baseDim)) {
  20476. proposedUnitList.push({
  20477. unit: currentUnitSystem[baseDim].unit,
  20478. prefix: currentUnitSystem[baseDim].prefix,
  20479. power: ret.dimensions[i2] || 0
  20480. });
  20481. } else {
  20482. missingBaseDim = true;
  20483. }
  20484. }
  20485. }
  20486. if (proposedUnitList.length < ret.units.length && !missingBaseDim) {
  20487. ret.units = proposedUnitList;
  20488. }
  20489. }
  20490. }
  20491. return ret;
  20492. };
  20493. Unit2.prototype.toSI = function() {
  20494. var ret = this.clone();
  20495. var proposedUnitList = [];
  20496. for (var i2 = 0; i2 < BASE_DIMENSIONS.length; i2++) {
  20497. var baseDim = BASE_DIMENSIONS[i2];
  20498. if (Math.abs(ret.dimensions[i2] || 0) > 1e-12) {
  20499. if (hasOwnProperty2(UNIT_SYSTEMS.si, baseDim)) {
  20500. proposedUnitList.push({
  20501. unit: UNIT_SYSTEMS.si[baseDim].unit,
  20502. prefix: UNIT_SYSTEMS.si[baseDim].prefix,
  20503. power: ret.dimensions[i2] || 0
  20504. });
  20505. } else {
  20506. throw new Error("Cannot express custom unit " + baseDim + " in SI units");
  20507. }
  20508. }
  20509. }
  20510. ret.units = proposedUnitList;
  20511. ret.fixPrefix = true;
  20512. ret.skipAutomaticSimplification = true;
  20513. return ret;
  20514. };
  20515. Unit2.prototype.formatUnits = function() {
  20516. var strNum = "";
  20517. var strDen = "";
  20518. var nNum = 0;
  20519. var nDen = 0;
  20520. for (var i2 = 0; i2 < this.units.length; i2++) {
  20521. if (this.units[i2].power > 0) {
  20522. nNum++;
  20523. strNum += " " + this.units[i2].prefix.name + this.units[i2].unit.name;
  20524. if (Math.abs(this.units[i2].power - 1) > 1e-15) {
  20525. strNum += "^" + this.units[i2].power;
  20526. }
  20527. } else if (this.units[i2].power < 0) {
  20528. nDen++;
  20529. }
  20530. }
  20531. if (nDen > 0) {
  20532. for (var _i4 = 0; _i4 < this.units.length; _i4++) {
  20533. if (this.units[_i4].power < 0) {
  20534. if (nNum > 0) {
  20535. strDen += " " + this.units[_i4].prefix.name + this.units[_i4].unit.name;
  20536. if (Math.abs(this.units[_i4].power + 1) > 1e-15) {
  20537. strDen += "^" + -this.units[_i4].power;
  20538. }
  20539. } else {
  20540. strDen += " " + this.units[_i4].prefix.name + this.units[_i4].unit.name;
  20541. strDen += "^" + this.units[_i4].power;
  20542. }
  20543. }
  20544. }
  20545. }
  20546. strNum = strNum.substr(1);
  20547. strDen = strDen.substr(1);
  20548. if (nNum > 1 && nDen > 0) {
  20549. strNum = "(" + strNum + ")";
  20550. }
  20551. if (nDen > 1 && nNum > 0) {
  20552. strDen = "(" + strDen + ")";
  20553. }
  20554. var str = strNum;
  20555. if (nNum > 0 && nDen > 0) {
  20556. str += " / ";
  20557. }
  20558. str += strDen;
  20559. return str;
  20560. };
  20561. Unit2.prototype.format = function(options) {
  20562. var simp = this.skipAutomaticSimplification || this.value === null ? this.clone() : this.simplify();
  20563. var isImaginary = false;
  20564. if (typeof simp.value !== "undefined" && simp.value !== null && isComplex(simp.value)) {
  20565. isImaginary = Math.abs(simp.value.re) < 1e-14;
  20566. }
  20567. for (var i2 in simp.units) {
  20568. if (hasOwnProperty2(simp.units, i2)) {
  20569. if (simp.units[i2].unit) {
  20570. if (simp.units[i2].unit.name === "VA" && isImaginary) {
  20571. simp.units[i2].unit = UNITS.VAR;
  20572. } else if (simp.units[i2].unit.name === "VAR" && !isImaginary) {
  20573. simp.units[i2].unit = UNITS.VA;
  20574. }
  20575. }
  20576. }
  20577. }
  20578. if (simp.units.length === 1 && !simp.fixPrefix) {
  20579. if (Math.abs(simp.units[0].power - Math.round(simp.units[0].power)) < 1e-14) {
  20580. simp.units[0].prefix = simp._bestPrefix();
  20581. }
  20582. }
  20583. var value = simp._denormalize(simp.value);
  20584. var str = simp.value !== null ? format5(value, options || {}) : "";
  20585. var unitStr = simp.formatUnits();
  20586. if (simp.value && isComplex(simp.value)) {
  20587. str = "(" + str + ")";
  20588. }
  20589. if (unitStr.length > 0 && str.length > 0) {
  20590. str += " ";
  20591. }
  20592. str += unitStr;
  20593. return str;
  20594. };
  20595. Unit2.prototype._bestPrefix = function() {
  20596. if (this.units.length !== 1) {
  20597. throw new Error("Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!");
  20598. }
  20599. if (Math.abs(this.units[0].power - Math.round(this.units[0].power)) >= 1e-14) {
  20600. throw new Error("Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!");
  20601. }
  20602. var absValue = this.value !== null ? abs3(this.value) : 0;
  20603. var absUnitValue = abs3(this.units[0].unit.value);
  20604. var bestPrefix = this.units[0].prefix;
  20605. if (absValue === 0) {
  20606. return bestPrefix;
  20607. }
  20608. var power = this.units[0].power;
  20609. var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 - 1.2;
  20610. if (bestDiff > -2.200001 && bestDiff < 1.800001)
  20611. return bestPrefix;
  20612. bestDiff = Math.abs(bestDiff);
  20613. var prefixes = this.units[0].unit.prefixes;
  20614. for (var p in prefixes) {
  20615. if (hasOwnProperty2(prefixes, p)) {
  20616. var prefix = prefixes[p];
  20617. if (prefix.scientific) {
  20618. var diff2 = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 - 1.2);
  20619. if (diff2 < bestDiff || diff2 === bestDiff && prefix.name.length < bestPrefix.name.length) {
  20620. bestPrefix = prefix;
  20621. bestDiff = diff2;
  20622. }
  20623. }
  20624. }
  20625. }
  20626. return bestPrefix;
  20627. };
  20628. Unit2.prototype.splitUnit = function(parts) {
  20629. var x = this.clone();
  20630. var ret = [];
  20631. for (var i2 = 0; i2 < parts.length; i2++) {
  20632. x = x.to(parts[i2]);
  20633. if (i2 === parts.length - 1)
  20634. break;
  20635. var xNumeric = x.toNumeric();
  20636. var xRounded = round3(xNumeric);
  20637. var xFixed = void 0;
  20638. var isNearlyEqual = equal2(xRounded, xNumeric);
  20639. if (isNearlyEqual) {
  20640. xFixed = xRounded;
  20641. } else {
  20642. xFixed = fix2(x.toNumeric());
  20643. }
  20644. var y = new Unit2(xFixed, parts[i2].toString());
  20645. ret.push(y);
  20646. x = subtract2(x, y);
  20647. }
  20648. var testSum = 0;
  20649. for (var _i5 = 0; _i5 < ret.length; _i5++) {
  20650. testSum = addScalar2(testSum, ret[_i5].value);
  20651. }
  20652. if (equal2(testSum, this.value)) {
  20653. x.value = 0;
  20654. }
  20655. ret.push(x);
  20656. return ret;
  20657. };
  20658. var PREFIXES = {
  20659. NONE: {
  20660. "": {
  20661. name: "",
  20662. value: 1,
  20663. scientific: true
  20664. }
  20665. },
  20666. SHORT: {
  20667. "": {
  20668. name: "",
  20669. value: 1,
  20670. scientific: true
  20671. },
  20672. da: {
  20673. name: "da",
  20674. value: 10,
  20675. scientific: false
  20676. },
  20677. h: {
  20678. name: "h",
  20679. value: 100,
  20680. scientific: false
  20681. },
  20682. k: {
  20683. name: "k",
  20684. value: 1e3,
  20685. scientific: true
  20686. },
  20687. M: {
  20688. name: "M",
  20689. value: 1e6,
  20690. scientific: true
  20691. },
  20692. G: {
  20693. name: "G",
  20694. value: 1e9,
  20695. scientific: true
  20696. },
  20697. T: {
  20698. name: "T",
  20699. value: 1e12,
  20700. scientific: true
  20701. },
  20702. P: {
  20703. name: "P",
  20704. value: 1e15,
  20705. scientific: true
  20706. },
  20707. E: {
  20708. name: "E",
  20709. value: 1e18,
  20710. scientific: true
  20711. },
  20712. Z: {
  20713. name: "Z",
  20714. value: 1e21,
  20715. scientific: true
  20716. },
  20717. Y: {
  20718. name: "Y",
  20719. value: 1e24,
  20720. scientific: true
  20721. },
  20722. d: {
  20723. name: "d",
  20724. value: 0.1,
  20725. scientific: false
  20726. },
  20727. c: {
  20728. name: "c",
  20729. value: 0.01,
  20730. scientific: false
  20731. },
  20732. m: {
  20733. name: "m",
  20734. value: 1e-3,
  20735. scientific: true
  20736. },
  20737. u: {
  20738. name: "u",
  20739. value: 1e-6,
  20740. scientific: true
  20741. },
  20742. n: {
  20743. name: "n",
  20744. value: 1e-9,
  20745. scientific: true
  20746. },
  20747. p: {
  20748. name: "p",
  20749. value: 1e-12,
  20750. scientific: true
  20751. },
  20752. f: {
  20753. name: "f",
  20754. value: 1e-15,
  20755. scientific: true
  20756. },
  20757. a: {
  20758. name: "a",
  20759. value: 1e-18,
  20760. scientific: true
  20761. },
  20762. z: {
  20763. name: "z",
  20764. value: 1e-21,
  20765. scientific: true
  20766. },
  20767. y: {
  20768. name: "y",
  20769. value: 1e-24,
  20770. scientific: true
  20771. }
  20772. },
  20773. LONG: {
  20774. "": {
  20775. name: "",
  20776. value: 1,
  20777. scientific: true
  20778. },
  20779. deca: {
  20780. name: "deca",
  20781. value: 10,
  20782. scientific: false
  20783. },
  20784. hecto: {
  20785. name: "hecto",
  20786. value: 100,
  20787. scientific: false
  20788. },
  20789. kilo: {
  20790. name: "kilo",
  20791. value: 1e3,
  20792. scientific: true
  20793. },
  20794. mega: {
  20795. name: "mega",
  20796. value: 1e6,
  20797. scientific: true
  20798. },
  20799. giga: {
  20800. name: "giga",
  20801. value: 1e9,
  20802. scientific: true
  20803. },
  20804. tera: {
  20805. name: "tera",
  20806. value: 1e12,
  20807. scientific: true
  20808. },
  20809. peta: {
  20810. name: "peta",
  20811. value: 1e15,
  20812. scientific: true
  20813. },
  20814. exa: {
  20815. name: "exa",
  20816. value: 1e18,
  20817. scientific: true
  20818. },
  20819. zetta: {
  20820. name: "zetta",
  20821. value: 1e21,
  20822. scientific: true
  20823. },
  20824. yotta: {
  20825. name: "yotta",
  20826. value: 1e24,
  20827. scientific: true
  20828. },
  20829. deci: {
  20830. name: "deci",
  20831. value: 0.1,
  20832. scientific: false
  20833. },
  20834. centi: {
  20835. name: "centi",
  20836. value: 0.01,
  20837. scientific: false
  20838. },
  20839. milli: {
  20840. name: "milli",
  20841. value: 1e-3,
  20842. scientific: true
  20843. },
  20844. micro: {
  20845. name: "micro",
  20846. value: 1e-6,
  20847. scientific: true
  20848. },
  20849. nano: {
  20850. name: "nano",
  20851. value: 1e-9,
  20852. scientific: true
  20853. },
  20854. pico: {
  20855. name: "pico",
  20856. value: 1e-12,
  20857. scientific: true
  20858. },
  20859. femto: {
  20860. name: "femto",
  20861. value: 1e-15,
  20862. scientific: true
  20863. },
  20864. atto: {
  20865. name: "atto",
  20866. value: 1e-18,
  20867. scientific: true
  20868. },
  20869. zepto: {
  20870. name: "zepto",
  20871. value: 1e-21,
  20872. scientific: true
  20873. },
  20874. yocto: {
  20875. name: "yocto",
  20876. value: 1e-24,
  20877. scientific: true
  20878. }
  20879. },
  20880. SQUARED: {
  20881. "": {
  20882. name: "",
  20883. value: 1,
  20884. scientific: true
  20885. },
  20886. da: {
  20887. name: "da",
  20888. value: 100,
  20889. scientific: false
  20890. },
  20891. h: {
  20892. name: "h",
  20893. value: 1e4,
  20894. scientific: false
  20895. },
  20896. k: {
  20897. name: "k",
  20898. value: 1e6,
  20899. scientific: true
  20900. },
  20901. M: {
  20902. name: "M",
  20903. value: 1e12,
  20904. scientific: true
  20905. },
  20906. G: {
  20907. name: "G",
  20908. value: 1e18,
  20909. scientific: true
  20910. },
  20911. T: {
  20912. name: "T",
  20913. value: 1e24,
  20914. scientific: true
  20915. },
  20916. P: {
  20917. name: "P",
  20918. value: 1e30,
  20919. scientific: true
  20920. },
  20921. E: {
  20922. name: "E",
  20923. value: 1e36,
  20924. scientific: true
  20925. },
  20926. Z: {
  20927. name: "Z",
  20928. value: 1e42,
  20929. scientific: true
  20930. },
  20931. Y: {
  20932. name: "Y",
  20933. value: 1e48,
  20934. scientific: true
  20935. },
  20936. d: {
  20937. name: "d",
  20938. value: 0.01,
  20939. scientific: false
  20940. },
  20941. c: {
  20942. name: "c",
  20943. value: 1e-4,
  20944. scientific: false
  20945. },
  20946. m: {
  20947. name: "m",
  20948. value: 1e-6,
  20949. scientific: true
  20950. },
  20951. u: {
  20952. name: "u",
  20953. value: 1e-12,
  20954. scientific: true
  20955. },
  20956. n: {
  20957. name: "n",
  20958. value: 1e-18,
  20959. scientific: true
  20960. },
  20961. p: {
  20962. name: "p",
  20963. value: 1e-24,
  20964. scientific: true
  20965. },
  20966. f: {
  20967. name: "f",
  20968. value: 1e-30,
  20969. scientific: true
  20970. },
  20971. a: {
  20972. name: "a",
  20973. value: 1e-36,
  20974. scientific: true
  20975. },
  20976. z: {
  20977. name: "z",
  20978. value: 1e-42,
  20979. scientific: true
  20980. },
  20981. y: {
  20982. name: "y",
  20983. value: 1e-48,
  20984. scientific: true
  20985. }
  20986. },
  20987. CUBIC: {
  20988. "": {
  20989. name: "",
  20990. value: 1,
  20991. scientific: true
  20992. },
  20993. da: {
  20994. name: "da",
  20995. value: 1e3,
  20996. scientific: false
  20997. },
  20998. h: {
  20999. name: "h",
  21000. value: 1e6,
  21001. scientific: false
  21002. },
  21003. k: {
  21004. name: "k",
  21005. value: 1e9,
  21006. scientific: true
  21007. },
  21008. M: {
  21009. name: "M",
  21010. value: 1e18,
  21011. scientific: true
  21012. },
  21013. G: {
  21014. name: "G",
  21015. value: 1e27,
  21016. scientific: true
  21017. },
  21018. T: {
  21019. name: "T",
  21020. value: 1e36,
  21021. scientific: true
  21022. },
  21023. P: {
  21024. name: "P",
  21025. value: 1e45,
  21026. scientific: true
  21027. },
  21028. E: {
  21029. name: "E",
  21030. value: 1e54,
  21031. scientific: true
  21032. },
  21033. Z: {
  21034. name: "Z",
  21035. value: 1e63,
  21036. scientific: true
  21037. },
  21038. Y: {
  21039. name: "Y",
  21040. value: 1e72,
  21041. scientific: true
  21042. },
  21043. d: {
  21044. name: "d",
  21045. value: 1e-3,
  21046. scientific: false
  21047. },
  21048. c: {
  21049. name: "c",
  21050. value: 1e-6,
  21051. scientific: false
  21052. },
  21053. m: {
  21054. name: "m",
  21055. value: 1e-9,
  21056. scientific: true
  21057. },
  21058. u: {
  21059. name: "u",
  21060. value: 1e-18,
  21061. scientific: true
  21062. },
  21063. n: {
  21064. name: "n",
  21065. value: 1e-27,
  21066. scientific: true
  21067. },
  21068. p: {
  21069. name: "p",
  21070. value: 1e-36,
  21071. scientific: true
  21072. },
  21073. f: {
  21074. name: "f",
  21075. value: 1e-45,
  21076. scientific: true
  21077. },
  21078. a: {
  21079. name: "a",
  21080. value: 1e-54,
  21081. scientific: true
  21082. },
  21083. z: {
  21084. name: "z",
  21085. value: 1e-63,
  21086. scientific: true
  21087. },
  21088. y: {
  21089. name: "y",
  21090. value: 1e-72,
  21091. scientific: true
  21092. }
  21093. },
  21094. BINARY_SHORT_SI: {
  21095. "": {
  21096. name: "",
  21097. value: 1,
  21098. scientific: true
  21099. },
  21100. k: {
  21101. name: "k",
  21102. value: 1e3,
  21103. scientific: true
  21104. },
  21105. M: {
  21106. name: "M",
  21107. value: 1e6,
  21108. scientific: true
  21109. },
  21110. G: {
  21111. name: "G",
  21112. value: 1e9,
  21113. scientific: true
  21114. },
  21115. T: {
  21116. name: "T",
  21117. value: 1e12,
  21118. scientific: true
  21119. },
  21120. P: {
  21121. name: "P",
  21122. value: 1e15,
  21123. scientific: true
  21124. },
  21125. E: {
  21126. name: "E",
  21127. value: 1e18,
  21128. scientific: true
  21129. },
  21130. Z: {
  21131. name: "Z",
  21132. value: 1e21,
  21133. scientific: true
  21134. },
  21135. Y: {
  21136. name: "Y",
  21137. value: 1e24,
  21138. scientific: true
  21139. }
  21140. },
  21141. BINARY_SHORT_IEC: {
  21142. "": {
  21143. name: "",
  21144. value: 1,
  21145. scientific: true
  21146. },
  21147. Ki: {
  21148. name: "Ki",
  21149. value: 1024,
  21150. scientific: true
  21151. },
  21152. Mi: {
  21153. name: "Mi",
  21154. value: Math.pow(1024, 2),
  21155. scientific: true
  21156. },
  21157. Gi: {
  21158. name: "Gi",
  21159. value: Math.pow(1024, 3),
  21160. scientific: true
  21161. },
  21162. Ti: {
  21163. name: "Ti",
  21164. value: Math.pow(1024, 4),
  21165. scientific: true
  21166. },
  21167. Pi: {
  21168. name: "Pi",
  21169. value: Math.pow(1024, 5),
  21170. scientific: true
  21171. },
  21172. Ei: {
  21173. name: "Ei",
  21174. value: Math.pow(1024, 6),
  21175. scientific: true
  21176. },
  21177. Zi: {
  21178. name: "Zi",
  21179. value: Math.pow(1024, 7),
  21180. scientific: true
  21181. },
  21182. Yi: {
  21183. name: "Yi",
  21184. value: Math.pow(1024, 8),
  21185. scientific: true
  21186. }
  21187. },
  21188. BINARY_LONG_SI: {
  21189. "": {
  21190. name: "",
  21191. value: 1,
  21192. scientific: true
  21193. },
  21194. kilo: {
  21195. name: "kilo",
  21196. value: 1e3,
  21197. scientific: true
  21198. },
  21199. mega: {
  21200. name: "mega",
  21201. value: 1e6,
  21202. scientific: true
  21203. },
  21204. giga: {
  21205. name: "giga",
  21206. value: 1e9,
  21207. scientific: true
  21208. },
  21209. tera: {
  21210. name: "tera",
  21211. value: 1e12,
  21212. scientific: true
  21213. },
  21214. peta: {
  21215. name: "peta",
  21216. value: 1e15,
  21217. scientific: true
  21218. },
  21219. exa: {
  21220. name: "exa",
  21221. value: 1e18,
  21222. scientific: true
  21223. },
  21224. zetta: {
  21225. name: "zetta",
  21226. value: 1e21,
  21227. scientific: true
  21228. },
  21229. yotta: {
  21230. name: "yotta",
  21231. value: 1e24,
  21232. scientific: true
  21233. }
  21234. },
  21235. BINARY_LONG_IEC: {
  21236. "": {
  21237. name: "",
  21238. value: 1,
  21239. scientific: true
  21240. },
  21241. kibi: {
  21242. name: "kibi",
  21243. value: 1024,
  21244. scientific: true
  21245. },
  21246. mebi: {
  21247. name: "mebi",
  21248. value: Math.pow(1024, 2),
  21249. scientific: true
  21250. },
  21251. gibi: {
  21252. name: "gibi",
  21253. value: Math.pow(1024, 3),
  21254. scientific: true
  21255. },
  21256. tebi: {
  21257. name: "tebi",
  21258. value: Math.pow(1024, 4),
  21259. scientific: true
  21260. },
  21261. pebi: {
  21262. name: "pebi",
  21263. value: Math.pow(1024, 5),
  21264. scientific: true
  21265. },
  21266. exi: {
  21267. name: "exi",
  21268. value: Math.pow(1024, 6),
  21269. scientific: true
  21270. },
  21271. zebi: {
  21272. name: "zebi",
  21273. value: Math.pow(1024, 7),
  21274. scientific: true
  21275. },
  21276. yobi: {
  21277. name: "yobi",
  21278. value: Math.pow(1024, 8),
  21279. scientific: true
  21280. }
  21281. },
  21282. BTU: {
  21283. "": {
  21284. name: "",
  21285. value: 1,
  21286. scientific: true
  21287. },
  21288. MM: {
  21289. name: "MM",
  21290. value: 1e6,
  21291. scientific: true
  21292. }
  21293. }
  21294. };
  21295. PREFIXES.SHORTLONG = _extends({}, PREFIXES.SHORT, PREFIXES.LONG);
  21296. PREFIXES.BINARY_SHORT = _extends({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
  21297. PREFIXES.BINARY_LONG = _extends({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
  21298. var BASE_DIMENSIONS = ["MASS", "LENGTH", "TIME", "CURRENT", "TEMPERATURE", "LUMINOUS_INTENSITY", "AMOUNT_OF_SUBSTANCE", "ANGLE", "BIT"];
  21299. var BASE_UNITS = {
  21300. NONE: {
  21301. dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 0]
  21302. },
  21303. MASS: {
  21304. dimensions: [1, 0, 0, 0, 0, 0, 0, 0, 0]
  21305. },
  21306. LENGTH: {
  21307. dimensions: [0, 1, 0, 0, 0, 0, 0, 0, 0]
  21308. },
  21309. TIME: {
  21310. dimensions: [0, 0, 1, 0, 0, 0, 0, 0, 0]
  21311. },
  21312. CURRENT: {
  21313. dimensions: [0, 0, 0, 1, 0, 0, 0, 0, 0]
  21314. },
  21315. TEMPERATURE: {
  21316. dimensions: [0, 0, 0, 0, 1, 0, 0, 0, 0]
  21317. },
  21318. LUMINOUS_INTENSITY: {
  21319. dimensions: [0, 0, 0, 0, 0, 1, 0, 0, 0]
  21320. },
  21321. AMOUNT_OF_SUBSTANCE: {
  21322. dimensions: [0, 0, 0, 0, 0, 0, 1, 0, 0]
  21323. },
  21324. FORCE: {
  21325. dimensions: [1, 1, -2, 0, 0, 0, 0, 0, 0]
  21326. },
  21327. SURFACE: {
  21328. dimensions: [0, 2, 0, 0, 0, 0, 0, 0, 0]
  21329. },
  21330. VOLUME: {
  21331. dimensions: [0, 3, 0, 0, 0, 0, 0, 0, 0]
  21332. },
  21333. ENERGY: {
  21334. dimensions: [1, 2, -2, 0, 0, 0, 0, 0, 0]
  21335. },
  21336. POWER: {
  21337. dimensions: [1, 2, -3, 0, 0, 0, 0, 0, 0]
  21338. },
  21339. PRESSURE: {
  21340. dimensions: [1, -1, -2, 0, 0, 0, 0, 0, 0]
  21341. },
  21342. ELECTRIC_CHARGE: {
  21343. dimensions: [0, 0, 1, 1, 0, 0, 0, 0, 0]
  21344. },
  21345. ELECTRIC_CAPACITANCE: {
  21346. dimensions: [-1, -2, 4, 2, 0, 0, 0, 0, 0]
  21347. },
  21348. ELECTRIC_POTENTIAL: {
  21349. dimensions: [1, 2, -3, -1, 0, 0, 0, 0, 0]
  21350. },
  21351. ELECTRIC_RESISTANCE: {
  21352. dimensions: [1, 2, -3, -2, 0, 0, 0, 0, 0]
  21353. },
  21354. ELECTRIC_INDUCTANCE: {
  21355. dimensions: [1, 2, -2, -2, 0, 0, 0, 0, 0]
  21356. },
  21357. ELECTRIC_CONDUCTANCE: {
  21358. dimensions: [-1, -2, 3, 2, 0, 0, 0, 0, 0]
  21359. },
  21360. MAGNETIC_FLUX: {
  21361. dimensions: [1, 2, -2, -1, 0, 0, 0, 0, 0]
  21362. },
  21363. MAGNETIC_FLUX_DENSITY: {
  21364. dimensions: [1, 0, -2, -1, 0, 0, 0, 0, 0]
  21365. },
  21366. FREQUENCY: {
  21367. dimensions: [0, 0, -1, 0, 0, 0, 0, 0, 0]
  21368. },
  21369. ANGLE: {
  21370. dimensions: [0, 0, 0, 0, 0, 0, 0, 1, 0]
  21371. },
  21372. BIT: {
  21373. dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1]
  21374. }
  21375. };
  21376. for (var key in BASE_UNITS) {
  21377. if (hasOwnProperty2(BASE_UNITS, key)) {
  21378. BASE_UNITS[key].key = key;
  21379. }
  21380. }
  21381. var BASE_UNIT_NONE = {};
  21382. var UNIT_NONE = {
  21383. name: "",
  21384. base: BASE_UNIT_NONE,
  21385. value: 1,
  21386. offset: 0,
  21387. dimensions: BASE_DIMENSIONS.map((x) => 0)
  21388. };
  21389. var UNITS = {
  21390. // length
  21391. meter: {
  21392. name: "meter",
  21393. base: BASE_UNITS.LENGTH,
  21394. prefixes: PREFIXES.LONG,
  21395. value: 1,
  21396. offset: 0
  21397. },
  21398. inch: {
  21399. name: "inch",
  21400. base: BASE_UNITS.LENGTH,
  21401. prefixes: PREFIXES.NONE,
  21402. value: 0.0254,
  21403. offset: 0
  21404. },
  21405. foot: {
  21406. name: "foot",
  21407. base: BASE_UNITS.LENGTH,
  21408. prefixes: PREFIXES.NONE,
  21409. value: 0.3048,
  21410. offset: 0
  21411. },
  21412. yard: {
  21413. name: "yard",
  21414. base: BASE_UNITS.LENGTH,
  21415. prefixes: PREFIXES.NONE,
  21416. value: 0.9144,
  21417. offset: 0
  21418. },
  21419. mile: {
  21420. name: "mile",
  21421. base: BASE_UNITS.LENGTH,
  21422. prefixes: PREFIXES.NONE,
  21423. value: 1609.344,
  21424. offset: 0
  21425. },
  21426. link: {
  21427. name: "link",
  21428. base: BASE_UNITS.LENGTH,
  21429. prefixes: PREFIXES.NONE,
  21430. value: 0.201168,
  21431. offset: 0
  21432. },
  21433. rod: {
  21434. name: "rod",
  21435. base: BASE_UNITS.LENGTH,
  21436. prefixes: PREFIXES.NONE,
  21437. value: 5.0292,
  21438. offset: 0
  21439. },
  21440. chain: {
  21441. name: "chain",
  21442. base: BASE_UNITS.LENGTH,
  21443. prefixes: PREFIXES.NONE,
  21444. value: 20.1168,
  21445. offset: 0
  21446. },
  21447. angstrom: {
  21448. name: "angstrom",
  21449. base: BASE_UNITS.LENGTH,
  21450. prefixes: PREFIXES.NONE,
  21451. value: 1e-10,
  21452. offset: 0
  21453. },
  21454. m: {
  21455. name: "m",
  21456. base: BASE_UNITS.LENGTH,
  21457. prefixes: PREFIXES.SHORT,
  21458. value: 1,
  21459. offset: 0
  21460. },
  21461. in: {
  21462. name: "in",
  21463. base: BASE_UNITS.LENGTH,
  21464. prefixes: PREFIXES.NONE,
  21465. value: 0.0254,
  21466. offset: 0
  21467. },
  21468. ft: {
  21469. name: "ft",
  21470. base: BASE_UNITS.LENGTH,
  21471. prefixes: PREFIXES.NONE,
  21472. value: 0.3048,
  21473. offset: 0
  21474. },
  21475. yd: {
  21476. name: "yd",
  21477. base: BASE_UNITS.LENGTH,
  21478. prefixes: PREFIXES.NONE,
  21479. value: 0.9144,
  21480. offset: 0
  21481. },
  21482. mi: {
  21483. name: "mi",
  21484. base: BASE_UNITS.LENGTH,
  21485. prefixes: PREFIXES.NONE,
  21486. value: 1609.344,
  21487. offset: 0
  21488. },
  21489. li: {
  21490. name: "li",
  21491. base: BASE_UNITS.LENGTH,
  21492. prefixes: PREFIXES.NONE,
  21493. value: 0.201168,
  21494. offset: 0
  21495. },
  21496. rd: {
  21497. name: "rd",
  21498. base: BASE_UNITS.LENGTH,
  21499. prefixes: PREFIXES.NONE,
  21500. value: 5.02921,
  21501. offset: 0
  21502. },
  21503. ch: {
  21504. name: "ch",
  21505. base: BASE_UNITS.LENGTH,
  21506. prefixes: PREFIXES.NONE,
  21507. value: 20.1168,
  21508. offset: 0
  21509. },
  21510. mil: {
  21511. name: "mil",
  21512. base: BASE_UNITS.LENGTH,
  21513. prefixes: PREFIXES.NONE,
  21514. value: 254e-7,
  21515. offset: 0
  21516. },
  21517. // 1/1000 inch
  21518. // Surface
  21519. m2: {
  21520. name: "m2",
  21521. base: BASE_UNITS.SURFACE,
  21522. prefixes: PREFIXES.SQUARED,
  21523. value: 1,
  21524. offset: 0
  21525. },
  21526. sqin: {
  21527. name: "sqin",
  21528. base: BASE_UNITS.SURFACE,
  21529. prefixes: PREFIXES.NONE,
  21530. value: 64516e-8,
  21531. offset: 0
  21532. },
  21533. // 645.16 mm2
  21534. sqft: {
  21535. name: "sqft",
  21536. base: BASE_UNITS.SURFACE,
  21537. prefixes: PREFIXES.NONE,
  21538. value: 0.09290304,
  21539. offset: 0
  21540. },
  21541. // 0.09290304 m2
  21542. sqyd: {
  21543. name: "sqyd",
  21544. base: BASE_UNITS.SURFACE,
  21545. prefixes: PREFIXES.NONE,
  21546. value: 0.83612736,
  21547. offset: 0
  21548. },
  21549. // 0.83612736 m2
  21550. sqmi: {
  21551. name: "sqmi",
  21552. base: BASE_UNITS.SURFACE,
  21553. prefixes: PREFIXES.NONE,
  21554. value: 2589988110336e-6,
  21555. offset: 0
  21556. },
  21557. // 2.589988110336 km2
  21558. sqrd: {
  21559. name: "sqrd",
  21560. base: BASE_UNITS.SURFACE,
  21561. prefixes: PREFIXES.NONE,
  21562. value: 25.29295,
  21563. offset: 0
  21564. },
  21565. // 25.29295 m2
  21566. sqch: {
  21567. name: "sqch",
  21568. base: BASE_UNITS.SURFACE,
  21569. prefixes: PREFIXES.NONE,
  21570. value: 404.6873,
  21571. offset: 0
  21572. },
  21573. // 404.6873 m2
  21574. sqmil: {
  21575. name: "sqmil",
  21576. base: BASE_UNITS.SURFACE,
  21577. prefixes: PREFIXES.NONE,
  21578. value: 64516e-14,
  21579. offset: 0
  21580. },
  21581. // 6.4516 * 10^-10 m2
  21582. acre: {
  21583. name: "acre",
  21584. base: BASE_UNITS.SURFACE,
  21585. prefixes: PREFIXES.NONE,
  21586. value: 4046.86,
  21587. offset: 0
  21588. },
  21589. // 4046.86 m2
  21590. hectare: {
  21591. name: "hectare",
  21592. base: BASE_UNITS.SURFACE,
  21593. prefixes: PREFIXES.NONE,
  21594. value: 1e4,
  21595. offset: 0
  21596. },
  21597. // 10000 m2
  21598. // Volume
  21599. m3: {
  21600. name: "m3",
  21601. base: BASE_UNITS.VOLUME,
  21602. prefixes: PREFIXES.CUBIC,
  21603. value: 1,
  21604. offset: 0
  21605. },
  21606. L: {
  21607. name: "L",
  21608. base: BASE_UNITS.VOLUME,
  21609. prefixes: PREFIXES.SHORT,
  21610. value: 1e-3,
  21611. offset: 0
  21612. },
  21613. // litre
  21614. l: {
  21615. name: "l",
  21616. base: BASE_UNITS.VOLUME,
  21617. prefixes: PREFIXES.SHORT,
  21618. value: 1e-3,
  21619. offset: 0
  21620. },
  21621. // litre
  21622. litre: {
  21623. name: "litre",
  21624. base: BASE_UNITS.VOLUME,
  21625. prefixes: PREFIXES.LONG,
  21626. value: 1e-3,
  21627. offset: 0
  21628. },
  21629. cuin: {
  21630. name: "cuin",
  21631. base: BASE_UNITS.VOLUME,
  21632. prefixes: PREFIXES.NONE,
  21633. value: 16387064e-12,
  21634. offset: 0
  21635. },
  21636. // 1.6387064e-5 m3
  21637. cuft: {
  21638. name: "cuft",
  21639. base: BASE_UNITS.VOLUME,
  21640. prefixes: PREFIXES.NONE,
  21641. value: 0.028316846592,
  21642. offset: 0
  21643. },
  21644. // 28.316 846 592 L
  21645. cuyd: {
  21646. name: "cuyd",
  21647. base: BASE_UNITS.VOLUME,
  21648. prefixes: PREFIXES.NONE,
  21649. value: 0.764554857984,
  21650. offset: 0
  21651. },
  21652. // 764.554 857 984 L
  21653. teaspoon: {
  21654. name: "teaspoon",
  21655. base: BASE_UNITS.VOLUME,
  21656. prefixes: PREFIXES.NONE,
  21657. value: 5e-6,
  21658. offset: 0
  21659. },
  21660. // 5 mL
  21661. tablespoon: {
  21662. name: "tablespoon",
  21663. base: BASE_UNITS.VOLUME,
  21664. prefixes: PREFIXES.NONE,
  21665. value: 15e-6,
  21666. offset: 0
  21667. },
  21668. // 15 mL
  21669. // {name: 'cup', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.000240, offset: 0}, // 240 mL // not possible, we have already another cup
  21670. drop: {
  21671. name: "drop",
  21672. base: BASE_UNITS.VOLUME,
  21673. prefixes: PREFIXES.NONE,
  21674. value: 5e-8,
  21675. offset: 0
  21676. },
  21677. // 0.05 mL = 5e-8 m3
  21678. gtt: {
  21679. name: "gtt",
  21680. base: BASE_UNITS.VOLUME,
  21681. prefixes: PREFIXES.NONE,
  21682. value: 5e-8,
  21683. offset: 0
  21684. },
  21685. // 0.05 mL = 5e-8 m3
  21686. // Liquid volume
  21687. minim: {
  21688. name: "minim",
  21689. base: BASE_UNITS.VOLUME,
  21690. prefixes: PREFIXES.NONE,
  21691. value: 6161152e-14,
  21692. offset: 0
  21693. },
  21694. // 0.06161152 mL
  21695. fluiddram: {
  21696. name: "fluiddram",
  21697. base: BASE_UNITS.VOLUME,
  21698. prefixes: PREFIXES.NONE,
  21699. value: 36966911e-13,
  21700. offset: 0
  21701. },
  21702. // 3.696691 mL
  21703. fluidounce: {
  21704. name: "fluidounce",
  21705. base: BASE_UNITS.VOLUME,
  21706. prefixes: PREFIXES.NONE,
  21707. value: 2957353e-11,
  21708. offset: 0
  21709. },
  21710. // 29.57353 mL
  21711. gill: {
  21712. name: "gill",
  21713. base: BASE_UNITS.VOLUME,
  21714. prefixes: PREFIXES.NONE,
  21715. value: 1182941e-10,
  21716. offset: 0
  21717. },
  21718. // 118.2941 mL
  21719. cc: {
  21720. name: "cc",
  21721. base: BASE_UNITS.VOLUME,
  21722. prefixes: PREFIXES.NONE,
  21723. value: 1e-6,
  21724. offset: 0
  21725. },
  21726. // 1e-6 L
  21727. cup: {
  21728. name: "cup",
  21729. base: BASE_UNITS.VOLUME,
  21730. prefixes: PREFIXES.NONE,
  21731. value: 2365882e-10,
  21732. offset: 0
  21733. },
  21734. // 236.5882 mL
  21735. pint: {
  21736. name: "pint",
  21737. base: BASE_UNITS.VOLUME,
  21738. prefixes: PREFIXES.NONE,
  21739. value: 4731765e-10,
  21740. offset: 0
  21741. },
  21742. // 473.1765 mL
  21743. quart: {
  21744. name: "quart",
  21745. base: BASE_UNITS.VOLUME,
  21746. prefixes: PREFIXES.NONE,
  21747. value: 9463529e-10,
  21748. offset: 0
  21749. },
  21750. // 946.3529 mL
  21751. gallon: {
  21752. name: "gallon",
  21753. base: BASE_UNITS.VOLUME,
  21754. prefixes: PREFIXES.NONE,
  21755. value: 3785412e-9,
  21756. offset: 0
  21757. },
  21758. // 3.785412 L
  21759. beerbarrel: {
  21760. name: "beerbarrel",
  21761. base: BASE_UNITS.VOLUME,
  21762. prefixes: PREFIXES.NONE,
  21763. value: 0.1173478,
  21764. offset: 0
  21765. },
  21766. // 117.3478 L
  21767. oilbarrel: {
  21768. name: "oilbarrel",
  21769. base: BASE_UNITS.VOLUME,
  21770. prefixes: PREFIXES.NONE,
  21771. value: 0.1589873,
  21772. offset: 0
  21773. },
  21774. // 158.9873 L
  21775. hogshead: {
  21776. name: "hogshead",
  21777. base: BASE_UNITS.VOLUME,
  21778. prefixes: PREFIXES.NONE,
  21779. value: 0.238481,
  21780. offset: 0
  21781. },
  21782. // 238.4810 L
  21783. // {name: 'min', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.00000006161152, offset: 0}, // 0.06161152 mL // min is already in use as minute
  21784. fldr: {
  21785. name: "fldr",
  21786. base: BASE_UNITS.VOLUME,
  21787. prefixes: PREFIXES.NONE,
  21788. value: 36966911e-13,
  21789. offset: 0
  21790. },
  21791. // 3.696691 mL
  21792. floz: {
  21793. name: "floz",
  21794. base: BASE_UNITS.VOLUME,
  21795. prefixes: PREFIXES.NONE,
  21796. value: 2957353e-11,
  21797. offset: 0
  21798. },
  21799. // 29.57353 mL
  21800. gi: {
  21801. name: "gi",
  21802. base: BASE_UNITS.VOLUME,
  21803. prefixes: PREFIXES.NONE,
  21804. value: 1182941e-10,
  21805. offset: 0
  21806. },
  21807. // 118.2941 mL
  21808. cp: {
  21809. name: "cp",
  21810. base: BASE_UNITS.VOLUME,
  21811. prefixes: PREFIXES.NONE,
  21812. value: 2365882e-10,
  21813. offset: 0
  21814. },
  21815. // 236.5882 mL
  21816. pt: {
  21817. name: "pt",
  21818. base: BASE_UNITS.VOLUME,
  21819. prefixes: PREFIXES.NONE,
  21820. value: 4731765e-10,
  21821. offset: 0
  21822. },
  21823. // 473.1765 mL
  21824. qt: {
  21825. name: "qt",
  21826. base: BASE_UNITS.VOLUME,
  21827. prefixes: PREFIXES.NONE,
  21828. value: 9463529e-10,
  21829. offset: 0
  21830. },
  21831. // 946.3529 mL
  21832. gal: {
  21833. name: "gal",
  21834. base: BASE_UNITS.VOLUME,
  21835. prefixes: PREFIXES.NONE,
  21836. value: 3785412e-9,
  21837. offset: 0
  21838. },
  21839. // 3.785412 L
  21840. bbl: {
  21841. name: "bbl",
  21842. base: BASE_UNITS.VOLUME,
  21843. prefixes: PREFIXES.NONE,
  21844. value: 0.1173478,
  21845. offset: 0
  21846. },
  21847. // 117.3478 L
  21848. obl: {
  21849. name: "obl",
  21850. base: BASE_UNITS.VOLUME,
  21851. prefixes: PREFIXES.NONE,
  21852. value: 0.1589873,
  21853. offset: 0
  21854. },
  21855. // 158.9873 L
  21856. // {name: 'hogshead', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.2384810, offset: 0}, // 238.4810 L // TODO: hh?
  21857. // Mass
  21858. g: {
  21859. name: "g",
  21860. base: BASE_UNITS.MASS,
  21861. prefixes: PREFIXES.SHORT,
  21862. value: 1e-3,
  21863. offset: 0
  21864. },
  21865. gram: {
  21866. name: "gram",
  21867. base: BASE_UNITS.MASS,
  21868. prefixes: PREFIXES.LONG,
  21869. value: 1e-3,
  21870. offset: 0
  21871. },
  21872. ton: {
  21873. name: "ton",
  21874. base: BASE_UNITS.MASS,
  21875. prefixes: PREFIXES.SHORT,
  21876. value: 907.18474,
  21877. offset: 0
  21878. },
  21879. t: {
  21880. name: "t",
  21881. base: BASE_UNITS.MASS,
  21882. prefixes: PREFIXES.SHORT,
  21883. value: 1e3,
  21884. offset: 0
  21885. },
  21886. tonne: {
  21887. name: "tonne",
  21888. base: BASE_UNITS.MASS,
  21889. prefixes: PREFIXES.LONG,
  21890. value: 1e3,
  21891. offset: 0
  21892. },
  21893. grain: {
  21894. name: "grain",
  21895. base: BASE_UNITS.MASS,
  21896. prefixes: PREFIXES.NONE,
  21897. value: 6479891e-11,
  21898. offset: 0
  21899. },
  21900. dram: {
  21901. name: "dram",
  21902. base: BASE_UNITS.MASS,
  21903. prefixes: PREFIXES.NONE,
  21904. value: 0.0017718451953125,
  21905. offset: 0
  21906. },
  21907. ounce: {
  21908. name: "ounce",
  21909. base: BASE_UNITS.MASS,
  21910. prefixes: PREFIXES.NONE,
  21911. value: 0.028349523125,
  21912. offset: 0
  21913. },
  21914. poundmass: {
  21915. name: "poundmass",
  21916. base: BASE_UNITS.MASS,
  21917. prefixes: PREFIXES.NONE,
  21918. value: 0.45359237,
  21919. offset: 0
  21920. },
  21921. hundredweight: {
  21922. name: "hundredweight",
  21923. base: BASE_UNITS.MASS,
  21924. prefixes: PREFIXES.NONE,
  21925. value: 45.359237,
  21926. offset: 0
  21927. },
  21928. stick: {
  21929. name: "stick",
  21930. base: BASE_UNITS.MASS,
  21931. prefixes: PREFIXES.NONE,
  21932. value: 0.115,
  21933. offset: 0
  21934. },
  21935. stone: {
  21936. name: "stone",
  21937. base: BASE_UNITS.MASS,
  21938. prefixes: PREFIXES.NONE,
  21939. value: 6.35029318,
  21940. offset: 0
  21941. },
  21942. gr: {
  21943. name: "gr",
  21944. base: BASE_UNITS.MASS,
  21945. prefixes: PREFIXES.NONE,
  21946. value: 6479891e-11,
  21947. offset: 0
  21948. },
  21949. dr: {
  21950. name: "dr",
  21951. base: BASE_UNITS.MASS,
  21952. prefixes: PREFIXES.NONE,
  21953. value: 0.0017718451953125,
  21954. offset: 0
  21955. },
  21956. oz: {
  21957. name: "oz",
  21958. base: BASE_UNITS.MASS,
  21959. prefixes: PREFIXES.NONE,
  21960. value: 0.028349523125,
  21961. offset: 0
  21962. },
  21963. lbm: {
  21964. name: "lbm",
  21965. base: BASE_UNITS.MASS,
  21966. prefixes: PREFIXES.NONE,
  21967. value: 0.45359237,
  21968. offset: 0
  21969. },
  21970. cwt: {
  21971. name: "cwt",
  21972. base: BASE_UNITS.MASS,
  21973. prefixes: PREFIXES.NONE,
  21974. value: 45.359237,
  21975. offset: 0
  21976. },
  21977. // Time
  21978. s: {
  21979. name: "s",
  21980. base: BASE_UNITS.TIME,
  21981. prefixes: PREFIXES.SHORT,
  21982. value: 1,
  21983. offset: 0
  21984. },
  21985. min: {
  21986. name: "min",
  21987. base: BASE_UNITS.TIME,
  21988. prefixes: PREFIXES.NONE,
  21989. value: 60,
  21990. offset: 0
  21991. },
  21992. h: {
  21993. name: "h",
  21994. base: BASE_UNITS.TIME,
  21995. prefixes: PREFIXES.NONE,
  21996. value: 3600,
  21997. offset: 0
  21998. },
  21999. second: {
  22000. name: "second",
  22001. base: BASE_UNITS.TIME,
  22002. prefixes: PREFIXES.LONG,
  22003. value: 1,
  22004. offset: 0
  22005. },
  22006. sec: {
  22007. name: "sec",
  22008. base: BASE_UNITS.TIME,
  22009. prefixes: PREFIXES.LONG,
  22010. value: 1,
  22011. offset: 0
  22012. },
  22013. minute: {
  22014. name: "minute",
  22015. base: BASE_UNITS.TIME,
  22016. prefixes: PREFIXES.NONE,
  22017. value: 60,
  22018. offset: 0
  22019. },
  22020. hour: {
  22021. name: "hour",
  22022. base: BASE_UNITS.TIME,
  22023. prefixes: PREFIXES.NONE,
  22024. value: 3600,
  22025. offset: 0
  22026. },
  22027. day: {
  22028. name: "day",
  22029. base: BASE_UNITS.TIME,
  22030. prefixes: PREFIXES.NONE,
  22031. value: 86400,
  22032. offset: 0
  22033. },
  22034. week: {
  22035. name: "week",
  22036. base: BASE_UNITS.TIME,
  22037. prefixes: PREFIXES.NONE,
  22038. value: 7 * 86400,
  22039. offset: 0
  22040. },
  22041. month: {
  22042. name: "month",
  22043. base: BASE_UNITS.TIME,
  22044. prefixes: PREFIXES.NONE,
  22045. value: 2629800,
  22046. // 1/12th of Julian year
  22047. offset: 0
  22048. },
  22049. year: {
  22050. name: "year",
  22051. base: BASE_UNITS.TIME,
  22052. prefixes: PREFIXES.NONE,
  22053. value: 31557600,
  22054. // Julian year
  22055. offset: 0
  22056. },
  22057. decade: {
  22058. name: "decade",
  22059. base: BASE_UNITS.TIME,
  22060. prefixes: PREFIXES.NONE,
  22061. value: 315576e3,
  22062. // Julian decade
  22063. offset: 0
  22064. },
  22065. century: {
  22066. name: "century",
  22067. base: BASE_UNITS.TIME,
  22068. prefixes: PREFIXES.NONE,
  22069. value: 315576e4,
  22070. // Julian century
  22071. offset: 0
  22072. },
  22073. millennium: {
  22074. name: "millennium",
  22075. base: BASE_UNITS.TIME,
  22076. prefixes: PREFIXES.NONE,
  22077. value: 315576e5,
  22078. // Julian millennium
  22079. offset: 0
  22080. },
  22081. // Frequency
  22082. hertz: {
  22083. name: "Hertz",
  22084. base: BASE_UNITS.FREQUENCY,
  22085. prefixes: PREFIXES.LONG,
  22086. value: 1,
  22087. offset: 0,
  22088. reciprocal: true
  22089. },
  22090. Hz: {
  22091. name: "Hz",
  22092. base: BASE_UNITS.FREQUENCY,
  22093. prefixes: PREFIXES.SHORT,
  22094. value: 1,
  22095. offset: 0,
  22096. reciprocal: true
  22097. },
  22098. // Angle
  22099. rad: {
  22100. name: "rad",
  22101. base: BASE_UNITS.ANGLE,
  22102. prefixes: PREFIXES.SHORT,
  22103. value: 1,
  22104. offset: 0
  22105. },
  22106. radian: {
  22107. name: "radian",
  22108. base: BASE_UNITS.ANGLE,
  22109. prefixes: PREFIXES.LONG,
  22110. value: 1,
  22111. offset: 0
  22112. },
  22113. // deg = rad / (2*pi) * 360 = rad / 0.017453292519943295769236907684888
  22114. deg: {
  22115. name: "deg",
  22116. base: BASE_UNITS.ANGLE,
  22117. prefixes: PREFIXES.SHORT,
  22118. value: null,
  22119. // will be filled in by calculateAngleValues()
  22120. offset: 0
  22121. },
  22122. degree: {
  22123. name: "degree",
  22124. base: BASE_UNITS.ANGLE,
  22125. prefixes: PREFIXES.LONG,
  22126. value: null,
  22127. // will be filled in by calculateAngleValues()
  22128. offset: 0
  22129. },
  22130. // grad = rad / (2*pi) * 400 = rad / 0.015707963267948966192313216916399
  22131. grad: {
  22132. name: "grad",
  22133. base: BASE_UNITS.ANGLE,
  22134. prefixes: PREFIXES.SHORT,
  22135. value: null,
  22136. // will be filled in by calculateAngleValues()
  22137. offset: 0
  22138. },
  22139. gradian: {
  22140. name: "gradian",
  22141. base: BASE_UNITS.ANGLE,
  22142. prefixes: PREFIXES.LONG,
  22143. value: null,
  22144. // will be filled in by calculateAngleValues()
  22145. offset: 0
  22146. },
  22147. // cycle = rad / (2*pi) = rad / 6.2831853071795864769252867665793
  22148. cycle: {
  22149. name: "cycle",
  22150. base: BASE_UNITS.ANGLE,
  22151. prefixes: PREFIXES.NONE,
  22152. value: null,
  22153. // will be filled in by calculateAngleValues()
  22154. offset: 0
  22155. },
  22156. // arcsec = rad / (3600 * (360 / 2 * pi)) = rad / 0.0000048481368110953599358991410235795
  22157. arcsec: {
  22158. name: "arcsec",
  22159. base: BASE_UNITS.ANGLE,
  22160. prefixes: PREFIXES.NONE,
  22161. value: null,
  22162. // will be filled in by calculateAngleValues()
  22163. offset: 0
  22164. },
  22165. // arcmin = rad / (60 * (360 / 2 * pi)) = rad / 0.00029088820866572159615394846141477
  22166. arcmin: {
  22167. name: "arcmin",
  22168. base: BASE_UNITS.ANGLE,
  22169. prefixes: PREFIXES.NONE,
  22170. value: null,
  22171. // will be filled in by calculateAngleValues()
  22172. offset: 0
  22173. },
  22174. // Electric current
  22175. A: {
  22176. name: "A",
  22177. base: BASE_UNITS.CURRENT,
  22178. prefixes: PREFIXES.SHORT,
  22179. value: 1,
  22180. offset: 0
  22181. },
  22182. ampere: {
  22183. name: "ampere",
  22184. base: BASE_UNITS.CURRENT,
  22185. prefixes: PREFIXES.LONG,
  22186. value: 1,
  22187. offset: 0
  22188. },
  22189. // Temperature
  22190. // K(C) = °C + 273.15
  22191. // K(F) = (°F + 459.67) / 1.8
  22192. // K(R) = °R / 1.8
  22193. K: {
  22194. name: "K",
  22195. base: BASE_UNITS.TEMPERATURE,
  22196. prefixes: PREFIXES.SHORT,
  22197. value: 1,
  22198. offset: 0
  22199. },
  22200. degC: {
  22201. name: "degC",
  22202. base: BASE_UNITS.TEMPERATURE,
  22203. prefixes: PREFIXES.SHORT,
  22204. value: 1,
  22205. offset: 273.15
  22206. },
  22207. degF: {
  22208. name: "degF",
  22209. base: BASE_UNITS.TEMPERATURE,
  22210. prefixes: PREFIXES.SHORT,
  22211. value: 1 / 1.8,
  22212. offset: 459.67
  22213. },
  22214. degR: {
  22215. name: "degR",
  22216. base: BASE_UNITS.TEMPERATURE,
  22217. prefixes: PREFIXES.SHORT,
  22218. value: 1 / 1.8,
  22219. offset: 0
  22220. },
  22221. kelvin: {
  22222. name: "kelvin",
  22223. base: BASE_UNITS.TEMPERATURE,
  22224. prefixes: PREFIXES.LONG,
  22225. value: 1,
  22226. offset: 0
  22227. },
  22228. celsius: {
  22229. name: "celsius",
  22230. base: BASE_UNITS.TEMPERATURE,
  22231. prefixes: PREFIXES.LONG,
  22232. value: 1,
  22233. offset: 273.15
  22234. },
  22235. fahrenheit: {
  22236. name: "fahrenheit",
  22237. base: BASE_UNITS.TEMPERATURE,
  22238. prefixes: PREFIXES.LONG,
  22239. value: 1 / 1.8,
  22240. offset: 459.67
  22241. },
  22242. rankine: {
  22243. name: "rankine",
  22244. base: BASE_UNITS.TEMPERATURE,
  22245. prefixes: PREFIXES.LONG,
  22246. value: 1 / 1.8,
  22247. offset: 0
  22248. },
  22249. // amount of substance
  22250. mol: {
  22251. name: "mol",
  22252. base: BASE_UNITS.AMOUNT_OF_SUBSTANCE,
  22253. prefixes: PREFIXES.SHORT,
  22254. value: 1,
  22255. offset: 0
  22256. },
  22257. mole: {
  22258. name: "mole",
  22259. base: BASE_UNITS.AMOUNT_OF_SUBSTANCE,
  22260. prefixes: PREFIXES.LONG,
  22261. value: 1,
  22262. offset: 0
  22263. },
  22264. // luminous intensity
  22265. cd: {
  22266. name: "cd",
  22267. base: BASE_UNITS.LUMINOUS_INTENSITY,
  22268. prefixes: PREFIXES.SHORT,
  22269. value: 1,
  22270. offset: 0
  22271. },
  22272. candela: {
  22273. name: "candela",
  22274. base: BASE_UNITS.LUMINOUS_INTENSITY,
  22275. prefixes: PREFIXES.LONG,
  22276. value: 1,
  22277. offset: 0
  22278. },
  22279. // TODO: units STERADIAN
  22280. // {name: 'sr', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
  22281. // {name: 'steradian', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
  22282. // Force
  22283. N: {
  22284. name: "N",
  22285. base: BASE_UNITS.FORCE,
  22286. prefixes: PREFIXES.SHORT,
  22287. value: 1,
  22288. offset: 0
  22289. },
  22290. newton: {
  22291. name: "newton",
  22292. base: BASE_UNITS.FORCE,
  22293. prefixes: PREFIXES.LONG,
  22294. value: 1,
  22295. offset: 0
  22296. },
  22297. dyn: {
  22298. name: "dyn",
  22299. base: BASE_UNITS.FORCE,
  22300. prefixes: PREFIXES.SHORT,
  22301. value: 1e-5,
  22302. offset: 0
  22303. },
  22304. dyne: {
  22305. name: "dyne",
  22306. base: BASE_UNITS.FORCE,
  22307. prefixes: PREFIXES.LONG,
  22308. value: 1e-5,
  22309. offset: 0
  22310. },
  22311. lbf: {
  22312. name: "lbf",
  22313. base: BASE_UNITS.FORCE,
  22314. prefixes: PREFIXES.NONE,
  22315. value: 4.4482216152605,
  22316. offset: 0
  22317. },
  22318. poundforce: {
  22319. name: "poundforce",
  22320. base: BASE_UNITS.FORCE,
  22321. prefixes: PREFIXES.NONE,
  22322. value: 4.4482216152605,
  22323. offset: 0
  22324. },
  22325. kip: {
  22326. name: "kip",
  22327. base: BASE_UNITS.FORCE,
  22328. prefixes: PREFIXES.LONG,
  22329. value: 4448.2216,
  22330. offset: 0
  22331. },
  22332. kilogramforce: {
  22333. name: "kilogramforce",
  22334. base: BASE_UNITS.FORCE,
  22335. prefixes: PREFIXES.NONE,
  22336. value: 9.80665,
  22337. offset: 0
  22338. },
  22339. // Energy
  22340. J: {
  22341. name: "J",
  22342. base: BASE_UNITS.ENERGY,
  22343. prefixes: PREFIXES.SHORT,
  22344. value: 1,
  22345. offset: 0
  22346. },
  22347. joule: {
  22348. name: "joule",
  22349. base: BASE_UNITS.ENERGY,
  22350. prefixes: PREFIXES.SHORT,
  22351. value: 1,
  22352. offset: 0
  22353. },
  22354. erg: {
  22355. name: "erg",
  22356. base: BASE_UNITS.ENERGY,
  22357. prefixes: PREFIXES.NONE,
  22358. value: 1e-7,
  22359. offset: 0
  22360. },
  22361. Wh: {
  22362. name: "Wh",
  22363. base: BASE_UNITS.ENERGY,
  22364. prefixes: PREFIXES.SHORT,
  22365. value: 3600,
  22366. offset: 0
  22367. },
  22368. BTU: {
  22369. name: "BTU",
  22370. base: BASE_UNITS.ENERGY,
  22371. prefixes: PREFIXES.BTU,
  22372. value: 1055.05585262,
  22373. offset: 0
  22374. },
  22375. eV: {
  22376. name: "eV",
  22377. base: BASE_UNITS.ENERGY,
  22378. prefixes: PREFIXES.SHORT,
  22379. value: 1602176565e-28,
  22380. offset: 0
  22381. },
  22382. electronvolt: {
  22383. name: "electronvolt",
  22384. base: BASE_UNITS.ENERGY,
  22385. prefixes: PREFIXES.LONG,
  22386. value: 1602176565e-28,
  22387. offset: 0
  22388. },
  22389. // Power
  22390. W: {
  22391. name: "W",
  22392. base: BASE_UNITS.POWER,
  22393. prefixes: PREFIXES.SHORT,
  22394. value: 1,
  22395. offset: 0
  22396. },
  22397. watt: {
  22398. name: "watt",
  22399. base: BASE_UNITS.POWER,
  22400. prefixes: PREFIXES.LONG,
  22401. value: 1,
  22402. offset: 0
  22403. },
  22404. hp: {
  22405. name: "hp",
  22406. base: BASE_UNITS.POWER,
  22407. prefixes: PREFIXES.NONE,
  22408. value: 745.6998715386,
  22409. offset: 0
  22410. },
  22411. // Electrical power units
  22412. VAR: {
  22413. name: "VAR",
  22414. base: BASE_UNITS.POWER,
  22415. prefixes: PREFIXES.SHORT,
  22416. value: Complex3.I,
  22417. offset: 0
  22418. },
  22419. VA: {
  22420. name: "VA",
  22421. base: BASE_UNITS.POWER,
  22422. prefixes: PREFIXES.SHORT,
  22423. value: 1,
  22424. offset: 0
  22425. },
  22426. // Pressure
  22427. Pa: {
  22428. name: "Pa",
  22429. base: BASE_UNITS.PRESSURE,
  22430. prefixes: PREFIXES.SHORT,
  22431. value: 1,
  22432. offset: 0
  22433. },
  22434. psi: {
  22435. name: "psi",
  22436. base: BASE_UNITS.PRESSURE,
  22437. prefixes: PREFIXES.NONE,
  22438. value: 6894.75729276459,
  22439. offset: 0
  22440. },
  22441. atm: {
  22442. name: "atm",
  22443. base: BASE_UNITS.PRESSURE,
  22444. prefixes: PREFIXES.NONE,
  22445. value: 101325,
  22446. offset: 0
  22447. },
  22448. bar: {
  22449. name: "bar",
  22450. base: BASE_UNITS.PRESSURE,
  22451. prefixes: PREFIXES.SHORTLONG,
  22452. value: 1e5,
  22453. offset: 0
  22454. },
  22455. torr: {
  22456. name: "torr",
  22457. base: BASE_UNITS.PRESSURE,
  22458. prefixes: PREFIXES.NONE,
  22459. value: 133.322,
  22460. offset: 0
  22461. },
  22462. mmHg: {
  22463. name: "mmHg",
  22464. base: BASE_UNITS.PRESSURE,
  22465. prefixes: PREFIXES.NONE,
  22466. value: 133.322,
  22467. offset: 0
  22468. },
  22469. mmH2O: {
  22470. name: "mmH2O",
  22471. base: BASE_UNITS.PRESSURE,
  22472. prefixes: PREFIXES.NONE,
  22473. value: 9.80665,
  22474. offset: 0
  22475. },
  22476. cmH2O: {
  22477. name: "cmH2O",
  22478. base: BASE_UNITS.PRESSURE,
  22479. prefixes: PREFIXES.NONE,
  22480. value: 98.0665,
  22481. offset: 0
  22482. },
  22483. // Electric charge
  22484. coulomb: {
  22485. name: "coulomb",
  22486. base: BASE_UNITS.ELECTRIC_CHARGE,
  22487. prefixes: PREFIXES.LONG,
  22488. value: 1,
  22489. offset: 0
  22490. },
  22491. C: {
  22492. name: "C",
  22493. base: BASE_UNITS.ELECTRIC_CHARGE,
  22494. prefixes: PREFIXES.SHORT,
  22495. value: 1,
  22496. offset: 0
  22497. },
  22498. // Electric capacitance
  22499. farad: {
  22500. name: "farad",
  22501. base: BASE_UNITS.ELECTRIC_CAPACITANCE,
  22502. prefixes: PREFIXES.LONG,
  22503. value: 1,
  22504. offset: 0
  22505. },
  22506. F: {
  22507. name: "F",
  22508. base: BASE_UNITS.ELECTRIC_CAPACITANCE,
  22509. prefixes: PREFIXES.SHORT,
  22510. value: 1,
  22511. offset: 0
  22512. },
  22513. // Electric potential
  22514. volt: {
  22515. name: "volt",
  22516. base: BASE_UNITS.ELECTRIC_POTENTIAL,
  22517. prefixes: PREFIXES.LONG,
  22518. value: 1,
  22519. offset: 0
  22520. },
  22521. V: {
  22522. name: "V",
  22523. base: BASE_UNITS.ELECTRIC_POTENTIAL,
  22524. prefixes: PREFIXES.SHORT,
  22525. value: 1,
  22526. offset: 0
  22527. },
  22528. // Electric resistance
  22529. ohm: {
  22530. name: "ohm",
  22531. base: BASE_UNITS.ELECTRIC_RESISTANCE,
  22532. prefixes: PREFIXES.SHORTLONG,
  22533. // Both Mohm and megaohm are acceptable
  22534. value: 1,
  22535. offset: 0
  22536. },
  22537. /*
  22538. * Unicode breaks in browsers if charset is not specified
  22539. Ω: {
  22540. name: 'Ω',
  22541. base: BASE_UNITS.ELECTRIC_RESISTANCE,
  22542. prefixes: PREFIXES.SHORT,
  22543. value: 1,
  22544. offset: 0
  22545. },
  22546. */
  22547. // Electric inductance
  22548. henry: {
  22549. name: "henry",
  22550. base: BASE_UNITS.ELECTRIC_INDUCTANCE,
  22551. prefixes: PREFIXES.LONG,
  22552. value: 1,
  22553. offset: 0
  22554. },
  22555. H: {
  22556. name: "H",
  22557. base: BASE_UNITS.ELECTRIC_INDUCTANCE,
  22558. prefixes: PREFIXES.SHORT,
  22559. value: 1,
  22560. offset: 0
  22561. },
  22562. // Electric conductance
  22563. siemens: {
  22564. name: "siemens",
  22565. base: BASE_UNITS.ELECTRIC_CONDUCTANCE,
  22566. prefixes: PREFIXES.LONG,
  22567. value: 1,
  22568. offset: 0
  22569. },
  22570. S: {
  22571. name: "S",
  22572. base: BASE_UNITS.ELECTRIC_CONDUCTANCE,
  22573. prefixes: PREFIXES.SHORT,
  22574. value: 1,
  22575. offset: 0
  22576. },
  22577. // Magnetic flux
  22578. weber: {
  22579. name: "weber",
  22580. base: BASE_UNITS.MAGNETIC_FLUX,
  22581. prefixes: PREFIXES.LONG,
  22582. value: 1,
  22583. offset: 0
  22584. },
  22585. Wb: {
  22586. name: "Wb",
  22587. base: BASE_UNITS.MAGNETIC_FLUX,
  22588. prefixes: PREFIXES.SHORT,
  22589. value: 1,
  22590. offset: 0
  22591. },
  22592. // Magnetic flux density
  22593. tesla: {
  22594. name: "tesla",
  22595. base: BASE_UNITS.MAGNETIC_FLUX_DENSITY,
  22596. prefixes: PREFIXES.LONG,
  22597. value: 1,
  22598. offset: 0
  22599. },
  22600. T: {
  22601. name: "T",
  22602. base: BASE_UNITS.MAGNETIC_FLUX_DENSITY,
  22603. prefixes: PREFIXES.SHORT,
  22604. value: 1,
  22605. offset: 0
  22606. },
  22607. // Binary
  22608. b: {
  22609. name: "b",
  22610. base: BASE_UNITS.BIT,
  22611. prefixes: PREFIXES.BINARY_SHORT,
  22612. value: 1,
  22613. offset: 0
  22614. },
  22615. bits: {
  22616. name: "bits",
  22617. base: BASE_UNITS.BIT,
  22618. prefixes: PREFIXES.BINARY_LONG,
  22619. value: 1,
  22620. offset: 0
  22621. },
  22622. B: {
  22623. name: "B",
  22624. base: BASE_UNITS.BIT,
  22625. prefixes: PREFIXES.BINARY_SHORT,
  22626. value: 8,
  22627. offset: 0
  22628. },
  22629. bytes: {
  22630. name: "bytes",
  22631. base: BASE_UNITS.BIT,
  22632. prefixes: PREFIXES.BINARY_LONG,
  22633. value: 8,
  22634. offset: 0
  22635. }
  22636. };
  22637. var ALIASES = {
  22638. meters: "meter",
  22639. inches: "inch",
  22640. feet: "foot",
  22641. yards: "yard",
  22642. miles: "mile",
  22643. links: "link",
  22644. rods: "rod",
  22645. chains: "chain",
  22646. angstroms: "angstrom",
  22647. lt: "l",
  22648. litres: "litre",
  22649. liter: "litre",
  22650. liters: "litre",
  22651. teaspoons: "teaspoon",
  22652. tablespoons: "tablespoon",
  22653. minims: "minim",
  22654. fluiddrams: "fluiddram",
  22655. fluidounces: "fluidounce",
  22656. gills: "gill",
  22657. cups: "cup",
  22658. pints: "pint",
  22659. quarts: "quart",
  22660. gallons: "gallon",
  22661. beerbarrels: "beerbarrel",
  22662. oilbarrels: "oilbarrel",
  22663. hogsheads: "hogshead",
  22664. gtts: "gtt",
  22665. grams: "gram",
  22666. tons: "ton",
  22667. tonnes: "tonne",
  22668. grains: "grain",
  22669. drams: "dram",
  22670. ounces: "ounce",
  22671. poundmasses: "poundmass",
  22672. hundredweights: "hundredweight",
  22673. sticks: "stick",
  22674. lb: "lbm",
  22675. lbs: "lbm",
  22676. kips: "kip",
  22677. kgf: "kilogramforce",
  22678. acres: "acre",
  22679. hectares: "hectare",
  22680. sqfeet: "sqft",
  22681. sqyard: "sqyd",
  22682. sqmile: "sqmi",
  22683. sqmiles: "sqmi",
  22684. mmhg: "mmHg",
  22685. mmh2o: "mmH2O",
  22686. cmh2o: "cmH2O",
  22687. seconds: "second",
  22688. secs: "second",
  22689. minutes: "minute",
  22690. mins: "minute",
  22691. hours: "hour",
  22692. hr: "hour",
  22693. hrs: "hour",
  22694. days: "day",
  22695. weeks: "week",
  22696. months: "month",
  22697. years: "year",
  22698. decades: "decade",
  22699. centuries: "century",
  22700. millennia: "millennium",
  22701. hertz: "hertz",
  22702. radians: "radian",
  22703. degrees: "degree",
  22704. gradians: "gradian",
  22705. cycles: "cycle",
  22706. arcsecond: "arcsec",
  22707. arcseconds: "arcsec",
  22708. arcminute: "arcmin",
  22709. arcminutes: "arcmin",
  22710. BTUs: "BTU",
  22711. watts: "watt",
  22712. joules: "joule",
  22713. amperes: "ampere",
  22714. amps: "ampere",
  22715. amp: "ampere",
  22716. coulombs: "coulomb",
  22717. volts: "volt",
  22718. ohms: "ohm",
  22719. farads: "farad",
  22720. webers: "weber",
  22721. teslas: "tesla",
  22722. electronvolts: "electronvolt",
  22723. moles: "mole",
  22724. bit: "bits",
  22725. byte: "bytes"
  22726. };
  22727. function calculateAngleValues(config5) {
  22728. if (config5.number === "BigNumber") {
  22729. var pi3 = createBigNumberPi(_BigNumber);
  22730. UNITS.rad.value = new _BigNumber(1);
  22731. UNITS.deg.value = pi3.div(180);
  22732. UNITS.grad.value = pi3.div(200);
  22733. UNITS.cycle.value = pi3.times(2);
  22734. UNITS.arcsec.value = pi3.div(648e3);
  22735. UNITS.arcmin.value = pi3.div(10800);
  22736. } else {
  22737. UNITS.rad.value = 1;
  22738. UNITS.deg.value = Math.PI / 180;
  22739. UNITS.grad.value = Math.PI / 200;
  22740. UNITS.cycle.value = Math.PI * 2;
  22741. UNITS.arcsec.value = Math.PI / 648e3;
  22742. UNITS.arcmin.value = Math.PI / 10800;
  22743. }
  22744. UNITS.radian.value = UNITS.rad.value;
  22745. UNITS.degree.value = UNITS.deg.value;
  22746. UNITS.gradian.value = UNITS.grad.value;
  22747. }
  22748. calculateAngleValues(config4);
  22749. if (on) {
  22750. on("config", function(curr, prev) {
  22751. if (curr.number !== prev.number) {
  22752. calculateAngleValues(curr);
  22753. }
  22754. });
  22755. }
  22756. var UNIT_SYSTEMS = {
  22757. si: {
  22758. // Base units
  22759. NONE: {
  22760. unit: UNIT_NONE,
  22761. prefix: PREFIXES.NONE[""]
  22762. },
  22763. LENGTH: {
  22764. unit: UNITS.m,
  22765. prefix: PREFIXES.SHORT[""]
  22766. },
  22767. MASS: {
  22768. unit: UNITS.g,
  22769. prefix: PREFIXES.SHORT.k
  22770. },
  22771. TIME: {
  22772. unit: UNITS.s,
  22773. prefix: PREFIXES.SHORT[""]
  22774. },
  22775. CURRENT: {
  22776. unit: UNITS.A,
  22777. prefix: PREFIXES.SHORT[""]
  22778. },
  22779. TEMPERATURE: {
  22780. unit: UNITS.K,
  22781. prefix: PREFIXES.SHORT[""]
  22782. },
  22783. LUMINOUS_INTENSITY: {
  22784. unit: UNITS.cd,
  22785. prefix: PREFIXES.SHORT[""]
  22786. },
  22787. AMOUNT_OF_SUBSTANCE: {
  22788. unit: UNITS.mol,
  22789. prefix: PREFIXES.SHORT[""]
  22790. },
  22791. ANGLE: {
  22792. unit: UNITS.rad,
  22793. prefix: PREFIXES.SHORT[""]
  22794. },
  22795. BIT: {
  22796. unit: UNITS.bits,
  22797. prefix: PREFIXES.SHORT[""]
  22798. },
  22799. // Derived units
  22800. FORCE: {
  22801. unit: UNITS.N,
  22802. prefix: PREFIXES.SHORT[""]
  22803. },
  22804. ENERGY: {
  22805. unit: UNITS.J,
  22806. prefix: PREFIXES.SHORT[""]
  22807. },
  22808. POWER: {
  22809. unit: UNITS.W,
  22810. prefix: PREFIXES.SHORT[""]
  22811. },
  22812. PRESSURE: {
  22813. unit: UNITS.Pa,
  22814. prefix: PREFIXES.SHORT[""]
  22815. },
  22816. ELECTRIC_CHARGE: {
  22817. unit: UNITS.C,
  22818. prefix: PREFIXES.SHORT[""]
  22819. },
  22820. ELECTRIC_CAPACITANCE: {
  22821. unit: UNITS.F,
  22822. prefix: PREFIXES.SHORT[""]
  22823. },
  22824. ELECTRIC_POTENTIAL: {
  22825. unit: UNITS.V,
  22826. prefix: PREFIXES.SHORT[""]
  22827. },
  22828. ELECTRIC_RESISTANCE: {
  22829. unit: UNITS.ohm,
  22830. prefix: PREFIXES.SHORT[""]
  22831. },
  22832. ELECTRIC_INDUCTANCE: {
  22833. unit: UNITS.H,
  22834. prefix: PREFIXES.SHORT[""]
  22835. },
  22836. ELECTRIC_CONDUCTANCE: {
  22837. unit: UNITS.S,
  22838. prefix: PREFIXES.SHORT[""]
  22839. },
  22840. MAGNETIC_FLUX: {
  22841. unit: UNITS.Wb,
  22842. prefix: PREFIXES.SHORT[""]
  22843. },
  22844. MAGNETIC_FLUX_DENSITY: {
  22845. unit: UNITS.T,
  22846. prefix: PREFIXES.SHORT[""]
  22847. },
  22848. FREQUENCY: {
  22849. unit: UNITS.Hz,
  22850. prefix: PREFIXES.SHORT[""]
  22851. }
  22852. }
  22853. };
  22854. UNIT_SYSTEMS.cgs = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
  22855. UNIT_SYSTEMS.cgs.LENGTH = {
  22856. unit: UNITS.m,
  22857. prefix: PREFIXES.SHORT.c
  22858. };
  22859. UNIT_SYSTEMS.cgs.MASS = {
  22860. unit: UNITS.g,
  22861. prefix: PREFIXES.SHORT[""]
  22862. };
  22863. UNIT_SYSTEMS.cgs.FORCE = {
  22864. unit: UNITS.dyn,
  22865. prefix: PREFIXES.SHORT[""]
  22866. };
  22867. UNIT_SYSTEMS.cgs.ENERGY = {
  22868. unit: UNITS.erg,
  22869. prefix: PREFIXES.NONE[""]
  22870. };
  22871. UNIT_SYSTEMS.us = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
  22872. UNIT_SYSTEMS.us.LENGTH = {
  22873. unit: UNITS.ft,
  22874. prefix: PREFIXES.NONE[""]
  22875. };
  22876. UNIT_SYSTEMS.us.MASS = {
  22877. unit: UNITS.lbm,
  22878. prefix: PREFIXES.NONE[""]
  22879. };
  22880. UNIT_SYSTEMS.us.TEMPERATURE = {
  22881. unit: UNITS.degF,
  22882. prefix: PREFIXES.NONE[""]
  22883. };
  22884. UNIT_SYSTEMS.us.FORCE = {
  22885. unit: UNITS.lbf,
  22886. prefix: PREFIXES.NONE[""]
  22887. };
  22888. UNIT_SYSTEMS.us.ENERGY = {
  22889. unit: UNITS.BTU,
  22890. prefix: PREFIXES.BTU[""]
  22891. };
  22892. UNIT_SYSTEMS.us.POWER = {
  22893. unit: UNITS.hp,
  22894. prefix: PREFIXES.NONE[""]
  22895. };
  22896. UNIT_SYSTEMS.us.PRESSURE = {
  22897. unit: UNITS.psi,
  22898. prefix: PREFIXES.NONE[""]
  22899. };
  22900. UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
  22901. var currentUnitSystem = UNIT_SYSTEMS.auto;
  22902. Unit2.setUnitSystem = function(name302) {
  22903. if (hasOwnProperty2(UNIT_SYSTEMS, name302)) {
  22904. currentUnitSystem = UNIT_SYSTEMS[name302];
  22905. } else {
  22906. throw new Error("Unit system " + name302 + " does not exist. Choices are: " + Object.keys(UNIT_SYSTEMS).join(", "));
  22907. }
  22908. };
  22909. Unit2.getUnitSystem = function() {
  22910. for (var _key in UNIT_SYSTEMS) {
  22911. if (hasOwnProperty2(UNIT_SYSTEMS, _key)) {
  22912. if (UNIT_SYSTEMS[_key] === currentUnitSystem) {
  22913. return _key;
  22914. }
  22915. }
  22916. }
  22917. };
  22918. Unit2.typeConverters = {
  22919. BigNumber: function BigNumber2(x) {
  22920. return new _BigNumber(x + "");
  22921. },
  22922. Fraction: function Fraction3(x) {
  22923. return new _Fraction(x);
  22924. },
  22925. Complex: function Complex4(x) {
  22926. return x;
  22927. },
  22928. number: function number3(x) {
  22929. return x;
  22930. }
  22931. };
  22932. Unit2.prototype._numberConverter = function() {
  22933. var convert = Unit2.typeConverters[this.valueType()];
  22934. if (convert) {
  22935. return convert;
  22936. }
  22937. throw new TypeError('Unsupported Unit value type "' + this.valueType() + '"');
  22938. };
  22939. Unit2._getNumberConverter = function(type) {
  22940. if (!Unit2.typeConverters[type]) {
  22941. throw new TypeError('Unsupported type "' + type + '"');
  22942. }
  22943. return Unit2.typeConverters[type];
  22944. };
  22945. for (var _key2 in UNITS) {
  22946. if (hasOwnProperty2(UNITS, _key2)) {
  22947. var unit2 = UNITS[_key2];
  22948. unit2.dimensions = unit2.base.dimensions;
  22949. }
  22950. }
  22951. for (var _name2 in ALIASES) {
  22952. if (hasOwnProperty2(ALIASES, _name2)) {
  22953. var _unit2 = UNITS[ALIASES[_name2]];
  22954. var alias = {};
  22955. for (var _key3 in _unit2) {
  22956. if (hasOwnProperty2(_unit2, _key3)) {
  22957. alias[_key3] = _unit2[_key3];
  22958. }
  22959. }
  22960. alias.name = _name2;
  22961. UNITS[_name2] = alias;
  22962. }
  22963. }
  22964. Unit2.isValidAlpha = function isValidAlpha(c2) {
  22965. return /^[a-zA-Z]$/.test(c2);
  22966. };
  22967. function assertUnitNameIsValid(name302) {
  22968. for (var i2 = 0; i2 < name302.length; i2++) {
  22969. c = name302.charAt(i2);
  22970. if (i2 === 0 && !Unit2.isValidAlpha(c)) {
  22971. throw new Error('Invalid unit name (must begin with alpha character): "' + name302 + '"');
  22972. }
  22973. if (i2 > 0 && !(Unit2.isValidAlpha(c) || isDigit(c))) {
  22974. throw new Error('Invalid unit name (only alphanumeric characters are allowed): "' + name302 + '"');
  22975. }
  22976. }
  22977. }
  22978. Unit2.createUnit = function(obj, options) {
  22979. if (typeof obj !== "object") {
  22980. throw new TypeError("createUnit expects first parameter to be of type 'Object'");
  22981. }
  22982. if (options && options.override) {
  22983. for (var _key4 in obj) {
  22984. if (hasOwnProperty2(obj, _key4)) {
  22985. Unit2.deleteUnit(_key4);
  22986. }
  22987. if (obj[_key4].aliases) {
  22988. for (var i2 = 0; i2 < obj[_key4].aliases.length; i2++) {
  22989. Unit2.deleteUnit(obj[_key4].aliases[i2]);
  22990. }
  22991. }
  22992. }
  22993. }
  22994. var lastUnit;
  22995. for (var _key5 in obj) {
  22996. if (hasOwnProperty2(obj, _key5)) {
  22997. lastUnit = Unit2.createUnitSingle(_key5, obj[_key5]);
  22998. }
  22999. }
  23000. return lastUnit;
  23001. };
  23002. Unit2.createUnitSingle = function(name302, obj) {
  23003. if (typeof obj === "undefined" || obj === null) {
  23004. obj = {};
  23005. }
  23006. if (typeof name302 !== "string") {
  23007. throw new TypeError("createUnitSingle expects first parameter to be of type 'string'");
  23008. }
  23009. if (hasOwnProperty2(UNITS, name302)) {
  23010. throw new Error('Cannot create unit "' + name302 + '": a unit with that name already exists');
  23011. }
  23012. assertUnitNameIsValid(name302);
  23013. var defUnit = null;
  23014. var aliases = [];
  23015. var offset = 0;
  23016. var definition;
  23017. var prefixes;
  23018. var baseName;
  23019. if (obj && obj.type === "Unit") {
  23020. defUnit = obj.clone();
  23021. } else if (typeof obj === "string") {
  23022. if (obj !== "") {
  23023. definition = obj;
  23024. }
  23025. } else if (typeof obj === "object") {
  23026. definition = obj.definition;
  23027. prefixes = obj.prefixes;
  23028. offset = obj.offset;
  23029. baseName = obj.baseName;
  23030. if (obj.aliases) {
  23031. aliases = obj.aliases.valueOf();
  23032. }
  23033. } else {
  23034. throw new TypeError('Cannot create unit "' + name302 + '" from "' + obj.toString() + '": expecting "string" or "Unit" or "Object"');
  23035. }
  23036. if (aliases) {
  23037. for (var i2 = 0; i2 < aliases.length; i2++) {
  23038. if (hasOwnProperty2(UNITS, aliases[i2])) {
  23039. throw new Error('Cannot create alias "' + aliases[i2] + '": a unit with that name already exists');
  23040. }
  23041. }
  23042. }
  23043. if (definition && typeof definition === "string" && !defUnit) {
  23044. try {
  23045. defUnit = Unit2.parse(definition, {
  23046. allowNoUnits: true
  23047. });
  23048. } catch (ex) {
  23049. ex.message = 'Could not create unit "' + name302 + '" from "' + definition + '": ' + ex.message;
  23050. throw ex;
  23051. }
  23052. } else if (definition && definition.type === "Unit") {
  23053. defUnit = definition.clone();
  23054. }
  23055. aliases = aliases || [];
  23056. offset = offset || 0;
  23057. if (prefixes && prefixes.toUpperCase) {
  23058. prefixes = PREFIXES[prefixes.toUpperCase()] || PREFIXES.NONE;
  23059. } else {
  23060. prefixes = PREFIXES.NONE;
  23061. }
  23062. var newUnit = {};
  23063. if (!defUnit) {
  23064. baseName = baseName || name302 + "_STUFF";
  23065. if (BASE_DIMENSIONS.indexOf(baseName) >= 0) {
  23066. throw new Error('Cannot create new base unit "' + name302 + '": a base unit with that name already exists (and cannot be overridden)');
  23067. }
  23068. BASE_DIMENSIONS.push(baseName);
  23069. for (var b in BASE_UNITS) {
  23070. if (hasOwnProperty2(BASE_UNITS, b)) {
  23071. BASE_UNITS[b].dimensions[BASE_DIMENSIONS.length - 1] = 0;
  23072. }
  23073. }
  23074. var newBaseUnit = {
  23075. dimensions: []
  23076. };
  23077. for (var _i6 = 0; _i6 < BASE_DIMENSIONS.length; _i6++) {
  23078. newBaseUnit.dimensions[_i6] = 0;
  23079. }
  23080. newBaseUnit.dimensions[BASE_DIMENSIONS.length - 1] = 1;
  23081. newBaseUnit.key = baseName;
  23082. BASE_UNITS[baseName] = newBaseUnit;
  23083. newUnit = {
  23084. name: name302,
  23085. value: 1,
  23086. dimensions: BASE_UNITS[baseName].dimensions.slice(0),
  23087. prefixes,
  23088. offset,
  23089. base: BASE_UNITS[baseName]
  23090. };
  23091. currentUnitSystem[baseName] = {
  23092. unit: newUnit,
  23093. prefix: PREFIXES.NONE[""]
  23094. };
  23095. } else {
  23096. newUnit = {
  23097. name: name302,
  23098. value: defUnit.value,
  23099. dimensions: defUnit.dimensions.slice(0),
  23100. prefixes,
  23101. offset
  23102. };
  23103. var anyMatch = false;
  23104. for (var _i7 in BASE_UNITS) {
  23105. if (hasOwnProperty2(BASE_UNITS, _i7)) {
  23106. var match = true;
  23107. for (var j = 0; j < BASE_DIMENSIONS.length; j++) {
  23108. if (Math.abs((newUnit.dimensions[j] || 0) - (BASE_UNITS[_i7].dimensions[j] || 0)) > 1e-12) {
  23109. match = false;
  23110. break;
  23111. }
  23112. }
  23113. if (match) {
  23114. anyMatch = true;
  23115. newUnit.base = BASE_UNITS[_i7];
  23116. break;
  23117. }
  23118. }
  23119. }
  23120. if (!anyMatch) {
  23121. baseName = baseName || name302 + "_STUFF";
  23122. var _newBaseUnit = {
  23123. dimensions: defUnit.dimensions.slice(0)
  23124. };
  23125. _newBaseUnit.key = baseName;
  23126. BASE_UNITS[baseName] = _newBaseUnit;
  23127. currentUnitSystem[baseName] = {
  23128. unit: newUnit,
  23129. prefix: PREFIXES.NONE[""]
  23130. };
  23131. newUnit.base = BASE_UNITS[baseName];
  23132. }
  23133. }
  23134. Unit2.UNITS[name302] = newUnit;
  23135. for (var _i8 = 0; _i8 < aliases.length; _i8++) {
  23136. var aliasName = aliases[_i8];
  23137. var _alias = {};
  23138. for (var _key6 in newUnit) {
  23139. if (hasOwnProperty2(newUnit, _key6)) {
  23140. _alias[_key6] = newUnit[_key6];
  23141. }
  23142. }
  23143. _alias.name = aliasName;
  23144. Unit2.UNITS[aliasName] = _alias;
  23145. }
  23146. delete _findUnit.cache;
  23147. return new Unit2(null, name302);
  23148. };
  23149. Unit2.deleteUnit = function(name302) {
  23150. delete Unit2.UNITS[name302];
  23151. };
  23152. Unit2.PREFIXES = PREFIXES;
  23153. Unit2.BASE_DIMENSIONS = BASE_DIMENSIONS;
  23154. Unit2.BASE_UNITS = BASE_UNITS;
  23155. Unit2.UNIT_SYSTEMS = UNIT_SYSTEMS;
  23156. Unit2.UNITS = UNITS;
  23157. return Unit2;
  23158. }, {
  23159. isClass: true
  23160. });
  23161. // node_modules/mathjs/lib/esm/type/unit/function/unit.js
  23162. var name159 = "unit";
  23163. var dependencies159 = ["typed", "Unit"];
  23164. var createUnitFunction = factory(name159, dependencies159, (_ref) => {
  23165. var {
  23166. typed: typed2,
  23167. Unit: Unit2
  23168. } = _ref;
  23169. return typed2(name159, {
  23170. Unit: function Unit3(x) {
  23171. return x.clone();
  23172. },
  23173. string: function string2(x) {
  23174. if (Unit2.isValuelessUnit(x)) {
  23175. return new Unit2(null, x);
  23176. }
  23177. return Unit2.parse(x, {
  23178. allowNoUnits: true
  23179. });
  23180. },
  23181. "number | BigNumber | Fraction | Complex, string | Unit": function numberBigNumberFractionComplexStringUnit(value, unit2) {
  23182. return new Unit2(value, unit2);
  23183. },
  23184. "number | BigNumber | Fraction": function numberBigNumberFraction(value) {
  23185. return new Unit2(value);
  23186. },
  23187. "Array | Matrix": typed2.referToSelf((self2) => (x) => deepMap(x, self2))
  23188. });
  23189. });
  23190. // node_modules/mathjs/lib/esm/type/matrix/function/sparse.js
  23191. var name160 = "sparse";
  23192. var dependencies160 = ["typed", "SparseMatrix"];
  23193. var createSparse = factory(name160, dependencies160, (_ref) => {
  23194. var {
  23195. typed: typed2,
  23196. SparseMatrix: SparseMatrix2
  23197. } = _ref;
  23198. return typed2(name160, {
  23199. "": function _() {
  23200. return new SparseMatrix2([]);
  23201. },
  23202. string: function string2(datatype) {
  23203. return new SparseMatrix2([], datatype);
  23204. },
  23205. "Array | Matrix": function ArrayMatrix(data) {
  23206. return new SparseMatrix2(data);
  23207. },
  23208. "Array | Matrix, string": function ArrayMatrixString(data, datatype) {
  23209. return new SparseMatrix2(data, datatype);
  23210. }
  23211. });
  23212. });
  23213. // node_modules/mathjs/lib/esm/type/unit/function/createUnit.js
  23214. var name161 = "createUnit";
  23215. var dependencies161 = ["typed", "Unit"];
  23216. var createCreateUnit = factory(name161, dependencies161, (_ref) => {
  23217. var {
  23218. typed: typed2,
  23219. Unit: Unit2
  23220. } = _ref;
  23221. return typed2(name161, {
  23222. // General function signature. First parameter is an object where each property is the definition of a new unit. The object keys are the unit names and the values are the definitions. The values can be objects, strings, or Units. If a property is an empty object or an empty string, a new base unit is created. The second parameter is the options.
  23223. "Object, Object": function ObjectObject(obj, options) {
  23224. return Unit2.createUnit(obj, options);
  23225. },
  23226. // Same as above but without the options.
  23227. Object: function Object2(obj) {
  23228. return Unit2.createUnit(obj, {});
  23229. },
  23230. // Shortcut method for creating one unit.
  23231. "string, Unit | string | Object, Object": function stringUnitStringObjectObject(name302, def, options) {
  23232. var obj = {};
  23233. obj[name302] = def;
  23234. return Unit2.createUnit(obj, options);
  23235. },
  23236. // Same as above but without the options.
  23237. "string, Unit | string | Object": function stringUnitStringObject(name302, def) {
  23238. var obj = {};
  23239. obj[name302] = def;
  23240. return Unit2.createUnit(obj, {});
  23241. },
  23242. // Without a definition, creates a base unit.
  23243. string: function string2(name302) {
  23244. var obj = {};
  23245. obj[name302] = {};
  23246. return Unit2.createUnit(obj, {});
  23247. }
  23248. });
  23249. });
  23250. // node_modules/mathjs/lib/esm/function/trigonometry/acos.js
  23251. var name162 = "acos";
  23252. var dependencies162 = ["typed", "config", "Complex"];
  23253. var createAcos = factory(name162, dependencies162, (_ref) => {
  23254. var {
  23255. typed: typed2,
  23256. config: config4,
  23257. Complex: Complex3
  23258. } = _ref;
  23259. return typed2(name162, {
  23260. number: function number2(x) {
  23261. if (x >= -1 && x <= 1 || config4.predictable) {
  23262. return Math.acos(x);
  23263. } else {
  23264. return new Complex3(x, 0).acos();
  23265. }
  23266. },
  23267. Complex: function Complex4(x) {
  23268. return x.acos();
  23269. },
  23270. BigNumber: function BigNumber2(x) {
  23271. return x.acos();
  23272. }
  23273. });
  23274. });
  23275. // node_modules/mathjs/lib/esm/function/trigonometry/acosh.js
  23276. var name163 = "acosh";
  23277. var dependencies163 = ["typed", "config", "Complex"];
  23278. var createAcosh = factory(name163, dependencies163, (_ref) => {
  23279. var {
  23280. typed: typed2,
  23281. config: config4,
  23282. Complex: Complex3
  23283. } = _ref;
  23284. return typed2(name163, {
  23285. number: function number2(x) {
  23286. if (x >= 1 || config4.predictable) {
  23287. return acoshNumber(x);
  23288. }
  23289. if (x <= -1) {
  23290. return new Complex3(Math.log(Math.sqrt(x * x - 1) - x), Math.PI);
  23291. }
  23292. return new Complex3(x, 0).acosh();
  23293. },
  23294. Complex: function Complex4(x) {
  23295. return x.acosh();
  23296. },
  23297. BigNumber: function BigNumber2(x) {
  23298. return x.acosh();
  23299. }
  23300. });
  23301. });
  23302. // node_modules/mathjs/lib/esm/function/trigonometry/acot.js
  23303. var name164 = "acot";
  23304. var dependencies164 = ["typed", "BigNumber"];
  23305. var createAcot = factory(name164, dependencies164, (_ref) => {
  23306. var {
  23307. typed: typed2,
  23308. BigNumber: _BigNumber
  23309. } = _ref;
  23310. return typed2(name164, {
  23311. number: acotNumber,
  23312. Complex: function Complex3(x) {
  23313. return x.acot();
  23314. },
  23315. BigNumber: function BigNumber2(x) {
  23316. return new _BigNumber(1).div(x).atan();
  23317. }
  23318. });
  23319. });
  23320. // node_modules/mathjs/lib/esm/function/trigonometry/acoth.js
  23321. var name165 = "acoth";
  23322. var dependencies165 = ["typed", "config", "Complex", "BigNumber"];
  23323. var createAcoth = factory(name165, dependencies165, (_ref) => {
  23324. var {
  23325. typed: typed2,
  23326. config: config4,
  23327. Complex: Complex3,
  23328. BigNumber: _BigNumber
  23329. } = _ref;
  23330. return typed2(name165, {
  23331. number: function number2(x) {
  23332. if (x >= 1 || x <= -1 || config4.predictable) {
  23333. return acothNumber(x);
  23334. }
  23335. return new Complex3(x, 0).acoth();
  23336. },
  23337. Complex: function Complex4(x) {
  23338. return x.acoth();
  23339. },
  23340. BigNumber: function BigNumber2(x) {
  23341. return new _BigNumber(1).div(x).atanh();
  23342. }
  23343. });
  23344. });
  23345. // node_modules/mathjs/lib/esm/function/trigonometry/acsc.js
  23346. var name166 = "acsc";
  23347. var dependencies166 = ["typed", "config", "Complex", "BigNumber"];
  23348. var createAcsc = factory(name166, dependencies166, (_ref) => {
  23349. var {
  23350. typed: typed2,
  23351. config: config4,
  23352. Complex: Complex3,
  23353. BigNumber: _BigNumber
  23354. } = _ref;
  23355. return typed2(name166, {
  23356. number: function number2(x) {
  23357. if (x <= -1 || x >= 1 || config4.predictable) {
  23358. return acscNumber(x);
  23359. }
  23360. return new Complex3(x, 0).acsc();
  23361. },
  23362. Complex: function Complex4(x) {
  23363. return x.acsc();
  23364. },
  23365. BigNumber: function BigNumber2(x) {
  23366. return new _BigNumber(1).div(x).asin();
  23367. }
  23368. });
  23369. });
  23370. // node_modules/mathjs/lib/esm/function/trigonometry/acsch.js
  23371. var name167 = "acsch";
  23372. var dependencies167 = ["typed", "BigNumber"];
  23373. var createAcsch = factory(name167, dependencies167, (_ref) => {
  23374. var {
  23375. typed: typed2,
  23376. BigNumber: _BigNumber
  23377. } = _ref;
  23378. return typed2(name167, {
  23379. number: acschNumber,
  23380. Complex: function Complex3(x) {
  23381. return x.acsch();
  23382. },
  23383. BigNumber: function BigNumber2(x) {
  23384. return new _BigNumber(1).div(x).asinh();
  23385. }
  23386. });
  23387. });
  23388. // node_modules/mathjs/lib/esm/function/trigonometry/asec.js
  23389. var name168 = "asec";
  23390. var dependencies168 = ["typed", "config", "Complex", "BigNumber"];
  23391. var createAsec = factory(name168, dependencies168, (_ref) => {
  23392. var {
  23393. typed: typed2,
  23394. config: config4,
  23395. Complex: Complex3,
  23396. BigNumber: _BigNumber
  23397. } = _ref;
  23398. return typed2(name168, {
  23399. number: function number2(x) {
  23400. if (x <= -1 || x >= 1 || config4.predictable) {
  23401. return asecNumber(x);
  23402. }
  23403. return new Complex3(x, 0).asec();
  23404. },
  23405. Complex: function Complex4(x) {
  23406. return x.asec();
  23407. },
  23408. BigNumber: function BigNumber2(x) {
  23409. return new _BigNumber(1).div(x).acos();
  23410. }
  23411. });
  23412. });
  23413. // node_modules/mathjs/lib/esm/function/trigonometry/asech.js
  23414. var name169 = "asech";
  23415. var dependencies169 = ["typed", "config", "Complex", "BigNumber"];
  23416. var createAsech = factory(name169, dependencies169, (_ref) => {
  23417. var {
  23418. typed: typed2,
  23419. config: config4,
  23420. Complex: Complex3,
  23421. BigNumber: _BigNumber
  23422. } = _ref;
  23423. return typed2(name169, {
  23424. number: function number2(x) {
  23425. if (x <= 1 && x >= -1 || config4.predictable) {
  23426. var xInv = 1 / x;
  23427. if (xInv > 0 || config4.predictable) {
  23428. return asechNumber(x);
  23429. }
  23430. var ret = Math.sqrt(xInv * xInv - 1);
  23431. return new Complex3(Math.log(ret - xInv), Math.PI);
  23432. }
  23433. return new Complex3(x, 0).asech();
  23434. },
  23435. Complex: function Complex4(x) {
  23436. return x.asech();
  23437. },
  23438. BigNumber: function BigNumber2(x) {
  23439. return new _BigNumber(1).div(x).acosh();
  23440. }
  23441. });
  23442. });
  23443. // node_modules/mathjs/lib/esm/function/trigonometry/asin.js
  23444. var name170 = "asin";
  23445. var dependencies170 = ["typed", "config", "Complex"];
  23446. var createAsin = factory(name170, dependencies170, (_ref) => {
  23447. var {
  23448. typed: typed2,
  23449. config: config4,
  23450. Complex: Complex3
  23451. } = _ref;
  23452. return typed2(name170, {
  23453. number: function number2(x) {
  23454. if (x >= -1 && x <= 1 || config4.predictable) {
  23455. return Math.asin(x);
  23456. } else {
  23457. return new Complex3(x, 0).asin();
  23458. }
  23459. },
  23460. Complex: function Complex4(x) {
  23461. return x.asin();
  23462. },
  23463. BigNumber: function BigNumber2(x) {
  23464. return x.asin();
  23465. }
  23466. });
  23467. });
  23468. // node_modules/mathjs/lib/esm/function/trigonometry/asinh.js
  23469. var name171 = "asinh";
  23470. var dependencies171 = ["typed"];
  23471. var createAsinh = factory(name171, dependencies171, (_ref) => {
  23472. var {
  23473. typed: typed2
  23474. } = _ref;
  23475. return typed2("asinh", {
  23476. number: asinhNumber,
  23477. Complex: function Complex3(x) {
  23478. return x.asinh();
  23479. },
  23480. BigNumber: function BigNumber2(x) {
  23481. return x.asinh();
  23482. }
  23483. });
  23484. });
  23485. // node_modules/mathjs/lib/esm/function/trigonometry/atan.js
  23486. var name172 = "atan";
  23487. var dependencies172 = ["typed"];
  23488. var createAtan = factory(name172, dependencies172, (_ref) => {
  23489. var {
  23490. typed: typed2
  23491. } = _ref;
  23492. return typed2("atan", {
  23493. number: function number2(x) {
  23494. return Math.atan(x);
  23495. },
  23496. Complex: function Complex3(x) {
  23497. return x.atan();
  23498. },
  23499. BigNumber: function BigNumber2(x) {
  23500. return x.atan();
  23501. }
  23502. });
  23503. });
  23504. // node_modules/mathjs/lib/esm/function/trigonometry/atan2.js
  23505. var name173 = "atan2";
  23506. var dependencies173 = ["typed", "matrix", "equalScalar", "BigNumber", "DenseMatrix", "concat"];
  23507. var createAtan2 = factory(name173, dependencies173, (_ref) => {
  23508. var {
  23509. typed: typed2,
  23510. matrix: matrix2,
  23511. equalScalar: equalScalar2,
  23512. BigNumber: BigNumber2,
  23513. DenseMatrix: DenseMatrix2,
  23514. concat: concat2
  23515. } = _ref;
  23516. var matAlgo02xDS0 = createMatAlgo02xDS0({
  23517. typed: typed2,
  23518. equalScalar: equalScalar2
  23519. });
  23520. var matAlgo03xDSf = createMatAlgo03xDSf({
  23521. typed: typed2
  23522. });
  23523. var matAlgo09xS0Sf = createMatAlgo09xS0Sf({
  23524. typed: typed2,
  23525. equalScalar: equalScalar2
  23526. });
  23527. var matAlgo11xS0s = createMatAlgo11xS0s({
  23528. typed: typed2,
  23529. equalScalar: equalScalar2
  23530. });
  23531. var matAlgo12xSfs = createMatAlgo12xSfs({
  23532. typed: typed2,
  23533. DenseMatrix: DenseMatrix2
  23534. });
  23535. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  23536. typed: typed2,
  23537. matrix: matrix2,
  23538. concat: concat2
  23539. });
  23540. return typed2(name173, {
  23541. "number, number": Math.atan2,
  23542. // Complex numbers doesn't seem to have a reasonable implementation of
  23543. // atan2(). Even Matlab removed the support, after they only calculated
  23544. // the atan only on base of the real part of the numbers and ignored
  23545. // the imaginary.
  23546. "BigNumber, BigNumber": (y, x) => BigNumber2.atan2(y, x)
  23547. }, matrixAlgorithmSuite({
  23548. scalar: "number | BigNumber",
  23549. SS: matAlgo09xS0Sf,
  23550. DS: matAlgo03xDSf,
  23551. SD: matAlgo02xDS0,
  23552. Ss: matAlgo11xS0s,
  23553. sS: matAlgo12xSfs
  23554. }));
  23555. });
  23556. // node_modules/mathjs/lib/esm/function/trigonometry/atanh.js
  23557. var name174 = "atanh";
  23558. var dependencies174 = ["typed", "config", "Complex"];
  23559. var createAtanh = factory(name174, dependencies174, (_ref) => {
  23560. var {
  23561. typed: typed2,
  23562. config: config4,
  23563. Complex: Complex3
  23564. } = _ref;
  23565. return typed2(name174, {
  23566. number: function number2(x) {
  23567. if (x <= 1 && x >= -1 || config4.predictable) {
  23568. return atanhNumber(x);
  23569. }
  23570. return new Complex3(x, 0).atanh();
  23571. },
  23572. Complex: function Complex4(x) {
  23573. return x.atanh();
  23574. },
  23575. BigNumber: function BigNumber2(x) {
  23576. return x.atanh();
  23577. }
  23578. });
  23579. });
  23580. // node_modules/mathjs/lib/esm/function/trigonometry/trigUnit.js
  23581. var createTrigUnit = factory("trigUnit", ["typed"], (_ref) => {
  23582. var {
  23583. typed: typed2
  23584. } = _ref;
  23585. return {
  23586. Unit: typed2.referToSelf((self2) => (x) => {
  23587. if (!x.hasBase(x.constructor.BASE_UNITS.ANGLE)) {
  23588. throw new TypeError("Unit in function cot is no angle");
  23589. }
  23590. return typed2.find(self2, x.valueType())(x.value);
  23591. })
  23592. };
  23593. });
  23594. // node_modules/mathjs/lib/esm/function/trigonometry/cos.js
  23595. var name175 = "cos";
  23596. var dependencies175 = ["typed"];
  23597. var createCos = factory(name175, dependencies175, (_ref) => {
  23598. var {
  23599. typed: typed2
  23600. } = _ref;
  23601. var trigUnit = createTrigUnit({
  23602. typed: typed2
  23603. });
  23604. return typed2(name175, {
  23605. number: Math.cos,
  23606. "Complex | BigNumber": (x) => x.cos()
  23607. }, trigUnit);
  23608. });
  23609. // node_modules/mathjs/lib/esm/function/trigonometry/cosh.js
  23610. var name176 = "cosh";
  23611. var dependencies176 = ["typed"];
  23612. var createCosh = factory(name176, dependencies176, (_ref) => {
  23613. var {
  23614. typed: typed2
  23615. } = _ref;
  23616. return typed2(name176, {
  23617. number: cosh,
  23618. "Complex | BigNumber": (x) => x.cosh()
  23619. });
  23620. });
  23621. // node_modules/mathjs/lib/esm/function/trigonometry/cot.js
  23622. var name177 = "cot";
  23623. var dependencies177 = ["typed", "BigNumber"];
  23624. var createCot = factory(name177, dependencies177, (_ref) => {
  23625. var {
  23626. typed: typed2,
  23627. BigNumber: _BigNumber
  23628. } = _ref;
  23629. var trigUnit = createTrigUnit({
  23630. typed: typed2
  23631. });
  23632. return typed2(name177, {
  23633. number: cotNumber,
  23634. Complex: (x) => x.cot(),
  23635. BigNumber: (x) => new _BigNumber(1).div(x.tan())
  23636. }, trigUnit);
  23637. });
  23638. // node_modules/mathjs/lib/esm/function/trigonometry/coth.js
  23639. var name178 = "coth";
  23640. var dependencies178 = ["typed", "BigNumber"];
  23641. var createCoth = factory(name178, dependencies178, (_ref) => {
  23642. var {
  23643. typed: typed2,
  23644. BigNumber: _BigNumber
  23645. } = _ref;
  23646. return typed2(name178, {
  23647. number: cothNumber,
  23648. Complex: (x) => x.coth(),
  23649. BigNumber: (x) => new _BigNumber(1).div(x.tanh())
  23650. });
  23651. });
  23652. // node_modules/mathjs/lib/esm/function/trigonometry/csc.js
  23653. var name179 = "csc";
  23654. var dependencies179 = ["typed", "BigNumber"];
  23655. var createCsc = factory(name179, dependencies179, (_ref) => {
  23656. var {
  23657. typed: typed2,
  23658. BigNumber: _BigNumber
  23659. } = _ref;
  23660. var trigUnit = createTrigUnit({
  23661. typed: typed2
  23662. });
  23663. return typed2(name179, {
  23664. number: cscNumber,
  23665. Complex: (x) => x.csc(),
  23666. BigNumber: (x) => new _BigNumber(1).div(x.sin())
  23667. }, trigUnit);
  23668. });
  23669. // node_modules/mathjs/lib/esm/function/trigonometry/csch.js
  23670. var name180 = "csch";
  23671. var dependencies180 = ["typed", "BigNumber"];
  23672. var createCsch = factory(name180, dependencies180, (_ref) => {
  23673. var {
  23674. typed: typed2,
  23675. BigNumber: _BigNumber
  23676. } = _ref;
  23677. return typed2(name180, {
  23678. number: cschNumber,
  23679. Complex: (x) => x.csch(),
  23680. BigNumber: (x) => new _BigNumber(1).div(x.sinh())
  23681. });
  23682. });
  23683. // node_modules/mathjs/lib/esm/function/trigonometry/sec.js
  23684. var name181 = "sec";
  23685. var dependencies181 = ["typed", "BigNumber"];
  23686. var createSec = factory(name181, dependencies181, (_ref) => {
  23687. var {
  23688. typed: typed2,
  23689. BigNumber: _BigNumber
  23690. } = _ref;
  23691. var trigUnit = createTrigUnit({
  23692. typed: typed2
  23693. });
  23694. return typed2(name181, {
  23695. number: secNumber,
  23696. Complex: (x) => x.sec(),
  23697. BigNumber: (x) => new _BigNumber(1).div(x.cos())
  23698. }, trigUnit);
  23699. });
  23700. // node_modules/mathjs/lib/esm/function/trigonometry/sech.js
  23701. var name182 = "sech";
  23702. var dependencies182 = ["typed", "BigNumber"];
  23703. var createSech = factory(name182, dependencies182, (_ref) => {
  23704. var {
  23705. typed: typed2,
  23706. BigNumber: _BigNumber
  23707. } = _ref;
  23708. return typed2(name182, {
  23709. number: sechNumber,
  23710. Complex: (x) => x.sech(),
  23711. BigNumber: (x) => new _BigNumber(1).div(x.cosh())
  23712. });
  23713. });
  23714. // node_modules/mathjs/lib/esm/function/trigonometry/sin.js
  23715. var name183 = "sin";
  23716. var dependencies183 = ["typed"];
  23717. var createSin = factory(name183, dependencies183, (_ref) => {
  23718. var {
  23719. typed: typed2
  23720. } = _ref;
  23721. var trigUnit = createTrigUnit({
  23722. typed: typed2
  23723. });
  23724. return typed2(name183, {
  23725. number: Math.sin,
  23726. "Complex | BigNumber": (x) => x.sin()
  23727. }, trigUnit);
  23728. });
  23729. // node_modules/mathjs/lib/esm/function/trigonometry/sinh.js
  23730. var name184 = "sinh";
  23731. var dependencies184 = ["typed"];
  23732. var createSinh = factory(name184, dependencies184, (_ref) => {
  23733. var {
  23734. typed: typed2
  23735. } = _ref;
  23736. return typed2(name184, {
  23737. number: sinhNumber,
  23738. "Complex | BigNumber": (x) => x.sinh()
  23739. });
  23740. });
  23741. // node_modules/mathjs/lib/esm/function/trigonometry/tan.js
  23742. var name185 = "tan";
  23743. var dependencies185 = ["typed"];
  23744. var createTan = factory(name185, dependencies185, (_ref) => {
  23745. var {
  23746. typed: typed2
  23747. } = _ref;
  23748. var trigUnit = createTrigUnit({
  23749. typed: typed2
  23750. });
  23751. return typed2(name185, {
  23752. number: Math.tan,
  23753. "Complex | BigNumber": (x) => x.tan()
  23754. }, trigUnit);
  23755. });
  23756. // node_modules/mathjs/lib/esm/function/trigonometry/tanh.js
  23757. var name186 = "tanh";
  23758. var dependencies186 = ["typed"];
  23759. var createTanh = factory(name186, dependencies186, (_ref) => {
  23760. var {
  23761. typed: typed2
  23762. } = _ref;
  23763. return typed2("tanh", {
  23764. number: tanh,
  23765. "Complex | BigNumber": (x) => x.tanh()
  23766. });
  23767. });
  23768. // node_modules/mathjs/lib/esm/function/set/setCartesian.js
  23769. var name187 = "setCartesian";
  23770. var dependencies187 = ["typed", "size", "subset", "compareNatural", "Index", "DenseMatrix"];
  23771. var createSetCartesian = factory(name187, dependencies187, (_ref) => {
  23772. var {
  23773. typed: typed2,
  23774. size: size2,
  23775. subset: subset2,
  23776. compareNatural: compareNatural2,
  23777. Index: Index2,
  23778. DenseMatrix: DenseMatrix2
  23779. } = _ref;
  23780. return typed2(name187, {
  23781. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  23782. var result = [];
  23783. if (subset2(size2(a1), new Index2(0)) !== 0 && subset2(size2(a2), new Index2(0)) !== 0) {
  23784. var b1 = flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural2);
  23785. var b2 = flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural2);
  23786. result = [];
  23787. for (var i2 = 0; i2 < b1.length; i2++) {
  23788. for (var j = 0; j < b2.length; j++) {
  23789. result.push([b1[i2], b2[j]]);
  23790. }
  23791. }
  23792. }
  23793. if (Array.isArray(a1) && Array.isArray(a2)) {
  23794. return result;
  23795. }
  23796. return new DenseMatrix2(result);
  23797. }
  23798. });
  23799. });
  23800. // node_modules/mathjs/lib/esm/function/set/setDifference.js
  23801. var name188 = "setDifference";
  23802. var dependencies188 = ["typed", "size", "subset", "compareNatural", "Index", "DenseMatrix"];
  23803. var createSetDifference = factory(name188, dependencies188, (_ref) => {
  23804. var {
  23805. typed: typed2,
  23806. size: size2,
  23807. subset: subset2,
  23808. compareNatural: compareNatural2,
  23809. Index: Index2,
  23810. DenseMatrix: DenseMatrix2
  23811. } = _ref;
  23812. return typed2(name188, {
  23813. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  23814. var result;
  23815. if (subset2(size2(a1), new Index2(0)) === 0) {
  23816. result = [];
  23817. } else if (subset2(size2(a2), new Index2(0)) === 0) {
  23818. return flatten(a1.toArray());
  23819. } else {
  23820. var b1 = identify(flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural2));
  23821. var b2 = identify(flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural2));
  23822. result = [];
  23823. var inb2;
  23824. for (var i2 = 0; i2 < b1.length; i2++) {
  23825. inb2 = false;
  23826. for (var j = 0; j < b2.length; j++) {
  23827. if (compareNatural2(b1[i2].value, b2[j].value) === 0 && b1[i2].identifier === b2[j].identifier) {
  23828. inb2 = true;
  23829. break;
  23830. }
  23831. }
  23832. if (!inb2) {
  23833. result.push(b1[i2]);
  23834. }
  23835. }
  23836. }
  23837. if (Array.isArray(a1) && Array.isArray(a2)) {
  23838. return generalize(result);
  23839. }
  23840. return new DenseMatrix2(generalize(result));
  23841. }
  23842. });
  23843. });
  23844. // node_modules/mathjs/lib/esm/function/set/setDistinct.js
  23845. var name189 = "setDistinct";
  23846. var dependencies189 = ["typed", "size", "subset", "compareNatural", "Index", "DenseMatrix"];
  23847. var createSetDistinct = factory(name189, dependencies189, (_ref) => {
  23848. var {
  23849. typed: typed2,
  23850. size: size2,
  23851. subset: subset2,
  23852. compareNatural: compareNatural2,
  23853. Index: Index2,
  23854. DenseMatrix: DenseMatrix2
  23855. } = _ref;
  23856. return typed2(name189, {
  23857. "Array | Matrix": function ArrayMatrix(a) {
  23858. var result;
  23859. if (subset2(size2(a), new Index2(0)) === 0) {
  23860. result = [];
  23861. } else {
  23862. var b = flatten(Array.isArray(a) ? a : a.toArray()).sort(compareNatural2);
  23863. result = [];
  23864. result.push(b[0]);
  23865. for (var i2 = 1; i2 < b.length; i2++) {
  23866. if (compareNatural2(b[i2], b[i2 - 1]) !== 0) {
  23867. result.push(b[i2]);
  23868. }
  23869. }
  23870. }
  23871. if (Array.isArray(a)) {
  23872. return result;
  23873. }
  23874. return new DenseMatrix2(result);
  23875. }
  23876. });
  23877. });
  23878. // node_modules/mathjs/lib/esm/function/set/setIntersect.js
  23879. var name190 = "setIntersect";
  23880. var dependencies190 = ["typed", "size", "subset", "compareNatural", "Index", "DenseMatrix"];
  23881. var createSetIntersect = factory(name190, dependencies190, (_ref) => {
  23882. var {
  23883. typed: typed2,
  23884. size: size2,
  23885. subset: subset2,
  23886. compareNatural: compareNatural2,
  23887. Index: Index2,
  23888. DenseMatrix: DenseMatrix2
  23889. } = _ref;
  23890. return typed2(name190, {
  23891. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  23892. var result;
  23893. if (subset2(size2(a1), new Index2(0)) === 0 || subset2(size2(a2), new Index2(0)) === 0) {
  23894. result = [];
  23895. } else {
  23896. var b1 = identify(flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural2));
  23897. var b2 = identify(flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural2));
  23898. result = [];
  23899. for (var i2 = 0; i2 < b1.length; i2++) {
  23900. for (var j = 0; j < b2.length; j++) {
  23901. if (compareNatural2(b1[i2].value, b2[j].value) === 0 && b1[i2].identifier === b2[j].identifier) {
  23902. result.push(b1[i2]);
  23903. break;
  23904. }
  23905. }
  23906. }
  23907. }
  23908. if (Array.isArray(a1) && Array.isArray(a2)) {
  23909. return generalize(result);
  23910. }
  23911. return new DenseMatrix2(generalize(result));
  23912. }
  23913. });
  23914. });
  23915. // node_modules/mathjs/lib/esm/function/set/setIsSubset.js
  23916. var name191 = "setIsSubset";
  23917. var dependencies191 = ["typed", "size", "subset", "compareNatural", "Index"];
  23918. var createSetIsSubset = factory(name191, dependencies191, (_ref) => {
  23919. var {
  23920. typed: typed2,
  23921. size: size2,
  23922. subset: subset2,
  23923. compareNatural: compareNatural2,
  23924. Index: Index2
  23925. } = _ref;
  23926. return typed2(name191, {
  23927. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  23928. if (subset2(size2(a1), new Index2(0)) === 0) {
  23929. return true;
  23930. } else if (subset2(size2(a2), new Index2(0)) === 0) {
  23931. return false;
  23932. }
  23933. var b1 = identify(flatten(Array.isArray(a1) ? a1 : a1.toArray()).sort(compareNatural2));
  23934. var b2 = identify(flatten(Array.isArray(a2) ? a2 : a2.toArray()).sort(compareNatural2));
  23935. var inb2;
  23936. for (var i2 = 0; i2 < b1.length; i2++) {
  23937. inb2 = false;
  23938. for (var j = 0; j < b2.length; j++) {
  23939. if (compareNatural2(b1[i2].value, b2[j].value) === 0 && b1[i2].identifier === b2[j].identifier) {
  23940. inb2 = true;
  23941. break;
  23942. }
  23943. }
  23944. if (inb2 === false) {
  23945. return false;
  23946. }
  23947. }
  23948. return true;
  23949. }
  23950. });
  23951. });
  23952. // node_modules/mathjs/lib/esm/function/set/setMultiplicity.js
  23953. var name192 = "setMultiplicity";
  23954. var dependencies192 = ["typed", "size", "subset", "compareNatural", "Index"];
  23955. var createSetMultiplicity = factory(name192, dependencies192, (_ref) => {
  23956. var {
  23957. typed: typed2,
  23958. size: size2,
  23959. subset: subset2,
  23960. compareNatural: compareNatural2,
  23961. Index: Index2
  23962. } = _ref;
  23963. return typed2(name192, {
  23964. "number | BigNumber | Fraction | Complex, Array | Matrix": function numberBigNumberFractionComplexArrayMatrix(e3, a) {
  23965. if (subset2(size2(a), new Index2(0)) === 0) {
  23966. return 0;
  23967. }
  23968. var b = flatten(Array.isArray(a) ? a : a.toArray());
  23969. var count2 = 0;
  23970. for (var i2 = 0; i2 < b.length; i2++) {
  23971. if (compareNatural2(b[i2], e3) === 0) {
  23972. count2++;
  23973. }
  23974. }
  23975. return count2;
  23976. }
  23977. });
  23978. });
  23979. // node_modules/mathjs/lib/esm/function/set/setPowerset.js
  23980. var name193 = "setPowerset";
  23981. var dependencies193 = ["typed", "size", "subset", "compareNatural", "Index"];
  23982. var createSetPowerset = factory(name193, dependencies193, (_ref) => {
  23983. var {
  23984. typed: typed2,
  23985. size: size2,
  23986. subset: subset2,
  23987. compareNatural: compareNatural2,
  23988. Index: Index2
  23989. } = _ref;
  23990. return typed2(name193, {
  23991. "Array | Matrix": function ArrayMatrix(a) {
  23992. if (subset2(size2(a), new Index2(0)) === 0) {
  23993. return [];
  23994. }
  23995. var b = flatten(Array.isArray(a) ? a : a.toArray()).sort(compareNatural2);
  23996. var result = [];
  23997. var number2 = 0;
  23998. while (number2.toString(2).length <= b.length) {
  23999. result.push(_subset(b, number2.toString(2).split("").reverse()));
  24000. number2++;
  24001. }
  24002. return _sort(result);
  24003. }
  24004. });
  24005. function _subset(array, bitarray) {
  24006. var result = [];
  24007. for (var i2 = 0; i2 < bitarray.length; i2++) {
  24008. if (bitarray[i2] === "1") {
  24009. result.push(array[i2]);
  24010. }
  24011. }
  24012. return result;
  24013. }
  24014. function _sort(array) {
  24015. var temp = [];
  24016. for (var i2 = array.length - 1; i2 > 0; i2--) {
  24017. for (var j = 0; j < i2; j++) {
  24018. if (array[j].length > array[j + 1].length) {
  24019. temp = array[j];
  24020. array[j] = array[j + 1];
  24021. array[j + 1] = temp;
  24022. }
  24023. }
  24024. }
  24025. return array;
  24026. }
  24027. });
  24028. // node_modules/mathjs/lib/esm/function/set/setSize.js
  24029. var name194 = "setSize";
  24030. var dependencies194 = ["typed", "compareNatural"];
  24031. var createSetSize = factory(name194, dependencies194, (_ref) => {
  24032. var {
  24033. typed: typed2,
  24034. compareNatural: compareNatural2
  24035. } = _ref;
  24036. return typed2(name194, {
  24037. "Array | Matrix": function ArrayMatrix(a) {
  24038. return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;
  24039. },
  24040. "Array | Matrix, boolean": function ArrayMatrixBoolean(a, unique) {
  24041. if (unique === false || a.length === 0) {
  24042. return Array.isArray(a) ? flatten(a).length : flatten(a.toArray()).length;
  24043. } else {
  24044. var b = flatten(Array.isArray(a) ? a : a.toArray()).sort(compareNatural2);
  24045. var count2 = 1;
  24046. for (var i2 = 1; i2 < b.length; i2++) {
  24047. if (compareNatural2(b[i2], b[i2 - 1]) !== 0) {
  24048. count2++;
  24049. }
  24050. }
  24051. return count2;
  24052. }
  24053. }
  24054. });
  24055. });
  24056. // node_modules/mathjs/lib/esm/function/set/setSymDifference.js
  24057. var name195 = "setSymDifference";
  24058. var dependencies195 = ["typed", "size", "concat", "subset", "setDifference", "Index"];
  24059. var createSetSymDifference = factory(name195, dependencies195, (_ref) => {
  24060. var {
  24061. typed: typed2,
  24062. size: size2,
  24063. concat: concat2,
  24064. subset: subset2,
  24065. setDifference: setDifference2,
  24066. Index: Index2
  24067. } = _ref;
  24068. return typed2(name195, {
  24069. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  24070. if (subset2(size2(a1), new Index2(0)) === 0) {
  24071. return flatten(a2);
  24072. } else if (subset2(size2(a2), new Index2(0)) === 0) {
  24073. return flatten(a1);
  24074. }
  24075. var b1 = flatten(a1);
  24076. var b2 = flatten(a2);
  24077. return concat2(setDifference2(b1, b2), setDifference2(b2, b1));
  24078. }
  24079. });
  24080. });
  24081. // node_modules/mathjs/lib/esm/function/set/setUnion.js
  24082. var name196 = "setUnion";
  24083. var dependencies196 = ["typed", "size", "concat", "subset", "setIntersect", "setSymDifference", "Index"];
  24084. var createSetUnion = factory(name196, dependencies196, (_ref) => {
  24085. var {
  24086. typed: typed2,
  24087. size: size2,
  24088. concat: concat2,
  24089. subset: subset2,
  24090. setIntersect: setIntersect2,
  24091. setSymDifference: setSymDifference2,
  24092. Index: Index2
  24093. } = _ref;
  24094. return typed2(name196, {
  24095. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(a1, a2) {
  24096. if (subset2(size2(a1), new Index2(0)) === 0) {
  24097. return flatten(a2);
  24098. } else if (subset2(size2(a2), new Index2(0)) === 0) {
  24099. return flatten(a1);
  24100. }
  24101. var b1 = flatten(a1);
  24102. var b2 = flatten(a2);
  24103. return concat2(setSymDifference2(b1, b2), setIntersect2(b1, b2));
  24104. }
  24105. });
  24106. });
  24107. // node_modules/mathjs/lib/esm/function/arithmetic/add.js
  24108. var name197 = "add";
  24109. var dependencies197 = ["typed", "matrix", "addScalar", "equalScalar", "DenseMatrix", "SparseMatrix", "concat"];
  24110. var createAdd = factory(name197, dependencies197, (_ref) => {
  24111. var {
  24112. typed: typed2,
  24113. matrix: matrix2,
  24114. addScalar: addScalar2,
  24115. equalScalar: equalScalar2,
  24116. DenseMatrix: DenseMatrix2,
  24117. SparseMatrix: SparseMatrix2,
  24118. concat: concat2
  24119. } = _ref;
  24120. var matAlgo01xDSid = createMatAlgo01xDSid({
  24121. typed: typed2
  24122. });
  24123. var matAlgo04xSidSid = createMatAlgo04xSidSid({
  24124. typed: typed2,
  24125. equalScalar: equalScalar2
  24126. });
  24127. var matAlgo10xSids = createMatAlgo10xSids({
  24128. typed: typed2,
  24129. DenseMatrix: DenseMatrix2
  24130. });
  24131. var matrixAlgorithmSuite = createMatrixAlgorithmSuite({
  24132. typed: typed2,
  24133. matrix: matrix2,
  24134. concat: concat2
  24135. });
  24136. return typed2(name197, {
  24137. "any, any": addScalar2,
  24138. "any, any, ...any": typed2.referToSelf((self2) => (x, y, rest) => {
  24139. var result = self2(x, y);
  24140. for (var i2 = 0; i2 < rest.length; i2++) {
  24141. result = self2(result, rest[i2]);
  24142. }
  24143. return result;
  24144. })
  24145. }, matrixAlgorithmSuite({
  24146. elop: addScalar2,
  24147. DS: matAlgo01xDSid,
  24148. SS: matAlgo04xSidSid,
  24149. Ss: matAlgo10xSids
  24150. }));
  24151. });
  24152. // node_modules/mathjs/lib/esm/function/arithmetic/hypot.js
  24153. var name198 = "hypot";
  24154. var dependencies198 = ["typed", "abs", "addScalar", "divideScalar", "multiplyScalar", "sqrt", "smaller", "isPositive"];
  24155. var createHypot = factory(name198, dependencies198, (_ref) => {
  24156. var {
  24157. typed: typed2,
  24158. abs: abs3,
  24159. addScalar: addScalar2,
  24160. divideScalar: divideScalar2,
  24161. multiplyScalar: multiplyScalar2,
  24162. sqrt: sqrt3,
  24163. smaller: smaller2,
  24164. isPositive: isPositive2
  24165. } = _ref;
  24166. return typed2(name198, {
  24167. "... number | BigNumber": _hypot,
  24168. Array: _hypot,
  24169. Matrix: (M) => _hypot(flatten(M.toArray()))
  24170. });
  24171. function _hypot(args) {
  24172. var result = 0;
  24173. var largest = 0;
  24174. for (var i2 = 0; i2 < args.length; i2++) {
  24175. if (isComplex(args[i2])) {
  24176. throw new TypeError("Unexpected type of argument to hypot");
  24177. }
  24178. var value = abs3(args[i2]);
  24179. if (smaller2(largest, value)) {
  24180. result = multiplyScalar2(result, multiplyScalar2(divideScalar2(largest, value), divideScalar2(largest, value)));
  24181. result = addScalar2(result, 1);
  24182. largest = value;
  24183. } else {
  24184. result = addScalar2(result, isPositive2(value) ? multiplyScalar2(divideScalar2(value, largest), divideScalar2(value, largest)) : value);
  24185. }
  24186. }
  24187. return multiplyScalar2(largest, sqrt3(result));
  24188. }
  24189. });
  24190. // node_modules/mathjs/lib/esm/function/arithmetic/norm.js
  24191. var name199 = "norm";
  24192. var dependencies199 = ["typed", "abs", "add", "pow", "conj", "sqrt", "multiply", "equalScalar", "larger", "smaller", "matrix", "ctranspose", "eigs"];
  24193. var createNorm = factory(name199, dependencies199, (_ref) => {
  24194. var {
  24195. typed: typed2,
  24196. abs: abs3,
  24197. add: add3,
  24198. pow: pow3,
  24199. conj: conj2,
  24200. sqrt: sqrt3,
  24201. multiply: multiply2,
  24202. equalScalar: equalScalar2,
  24203. larger: larger2,
  24204. smaller: smaller2,
  24205. matrix: matrix2,
  24206. ctranspose: ctranspose2,
  24207. eigs: eigs2
  24208. } = _ref;
  24209. return typed2(name199, {
  24210. number: Math.abs,
  24211. Complex: function Complex3(x) {
  24212. return x.abs();
  24213. },
  24214. BigNumber: function BigNumber2(x) {
  24215. return x.abs();
  24216. },
  24217. boolean: function boolean2(x) {
  24218. return Math.abs(x);
  24219. },
  24220. Array: function Array2(x) {
  24221. return _norm(matrix2(x), 2);
  24222. },
  24223. Matrix: function Matrix2(x) {
  24224. return _norm(x, 2);
  24225. },
  24226. "Array, number | BigNumber | string": function ArrayNumberBigNumberString(x, p) {
  24227. return _norm(matrix2(x), p);
  24228. },
  24229. "Matrix, number | BigNumber | string": function MatrixNumberBigNumberString(x, p) {
  24230. return _norm(x, p);
  24231. }
  24232. });
  24233. function _vectorNormPlusInfinity(x) {
  24234. var pinf = 0;
  24235. x.forEach(function(value) {
  24236. var v = abs3(value);
  24237. if (larger2(v, pinf)) {
  24238. pinf = v;
  24239. }
  24240. }, true);
  24241. return pinf;
  24242. }
  24243. function _vectorNormMinusInfinity(x) {
  24244. var ninf;
  24245. x.forEach(function(value) {
  24246. var v = abs3(value);
  24247. if (!ninf || smaller2(v, ninf)) {
  24248. ninf = v;
  24249. }
  24250. }, true);
  24251. return ninf || 0;
  24252. }
  24253. function _vectorNorm(x, p) {
  24254. if (p === Number.POSITIVE_INFINITY || p === "inf") {
  24255. return _vectorNormPlusInfinity(x);
  24256. }
  24257. if (p === Number.NEGATIVE_INFINITY || p === "-inf") {
  24258. return _vectorNormMinusInfinity(x);
  24259. }
  24260. if (p === "fro") {
  24261. return _norm(x, 2);
  24262. }
  24263. if (typeof p === "number" && !isNaN(p)) {
  24264. if (!equalScalar2(p, 0)) {
  24265. var n = 0;
  24266. x.forEach(function(value) {
  24267. n = add3(pow3(abs3(value), p), n);
  24268. }, true);
  24269. return pow3(n, 1 / p);
  24270. }
  24271. return Number.POSITIVE_INFINITY;
  24272. }
  24273. throw new Error("Unsupported parameter value");
  24274. }
  24275. function _matrixNormFrobenius(x) {
  24276. var fro = 0;
  24277. x.forEach(function(value, index2) {
  24278. fro = add3(fro, multiply2(value, conj2(value)));
  24279. });
  24280. return abs3(sqrt3(fro));
  24281. }
  24282. function _matrixNormOne(x) {
  24283. var c = [];
  24284. var maxc = 0;
  24285. x.forEach(function(value, index2) {
  24286. var j = index2[1];
  24287. var cj = add3(c[j] || 0, abs3(value));
  24288. if (larger2(cj, maxc)) {
  24289. maxc = cj;
  24290. }
  24291. c[j] = cj;
  24292. }, true);
  24293. return maxc;
  24294. }
  24295. function _matrixNormTwo(x) {
  24296. var sizeX = x.size();
  24297. if (sizeX[0] !== sizeX[1]) {
  24298. throw new RangeError("Invalid matrix dimensions");
  24299. }
  24300. var tx = ctranspose2(x);
  24301. var squaredX = multiply2(tx, x);
  24302. var eigenVals = eigs2(squaredX).values.toArray();
  24303. var rho = eigenVals[eigenVals.length - 1];
  24304. return abs3(sqrt3(rho));
  24305. }
  24306. function _matrixNormInfinity(x) {
  24307. var r = [];
  24308. var maxr = 0;
  24309. x.forEach(function(value, index2) {
  24310. var i2 = index2[0];
  24311. var ri = add3(r[i2] || 0, abs3(value));
  24312. if (larger2(ri, maxr)) {
  24313. maxr = ri;
  24314. }
  24315. r[i2] = ri;
  24316. }, true);
  24317. return maxr;
  24318. }
  24319. function _matrixNorm(x, p) {
  24320. if (p === 1) {
  24321. return _matrixNormOne(x);
  24322. }
  24323. if (p === Number.POSITIVE_INFINITY || p === "inf") {
  24324. return _matrixNormInfinity(x);
  24325. }
  24326. if (p === "fro") {
  24327. return _matrixNormFrobenius(x);
  24328. }
  24329. if (p === 2) {
  24330. return _matrixNormTwo(x);
  24331. }
  24332. throw new Error("Unsupported parameter value " + p);
  24333. }
  24334. function _norm(x, p) {
  24335. var sizeX = x.size();
  24336. if (sizeX.length === 1) {
  24337. return _vectorNorm(x, p);
  24338. }
  24339. if (sizeX.length === 2) {
  24340. if (sizeX[0] && sizeX[1]) {
  24341. return _matrixNorm(x, p);
  24342. } else {
  24343. throw new RangeError("Invalid matrix dimensions");
  24344. }
  24345. }
  24346. }
  24347. });
  24348. // node_modules/mathjs/lib/esm/function/matrix/dot.js
  24349. var name200 = "dot";
  24350. var dependencies200 = ["typed", "addScalar", "multiplyScalar", "conj", "size"];
  24351. var createDot = factory(name200, dependencies200, (_ref) => {
  24352. var {
  24353. typed: typed2,
  24354. addScalar: addScalar2,
  24355. multiplyScalar: multiplyScalar2,
  24356. conj: conj2,
  24357. size: size2
  24358. } = _ref;
  24359. return typed2(name200, {
  24360. "Array | DenseMatrix, Array | DenseMatrix": _denseDot,
  24361. "SparseMatrix, SparseMatrix": _sparseDot
  24362. });
  24363. function _validateDim(x, y) {
  24364. var xSize = _size(x);
  24365. var ySize = _size(y);
  24366. var xLen, yLen;
  24367. if (xSize.length === 1) {
  24368. xLen = xSize[0];
  24369. } else if (xSize.length === 2 && xSize[1] === 1) {
  24370. xLen = xSize[0];
  24371. } else {
  24372. throw new RangeError("Expected a column vector, instead got a matrix of size (" + xSize.join(", ") + ")");
  24373. }
  24374. if (ySize.length === 1) {
  24375. yLen = ySize[0];
  24376. } else if (ySize.length === 2 && ySize[1] === 1) {
  24377. yLen = ySize[0];
  24378. } else {
  24379. throw new RangeError("Expected a column vector, instead got a matrix of size (" + ySize.join(", ") + ")");
  24380. }
  24381. if (xLen !== yLen)
  24382. throw new RangeError("Vectors must have equal length (" + xLen + " != " + yLen + ")");
  24383. if (xLen === 0)
  24384. throw new RangeError("Cannot calculate the dot product of empty vectors");
  24385. return xLen;
  24386. }
  24387. function _denseDot(a, b) {
  24388. var N = _validateDim(a, b);
  24389. var adata = isMatrix(a) ? a._data : a;
  24390. var adt = isMatrix(a) ? a._datatype : void 0;
  24391. var bdata = isMatrix(b) ? b._data : b;
  24392. var bdt = isMatrix(b) ? b._datatype : void 0;
  24393. var aIsColumn = _size(a).length === 2;
  24394. var bIsColumn = _size(b).length === 2;
  24395. var add3 = addScalar2;
  24396. var mul2 = multiplyScalar2;
  24397. if (adt && bdt && adt === bdt && typeof adt === "string") {
  24398. var dt = adt;
  24399. add3 = typed2.find(addScalar2, [dt, dt]);
  24400. mul2 = typed2.find(multiplyScalar2, [dt, dt]);
  24401. }
  24402. if (!aIsColumn && !bIsColumn) {
  24403. var c = mul2(conj2(adata[0]), bdata[0]);
  24404. for (var i2 = 1; i2 < N; i2++) {
  24405. c = add3(c, mul2(conj2(adata[i2]), bdata[i2]));
  24406. }
  24407. return c;
  24408. }
  24409. if (!aIsColumn && bIsColumn) {
  24410. var _c = mul2(conj2(adata[0]), bdata[0][0]);
  24411. for (var _i = 1; _i < N; _i++) {
  24412. _c = add3(_c, mul2(conj2(adata[_i]), bdata[_i][0]));
  24413. }
  24414. return _c;
  24415. }
  24416. if (aIsColumn && !bIsColumn) {
  24417. var _c2 = mul2(conj2(adata[0][0]), bdata[0]);
  24418. for (var _i2 = 1; _i2 < N; _i2++) {
  24419. _c2 = add3(_c2, mul2(conj2(adata[_i2][0]), bdata[_i2]));
  24420. }
  24421. return _c2;
  24422. }
  24423. if (aIsColumn && bIsColumn) {
  24424. var _c3 = mul2(conj2(adata[0][0]), bdata[0][0]);
  24425. for (var _i3 = 1; _i3 < N; _i3++) {
  24426. _c3 = add3(_c3, mul2(conj2(adata[_i3][0]), bdata[_i3][0]));
  24427. }
  24428. return _c3;
  24429. }
  24430. }
  24431. function _sparseDot(x, y) {
  24432. _validateDim(x, y);
  24433. var xindex = x._index;
  24434. var xvalues = x._values;
  24435. var yindex = y._index;
  24436. var yvalues = y._values;
  24437. var c = 0;
  24438. var add3 = addScalar2;
  24439. var mul2 = multiplyScalar2;
  24440. var i2 = 0;
  24441. var j = 0;
  24442. while (i2 < xindex.length && j < yindex.length) {
  24443. var I = xindex[i2];
  24444. var J = yindex[j];
  24445. if (I < J) {
  24446. i2++;
  24447. continue;
  24448. }
  24449. if (I > J) {
  24450. j++;
  24451. continue;
  24452. }
  24453. if (I === J) {
  24454. c = add3(c, mul2(xvalues[i2], yvalues[j]));
  24455. i2++;
  24456. j++;
  24457. }
  24458. }
  24459. return c;
  24460. }
  24461. function _size(x) {
  24462. return isMatrix(x) ? x.size() : size2(x);
  24463. }
  24464. });
  24465. // node_modules/mathjs/lib/esm/function/matrix/trace.js
  24466. var name201 = "trace";
  24467. var dependencies201 = ["typed", "matrix", "add"];
  24468. var createTrace = factory(name201, dependencies201, (_ref) => {
  24469. var {
  24470. typed: typed2,
  24471. matrix: matrix2,
  24472. add: add3
  24473. } = _ref;
  24474. return typed2("trace", {
  24475. Array: function _arrayTrace(x) {
  24476. return _denseTrace(matrix2(x));
  24477. },
  24478. SparseMatrix: _sparseTrace,
  24479. DenseMatrix: _denseTrace,
  24480. any: clone
  24481. });
  24482. function _denseTrace(m) {
  24483. var size2 = m._size;
  24484. var data = m._data;
  24485. switch (size2.length) {
  24486. case 1:
  24487. if (size2[0] === 1) {
  24488. return clone(data[0]);
  24489. }
  24490. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  24491. case 2: {
  24492. var rows = size2[0];
  24493. var cols = size2[1];
  24494. if (rows === cols) {
  24495. var sum3 = 0;
  24496. for (var i2 = 0; i2 < rows; i2++) {
  24497. sum3 = add3(sum3, data[i2][i2]);
  24498. }
  24499. return sum3;
  24500. } else {
  24501. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  24502. }
  24503. }
  24504. default:
  24505. throw new RangeError("Matrix must be two dimensional (size: " + format3(size2) + ")");
  24506. }
  24507. }
  24508. function _sparseTrace(m) {
  24509. var values2 = m._values;
  24510. var index2 = m._index;
  24511. var ptr = m._ptr;
  24512. var size2 = m._size;
  24513. var rows = size2[0];
  24514. var columns = size2[1];
  24515. if (rows === columns) {
  24516. var sum3 = 0;
  24517. if (values2.length > 0) {
  24518. for (var j = 0; j < columns; j++) {
  24519. var k0 = ptr[j];
  24520. var k1 = ptr[j + 1];
  24521. for (var k = k0; k < k1; k++) {
  24522. var i2 = index2[k];
  24523. if (i2 === j) {
  24524. sum3 = add3(sum3, values2[k]);
  24525. break;
  24526. }
  24527. if (i2 > j) {
  24528. break;
  24529. }
  24530. }
  24531. }
  24532. }
  24533. return sum3;
  24534. }
  24535. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  24536. }
  24537. });
  24538. // node_modules/mathjs/lib/esm/type/matrix/function/index.js
  24539. var name202 = "index";
  24540. var dependencies202 = ["typed", "Index"];
  24541. var createIndex = factory(name202, dependencies202, (_ref) => {
  24542. var {
  24543. typed: typed2,
  24544. Index: Index2
  24545. } = _ref;
  24546. return typed2(name202, {
  24547. "...number | string | BigNumber | Range | Array | Matrix": function numberStringBigNumberRangeArrayMatrix(args) {
  24548. var ranges = args.map(function(arg2) {
  24549. if (isBigNumber(arg2)) {
  24550. return arg2.toNumber();
  24551. } else if (Array.isArray(arg2) || isMatrix(arg2)) {
  24552. return arg2.map(function(elem) {
  24553. return isBigNumber(elem) ? elem.toNumber() : elem;
  24554. });
  24555. } else {
  24556. return arg2;
  24557. }
  24558. });
  24559. var res = new Index2();
  24560. Index2.apply(res, ranges);
  24561. return res;
  24562. }
  24563. });
  24564. });
  24565. // node_modules/mathjs/lib/esm/expression/keywords.js
  24566. var keywords = /* @__PURE__ */ new Set(["end"]);
  24567. // node_modules/mathjs/lib/esm/expression/node/Node.js
  24568. var name203 = "Node";
  24569. var dependencies203 = ["mathWithTransform"];
  24570. var createNode = factory(name203, dependencies203, (_ref) => {
  24571. var {
  24572. mathWithTransform: mathWithTransform2
  24573. } = _ref;
  24574. function _validateScope(scope) {
  24575. for (var symbol of [...keywords]) {
  24576. if (scope.has(symbol)) {
  24577. throw new Error('Scope contains an illegal symbol, "' + symbol + '" is a reserved keyword');
  24578. }
  24579. }
  24580. }
  24581. class Node2 {
  24582. get type() {
  24583. return "Node";
  24584. }
  24585. get isNode() {
  24586. return true;
  24587. }
  24588. /**
  24589. * Evaluate the node
  24590. * @param {Object} [scope] Scope to read/write variables
  24591. * @return {*} Returns the result
  24592. */
  24593. evaluate(scope) {
  24594. return this.compile().evaluate(scope);
  24595. }
  24596. /**
  24597. * Compile the node into an optimized, evauatable JavaScript function
  24598. * @return {{evaluate: function([Object])}} object
  24599. * Returns an object with a function 'evaluate',
  24600. * which can be invoked as expr.evaluate([scope: Object]),
  24601. * where scope is an optional object with
  24602. * variables.
  24603. */
  24604. compile() {
  24605. var expr = this._compile(mathWithTransform2, {});
  24606. var args = {};
  24607. var context = null;
  24608. function evaluate2(scope) {
  24609. var s = createMap(scope);
  24610. _validateScope(s);
  24611. return expr(s, args, context);
  24612. }
  24613. return {
  24614. evaluate: evaluate2
  24615. };
  24616. }
  24617. /**
  24618. * Compile a node into a JavaScript function.
  24619. * This basically pre-calculates as much as possible and only leaves open
  24620. * calculations which depend on a dynamic scope with variables.
  24621. * @param {Object} math Math.js namespace with functions and constants.
  24622. * @param {Object} argNames An object with argument names as key and `true`
  24623. * as value. Used in the SymbolNode to optimize
  24624. * for arguments from user assigned functions
  24625. * (see FunctionAssignmentNode) or special symbols
  24626. * like `end` (see IndexNode).
  24627. * @return {function} Returns a function which can be called like:
  24628. * evalNode(scope: Object, args: Object, context: *)
  24629. */
  24630. _compile(math2, argNames) {
  24631. throw new Error("Method _compile must be implemented by type " + this.type);
  24632. }
  24633. /**
  24634. * Execute a callback for each of the child nodes of this node
  24635. * @param {function(child: Node, path: string, parent: Node)} callback
  24636. */
  24637. forEach(callback) {
  24638. throw new Error("Cannot run forEach on a Node interface");
  24639. }
  24640. /**
  24641. * Create a new Node whose children are the results of calling the
  24642. * provided callback function for each child of the original node.
  24643. * @param {function(child: Node, path: string, parent: Node): Node} callback
  24644. * @returns {OperatorNode} Returns a transformed copy of the node
  24645. */
  24646. map(callback) {
  24647. throw new Error("Cannot run map on a Node interface");
  24648. }
  24649. /**
  24650. * Validate whether an object is a Node, for use with map
  24651. * @param {Node} node
  24652. * @returns {Node} Returns the input if it's a node, else throws an Error
  24653. * @protected
  24654. */
  24655. _ifNode(node) {
  24656. if (!isNode(node)) {
  24657. throw new TypeError("Callback function must return a Node");
  24658. }
  24659. return node;
  24660. }
  24661. /**
  24662. * Recursively traverse all nodes in a node tree. Executes given callback for
  24663. * this node and each of its child nodes.
  24664. * @param {function(node: Node, path: string, parent: Node)} callback
  24665. * A callback called for every node in the node tree.
  24666. */
  24667. traverse(callback) {
  24668. callback(this, null, null);
  24669. function _traverse(node, callback2) {
  24670. node.forEach(function(child, path, parent) {
  24671. callback2(child, path, parent);
  24672. _traverse(child, callback2);
  24673. });
  24674. }
  24675. _traverse(this, callback);
  24676. }
  24677. /**
  24678. * Recursively transform a node tree via a transform function.
  24679. *
  24680. * For example, to replace all nodes of type SymbolNode having name 'x' with
  24681. * a ConstantNode with value 2:
  24682. *
  24683. * const res = Node.transform(function (node, path, parent) {
  24684. * if (node && node.isSymbolNode) && (node.name === 'x')) {
  24685. * return new ConstantNode(2)
  24686. * }
  24687. * else {
  24688. * return node
  24689. * }
  24690. * })
  24691. *
  24692. * @param {function(node: Node, path: string, parent: Node) : Node} callback
  24693. * A mapping function accepting a node, and returning
  24694. * a replacement for the node or the original node. The "signature"
  24695. * of the callback must be:
  24696. * callback(node: Node, index: string, parent: Node) : Node
  24697. * @return {Node} Returns the original node or its replacement
  24698. */
  24699. transform(callback) {
  24700. function _transform(child, path, parent) {
  24701. var replacement = callback(child, path, parent);
  24702. if (replacement !== child) {
  24703. return replacement;
  24704. }
  24705. return child.map(_transform);
  24706. }
  24707. return _transform(this, null, null);
  24708. }
  24709. /**
  24710. * Find any node in the node tree matching given filter function. For
  24711. * example, to find all nodes of type SymbolNode having name 'x':
  24712. *
  24713. * const results = Node.filter(function (node) {
  24714. * return (node && node.isSymbolNode) && (node.name === 'x')
  24715. * })
  24716. *
  24717. * @param {function(node: Node, path: string, parent: Node) : Node} callback
  24718. * A test function returning true when a node matches, and false
  24719. * otherwise. Function signature:
  24720. * callback(node: Node, index: string, parent: Node) : boolean
  24721. * @return {Node[]} nodes
  24722. * An array with nodes matching given filter criteria
  24723. */
  24724. filter(callback) {
  24725. var nodes = [];
  24726. this.traverse(function(node, path, parent) {
  24727. if (callback(node, path, parent)) {
  24728. nodes.push(node);
  24729. }
  24730. });
  24731. return nodes;
  24732. }
  24733. /**
  24734. * Create a shallow clone of this node
  24735. * @return {Node}
  24736. */
  24737. clone() {
  24738. throw new Error("Cannot clone a Node interface");
  24739. }
  24740. /**
  24741. * Create a deep clone of this node
  24742. * @return {Node}
  24743. */
  24744. cloneDeep() {
  24745. return this.map(function(node) {
  24746. return node.cloneDeep();
  24747. });
  24748. }
  24749. /**
  24750. * Deep compare this node with another node.
  24751. * @param {Node} other
  24752. * @return {boolean} Returns true when both nodes are of the same type and
  24753. * contain the same values (as do their childs)
  24754. */
  24755. equals(other) {
  24756. return other ? this.type === other.type && deepStrictEqual(this, other) : false;
  24757. }
  24758. /**
  24759. * Get string representation. (wrapper function)
  24760. *
  24761. * This function can get an object of the following form:
  24762. * {
  24763. * handler: //This can be a callback function of the form
  24764. * // "function callback(node, options)"or
  24765. * // a map that maps function names (used in FunctionNodes)
  24766. * // to callbacks
  24767. * parenthesis: "keep" //the parenthesis option (This is optional)
  24768. * }
  24769. *
  24770. * @param {Object} [options]
  24771. * @return {string}
  24772. */
  24773. toString(options) {
  24774. var customString = this._getCustomString(options);
  24775. if (typeof customString !== "undefined") {
  24776. return customString;
  24777. }
  24778. return this._toString(options);
  24779. }
  24780. /**
  24781. * Get a JSON representation of the node
  24782. * Both .toJSON() and the static .fromJSON(json) should be implemented by all
  24783. * implementations of Node
  24784. * @returns {Object}
  24785. */
  24786. toJSON() {
  24787. throw new Error("Cannot serialize object: toJSON not implemented by " + this.type);
  24788. }
  24789. /**
  24790. * Get HTML representation. (wrapper function)
  24791. *
  24792. * This function can get an object of the following form:
  24793. * {
  24794. * handler: //This can be a callback function of the form
  24795. * // "function callback(node, options)" or
  24796. * // a map that maps function names (used in FunctionNodes)
  24797. * // to callbacks
  24798. * parenthesis: "keep" //the parenthesis option (This is optional)
  24799. * }
  24800. *
  24801. * @param {Object} [options]
  24802. * @return {string}
  24803. */
  24804. toHTML(options) {
  24805. var customString = this._getCustomString(options);
  24806. if (typeof customString !== "undefined") {
  24807. return customString;
  24808. }
  24809. return this.toHTML(options);
  24810. }
  24811. /**
  24812. * Internal function to generate the string output.
  24813. * This has to be implemented by every Node
  24814. *
  24815. * @throws {Error}
  24816. */
  24817. _toString() {
  24818. throw new Error("_toString not implemented for " + this.type);
  24819. }
  24820. /**
  24821. * Get LaTeX representation. (wrapper function)
  24822. *
  24823. * This function can get an object of the following form:
  24824. * {
  24825. * handler: //This can be a callback function of the form
  24826. * // "function callback(node, options)"or
  24827. * // a map that maps function names (used in FunctionNodes)
  24828. * // to callbacks
  24829. * parenthesis: "keep" //the parenthesis option (This is optional)
  24830. * }
  24831. *
  24832. * @param {Object} [options]
  24833. * @return {string}
  24834. */
  24835. toTex(options) {
  24836. var customString = this._getCustomString(options);
  24837. if (typeof customString !== "undefined") {
  24838. return customString;
  24839. }
  24840. return this._toTex(options);
  24841. }
  24842. /**
  24843. * Internal function to generate the LaTeX output.
  24844. * This has to be implemented by every Node
  24845. *
  24846. * @param {Object} [options]
  24847. * @throws {Error}
  24848. */
  24849. _toTex(options) {
  24850. throw new Error("_toTex not implemented for " + this.type);
  24851. }
  24852. /**
  24853. * Helper used by `to...` functions.
  24854. */
  24855. _getCustomString(options) {
  24856. if (options && typeof options === "object") {
  24857. switch (typeof options.handler) {
  24858. case "object":
  24859. case "undefined":
  24860. return;
  24861. case "function":
  24862. return options.handler(this, options);
  24863. default:
  24864. throw new TypeError("Object or function expected as callback");
  24865. }
  24866. }
  24867. }
  24868. /**
  24869. * Get identifier.
  24870. * @return {string}
  24871. */
  24872. getIdentifier() {
  24873. return this.type;
  24874. }
  24875. /**
  24876. * Get the content of the current Node.
  24877. * @return {Node} node
  24878. **/
  24879. getContent() {
  24880. return this;
  24881. }
  24882. }
  24883. return Node2;
  24884. }, {
  24885. isClass: true,
  24886. isNode: true
  24887. });
  24888. // node_modules/mathjs/lib/esm/expression/transform/utils/errorTransform.js
  24889. function errorTransform(err) {
  24890. if (err && err.isIndexError) {
  24891. return new IndexError(err.index + 1, err.min + 1, err.max !== void 0 ? err.max + 1 : void 0);
  24892. }
  24893. return err;
  24894. }
  24895. // node_modules/mathjs/lib/esm/expression/node/utils/access.js
  24896. function accessFactory(_ref) {
  24897. var {
  24898. subset: subset2
  24899. } = _ref;
  24900. return function access(object, index2) {
  24901. try {
  24902. if (Array.isArray(object)) {
  24903. return subset2(object, index2);
  24904. } else if (object && typeof object.subset === "function") {
  24905. return object.subset(index2);
  24906. } else if (typeof object === "string") {
  24907. return subset2(object, index2);
  24908. } else if (typeof object === "object") {
  24909. if (!index2.isObjectProperty()) {
  24910. throw new TypeError("Cannot apply a numeric index as object property");
  24911. }
  24912. return getSafeProperty(object, index2.getObjectProperty());
  24913. } else {
  24914. throw new TypeError("Cannot apply index: unsupported type of object");
  24915. }
  24916. } catch (err) {
  24917. throw errorTransform(err);
  24918. }
  24919. };
  24920. }
  24921. // node_modules/mathjs/lib/esm/expression/node/AccessorNode.js
  24922. var name204 = "AccessorNode";
  24923. var dependencies204 = ["subset", "Node"];
  24924. var createAccessorNode = factory(name204, dependencies204, (_ref) => {
  24925. var {
  24926. subset: subset2,
  24927. Node: Node2
  24928. } = _ref;
  24929. var access = accessFactory({
  24930. subset: subset2
  24931. });
  24932. function needParenthesis(node) {
  24933. return !(isAccessorNode(node) || isArrayNode(node) || isConstantNode(node) || isFunctionNode(node) || isObjectNode(node) || isParenthesisNode(node) || isSymbolNode(node));
  24934. }
  24935. class AccessorNode2 extends Node2 {
  24936. /**
  24937. * @constructor AccessorNode
  24938. * @extends {Node}
  24939. * Access an object property or get a matrix subset
  24940. *
  24941. * @param {Node} object The object from which to retrieve
  24942. * a property or subset.
  24943. * @param {IndexNode} index IndexNode containing ranges
  24944. */
  24945. constructor(object, index2) {
  24946. super();
  24947. if (!isNode(object)) {
  24948. throw new TypeError('Node expected for parameter "object"');
  24949. }
  24950. if (!isIndexNode(index2)) {
  24951. throw new TypeError('IndexNode expected for parameter "index"');
  24952. }
  24953. this.object = object;
  24954. this.index = index2;
  24955. }
  24956. // readonly property name
  24957. get name() {
  24958. if (this.index) {
  24959. return this.index.isObjectProperty() ? this.index.getObjectProperty() : "";
  24960. } else {
  24961. return this.object.name || "";
  24962. }
  24963. }
  24964. get type() {
  24965. return name204;
  24966. }
  24967. get isAccessorNode() {
  24968. return true;
  24969. }
  24970. /**
  24971. * Compile a node into a JavaScript function.
  24972. * This basically pre-calculates as much as possible and only leaves open
  24973. * calculations which depend on a dynamic scope with variables.
  24974. * @param {Object} math Math.js namespace with functions and constants.
  24975. * @param {Object} argNames An object with argument names as key and `true`
  24976. * as value. Used in the SymbolNode to optimize
  24977. * for arguments from user assigned functions
  24978. * (see FunctionAssignmentNode) or special symbols
  24979. * like `end` (see IndexNode).
  24980. * @return {function} Returns a function which can be called like:
  24981. * evalNode(scope: Object, args: Object, context: *)
  24982. */
  24983. _compile(math2, argNames) {
  24984. var evalObject = this.object._compile(math2, argNames);
  24985. var evalIndex = this.index._compile(math2, argNames);
  24986. if (this.index.isObjectProperty()) {
  24987. var prop = this.index.getObjectProperty();
  24988. return function evalAccessorNode(scope, args, context) {
  24989. return getSafeProperty(evalObject(scope, args, context), prop);
  24990. };
  24991. } else {
  24992. return function evalAccessorNode(scope, args, context) {
  24993. var object = evalObject(scope, args, context);
  24994. var index2 = evalIndex(scope, args, object);
  24995. return access(object, index2);
  24996. };
  24997. }
  24998. }
  24999. /**
  25000. * Execute a callback for each of the child nodes of this node
  25001. * @param {function(child: Node, path: string, parent: Node)} callback
  25002. */
  25003. forEach(callback) {
  25004. callback(this.object, "object", this);
  25005. callback(this.index, "index", this);
  25006. }
  25007. /**
  25008. * Create a new AccessorNode whose children are the results of calling
  25009. * the provided callback function for each child of the original node.
  25010. * @param {function(child: Node, path: string, parent: Node): Node} callback
  25011. * @returns {AccessorNode} Returns a transformed copy of the node
  25012. */
  25013. map(callback) {
  25014. return new AccessorNode2(this._ifNode(callback(this.object, "object", this)), this._ifNode(callback(this.index, "index", this)));
  25015. }
  25016. /**
  25017. * Create a clone of this node, a shallow copy
  25018. * @return {AccessorNode}
  25019. */
  25020. clone() {
  25021. return new AccessorNode2(this.object, this.index);
  25022. }
  25023. /**
  25024. * Get string representation
  25025. * @param {Object} options
  25026. * @return {string}
  25027. */
  25028. _toString(options) {
  25029. var object = this.object.toString(options);
  25030. if (needParenthesis(this.object)) {
  25031. object = "(" + object + ")";
  25032. }
  25033. return object + this.index.toString(options);
  25034. }
  25035. /**
  25036. * Get HTML representation
  25037. * @param {Object} options
  25038. * @return {string}
  25039. */
  25040. toHTML(options) {
  25041. var object = this.object.toHTML(options);
  25042. if (needParenthesis(this.object)) {
  25043. object = '<span class="math-parenthesis math-round-parenthesis">(</span>' + object + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  25044. }
  25045. return object + this.index.toHTML(options);
  25046. }
  25047. /**
  25048. * Get LaTeX representation
  25049. * @param {Object} options
  25050. * @return {string}
  25051. */
  25052. _toTex(options) {
  25053. var object = this.object.toTex(options);
  25054. if (needParenthesis(this.object)) {
  25055. object = "\\left(' + object + '\\right)";
  25056. }
  25057. return object + this.index.toTex(options);
  25058. }
  25059. /**
  25060. * Get a JSON representation of the node
  25061. * @returns {Object}
  25062. */
  25063. toJSON() {
  25064. return {
  25065. mathjs: name204,
  25066. object: this.object,
  25067. index: this.index
  25068. };
  25069. }
  25070. /**
  25071. * Instantiate an AccessorNode from its JSON representation
  25072. * @param {Object} json
  25073. * An object structured like
  25074. * `{"mathjs": "AccessorNode", object: ..., index: ...}`,
  25075. * where mathjs is optional
  25076. * @returns {AccessorNode}
  25077. */
  25078. static fromJSON(json) {
  25079. return new AccessorNode2(json.object, json.index);
  25080. }
  25081. }
  25082. _defineProperty(AccessorNode2, "name", name204);
  25083. return AccessorNode2;
  25084. }, {
  25085. isClass: true,
  25086. isNode: true
  25087. });
  25088. // node_modules/mathjs/lib/esm/expression/node/ArrayNode.js
  25089. var name205 = "ArrayNode";
  25090. var dependencies205 = ["Node"];
  25091. var createArrayNode = factory(name205, dependencies205, (_ref) => {
  25092. var {
  25093. Node: Node2
  25094. } = _ref;
  25095. class ArrayNode2 extends Node2 {
  25096. /**
  25097. * @constructor ArrayNode
  25098. * @extends {Node}
  25099. * Holds an 1-dimensional array with items
  25100. * @param {Node[]} [items] 1 dimensional array with items
  25101. */
  25102. constructor(items) {
  25103. super();
  25104. this.items = items || [];
  25105. if (!Array.isArray(this.items) || !this.items.every(isNode)) {
  25106. throw new TypeError("Array containing Nodes expected");
  25107. }
  25108. }
  25109. get type() {
  25110. return name205;
  25111. }
  25112. get isArrayNode() {
  25113. return true;
  25114. }
  25115. /**
  25116. * Compile a node into a JavaScript function.
  25117. * This basically pre-calculates as much as possible and only leaves open
  25118. * calculations which depend on a dynamic scope with variables.
  25119. * @param {Object} math Math.js namespace with functions and constants.
  25120. * @param {Object} argNames An object with argument names as key and `true`
  25121. * as value. Used in the SymbolNode to optimize
  25122. * for arguments from user assigned functions
  25123. * (see FunctionAssignmentNode) or special symbols
  25124. * like `end` (see IndexNode).
  25125. * @return {function} Returns a function which can be called like:
  25126. * evalNode(scope: Object, args: Object, context: *)
  25127. */
  25128. _compile(math2, argNames) {
  25129. var evalItems = map(this.items, function(item) {
  25130. return item._compile(math2, argNames);
  25131. });
  25132. var asMatrix = math2.config.matrix !== "Array";
  25133. if (asMatrix) {
  25134. var matrix2 = math2.matrix;
  25135. return function evalArrayNode(scope, args, context) {
  25136. return matrix2(map(evalItems, function(evalItem) {
  25137. return evalItem(scope, args, context);
  25138. }));
  25139. };
  25140. } else {
  25141. return function evalArrayNode(scope, args, context) {
  25142. return map(evalItems, function(evalItem) {
  25143. return evalItem(scope, args, context);
  25144. });
  25145. };
  25146. }
  25147. }
  25148. /**
  25149. * Execute a callback for each of the child nodes of this node
  25150. * @param {function(child: Node, path: string, parent: Node)} callback
  25151. */
  25152. forEach(callback) {
  25153. for (var i2 = 0; i2 < this.items.length; i2++) {
  25154. var node = this.items[i2];
  25155. callback(node, "items[" + i2 + "]", this);
  25156. }
  25157. }
  25158. /**
  25159. * Create a new ArrayNode whose children are the results of calling
  25160. * the provided callback function for each child of the original node.
  25161. * @param {function(child: Node, path: string, parent: Node): Node} callback
  25162. * @returns {ArrayNode} Returns a transformed copy of the node
  25163. */
  25164. map(callback) {
  25165. var items = [];
  25166. for (var i2 = 0; i2 < this.items.length; i2++) {
  25167. items[i2] = this._ifNode(callback(this.items[i2], "items[" + i2 + "]", this));
  25168. }
  25169. return new ArrayNode2(items);
  25170. }
  25171. /**
  25172. * Create a clone of this node, a shallow copy
  25173. * @return {ArrayNode}
  25174. */
  25175. clone() {
  25176. return new ArrayNode2(this.items.slice(0));
  25177. }
  25178. /**
  25179. * Get string representation
  25180. * @param {Object} options
  25181. * @return {string} str
  25182. * @override
  25183. */
  25184. _toString(options) {
  25185. var items = this.items.map(function(node) {
  25186. return node.toString(options);
  25187. });
  25188. return "[" + items.join(", ") + "]";
  25189. }
  25190. /**
  25191. * Get a JSON representation of the node
  25192. * @returns {Object}
  25193. */
  25194. toJSON() {
  25195. return {
  25196. mathjs: name205,
  25197. items: this.items
  25198. };
  25199. }
  25200. /**
  25201. * Instantiate an ArrayNode from its JSON representation
  25202. * @param {Object} json An object structured like
  25203. * `{"mathjs": "ArrayNode", items: [...]}`,
  25204. * where mathjs is optional
  25205. * @returns {ArrayNode}
  25206. */
  25207. static fromJSON(json) {
  25208. return new ArrayNode2(json.items);
  25209. }
  25210. /**
  25211. * Get HTML representation
  25212. * @param {Object} options
  25213. * @return {string} str
  25214. * @override
  25215. */
  25216. toHTML(options) {
  25217. var items = this.items.map(function(node) {
  25218. return node.toHTML(options);
  25219. });
  25220. return '<span class="math-parenthesis math-square-parenthesis">[</span>' + items.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-square-parenthesis">]</span>';
  25221. }
  25222. /**
  25223. * Get LaTeX representation
  25224. * @param {Object} options
  25225. * @return {string} str
  25226. */
  25227. _toTex(options) {
  25228. function itemsToTex(items, nested) {
  25229. var mixedItems = items.some(isArrayNode) && !items.every(isArrayNode);
  25230. var itemsFormRow = nested || mixedItems;
  25231. var itemSep = itemsFormRow ? "&" : "\\\\";
  25232. var itemsTex = items.map(function(node) {
  25233. if (node.items) {
  25234. return itemsToTex(node.items, !nested);
  25235. } else {
  25236. return node.toTex(options);
  25237. }
  25238. }).join(itemSep);
  25239. return mixedItems || !itemsFormRow || itemsFormRow && !nested ? "\\begin{bmatrix}" + itemsTex + "\\end{bmatrix}" : itemsTex;
  25240. }
  25241. return itemsToTex(this.items, false);
  25242. }
  25243. }
  25244. _defineProperty(ArrayNode2, "name", name205);
  25245. return ArrayNode2;
  25246. }, {
  25247. isClass: true,
  25248. isNode: true
  25249. });
  25250. // node_modules/mathjs/lib/esm/expression/node/utils/assign.js
  25251. function assignFactory(_ref) {
  25252. var {
  25253. subset: subset2,
  25254. matrix: matrix2
  25255. } = _ref;
  25256. return function assign2(object, index2, value) {
  25257. try {
  25258. if (Array.isArray(object)) {
  25259. return matrix2(object).subset(index2, value).valueOf();
  25260. } else if (object && typeof object.subset === "function") {
  25261. return object.subset(index2, value);
  25262. } else if (typeof object === "string") {
  25263. return subset2(object, index2, value);
  25264. } else if (typeof object === "object") {
  25265. if (!index2.isObjectProperty()) {
  25266. throw TypeError("Cannot apply a numeric index as object property");
  25267. }
  25268. setSafeProperty(object, index2.getObjectProperty(), value);
  25269. return object;
  25270. } else {
  25271. throw new TypeError("Cannot apply index: unsupported type of object");
  25272. }
  25273. } catch (err) {
  25274. throw errorTransform(err);
  25275. }
  25276. };
  25277. }
  25278. // node_modules/mathjs/lib/esm/expression/operators.js
  25279. var properties = [{
  25280. // assignment
  25281. AssignmentNode: {},
  25282. FunctionAssignmentNode: {}
  25283. }, {
  25284. // conditional expression
  25285. ConditionalNode: {
  25286. latexLeftParens: false,
  25287. latexRightParens: false,
  25288. latexParens: false
  25289. // conditionals don't need parentheses in LaTeX because
  25290. // they are 2 dimensional
  25291. }
  25292. }, {
  25293. // logical or
  25294. "OperatorNode:or": {
  25295. op: "or",
  25296. associativity: "left",
  25297. associativeWith: []
  25298. }
  25299. }, {
  25300. // logical xor
  25301. "OperatorNode:xor": {
  25302. op: "xor",
  25303. associativity: "left",
  25304. associativeWith: []
  25305. }
  25306. }, {
  25307. // logical and
  25308. "OperatorNode:and": {
  25309. op: "and",
  25310. associativity: "left",
  25311. associativeWith: []
  25312. }
  25313. }, {
  25314. // bitwise or
  25315. "OperatorNode:bitOr": {
  25316. op: "|",
  25317. associativity: "left",
  25318. associativeWith: []
  25319. }
  25320. }, {
  25321. // bitwise xor
  25322. "OperatorNode:bitXor": {
  25323. op: "^|",
  25324. associativity: "left",
  25325. associativeWith: []
  25326. }
  25327. }, {
  25328. // bitwise and
  25329. "OperatorNode:bitAnd": {
  25330. op: "&",
  25331. associativity: "left",
  25332. associativeWith: []
  25333. }
  25334. }, {
  25335. // relational operators
  25336. "OperatorNode:equal": {
  25337. op: "==",
  25338. associativity: "left",
  25339. associativeWith: []
  25340. },
  25341. "OperatorNode:unequal": {
  25342. op: "!=",
  25343. associativity: "left",
  25344. associativeWith: []
  25345. },
  25346. "OperatorNode:smaller": {
  25347. op: "<",
  25348. associativity: "left",
  25349. associativeWith: []
  25350. },
  25351. "OperatorNode:larger": {
  25352. op: ">",
  25353. associativity: "left",
  25354. associativeWith: []
  25355. },
  25356. "OperatorNode:smallerEq": {
  25357. op: "<=",
  25358. associativity: "left",
  25359. associativeWith: []
  25360. },
  25361. "OperatorNode:largerEq": {
  25362. op: ">=",
  25363. associativity: "left",
  25364. associativeWith: []
  25365. },
  25366. RelationalNode: {
  25367. associativity: "left",
  25368. associativeWith: []
  25369. }
  25370. }, {
  25371. // bitshift operators
  25372. "OperatorNode:leftShift": {
  25373. op: "<<",
  25374. associativity: "left",
  25375. associativeWith: []
  25376. },
  25377. "OperatorNode:rightArithShift": {
  25378. op: ">>",
  25379. associativity: "left",
  25380. associativeWith: []
  25381. },
  25382. "OperatorNode:rightLogShift": {
  25383. op: ">>>",
  25384. associativity: "left",
  25385. associativeWith: []
  25386. }
  25387. }, {
  25388. // unit conversion
  25389. "OperatorNode:to": {
  25390. op: "to",
  25391. associativity: "left",
  25392. associativeWith: []
  25393. }
  25394. }, {
  25395. // range
  25396. RangeNode: {}
  25397. }, {
  25398. // addition, subtraction
  25399. "OperatorNode:add": {
  25400. op: "+",
  25401. associativity: "left",
  25402. associativeWith: ["OperatorNode:add", "OperatorNode:subtract"]
  25403. },
  25404. "OperatorNode:subtract": {
  25405. op: "-",
  25406. associativity: "left",
  25407. associativeWith: []
  25408. }
  25409. }, {
  25410. // multiply, divide, modulus
  25411. "OperatorNode:multiply": {
  25412. op: "*",
  25413. associativity: "left",
  25414. associativeWith: ["OperatorNode:multiply", "OperatorNode:divide", "Operator:dotMultiply", "Operator:dotDivide"]
  25415. },
  25416. "OperatorNode:divide": {
  25417. op: "/",
  25418. associativity: "left",
  25419. associativeWith: [],
  25420. latexLeftParens: false,
  25421. latexRightParens: false,
  25422. latexParens: false
  25423. // fractions don't require parentheses because
  25424. // they're 2 dimensional, so parens aren't needed
  25425. // in LaTeX
  25426. },
  25427. "OperatorNode:dotMultiply": {
  25428. op: ".*",
  25429. associativity: "left",
  25430. associativeWith: ["OperatorNode:multiply", "OperatorNode:divide", "OperatorNode:dotMultiply", "OperatorNode:doDivide"]
  25431. },
  25432. "OperatorNode:dotDivide": {
  25433. op: "./",
  25434. associativity: "left",
  25435. associativeWith: []
  25436. },
  25437. "OperatorNode:mod": {
  25438. op: "mod",
  25439. associativity: "left",
  25440. associativeWith: []
  25441. }
  25442. }, {
  25443. // Repeat multiplication for implicit multiplication
  25444. "OperatorNode:multiply": {
  25445. associativity: "left",
  25446. associativeWith: ["OperatorNode:multiply", "OperatorNode:divide", "Operator:dotMultiply", "Operator:dotDivide"]
  25447. }
  25448. }, {
  25449. // unary prefix operators
  25450. "OperatorNode:unaryPlus": {
  25451. op: "+",
  25452. associativity: "right"
  25453. },
  25454. "OperatorNode:unaryMinus": {
  25455. op: "-",
  25456. associativity: "right"
  25457. },
  25458. "OperatorNode:bitNot": {
  25459. op: "~",
  25460. associativity: "right"
  25461. },
  25462. "OperatorNode:not": {
  25463. op: "not",
  25464. associativity: "right"
  25465. }
  25466. }, {
  25467. // exponentiation
  25468. "OperatorNode:pow": {
  25469. op: "^",
  25470. associativity: "right",
  25471. associativeWith: [],
  25472. latexRightParens: false
  25473. // the exponent doesn't need parentheses in
  25474. // LaTeX because it's 2 dimensional
  25475. // (it's on top)
  25476. },
  25477. "OperatorNode:dotPow": {
  25478. op: ".^",
  25479. associativity: "right",
  25480. associativeWith: []
  25481. }
  25482. }, {
  25483. // factorial
  25484. "OperatorNode:factorial": {
  25485. op: "!",
  25486. associativity: "left"
  25487. }
  25488. }, {
  25489. // matrix transpose
  25490. "OperatorNode:ctranspose": {
  25491. op: "'",
  25492. associativity: "left"
  25493. }
  25494. }];
  25495. function unwrapParen(_node, parenthesis) {
  25496. if (!parenthesis || parenthesis !== "auto")
  25497. return _node;
  25498. var node = _node;
  25499. while (isParenthesisNode(node))
  25500. node = node.content;
  25501. return node;
  25502. }
  25503. function getPrecedence(_node, parenthesis, implicit, parent) {
  25504. var node = _node;
  25505. if (parenthesis !== "keep") {
  25506. node = _node.getContent();
  25507. }
  25508. var identifier = node.getIdentifier();
  25509. var precedence = null;
  25510. for (var i2 = 0; i2 < properties.length; i2++) {
  25511. if (identifier in properties[i2]) {
  25512. precedence = i2;
  25513. break;
  25514. }
  25515. }
  25516. if (identifier === "OperatorNode:multiply" && node.implicit && implicit !== "show") {
  25517. var leftArg = unwrapParen(node.args[0], parenthesis);
  25518. if (!(isConstantNode(leftArg) && parent && parent.getIdentifier() === "OperatorNode:divide" && rule2Node(unwrapParen(parent.args[0], parenthesis))) && !(leftArg.getIdentifier() === "OperatorNode:divide" && rule2Node(unwrapParen(leftArg.args[0], parenthesis)) && isConstantNode(unwrapParen(leftArg.args[1])))) {
  25519. precedence += 1;
  25520. }
  25521. }
  25522. return precedence;
  25523. }
  25524. function getAssociativity(_node, parenthesis) {
  25525. var node = _node;
  25526. if (parenthesis !== "keep") {
  25527. node = _node.getContent();
  25528. }
  25529. var identifier = node.getIdentifier();
  25530. var index2 = getPrecedence(node, parenthesis);
  25531. if (index2 === null) {
  25532. return null;
  25533. }
  25534. var property = properties[index2][identifier];
  25535. if (hasOwnProperty2(property, "associativity")) {
  25536. if (property.associativity === "left") {
  25537. return "left";
  25538. }
  25539. if (property.associativity === "right") {
  25540. return "right";
  25541. }
  25542. throw Error("'" + identifier + "' has the invalid associativity '" + property.associativity + "'.");
  25543. }
  25544. return null;
  25545. }
  25546. function isAssociativeWith(nodeA, nodeB, parenthesis) {
  25547. var a = parenthesis !== "keep" ? nodeA.getContent() : nodeA;
  25548. var b = parenthesis !== "keep" ? nodeA.getContent() : nodeB;
  25549. var identifierA = a.getIdentifier();
  25550. var identifierB = b.getIdentifier();
  25551. var index2 = getPrecedence(a, parenthesis);
  25552. if (index2 === null) {
  25553. return null;
  25554. }
  25555. var property = properties[index2][identifierA];
  25556. if (hasOwnProperty2(property, "associativeWith") && property.associativeWith instanceof Array) {
  25557. for (var i2 = 0; i2 < property.associativeWith.length; i2++) {
  25558. if (property.associativeWith[i2] === identifierB) {
  25559. return true;
  25560. }
  25561. }
  25562. return false;
  25563. }
  25564. return null;
  25565. }
  25566. function getOperator(fn) {
  25567. var identifier = "OperatorNode:" + fn;
  25568. for (var group of properties) {
  25569. if (identifier in group) {
  25570. return group[identifier].op;
  25571. }
  25572. }
  25573. return null;
  25574. }
  25575. // node_modules/mathjs/lib/esm/expression/node/AssignmentNode.js
  25576. var name206 = "AssignmentNode";
  25577. var dependencies206 = [
  25578. "subset",
  25579. "?matrix",
  25580. // FIXME: should not be needed at all, should be handled by subset
  25581. "Node"
  25582. ];
  25583. var createAssignmentNode = factory(name206, dependencies206, (_ref) => {
  25584. var {
  25585. subset: subset2,
  25586. matrix: matrix2,
  25587. Node: Node2
  25588. } = _ref;
  25589. var access = accessFactory({
  25590. subset: subset2
  25591. });
  25592. var assign2 = assignFactory({
  25593. subset: subset2,
  25594. matrix: matrix2
  25595. });
  25596. function needParenthesis(node, parenthesis, implicit) {
  25597. if (!parenthesis) {
  25598. parenthesis = "keep";
  25599. }
  25600. var precedence = getPrecedence(node, parenthesis, implicit);
  25601. var exprPrecedence = getPrecedence(node.value, parenthesis, implicit);
  25602. return parenthesis === "all" || exprPrecedence !== null && exprPrecedence <= precedence;
  25603. }
  25604. class AssignmentNode2 extends Node2 {
  25605. /**
  25606. * @constructor AssignmentNode
  25607. * @extends {Node}
  25608. *
  25609. * Define a symbol, like `a=3.2`, update a property like `a.b=3.2`, or
  25610. * replace a subset of a matrix like `A[2,2]=42`.
  25611. *
  25612. * Syntax:
  25613. *
  25614. * new AssignmentNode(symbol, value)
  25615. * new AssignmentNode(object, index, value)
  25616. *
  25617. * Usage:
  25618. *
  25619. * new AssignmentNode(new SymbolNode('a'), new ConstantNode(2)) // a=2
  25620. * new AssignmentNode(new SymbolNode('a'),
  25621. * new IndexNode('b'),
  25622. * new ConstantNode(2)) // a.b=2
  25623. * new AssignmentNode(new SymbolNode('a'),
  25624. * new IndexNode(1, 2),
  25625. * new ConstantNode(3)) // a[1,2]=3
  25626. *
  25627. * @param {SymbolNode | AccessorNode} object
  25628. * Object on which to assign a value
  25629. * @param {IndexNode} [index=null]
  25630. * Index, property name or matrix index. Optional. If not provided
  25631. * and `object` is a SymbolNode, the property is assigned to the
  25632. * global scope.
  25633. * @param {Node} value
  25634. * The value to be assigned
  25635. */
  25636. constructor(object, index2, value) {
  25637. super();
  25638. this.object = object;
  25639. this.index = value ? index2 : null;
  25640. this.value = value || index2;
  25641. if (!isSymbolNode(object) && !isAccessorNode(object)) {
  25642. throw new TypeError('SymbolNode or AccessorNode expected as "object"');
  25643. }
  25644. if (isSymbolNode(object) && object.name === "end") {
  25645. throw new Error('Cannot assign to symbol "end"');
  25646. }
  25647. if (this.index && !isIndexNode(this.index)) {
  25648. throw new TypeError('IndexNode expected as "index"');
  25649. }
  25650. if (!isNode(this.value)) {
  25651. throw new TypeError('Node expected as "value"');
  25652. }
  25653. }
  25654. // class name for typing purposes:
  25655. // readonly property name
  25656. get name() {
  25657. if (this.index) {
  25658. return this.index.isObjectProperty() ? this.index.getObjectProperty() : "";
  25659. } else {
  25660. return this.object.name || "";
  25661. }
  25662. }
  25663. get type() {
  25664. return name206;
  25665. }
  25666. get isAssignmentNode() {
  25667. return true;
  25668. }
  25669. /**
  25670. * Compile a node into a JavaScript function.
  25671. * This basically pre-calculates as much as possible and only leaves open
  25672. * calculations which depend on a dynamic scope with variables.
  25673. * @param {Object} math Math.js namespace with functions and constants.
  25674. * @param {Object} argNames An object with argument names as key and `true`
  25675. * as value. Used in the SymbolNode to optimize
  25676. * for arguments from user assigned functions
  25677. * (see FunctionAssignmentNode) or special symbols
  25678. * like `end` (see IndexNode).
  25679. * @return {function} Returns a function which can be called like:
  25680. * evalNode(scope: Object, args: Object, context: *)
  25681. */
  25682. _compile(math2, argNames) {
  25683. var evalObject = this.object._compile(math2, argNames);
  25684. var evalIndex = this.index ? this.index._compile(math2, argNames) : null;
  25685. var evalValue = this.value._compile(math2, argNames);
  25686. var name302 = this.object.name;
  25687. if (!this.index) {
  25688. if (!isSymbolNode(this.object)) {
  25689. throw new TypeError("SymbolNode expected as object");
  25690. }
  25691. return function evalAssignmentNode(scope, args, context) {
  25692. var value = evalValue(scope, args, context);
  25693. scope.set(name302, value);
  25694. return value;
  25695. };
  25696. } else if (this.index.isObjectProperty()) {
  25697. var prop = this.index.getObjectProperty();
  25698. return function evalAssignmentNode(scope, args, context) {
  25699. var object = evalObject(scope, args, context);
  25700. var value = evalValue(scope, args, context);
  25701. setSafeProperty(object, prop, value);
  25702. return value;
  25703. };
  25704. } else if (isSymbolNode(this.object)) {
  25705. return function evalAssignmentNode(scope, args, context) {
  25706. var childObject = evalObject(scope, args, context);
  25707. var value = evalValue(scope, args, context);
  25708. var index2 = evalIndex(scope, args, childObject);
  25709. scope.set(name302, assign2(childObject, index2, value));
  25710. return value;
  25711. };
  25712. } else {
  25713. var evalParentObject = this.object.object._compile(math2, argNames);
  25714. if (this.object.index.isObjectProperty()) {
  25715. var parentProp = this.object.index.getObjectProperty();
  25716. return function evalAssignmentNode(scope, args, context) {
  25717. var parent = evalParentObject(scope, args, context);
  25718. var childObject = getSafeProperty(parent, parentProp);
  25719. var index2 = evalIndex(scope, args, childObject);
  25720. var value = evalValue(scope, args, context);
  25721. setSafeProperty(parent, parentProp, assign2(childObject, index2, value));
  25722. return value;
  25723. };
  25724. } else {
  25725. var evalParentIndex = this.object.index._compile(math2, argNames);
  25726. return function evalAssignmentNode(scope, args, context) {
  25727. var parent = evalParentObject(scope, args, context);
  25728. var parentIndex = evalParentIndex(scope, args, parent);
  25729. var childObject = access(parent, parentIndex);
  25730. var index2 = evalIndex(scope, args, childObject);
  25731. var value = evalValue(scope, args, context);
  25732. assign2(parent, parentIndex, assign2(childObject, index2, value));
  25733. return value;
  25734. };
  25735. }
  25736. }
  25737. }
  25738. /**
  25739. * Execute a callback for each of the child nodes of this node
  25740. * @param {function(child: Node, path: string, parent: Node)} callback
  25741. */
  25742. forEach(callback) {
  25743. callback(this.object, "object", this);
  25744. if (this.index) {
  25745. callback(this.index, "index", this);
  25746. }
  25747. callback(this.value, "value", this);
  25748. }
  25749. /**
  25750. * Create a new AssignmentNode whose children are the results of calling
  25751. * the provided callback function for each child of the original node.
  25752. * @param {function(child: Node, path: string, parent: Node): Node} callback
  25753. * @returns {AssignmentNode} Returns a transformed copy of the node
  25754. */
  25755. map(callback) {
  25756. var object = this._ifNode(callback(this.object, "object", this));
  25757. var index2 = this.index ? this._ifNode(callback(this.index, "index", this)) : null;
  25758. var value = this._ifNode(callback(this.value, "value", this));
  25759. return new AssignmentNode2(object, index2, value);
  25760. }
  25761. /**
  25762. * Create a clone of this node, a shallow copy
  25763. * @return {AssignmentNode}
  25764. */
  25765. clone() {
  25766. return new AssignmentNode2(this.object, this.index, this.value);
  25767. }
  25768. /**
  25769. * Get string representation
  25770. * @param {Object} options
  25771. * @return {string}
  25772. */
  25773. _toString(options) {
  25774. var object = this.object.toString(options);
  25775. var index2 = this.index ? this.index.toString(options) : "";
  25776. var value = this.value.toString(options);
  25777. if (needParenthesis(this, options && options.parenthesis, options && options.implicit)) {
  25778. value = "(" + value + ")";
  25779. }
  25780. return object + index2 + " = " + value;
  25781. }
  25782. /**
  25783. * Get a JSON representation of the node
  25784. * @returns {Object}
  25785. */
  25786. toJSON() {
  25787. return {
  25788. mathjs: name206,
  25789. object: this.object,
  25790. index: this.index,
  25791. value: this.value
  25792. };
  25793. }
  25794. /**
  25795. * Instantiate an AssignmentNode from its JSON representation
  25796. * @param {Object} json
  25797. * An object structured like
  25798. * `{"mathjs": "AssignmentNode", object: ..., index: ..., value: ...}`,
  25799. * where mathjs is optional
  25800. * @returns {AssignmentNode}
  25801. */
  25802. static fromJSON(json) {
  25803. return new AssignmentNode2(json.object, json.index, json.value);
  25804. }
  25805. /**
  25806. * Get HTML representation
  25807. * @param {Object} options
  25808. * @return {string}
  25809. */
  25810. toHTML(options) {
  25811. var object = this.object.toHTML(options);
  25812. var index2 = this.index ? this.index.toHTML(options) : "";
  25813. var value = this.value.toHTML(options);
  25814. if (needParenthesis(this, options && options.parenthesis, options && options.implicit)) {
  25815. value = '<span class="math-paranthesis math-round-parenthesis">(</span>' + value + '<span class="math-paranthesis math-round-parenthesis">)</span>';
  25816. }
  25817. return object + index2 + '<span class="math-operator math-assignment-operator math-variable-assignment-operator math-binary-operator">=</span>' + value;
  25818. }
  25819. /**
  25820. * Get LaTeX representation
  25821. * @param {Object} options
  25822. * @return {string}
  25823. */
  25824. _toTex(options) {
  25825. var object = this.object.toTex(options);
  25826. var index2 = this.index ? this.index.toTex(options) : "";
  25827. var value = this.value.toTex(options);
  25828. if (needParenthesis(this, options && options.parenthesis, options && options.implicit)) {
  25829. value = "\\left(".concat(value, "\\right)");
  25830. }
  25831. return object + index2 + ":=" + value;
  25832. }
  25833. }
  25834. _defineProperty(AssignmentNode2, "name", name206);
  25835. return AssignmentNode2;
  25836. }, {
  25837. isClass: true,
  25838. isNode: true
  25839. });
  25840. // node_modules/mathjs/lib/esm/expression/node/BlockNode.js
  25841. var name207 = "BlockNode";
  25842. var dependencies207 = ["ResultSet", "Node"];
  25843. var createBlockNode = factory(name207, dependencies207, (_ref) => {
  25844. var {
  25845. ResultSet: ResultSet2,
  25846. Node: Node2
  25847. } = _ref;
  25848. class BlockNode2 extends Node2 {
  25849. /**
  25850. * @constructor BlockNode
  25851. * @extends {Node}
  25852. * Holds a set with blocks
  25853. * @param {Array.<{node: Node} | {node: Node, visible: boolean}>} blocks
  25854. * An array with blocks, where a block is constructed as an
  25855. * Object with properties block, which is a Node, and visible,
  25856. * which is a boolean. The property visible is optional and
  25857. * is true by default
  25858. */
  25859. constructor(blocks) {
  25860. super();
  25861. if (!Array.isArray(blocks))
  25862. throw new Error("Array expected");
  25863. this.blocks = blocks.map(function(block) {
  25864. var node = block && block.node;
  25865. var visible = block && block.visible !== void 0 ? block.visible : true;
  25866. if (!isNode(node))
  25867. throw new TypeError('Property "node" must be a Node');
  25868. if (typeof visible !== "boolean") {
  25869. throw new TypeError('Property "visible" must be a boolean');
  25870. }
  25871. return {
  25872. node,
  25873. visible
  25874. };
  25875. });
  25876. }
  25877. get type() {
  25878. return name207;
  25879. }
  25880. get isBlockNode() {
  25881. return true;
  25882. }
  25883. /**
  25884. * Compile a node into a JavaScript function.
  25885. * This basically pre-calculates as much as possible and only leaves open
  25886. * calculations which depend on a dynamic scope with variables.
  25887. * @param {Object} math Math.js namespace with functions and constants.
  25888. * @param {Object} argNames An object with argument names as key and `true`
  25889. * as value. Used in the SymbolNode to optimize
  25890. * for arguments from user assigned functions
  25891. * (see FunctionAssignmentNode) or special symbols
  25892. * like `end` (see IndexNode).
  25893. * @return {function} Returns a function which can be called like:
  25894. * evalNode(scope: Object, args: Object, context: *)
  25895. */
  25896. _compile(math2, argNames) {
  25897. var evalBlocks = map(this.blocks, function(block) {
  25898. return {
  25899. evaluate: block.node._compile(math2, argNames),
  25900. visible: block.visible
  25901. };
  25902. });
  25903. return function evalBlockNodes(scope, args, context) {
  25904. var results = [];
  25905. forEach(evalBlocks, function evalBlockNode(block) {
  25906. var result = block.evaluate(scope, args, context);
  25907. if (block.visible) {
  25908. results.push(result);
  25909. }
  25910. });
  25911. return new ResultSet2(results);
  25912. };
  25913. }
  25914. /**
  25915. * Execute a callback for each of the child blocks of this node
  25916. * @param {function(child: Node, path: string, parent: Node)} callback
  25917. */
  25918. forEach(callback) {
  25919. for (var i2 = 0; i2 < this.blocks.length; i2++) {
  25920. callback(this.blocks[i2].node, "blocks[" + i2 + "].node", this);
  25921. }
  25922. }
  25923. /**
  25924. * Create a new BlockNode whose children are the results of calling
  25925. * the provided callback function for each child of the original node.
  25926. * @param {function(child: Node, path: string, parent: Node): Node} callback
  25927. * @returns {BlockNode} Returns a transformed copy of the node
  25928. */
  25929. map(callback) {
  25930. var blocks = [];
  25931. for (var i2 = 0; i2 < this.blocks.length; i2++) {
  25932. var block = this.blocks[i2];
  25933. var node = this._ifNode(callback(block.node, "blocks[" + i2 + "].node", this));
  25934. blocks[i2] = {
  25935. node,
  25936. visible: block.visible
  25937. };
  25938. }
  25939. return new BlockNode2(blocks);
  25940. }
  25941. /**
  25942. * Create a clone of this node, a shallow copy
  25943. * @return {BlockNode}
  25944. */
  25945. clone() {
  25946. var blocks = this.blocks.map(function(block) {
  25947. return {
  25948. node: block.node,
  25949. visible: block.visible
  25950. };
  25951. });
  25952. return new BlockNode2(blocks);
  25953. }
  25954. /**
  25955. * Get string representation
  25956. * @param {Object} options
  25957. * @return {string} str
  25958. * @override
  25959. */
  25960. _toString(options) {
  25961. return this.blocks.map(function(param) {
  25962. return param.node.toString(options) + (param.visible ? "" : ";");
  25963. }).join("\n");
  25964. }
  25965. /**
  25966. * Get a JSON representation of the node
  25967. * @returns {Object}
  25968. */
  25969. toJSON() {
  25970. return {
  25971. mathjs: name207,
  25972. blocks: this.blocks
  25973. };
  25974. }
  25975. /**
  25976. * Instantiate an BlockNode from its JSON representation
  25977. * @param {Object} json
  25978. * An object structured like
  25979. * `{"mathjs": "BlockNode", blocks: [{node: ..., visible: false}, ...]}`,
  25980. * where mathjs is optional
  25981. * @returns {BlockNode}
  25982. */
  25983. static fromJSON(json) {
  25984. return new BlockNode2(json.blocks);
  25985. }
  25986. /**
  25987. * Get HTML representation
  25988. * @param {Object} options
  25989. * @return {string} str
  25990. * @override
  25991. */
  25992. toHTML(options) {
  25993. return this.blocks.map(function(param) {
  25994. return param.node.toHTML(options) + (param.visible ? "" : '<span class="math-separator">;</span>');
  25995. }).join('<span class="math-separator"><br /></span>');
  25996. }
  25997. /**
  25998. * Get LaTeX representation
  25999. * @param {Object} options
  26000. * @return {string} str
  26001. */
  26002. _toTex(options) {
  26003. return this.blocks.map(function(param) {
  26004. return param.node.toTex(options) + (param.visible ? "" : ";");
  26005. }).join("\\;\\;\n");
  26006. }
  26007. }
  26008. _defineProperty(BlockNode2, "name", name207);
  26009. return BlockNode2;
  26010. }, {
  26011. isClass: true,
  26012. isNode: true
  26013. });
  26014. // node_modules/mathjs/lib/esm/expression/node/ConditionalNode.js
  26015. var name208 = "ConditionalNode";
  26016. var dependencies208 = ["Node"];
  26017. var createConditionalNode = factory(name208, dependencies208, (_ref) => {
  26018. var {
  26019. Node: Node2
  26020. } = _ref;
  26021. function testCondition(condition) {
  26022. if (typeof condition === "number" || typeof condition === "boolean" || typeof condition === "string") {
  26023. return !!condition;
  26024. }
  26025. if (condition) {
  26026. if (isBigNumber(condition)) {
  26027. return !condition.isZero();
  26028. }
  26029. if (isComplex(condition)) {
  26030. return !!(condition.re || condition.im);
  26031. }
  26032. if (isUnit(condition)) {
  26033. return !!condition.value;
  26034. }
  26035. }
  26036. if (condition === null || condition === void 0) {
  26037. return false;
  26038. }
  26039. throw new TypeError('Unsupported type of condition "' + typeOf(condition) + '"');
  26040. }
  26041. class ConditionalNode2 extends Node2 {
  26042. /**
  26043. * A lazy evaluating conditional operator: 'condition ? trueExpr : falseExpr'
  26044. *
  26045. * @param {Node} condition Condition, must result in a boolean
  26046. * @param {Node} trueExpr Expression evaluated when condition is true
  26047. * @param {Node} falseExpr Expression evaluated when condition is true
  26048. *
  26049. * @constructor ConditionalNode
  26050. * @extends {Node}
  26051. */
  26052. constructor(condition, trueExpr, falseExpr) {
  26053. super();
  26054. if (!isNode(condition)) {
  26055. throw new TypeError("Parameter condition must be a Node");
  26056. }
  26057. if (!isNode(trueExpr)) {
  26058. throw new TypeError("Parameter trueExpr must be a Node");
  26059. }
  26060. if (!isNode(falseExpr)) {
  26061. throw new TypeError("Parameter falseExpr must be a Node");
  26062. }
  26063. this.condition = condition;
  26064. this.trueExpr = trueExpr;
  26065. this.falseExpr = falseExpr;
  26066. }
  26067. get type() {
  26068. return name208;
  26069. }
  26070. get isConditionalNode() {
  26071. return true;
  26072. }
  26073. /**
  26074. * Compile a node into a JavaScript function.
  26075. * This basically pre-calculates as much as possible and only leaves open
  26076. * calculations which depend on a dynamic scope with variables.
  26077. * @param {Object} math Math.js namespace with functions and constants.
  26078. * @param {Object} argNames An object with argument names as key and `true`
  26079. * as value. Used in the SymbolNode to optimize
  26080. * for arguments from user assigned functions
  26081. * (see FunctionAssignmentNode) or special symbols
  26082. * like `end` (see IndexNode).
  26083. * @return {function} Returns a function which can be called like:
  26084. * evalNode(scope: Object, args: Object, context: *)
  26085. */
  26086. _compile(math2, argNames) {
  26087. var evalCondition = this.condition._compile(math2, argNames);
  26088. var evalTrueExpr = this.trueExpr._compile(math2, argNames);
  26089. var evalFalseExpr = this.falseExpr._compile(math2, argNames);
  26090. return function evalConditionalNode(scope, args, context) {
  26091. return testCondition(evalCondition(scope, args, context)) ? evalTrueExpr(scope, args, context) : evalFalseExpr(scope, args, context);
  26092. };
  26093. }
  26094. /**
  26095. * Execute a callback for each of the child nodes of this node
  26096. * @param {function(child: Node, path: string, parent: Node)} callback
  26097. */
  26098. forEach(callback) {
  26099. callback(this.condition, "condition", this);
  26100. callback(this.trueExpr, "trueExpr", this);
  26101. callback(this.falseExpr, "falseExpr", this);
  26102. }
  26103. /**
  26104. * Create a new ConditionalNode whose children are the results of calling
  26105. * the provided callback function for each child of the original node.
  26106. * @param {function(child: Node, path: string, parent: Node): Node} callback
  26107. * @returns {ConditionalNode} Returns a transformed copy of the node
  26108. */
  26109. map(callback) {
  26110. return new ConditionalNode2(this._ifNode(callback(this.condition, "condition", this)), this._ifNode(callback(this.trueExpr, "trueExpr", this)), this._ifNode(callback(this.falseExpr, "falseExpr", this)));
  26111. }
  26112. /**
  26113. * Create a clone of this node, a shallow copy
  26114. * @return {ConditionalNode}
  26115. */
  26116. clone() {
  26117. return new ConditionalNode2(this.condition, this.trueExpr, this.falseExpr);
  26118. }
  26119. /**
  26120. * Get string representation
  26121. * @param {Object} options
  26122. * @return {string} str
  26123. */
  26124. _toString(options) {
  26125. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  26126. var precedence = getPrecedence(this, parenthesis, options && options.implicit);
  26127. var condition = this.condition.toString(options);
  26128. var conditionPrecedence = getPrecedence(this.condition, parenthesis, options && options.implicit);
  26129. if (parenthesis === "all" || this.condition.type === "OperatorNode" || conditionPrecedence !== null && conditionPrecedence <= precedence) {
  26130. condition = "(" + condition + ")";
  26131. }
  26132. var trueExpr = this.trueExpr.toString(options);
  26133. var truePrecedence = getPrecedence(this.trueExpr, parenthesis, options && options.implicit);
  26134. if (parenthesis === "all" || this.trueExpr.type === "OperatorNode" || truePrecedence !== null && truePrecedence <= precedence) {
  26135. trueExpr = "(" + trueExpr + ")";
  26136. }
  26137. var falseExpr = this.falseExpr.toString(options);
  26138. var falsePrecedence = getPrecedence(this.falseExpr, parenthesis, options && options.implicit);
  26139. if (parenthesis === "all" || this.falseExpr.type === "OperatorNode" || falsePrecedence !== null && falsePrecedence <= precedence) {
  26140. falseExpr = "(" + falseExpr + ")";
  26141. }
  26142. return condition + " ? " + trueExpr + " : " + falseExpr;
  26143. }
  26144. /**
  26145. * Get a JSON representation of the node
  26146. * @returns {Object}
  26147. */
  26148. toJSON() {
  26149. return {
  26150. mathjs: name208,
  26151. condition: this.condition,
  26152. trueExpr: this.trueExpr,
  26153. falseExpr: this.falseExpr
  26154. };
  26155. }
  26156. /**
  26157. * Instantiate an ConditionalNode from its JSON representation
  26158. * @param {Object} json
  26159. * An object structured like
  26160. * ```
  26161. * {"mathjs": "ConditionalNode",
  26162. * "condition": ...,
  26163. * "trueExpr": ...,
  26164. * "falseExpr": ...}
  26165. * ```
  26166. * where mathjs is optional
  26167. * @returns {ConditionalNode}
  26168. */
  26169. static fromJSON(json) {
  26170. return new ConditionalNode2(json.condition, json.trueExpr, json.falseExpr);
  26171. }
  26172. /**
  26173. * Get HTML representation
  26174. * @param {Object} options
  26175. * @return {string} str
  26176. */
  26177. toHTML(options) {
  26178. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  26179. var precedence = getPrecedence(this, parenthesis, options && options.implicit);
  26180. var condition = this.condition.toHTML(options);
  26181. var conditionPrecedence = getPrecedence(this.condition, parenthesis, options && options.implicit);
  26182. if (parenthesis === "all" || this.condition.type === "OperatorNode" || conditionPrecedence !== null && conditionPrecedence <= precedence) {
  26183. condition = '<span class="math-parenthesis math-round-parenthesis">(</span>' + condition + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  26184. }
  26185. var trueExpr = this.trueExpr.toHTML(options);
  26186. var truePrecedence = getPrecedence(this.trueExpr, parenthesis, options && options.implicit);
  26187. if (parenthesis === "all" || this.trueExpr.type === "OperatorNode" || truePrecedence !== null && truePrecedence <= precedence) {
  26188. trueExpr = '<span class="math-parenthesis math-round-parenthesis">(</span>' + trueExpr + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  26189. }
  26190. var falseExpr = this.falseExpr.toHTML(options);
  26191. var falsePrecedence = getPrecedence(this.falseExpr, parenthesis, options && options.implicit);
  26192. if (parenthesis === "all" || this.falseExpr.type === "OperatorNode" || falsePrecedence !== null && falsePrecedence <= precedence) {
  26193. falseExpr = '<span class="math-parenthesis math-round-parenthesis">(</span>' + falseExpr + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  26194. }
  26195. return condition + '<span class="math-operator math-conditional-operator">?</span>' + trueExpr + '<span class="math-operator math-conditional-operator">:</span>' + falseExpr;
  26196. }
  26197. /**
  26198. * Get LaTeX representation
  26199. * @param {Object} options
  26200. * @return {string} str
  26201. */
  26202. _toTex(options) {
  26203. return "\\begin{cases} {" + this.trueExpr.toTex(options) + "}, &\\quad{\\text{if }\\;" + this.condition.toTex(options) + "}\\\\{" + this.falseExpr.toTex(options) + "}, &\\quad{\\text{otherwise}}\\end{cases}";
  26204. }
  26205. }
  26206. _defineProperty(ConditionalNode2, "name", name208);
  26207. return ConditionalNode2;
  26208. }, {
  26209. isClass: true,
  26210. isNode: true
  26211. });
  26212. // node_modules/mathjs/lib/esm/utils/latex.js
  26213. var import_escape_latex = __toESM(require_dist(), 1);
  26214. var latexSymbols = {
  26215. // GREEK LETTERS
  26216. Alpha: "A",
  26217. alpha: "\\alpha",
  26218. Beta: "B",
  26219. beta: "\\beta",
  26220. Gamma: "\\Gamma",
  26221. gamma: "\\gamma",
  26222. Delta: "\\Delta",
  26223. delta: "\\delta",
  26224. Epsilon: "E",
  26225. epsilon: "\\epsilon",
  26226. varepsilon: "\\varepsilon",
  26227. Zeta: "Z",
  26228. zeta: "\\zeta",
  26229. Eta: "H",
  26230. eta: "\\eta",
  26231. Theta: "\\Theta",
  26232. theta: "\\theta",
  26233. vartheta: "\\vartheta",
  26234. Iota: "I",
  26235. iota: "\\iota",
  26236. Kappa: "K",
  26237. kappa: "\\kappa",
  26238. varkappa: "\\varkappa",
  26239. Lambda: "\\Lambda",
  26240. lambda: "\\lambda",
  26241. Mu: "M",
  26242. mu: "\\mu",
  26243. Nu: "N",
  26244. nu: "\\nu",
  26245. Xi: "\\Xi",
  26246. xi: "\\xi",
  26247. Omicron: "O",
  26248. omicron: "o",
  26249. Pi: "\\Pi",
  26250. pi: "\\pi",
  26251. varpi: "\\varpi",
  26252. Rho: "P",
  26253. rho: "\\rho",
  26254. varrho: "\\varrho",
  26255. Sigma: "\\Sigma",
  26256. sigma: "\\sigma",
  26257. varsigma: "\\varsigma",
  26258. Tau: "T",
  26259. tau: "\\tau",
  26260. Upsilon: "\\Upsilon",
  26261. upsilon: "\\upsilon",
  26262. Phi: "\\Phi",
  26263. phi: "\\phi",
  26264. varphi: "\\varphi",
  26265. Chi: "X",
  26266. chi: "\\chi",
  26267. Psi: "\\Psi",
  26268. psi: "\\psi",
  26269. Omega: "\\Omega",
  26270. omega: "\\omega",
  26271. // logic
  26272. true: "\\mathrm{True}",
  26273. false: "\\mathrm{False}",
  26274. // other
  26275. i: "i",
  26276. // TODO use \i ??
  26277. inf: "\\infty",
  26278. Inf: "\\infty",
  26279. infinity: "\\infty",
  26280. Infinity: "\\infty",
  26281. oo: "\\infty",
  26282. lim: "\\lim",
  26283. undefined: "\\mathbf{?}"
  26284. };
  26285. var latexOperators = {
  26286. transpose: "^\\top",
  26287. ctranspose: "^H",
  26288. factorial: "!",
  26289. pow: "^",
  26290. dotPow: ".^\\wedge",
  26291. // TODO find ideal solution
  26292. unaryPlus: "+",
  26293. unaryMinus: "-",
  26294. bitNot: "\\~",
  26295. // TODO find ideal solution
  26296. not: "\\neg",
  26297. multiply: "\\cdot",
  26298. divide: "\\frac",
  26299. // TODO how to handle that properly?
  26300. dotMultiply: ".\\cdot",
  26301. // TODO find ideal solution
  26302. dotDivide: ".:",
  26303. // TODO find ideal solution
  26304. mod: "\\mod",
  26305. add: "+",
  26306. subtract: "-",
  26307. to: "\\rightarrow",
  26308. leftShift: "<<",
  26309. rightArithShift: ">>",
  26310. rightLogShift: ">>>",
  26311. equal: "=",
  26312. unequal: "\\neq",
  26313. smaller: "<",
  26314. larger: ">",
  26315. smallerEq: "\\leq",
  26316. largerEq: "\\geq",
  26317. bitAnd: "\\&",
  26318. bitXor: "\\underline{|}",
  26319. bitOr: "|",
  26320. and: "\\wedge",
  26321. xor: "\\veebar",
  26322. or: "\\vee"
  26323. };
  26324. var latexFunctions = {
  26325. // arithmetic
  26326. abs: {
  26327. 1: "\\left|${args[0]}\\right|"
  26328. },
  26329. add: {
  26330. 2: "\\left(${args[0]}".concat(latexOperators.add, "${args[1]}\\right)")
  26331. },
  26332. cbrt: {
  26333. 1: "\\sqrt[3]{${args[0]}}"
  26334. },
  26335. ceil: {
  26336. 1: "\\left\\lceil${args[0]}\\right\\rceil"
  26337. },
  26338. cube: {
  26339. 1: "\\left(${args[0]}\\right)^3"
  26340. },
  26341. divide: {
  26342. 2: "\\frac{${args[0]}}{${args[1]}}"
  26343. },
  26344. dotDivide: {
  26345. 2: "\\left(${args[0]}".concat(latexOperators.dotDivide, "${args[1]}\\right)")
  26346. },
  26347. dotMultiply: {
  26348. 2: "\\left(${args[0]}".concat(latexOperators.dotMultiply, "${args[1]}\\right)")
  26349. },
  26350. dotPow: {
  26351. 2: "\\left(${args[0]}".concat(latexOperators.dotPow, "${args[1]}\\right)")
  26352. },
  26353. exp: {
  26354. 1: "\\exp\\left(${args[0]}\\right)"
  26355. },
  26356. expm1: "\\left(e".concat(latexOperators.pow, "{${args[0]}}-1\\right)"),
  26357. fix: {
  26358. 1: "\\mathrm{${name}}\\left(${args[0]}\\right)"
  26359. },
  26360. floor: {
  26361. 1: "\\left\\lfloor${args[0]}\\right\\rfloor"
  26362. },
  26363. gcd: "\\gcd\\left(${args}\\right)",
  26364. hypot: "\\hypot\\left(${args}\\right)",
  26365. log: {
  26366. 1: "\\ln\\left(${args[0]}\\right)",
  26367. 2: "\\log_{${args[1]}}\\left(${args[0]}\\right)"
  26368. },
  26369. log10: {
  26370. 1: "\\log_{10}\\left(${args[0]}\\right)"
  26371. },
  26372. log1p: {
  26373. 1: "\\ln\\left(${args[0]}+1\\right)",
  26374. 2: "\\log_{${args[1]}}\\left(${args[0]}+1\\right)"
  26375. },
  26376. log2: "\\log_{2}\\left(${args[0]}\\right)",
  26377. mod: {
  26378. 2: "\\left(${args[0]}".concat(latexOperators.mod, "${args[1]}\\right)")
  26379. },
  26380. multiply: {
  26381. 2: "\\left(${args[0]}".concat(latexOperators.multiply, "${args[1]}\\right)")
  26382. },
  26383. norm: {
  26384. 1: "\\left\\|${args[0]}\\right\\|",
  26385. 2: void 0
  26386. // use default template
  26387. },
  26388. nthRoot: {
  26389. 2: "\\sqrt[${args[1]}]{${args[0]}}"
  26390. },
  26391. nthRoots: {
  26392. 2: "\\{y : $y^{args[1]} = {${args[0]}}\\}"
  26393. },
  26394. pow: {
  26395. 2: "\\left(${args[0]}\\right)".concat(latexOperators.pow, "{${args[1]}}")
  26396. },
  26397. round: {
  26398. 1: "\\left\\lfloor${args[0]}\\right\\rceil",
  26399. 2: void 0
  26400. // use default template
  26401. },
  26402. sign: {
  26403. 1: "\\mathrm{${name}}\\left(${args[0]}\\right)"
  26404. },
  26405. sqrt: {
  26406. 1: "\\sqrt{${args[0]}}"
  26407. },
  26408. square: {
  26409. 1: "\\left(${args[0]}\\right)^2"
  26410. },
  26411. subtract: {
  26412. 2: "\\left(${args[0]}".concat(latexOperators.subtract, "${args[1]}\\right)")
  26413. },
  26414. unaryMinus: {
  26415. 1: "".concat(latexOperators.unaryMinus, "\\left(${args[0]}\\right)")
  26416. },
  26417. unaryPlus: {
  26418. 1: "".concat(latexOperators.unaryPlus, "\\left(${args[0]}\\right)")
  26419. },
  26420. // bitwise
  26421. bitAnd: {
  26422. 2: "\\left(${args[0]}".concat(latexOperators.bitAnd, "${args[1]}\\right)")
  26423. },
  26424. bitNot: {
  26425. 1: latexOperators.bitNot + "\\left(${args[0]}\\right)"
  26426. },
  26427. bitOr: {
  26428. 2: "\\left(${args[0]}".concat(latexOperators.bitOr, "${args[1]}\\right)")
  26429. },
  26430. bitXor: {
  26431. 2: "\\left(${args[0]}".concat(latexOperators.bitXor, "${args[1]}\\right)")
  26432. },
  26433. leftShift: {
  26434. 2: "\\left(${args[0]}".concat(latexOperators.leftShift, "${args[1]}\\right)")
  26435. },
  26436. rightArithShift: {
  26437. 2: "\\left(${args[0]}".concat(latexOperators.rightArithShift, "${args[1]}\\right)")
  26438. },
  26439. rightLogShift: {
  26440. 2: "\\left(${args[0]}".concat(latexOperators.rightLogShift, "${args[1]}\\right)")
  26441. },
  26442. // combinatorics
  26443. bellNumbers: {
  26444. 1: "\\mathrm{B}_{${args[0]}}"
  26445. },
  26446. catalan: {
  26447. 1: "\\mathrm{C}_{${args[0]}}"
  26448. },
  26449. stirlingS2: {
  26450. 2: "\\mathrm{S}\\left(${args}\\right)"
  26451. },
  26452. // complex
  26453. arg: {
  26454. 1: "\\arg\\left(${args[0]}\\right)"
  26455. },
  26456. conj: {
  26457. 1: "\\left(${args[0]}\\right)^*"
  26458. },
  26459. im: {
  26460. 1: "\\Im\\left\\lbrace${args[0]}\\right\\rbrace"
  26461. },
  26462. re: {
  26463. 1: "\\Re\\left\\lbrace${args[0]}\\right\\rbrace"
  26464. },
  26465. // logical
  26466. and: {
  26467. 2: "\\left(${args[0]}".concat(latexOperators.and, "${args[1]}\\right)")
  26468. },
  26469. not: {
  26470. 1: latexOperators.not + "\\left(${args[0]}\\right)"
  26471. },
  26472. or: {
  26473. 2: "\\left(${args[0]}".concat(latexOperators.or, "${args[1]}\\right)")
  26474. },
  26475. xor: {
  26476. 2: "\\left(${args[0]}".concat(latexOperators.xor, "${args[1]}\\right)")
  26477. },
  26478. // matrix
  26479. cross: {
  26480. 2: "\\left(${args[0]}\\right)\\times\\left(${args[1]}\\right)"
  26481. },
  26482. ctranspose: {
  26483. 1: "\\left(${args[0]}\\right)".concat(latexOperators.ctranspose)
  26484. },
  26485. det: {
  26486. 1: "\\det\\left(${args[0]}\\right)"
  26487. },
  26488. dot: {
  26489. 2: "\\left(${args[0]}\\cdot${args[1]}\\right)"
  26490. },
  26491. expm: {
  26492. 1: "\\exp\\left(${args[0]}\\right)"
  26493. },
  26494. inv: {
  26495. 1: "\\left(${args[0]}\\right)^{-1}"
  26496. },
  26497. pinv: {
  26498. 1: "\\left(${args[0]}\\right)^{+}"
  26499. },
  26500. sqrtm: {
  26501. 1: "{${args[0]}}".concat(latexOperators.pow, "{\\frac{1}{2}}")
  26502. },
  26503. trace: {
  26504. 1: "\\mathrm{tr}\\left(${args[0]}\\right)"
  26505. },
  26506. transpose: {
  26507. 1: "\\left(${args[0]}\\right)".concat(latexOperators.transpose)
  26508. },
  26509. // probability
  26510. combinations: {
  26511. 2: "\\binom{${args[0]}}{${args[1]}}"
  26512. },
  26513. combinationsWithRep: {
  26514. 2: "\\left(\\!\\!{\\binom{${args[0]}}{${args[1]}}}\\!\\!\\right)"
  26515. },
  26516. factorial: {
  26517. 1: "\\left(${args[0]}\\right)".concat(latexOperators.factorial)
  26518. },
  26519. gamma: {
  26520. 1: "\\Gamma\\left(${args[0]}\\right)"
  26521. },
  26522. lgamma: {
  26523. 1: "\\ln\\Gamma\\left(${args[0]}\\right)"
  26524. },
  26525. // relational
  26526. equal: {
  26527. 2: "\\left(${args[0]}".concat(latexOperators.equal, "${args[1]}\\right)")
  26528. },
  26529. larger: {
  26530. 2: "\\left(${args[0]}".concat(latexOperators.larger, "${args[1]}\\right)")
  26531. },
  26532. largerEq: {
  26533. 2: "\\left(${args[0]}".concat(latexOperators.largerEq, "${args[1]}\\right)")
  26534. },
  26535. smaller: {
  26536. 2: "\\left(${args[0]}".concat(latexOperators.smaller, "${args[1]}\\right)")
  26537. },
  26538. smallerEq: {
  26539. 2: "\\left(${args[0]}".concat(latexOperators.smallerEq, "${args[1]}\\right)")
  26540. },
  26541. unequal: {
  26542. 2: "\\left(${args[0]}".concat(latexOperators.unequal, "${args[1]}\\right)")
  26543. },
  26544. // special
  26545. erf: {
  26546. 1: "erf\\left(${args[0]}\\right)"
  26547. },
  26548. // statistics
  26549. max: "\\max\\left(${args}\\right)",
  26550. min: "\\min\\left(${args}\\right)",
  26551. variance: "\\mathrm{Var}\\left(${args}\\right)",
  26552. // trigonometry
  26553. acos: {
  26554. 1: "\\cos^{-1}\\left(${args[0]}\\right)"
  26555. },
  26556. acosh: {
  26557. 1: "\\cosh^{-1}\\left(${args[0]}\\right)"
  26558. },
  26559. acot: {
  26560. 1: "\\cot^{-1}\\left(${args[0]}\\right)"
  26561. },
  26562. acoth: {
  26563. 1: "\\coth^{-1}\\left(${args[0]}\\right)"
  26564. },
  26565. acsc: {
  26566. 1: "\\csc^{-1}\\left(${args[0]}\\right)"
  26567. },
  26568. acsch: {
  26569. 1: "\\mathrm{csch}^{-1}\\left(${args[0]}\\right)"
  26570. },
  26571. asec: {
  26572. 1: "\\sec^{-1}\\left(${args[0]}\\right)"
  26573. },
  26574. asech: {
  26575. 1: "\\mathrm{sech}^{-1}\\left(${args[0]}\\right)"
  26576. },
  26577. asin: {
  26578. 1: "\\sin^{-1}\\left(${args[0]}\\right)"
  26579. },
  26580. asinh: {
  26581. 1: "\\sinh^{-1}\\left(${args[0]}\\right)"
  26582. },
  26583. atan: {
  26584. 1: "\\tan^{-1}\\left(${args[0]}\\right)"
  26585. },
  26586. atan2: {
  26587. 2: "\\mathrm{atan2}\\left(${args}\\right)"
  26588. },
  26589. atanh: {
  26590. 1: "\\tanh^{-1}\\left(${args[0]}\\right)"
  26591. },
  26592. cos: {
  26593. 1: "\\cos\\left(${args[0]}\\right)"
  26594. },
  26595. cosh: {
  26596. 1: "\\cosh\\left(${args[0]}\\right)"
  26597. },
  26598. cot: {
  26599. 1: "\\cot\\left(${args[0]}\\right)"
  26600. },
  26601. coth: {
  26602. 1: "\\coth\\left(${args[0]}\\right)"
  26603. },
  26604. csc: {
  26605. 1: "\\csc\\left(${args[0]}\\right)"
  26606. },
  26607. csch: {
  26608. 1: "\\mathrm{csch}\\left(${args[0]}\\right)"
  26609. },
  26610. sec: {
  26611. 1: "\\sec\\left(${args[0]}\\right)"
  26612. },
  26613. sech: {
  26614. 1: "\\mathrm{sech}\\left(${args[0]}\\right)"
  26615. },
  26616. sin: {
  26617. 1: "\\sin\\left(${args[0]}\\right)"
  26618. },
  26619. sinh: {
  26620. 1: "\\sinh\\left(${args[0]}\\right)"
  26621. },
  26622. tan: {
  26623. 1: "\\tan\\left(${args[0]}\\right)"
  26624. },
  26625. tanh: {
  26626. 1: "\\tanh\\left(${args[0]}\\right)"
  26627. },
  26628. // unit
  26629. to: {
  26630. 2: "\\left(${args[0]}".concat(latexOperators.to, "${args[1]}\\right)")
  26631. },
  26632. // utils
  26633. numeric: function numeric(node, options) {
  26634. return node.args[0].toTex();
  26635. },
  26636. // type
  26637. number: {
  26638. 0: "0",
  26639. 1: "\\left(${args[0]}\\right)",
  26640. 2: "\\left(\\left(${args[0]}\\right)${args[1]}\\right)"
  26641. },
  26642. string: {
  26643. 0: '\\mathtt{""}',
  26644. 1: "\\mathrm{string}\\left(${args[0]}\\right)"
  26645. },
  26646. bignumber: {
  26647. 0: "0",
  26648. 1: "\\left(${args[0]}\\right)"
  26649. },
  26650. complex: {
  26651. 0: "0",
  26652. 1: "\\left(${args[0]}\\right)",
  26653. 2: "\\left(\\left(${args[0]}\\right)+".concat(latexSymbols.i, "\\cdot\\left(${args[1]}\\right)\\right)")
  26654. },
  26655. matrix: {
  26656. 0: "\\begin{bmatrix}\\end{bmatrix}",
  26657. 1: "\\left(${args[0]}\\right)",
  26658. 2: "\\left(${args[0]}\\right)"
  26659. },
  26660. sparse: {
  26661. 0: "\\begin{bsparse}\\end{bsparse}",
  26662. 1: "\\left(${args[0]}\\right)"
  26663. },
  26664. unit: {
  26665. 1: "\\left(${args[0]}\\right)",
  26666. 2: "\\left(\\left(${args[0]}\\right)${args[1]}\\right)"
  26667. }
  26668. };
  26669. var defaultTemplate = "\\mathrm{${name}}\\left(${args}\\right)";
  26670. var latexUnits = {
  26671. deg: "^\\circ"
  26672. };
  26673. function escapeLatex(string2) {
  26674. return (0, import_escape_latex.default)(string2, {
  26675. preserveFormatting: true
  26676. });
  26677. }
  26678. function toSymbol(name302, isUnit2) {
  26679. isUnit2 = typeof isUnit2 === "undefined" ? false : isUnit2;
  26680. if (isUnit2) {
  26681. if (hasOwnProperty2(latexUnits, name302)) {
  26682. return latexUnits[name302];
  26683. }
  26684. return "\\mathrm{" + escapeLatex(name302) + "}";
  26685. }
  26686. if (hasOwnProperty2(latexSymbols, name302)) {
  26687. return latexSymbols[name302];
  26688. }
  26689. return escapeLatex(name302);
  26690. }
  26691. // node_modules/mathjs/lib/esm/expression/node/ConstantNode.js
  26692. var name209 = "ConstantNode";
  26693. var dependencies209 = ["Node"];
  26694. var createConstantNode = factory(name209, dependencies209, (_ref) => {
  26695. var {
  26696. Node: Node2
  26697. } = _ref;
  26698. class ConstantNode2 extends Node2 {
  26699. /**
  26700. * A ConstantNode holds a constant value like a number or string.
  26701. *
  26702. * Usage:
  26703. *
  26704. * new ConstantNode(2.3)
  26705. * new ConstantNode('hello')
  26706. *
  26707. * @param {*} value Value can be any type (number, BigNumber, string, ...)
  26708. * @constructor ConstantNode
  26709. * @extends {Node}
  26710. */
  26711. constructor(value) {
  26712. super();
  26713. this.value = value;
  26714. }
  26715. get type() {
  26716. return name209;
  26717. }
  26718. get isConstantNode() {
  26719. return true;
  26720. }
  26721. /**
  26722. * Compile a node into a JavaScript function.
  26723. * This basically pre-calculates as much as possible and only leaves open
  26724. * calculations which depend on a dynamic scope with variables.
  26725. * @param {Object} math Math.js namespace with functions and constants.
  26726. * @param {Object} argNames An object with argument names as key and `true`
  26727. * as value. Used in the SymbolNode to optimize
  26728. * for arguments from user assigned functions
  26729. * (see FunctionAssignmentNode) or special symbols
  26730. * like `end` (see IndexNode).
  26731. * @return {function} Returns a function which can be called like:
  26732. * evalNode(scope: Object, args: Object, context: *)
  26733. */
  26734. _compile(math2, argNames) {
  26735. var value = this.value;
  26736. return function evalConstantNode() {
  26737. return value;
  26738. };
  26739. }
  26740. /**
  26741. * Execute a callback for each of the child nodes of this node
  26742. * @param {function(child: Node, path: string, parent: Node)} callback
  26743. */
  26744. forEach(callback) {
  26745. }
  26746. /**
  26747. * Create a new ConstantNode with children produced by the given callback.
  26748. * Trivial because there are no children.
  26749. * @param {function(child: Node, path: string, parent: Node) : Node} callback
  26750. * @returns {ConstantNode} Returns a clone of the node
  26751. */
  26752. map(callback) {
  26753. return this.clone();
  26754. }
  26755. /**
  26756. * Create a clone of this node, a shallow copy
  26757. * @return {ConstantNode}
  26758. */
  26759. clone() {
  26760. return new ConstantNode2(this.value);
  26761. }
  26762. /**
  26763. * Get string representation
  26764. * @param {Object} options
  26765. * @return {string} str
  26766. */
  26767. _toString(options) {
  26768. return format3(this.value, options);
  26769. }
  26770. /**
  26771. * Get HTML representation
  26772. * @param {Object} options
  26773. * @return {string} str
  26774. */
  26775. toHTML(options) {
  26776. var value = this._toString(options);
  26777. switch (typeOf(this.value)) {
  26778. case "number":
  26779. case "BigNumber":
  26780. case "Fraction":
  26781. return '<span class="math-number">' + value + "</span>";
  26782. case "string":
  26783. return '<span class="math-string">' + value + "</span>";
  26784. case "boolean":
  26785. return '<span class="math-boolean">' + value + "</span>";
  26786. case "null":
  26787. return '<span class="math-null-symbol">' + value + "</span>";
  26788. case "undefined":
  26789. return '<span class="math-undefined">' + value + "</span>";
  26790. default:
  26791. return '<span class="math-symbol">' + value + "</span>";
  26792. }
  26793. }
  26794. /**
  26795. * Get a JSON representation of the node
  26796. * @returns {Object}
  26797. */
  26798. toJSON() {
  26799. return {
  26800. mathjs: name209,
  26801. value: this.value
  26802. };
  26803. }
  26804. /**
  26805. * Instantiate a ConstantNode from its JSON representation
  26806. * @param {Object} json An object structured like
  26807. * `{"mathjs": "SymbolNode", value: 2.3}`,
  26808. * where mathjs is optional
  26809. * @returns {ConstantNode}
  26810. */
  26811. static fromJSON(json) {
  26812. return new ConstantNode2(json.value);
  26813. }
  26814. /**
  26815. * Get LaTeX representation
  26816. * @param {Object} options
  26817. * @return {string} str
  26818. */
  26819. _toTex(options) {
  26820. var value = this._toString(options);
  26821. switch (typeOf(this.value)) {
  26822. case "string":
  26823. return "\\mathtt{" + escapeLatex(value) + "}";
  26824. case "number":
  26825. case "BigNumber":
  26826. {
  26827. if (!isFinite(this.value)) {
  26828. return this.value.valueOf() < 0 ? "-\\infty" : "\\infty";
  26829. }
  26830. var index2 = value.toLowerCase().indexOf("e");
  26831. if (index2 !== -1) {
  26832. return value.substring(0, index2) + "\\cdot10^{" + value.substring(index2 + 1) + "}";
  26833. }
  26834. }
  26835. return value;
  26836. case "Fraction":
  26837. return this.value.toLatex();
  26838. default:
  26839. return value;
  26840. }
  26841. }
  26842. }
  26843. _defineProperty(ConstantNode2, "name", name209);
  26844. return ConstantNode2;
  26845. }, {
  26846. isClass: true,
  26847. isNode: true
  26848. });
  26849. // node_modules/mathjs/lib/esm/expression/node/FunctionAssignmentNode.js
  26850. var name210 = "FunctionAssignmentNode";
  26851. var dependencies210 = ["typed", "Node"];
  26852. var createFunctionAssignmentNode = factory(name210, dependencies210, (_ref) => {
  26853. var {
  26854. typed: typed2,
  26855. Node: Node2
  26856. } = _ref;
  26857. function needParenthesis(node, parenthesis, implicit) {
  26858. var precedence = getPrecedence(node, parenthesis, implicit);
  26859. var exprPrecedence = getPrecedence(node.expr, parenthesis, implicit);
  26860. return parenthesis === "all" || exprPrecedence !== null && exprPrecedence <= precedence;
  26861. }
  26862. class FunctionAssignmentNode2 extends Node2 {
  26863. /**
  26864. * @constructor FunctionAssignmentNode
  26865. * @extends {Node}
  26866. * Function assignment
  26867. *
  26868. * @param {string} name Function name
  26869. * @param {string[] | Array.<{name: string, type: string}>} params
  26870. * Array with function parameter names, or an
  26871. * array with objects containing the name
  26872. * and type of the parameter
  26873. * @param {Node} expr The function expression
  26874. */
  26875. constructor(name302, params, expr) {
  26876. super();
  26877. if (typeof name302 !== "string") {
  26878. throw new TypeError('String expected for parameter "name"');
  26879. }
  26880. if (!Array.isArray(params)) {
  26881. throw new TypeError('Array containing strings or objects expected for parameter "params"');
  26882. }
  26883. if (!isNode(expr)) {
  26884. throw new TypeError('Node expected for parameter "expr"');
  26885. }
  26886. if (keywords.has(name302)) {
  26887. throw new Error('Illegal function name, "' + name302 + '" is a reserved keyword');
  26888. }
  26889. var paramNames = /* @__PURE__ */ new Set();
  26890. for (var param of params) {
  26891. var _name = typeof param === "string" ? param : param.name;
  26892. if (paramNames.has(_name)) {
  26893. throw new Error('Duplicate parameter name "'.concat(_name, '"'));
  26894. } else {
  26895. paramNames.add(_name);
  26896. }
  26897. }
  26898. this.name = name302;
  26899. this.params = params.map(function(param2) {
  26900. return param2 && param2.name || param2;
  26901. });
  26902. this.types = params.map(function(param2) {
  26903. return param2 && param2.type || "any";
  26904. });
  26905. this.expr = expr;
  26906. }
  26907. get type() {
  26908. return name210;
  26909. }
  26910. get isFunctionAssignmentNode() {
  26911. return true;
  26912. }
  26913. /**
  26914. * Compile a node into a JavaScript function.
  26915. * This basically pre-calculates as much as possible and only leaves open
  26916. * calculations which depend on a dynamic scope with variables.
  26917. * @param {Object} math Math.js namespace with functions and constants.
  26918. * @param {Object} argNames An object with argument names as key and `true`
  26919. * as value. Used in the SymbolNode to optimize
  26920. * for arguments from user assigned functions
  26921. * (see FunctionAssignmentNode) or special symbols
  26922. * like `end` (see IndexNode).
  26923. * @return {function} Returns a function which can be called like:
  26924. * evalNode(scope: Object, args: Object, context: *)
  26925. */
  26926. _compile(math2, argNames) {
  26927. var childArgNames = Object.create(argNames);
  26928. forEach(this.params, function(param) {
  26929. childArgNames[param] = true;
  26930. });
  26931. var evalExpr = this.expr._compile(math2, childArgNames);
  26932. var name302 = this.name;
  26933. var params = this.params;
  26934. var signature = join(this.types, ",");
  26935. var syntax = name302 + "(" + join(this.params, ", ") + ")";
  26936. return function evalFunctionAssignmentNode(scope, args, context) {
  26937. var signatures = {};
  26938. signatures[signature] = function() {
  26939. var childArgs = Object.create(args);
  26940. for (var i2 = 0; i2 < params.length; i2++) {
  26941. childArgs[params[i2]] = arguments[i2];
  26942. }
  26943. return evalExpr(scope, childArgs, context);
  26944. };
  26945. var fn = typed2(name302, signatures);
  26946. fn.syntax = syntax;
  26947. scope.set(name302, fn);
  26948. return fn;
  26949. };
  26950. }
  26951. /**
  26952. * Execute a callback for each of the child nodes of this node
  26953. * @param {function(child: Node, path: string, parent: Node)} callback
  26954. */
  26955. forEach(callback) {
  26956. callback(this.expr, "expr", this);
  26957. }
  26958. /**
  26959. * Create a new FunctionAssignmentNode whose children are the results of
  26960. * calling the provided callback function for each child of the original
  26961. * node.
  26962. * @param {function(child: Node, path: string, parent: Node): Node} callback
  26963. * @returns {FunctionAssignmentNode} Returns a transformed copy of the node
  26964. */
  26965. map(callback) {
  26966. var expr = this._ifNode(callback(this.expr, "expr", this));
  26967. return new FunctionAssignmentNode2(this.name, this.params.slice(0), expr);
  26968. }
  26969. /**
  26970. * Create a clone of this node, a shallow copy
  26971. * @return {FunctionAssignmentNode}
  26972. */
  26973. clone() {
  26974. return new FunctionAssignmentNode2(this.name, this.params.slice(0), this.expr);
  26975. }
  26976. /**
  26977. * get string representation
  26978. * @param {Object} options
  26979. * @return {string} str
  26980. */
  26981. _toString(options) {
  26982. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  26983. var expr = this.expr.toString(options);
  26984. if (needParenthesis(this, parenthesis, options && options.implicit)) {
  26985. expr = "(" + expr + ")";
  26986. }
  26987. return this.name + "(" + this.params.join(", ") + ") = " + expr;
  26988. }
  26989. /**
  26990. * Get a JSON representation of the node
  26991. * @returns {Object}
  26992. */
  26993. toJSON() {
  26994. var types = this.types;
  26995. return {
  26996. mathjs: name210,
  26997. name: this.name,
  26998. params: this.params.map(function(param, index2) {
  26999. return {
  27000. name: param,
  27001. type: types[index2]
  27002. };
  27003. }),
  27004. expr: this.expr
  27005. };
  27006. }
  27007. /**
  27008. * Instantiate an FunctionAssignmentNode from its JSON representation
  27009. * @param {Object} json
  27010. * An object structured like
  27011. * ```
  27012. * {"mathjs": "FunctionAssignmentNode",
  27013. * name: ..., params: ..., expr: ...}
  27014. * ```
  27015. * where mathjs is optional
  27016. * @returns {FunctionAssignmentNode}
  27017. */
  27018. static fromJSON(json) {
  27019. return new FunctionAssignmentNode2(json.name, json.params, json.expr);
  27020. }
  27021. /**
  27022. * get HTML representation
  27023. * @param {Object} options
  27024. * @return {string} str
  27025. */
  27026. toHTML(options) {
  27027. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  27028. var params = [];
  27029. for (var i2 = 0; i2 < this.params.length; i2++) {
  27030. params.push('<span class="math-symbol math-parameter">' + escape(this.params[i2]) + "</span>");
  27031. }
  27032. var expr = this.expr.toHTML(options);
  27033. if (needParenthesis(this, parenthesis, options && options.implicit)) {
  27034. expr = '<span class="math-parenthesis math-round-parenthesis">(</span>' + expr + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  27035. }
  27036. return '<span class="math-function">' + escape(this.name) + '</span><span class="math-parenthesis math-round-parenthesis">(</span>' + params.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-round-parenthesis">)</span><span class="math-operator math-assignment-operator math-variable-assignment-operator math-binary-operator">=</span>' + expr;
  27037. }
  27038. /**
  27039. * get LaTeX representation
  27040. * @param {Object} options
  27041. * @return {string} str
  27042. */
  27043. _toTex(options) {
  27044. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  27045. var expr = this.expr.toTex(options);
  27046. if (needParenthesis(this, parenthesis, options && options.implicit)) {
  27047. expr = "\\left(".concat(expr, "\\right)");
  27048. }
  27049. return "\\mathrm{" + this.name + "}\\left(" + this.params.map(toSymbol).join(",") + "\\right):=" + expr;
  27050. }
  27051. }
  27052. _defineProperty(FunctionAssignmentNode2, "name", name210);
  27053. return FunctionAssignmentNode2;
  27054. }, {
  27055. isClass: true,
  27056. isNode: true
  27057. });
  27058. // node_modules/mathjs/lib/esm/expression/node/IndexNode.js
  27059. var name211 = "IndexNode";
  27060. var dependencies211 = ["Node", "size"];
  27061. var createIndexNode = factory(name211, dependencies211, (_ref) => {
  27062. var {
  27063. Node: Node2,
  27064. size: size2
  27065. } = _ref;
  27066. class IndexNode2 extends Node2 {
  27067. /**
  27068. * @constructor IndexNode
  27069. * @extends Node
  27070. *
  27071. * Describes a subset of a matrix or an object property.
  27072. * Cannot be used on its own, needs to be used within an AccessorNode or
  27073. * AssignmentNode.
  27074. *
  27075. * @param {Node[]} dimensions
  27076. * @param {boolean} [dotNotation=false]
  27077. * Optional property describing whether this index was written using dot
  27078. * notation like `a.b`, or using bracket notation like `a["b"]`
  27079. * (which is the default). This property is used for string conversion.
  27080. */
  27081. constructor(dimensions, dotNotation) {
  27082. super();
  27083. this.dimensions = dimensions;
  27084. this.dotNotation = dotNotation || false;
  27085. if (!Array.isArray(dimensions) || !dimensions.every(isNode)) {
  27086. throw new TypeError('Array containing Nodes expected for parameter "dimensions"');
  27087. }
  27088. if (this.dotNotation && !this.isObjectProperty()) {
  27089. throw new Error("dotNotation only applicable for object properties");
  27090. }
  27091. }
  27092. get type() {
  27093. return name211;
  27094. }
  27095. get isIndexNode() {
  27096. return true;
  27097. }
  27098. /**
  27099. * Compile a node into a JavaScript function.
  27100. * This basically pre-calculates as much as possible and only leaves open
  27101. * calculations which depend on a dynamic scope with variables.
  27102. * @param {Object} math Math.js namespace with functions and constants.
  27103. * @param {Object} argNames An object with argument names as key and `true`
  27104. * as value. Used in the SymbolNode to optimize
  27105. * for arguments from user assigned functions
  27106. * (see FunctionAssignmentNode) or special symbols
  27107. * like `end` (see IndexNode).
  27108. * @return {function} Returns a function which can be called like:
  27109. * evalNode(scope: Object, args: Object, context: *)
  27110. */
  27111. _compile(math2, argNames) {
  27112. var evalDimensions = map(this.dimensions, function(dimension, i2) {
  27113. var needsEnd = dimension.filter((node) => node.isSymbolNode && node.name === "end").length > 0;
  27114. if (needsEnd) {
  27115. var childArgNames = Object.create(argNames);
  27116. childArgNames.end = true;
  27117. var _evalDimension = dimension._compile(math2, childArgNames);
  27118. return function evalDimension(scope, args, context) {
  27119. if (!isMatrix(context) && !isArray(context) && !isString(context)) {
  27120. throw new TypeError('Cannot resolve "end": context must be a Matrix, Array, or string but is ' + typeOf(context));
  27121. }
  27122. var s = size2(context).valueOf();
  27123. var childArgs = Object.create(args);
  27124. childArgs.end = s[i2];
  27125. return _evalDimension(scope, childArgs, context);
  27126. };
  27127. } else {
  27128. return dimension._compile(math2, argNames);
  27129. }
  27130. });
  27131. var index2 = getSafeProperty(math2, "index");
  27132. return function evalIndexNode(scope, args, context) {
  27133. var dimensions = map(evalDimensions, function(evalDimension) {
  27134. return evalDimension(scope, args, context);
  27135. });
  27136. return index2(...dimensions);
  27137. };
  27138. }
  27139. /**
  27140. * Execute a callback for each of the child nodes of this node
  27141. * @param {function(child: Node, path: string, parent: Node)} callback
  27142. */
  27143. forEach(callback) {
  27144. for (var i2 = 0; i2 < this.dimensions.length; i2++) {
  27145. callback(this.dimensions[i2], "dimensions[" + i2 + "]", this);
  27146. }
  27147. }
  27148. /**
  27149. * Create a new IndexNode whose children are the results of calling
  27150. * the provided callback function for each child of the original node.
  27151. * @param {function(child: Node, path: string, parent: Node): Node} callback
  27152. * @returns {IndexNode} Returns a transformed copy of the node
  27153. */
  27154. map(callback) {
  27155. var dimensions = [];
  27156. for (var i2 = 0; i2 < this.dimensions.length; i2++) {
  27157. dimensions[i2] = this._ifNode(callback(this.dimensions[i2], "dimensions[" + i2 + "]", this));
  27158. }
  27159. return new IndexNode2(dimensions, this.dotNotation);
  27160. }
  27161. /**
  27162. * Create a clone of this node, a shallow copy
  27163. * @return {IndexNode}
  27164. */
  27165. clone() {
  27166. return new IndexNode2(this.dimensions.slice(0), this.dotNotation);
  27167. }
  27168. /**
  27169. * Test whether this IndexNode contains a single property name
  27170. * @return {boolean}
  27171. */
  27172. isObjectProperty() {
  27173. return this.dimensions.length === 1 && isConstantNode(this.dimensions[0]) && typeof this.dimensions[0].value === "string";
  27174. }
  27175. /**
  27176. * Returns the property name if IndexNode contains a property.
  27177. * If not, returns null.
  27178. * @return {string | null}
  27179. */
  27180. getObjectProperty() {
  27181. return this.isObjectProperty() ? this.dimensions[0].value : null;
  27182. }
  27183. /**
  27184. * Get string representation
  27185. * @param {Object} options
  27186. * @return {string} str
  27187. */
  27188. _toString(options) {
  27189. return this.dotNotation ? "." + this.getObjectProperty() : "[" + this.dimensions.join(", ") + "]";
  27190. }
  27191. /**
  27192. * Get a JSON representation of the node
  27193. * @returns {Object}
  27194. */
  27195. toJSON() {
  27196. return {
  27197. mathjs: name211,
  27198. dimensions: this.dimensions,
  27199. dotNotation: this.dotNotation
  27200. };
  27201. }
  27202. /**
  27203. * Instantiate an IndexNode from its JSON representation
  27204. * @param {Object} json
  27205. * An object structured like
  27206. * `{"mathjs": "IndexNode", dimensions: [...], dotNotation: false}`,
  27207. * where mathjs is optional
  27208. * @returns {IndexNode}
  27209. */
  27210. static fromJSON(json) {
  27211. return new IndexNode2(json.dimensions, json.dotNotation);
  27212. }
  27213. /**
  27214. * Get HTML representation
  27215. * @param {Object} options
  27216. * @return {string} str
  27217. */
  27218. toHTML(options) {
  27219. var dimensions = [];
  27220. for (var i2 = 0; i2 < this.dimensions.length; i2++) {
  27221. dimensions[i2] = this.dimensions[i2].toHTML();
  27222. }
  27223. if (this.dotNotation) {
  27224. return '<span class="math-operator math-accessor-operator">.</span><span class="math-symbol math-property">' + escape(this.getObjectProperty()) + "</span>";
  27225. } else {
  27226. return '<span class="math-parenthesis math-square-parenthesis">[</span>' + dimensions.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-square-parenthesis">]</span>';
  27227. }
  27228. }
  27229. /**
  27230. * Get LaTeX representation
  27231. * @param {Object} options
  27232. * @return {string} str
  27233. */
  27234. _toTex(options) {
  27235. var dimensions = this.dimensions.map(function(range2) {
  27236. return range2.toTex(options);
  27237. });
  27238. return this.dotNotation ? "." + this.getObjectProperty() : "_{" + dimensions.join(",") + "}";
  27239. }
  27240. }
  27241. _defineProperty(IndexNode2, "name", name211);
  27242. return IndexNode2;
  27243. }, {
  27244. isClass: true,
  27245. isNode: true
  27246. });
  27247. // node_modules/mathjs/lib/esm/expression/node/ObjectNode.js
  27248. var name212 = "ObjectNode";
  27249. var dependencies212 = ["Node"];
  27250. var createObjectNode = factory(name212, dependencies212, (_ref) => {
  27251. var {
  27252. Node: Node2
  27253. } = _ref;
  27254. class ObjectNode2 extends Node2 {
  27255. /**
  27256. * @constructor ObjectNode
  27257. * @extends {Node}
  27258. * Holds an object with keys/values
  27259. * @param {Object.<string, Node>} [properties] object with key/value pairs
  27260. */
  27261. constructor(properties2) {
  27262. super();
  27263. this.properties = properties2 || {};
  27264. if (properties2) {
  27265. if (!(typeof properties2 === "object") || !Object.keys(properties2).every(function(key) {
  27266. return isNode(properties2[key]);
  27267. })) {
  27268. throw new TypeError("Object containing Nodes expected");
  27269. }
  27270. }
  27271. }
  27272. get type() {
  27273. return name212;
  27274. }
  27275. get isObjectNode() {
  27276. return true;
  27277. }
  27278. /**
  27279. * Compile a node into a JavaScript function.
  27280. * This basically pre-calculates as much as possible and only leaves open
  27281. * calculations which depend on a dynamic scope with variables.
  27282. * @param {Object} math Math.js namespace with functions and constants.
  27283. * @param {Object} argNames An object with argument names as key and `true`
  27284. * as value. Used in the SymbolNode to optimize
  27285. * for arguments from user assigned functions
  27286. * (see FunctionAssignmentNode) or special symbols
  27287. * like `end` (see IndexNode).
  27288. * @return {function} Returns a function which can be called like:
  27289. * evalNode(scope: Object, args: Object, context: *)
  27290. */
  27291. _compile(math2, argNames) {
  27292. var evalEntries = {};
  27293. for (var key in this.properties) {
  27294. if (hasOwnProperty2(this.properties, key)) {
  27295. var stringifiedKey = stringify(key);
  27296. var parsedKey = JSON.parse(stringifiedKey);
  27297. if (!isSafeProperty(this.properties, parsedKey)) {
  27298. throw new Error('No access to property "' + parsedKey + '"');
  27299. }
  27300. evalEntries[parsedKey] = this.properties[key]._compile(math2, argNames);
  27301. }
  27302. }
  27303. return function evalObjectNode(scope, args, context) {
  27304. var obj = {};
  27305. for (var _key in evalEntries) {
  27306. if (hasOwnProperty2(evalEntries, _key)) {
  27307. obj[_key] = evalEntries[_key](scope, args, context);
  27308. }
  27309. }
  27310. return obj;
  27311. };
  27312. }
  27313. /**
  27314. * Execute a callback for each of the child nodes of this node
  27315. * @param {function(child: Node, path: string, parent: Node)} callback
  27316. */
  27317. forEach(callback) {
  27318. for (var key in this.properties) {
  27319. if (hasOwnProperty2(this.properties, key)) {
  27320. callback(this.properties[key], "properties[" + stringify(key) + "]", this);
  27321. }
  27322. }
  27323. }
  27324. /**
  27325. * Create a new ObjectNode whose children are the results of calling
  27326. * the provided callback function for each child of the original node.
  27327. * @param {function(child: Node, path: string, parent: Node): Node} callback
  27328. * @returns {ObjectNode} Returns a transformed copy of the node
  27329. */
  27330. map(callback) {
  27331. var properties2 = {};
  27332. for (var key in this.properties) {
  27333. if (hasOwnProperty2(this.properties, key)) {
  27334. properties2[key] = this._ifNode(callback(this.properties[key], "properties[" + stringify(key) + "]", this));
  27335. }
  27336. }
  27337. return new ObjectNode2(properties2);
  27338. }
  27339. /**
  27340. * Create a clone of this node, a shallow copy
  27341. * @return {ObjectNode}
  27342. */
  27343. clone() {
  27344. var properties2 = {};
  27345. for (var key in this.properties) {
  27346. if (hasOwnProperty2(this.properties, key)) {
  27347. properties2[key] = this.properties[key];
  27348. }
  27349. }
  27350. return new ObjectNode2(properties2);
  27351. }
  27352. /**
  27353. * Get string representation
  27354. * @param {Object} options
  27355. * @return {string} str
  27356. * @override
  27357. */
  27358. _toString(options) {
  27359. var entries = [];
  27360. for (var key in this.properties) {
  27361. if (hasOwnProperty2(this.properties, key)) {
  27362. entries.push(stringify(key) + ": " + this.properties[key].toString(options));
  27363. }
  27364. }
  27365. return "{" + entries.join(", ") + "}";
  27366. }
  27367. /**
  27368. * Get a JSON representation of the node
  27369. * @returns {Object}
  27370. */
  27371. toJSON() {
  27372. return {
  27373. mathjs: name212,
  27374. properties: this.properties
  27375. };
  27376. }
  27377. /**
  27378. * Instantiate an OperatorNode from its JSON representation
  27379. * @param {Object} json An object structured like
  27380. * `{"mathjs": "ObjectNode", "properties": {...}}`,
  27381. * where mathjs is optional
  27382. * @returns {ObjectNode}
  27383. */
  27384. static fromJSON(json) {
  27385. return new ObjectNode2(json.properties);
  27386. }
  27387. /**
  27388. * Get HTML representation
  27389. * @param {Object} options
  27390. * @return {string} str
  27391. * @override
  27392. */
  27393. toHTML(options) {
  27394. var entries = [];
  27395. for (var key in this.properties) {
  27396. if (hasOwnProperty2(this.properties, key)) {
  27397. entries.push('<span class="math-symbol math-property">' + escape(key) + '</span><span class="math-operator math-assignment-operator math-property-assignment-operator math-binary-operator">:</span>' + this.properties[key].toHTML(options));
  27398. }
  27399. }
  27400. return '<span class="math-parenthesis math-curly-parenthesis">{</span>' + entries.join('<span class="math-separator">,</span>') + '<span class="math-parenthesis math-curly-parenthesis">}</span>';
  27401. }
  27402. /**
  27403. * Get LaTeX representation
  27404. * @param {Object} options
  27405. * @return {string} str
  27406. */
  27407. _toTex(options) {
  27408. var entries = [];
  27409. for (var key in this.properties) {
  27410. if (hasOwnProperty2(this.properties, key)) {
  27411. entries.push("\\mathbf{" + key + ":} & " + this.properties[key].toTex(options) + "\\\\");
  27412. }
  27413. }
  27414. var tex = "\\left\\{\\begin{array}{ll}" + entries.join("\n") + "\\end{array}\\right\\}";
  27415. return tex;
  27416. }
  27417. }
  27418. _defineProperty(ObjectNode2, "name", name212);
  27419. return ObjectNode2;
  27420. }, {
  27421. isClass: true,
  27422. isNode: true
  27423. });
  27424. // node_modules/mathjs/lib/esm/expression/node/OperatorNode.js
  27425. var name213 = "OperatorNode";
  27426. var dependencies213 = ["Node"];
  27427. var createOperatorNode = factory(name213, dependencies213, (_ref) => {
  27428. var {
  27429. Node: Node2
  27430. } = _ref;
  27431. function startsWithConstant(expr, parenthesis) {
  27432. var curNode = expr;
  27433. if (parenthesis === "auto") {
  27434. while (isParenthesisNode(curNode))
  27435. curNode = curNode.content;
  27436. }
  27437. if (isConstantNode(curNode))
  27438. return true;
  27439. if (isOperatorNode(curNode)) {
  27440. return startsWithConstant(curNode.args[0], parenthesis);
  27441. }
  27442. return false;
  27443. }
  27444. function calculateNecessaryParentheses(root, parenthesis, implicit, args, latex) {
  27445. var precedence = getPrecedence(root, parenthesis, implicit);
  27446. var associativity = getAssociativity(root, parenthesis);
  27447. if (parenthesis === "all" || args.length > 2 && root.getIdentifier() !== "OperatorNode:add" && root.getIdentifier() !== "OperatorNode:multiply") {
  27448. return args.map(function(arg2) {
  27449. switch (arg2.getContent().type) {
  27450. case "ArrayNode":
  27451. case "ConstantNode":
  27452. case "SymbolNode":
  27453. case "ParenthesisNode":
  27454. return false;
  27455. default:
  27456. return true;
  27457. }
  27458. });
  27459. }
  27460. var result;
  27461. switch (args.length) {
  27462. case 0:
  27463. result = [];
  27464. break;
  27465. case 1:
  27466. {
  27467. var operandPrecedence = getPrecedence(args[0], parenthesis, implicit, root);
  27468. if (latex && operandPrecedence !== null) {
  27469. var operandIdentifier;
  27470. var rootIdentifier;
  27471. if (parenthesis === "keep") {
  27472. operandIdentifier = args[0].getIdentifier();
  27473. rootIdentifier = root.getIdentifier();
  27474. } else {
  27475. operandIdentifier = args[0].getContent().getIdentifier();
  27476. rootIdentifier = root.getContent().getIdentifier();
  27477. }
  27478. if (properties[precedence][rootIdentifier].latexLeftParens === false) {
  27479. result = [false];
  27480. break;
  27481. }
  27482. if (properties[operandPrecedence][operandIdentifier].latexParens === false) {
  27483. result = [false];
  27484. break;
  27485. }
  27486. }
  27487. if (operandPrecedence === null) {
  27488. result = [false];
  27489. break;
  27490. }
  27491. if (operandPrecedence <= precedence) {
  27492. result = [true];
  27493. break;
  27494. }
  27495. result = [false];
  27496. }
  27497. break;
  27498. case 2:
  27499. {
  27500. var lhsParens;
  27501. var lhsPrecedence = getPrecedence(args[0], parenthesis, implicit, root);
  27502. var assocWithLhs = isAssociativeWith(root, args[0], parenthesis);
  27503. if (lhsPrecedence === null) {
  27504. lhsParens = false;
  27505. } else if (lhsPrecedence === precedence && associativity === "right" && !assocWithLhs) {
  27506. lhsParens = true;
  27507. } else if (lhsPrecedence < precedence) {
  27508. lhsParens = true;
  27509. } else {
  27510. lhsParens = false;
  27511. }
  27512. var rhsParens;
  27513. var rhsPrecedence = getPrecedence(args[1], parenthesis, implicit, root);
  27514. var assocWithRhs = isAssociativeWith(root, args[1], parenthesis);
  27515. if (rhsPrecedence === null) {
  27516. rhsParens = false;
  27517. } else if (rhsPrecedence === precedence && associativity === "left" && !assocWithRhs) {
  27518. rhsParens = true;
  27519. } else if (rhsPrecedence < precedence) {
  27520. rhsParens = true;
  27521. } else {
  27522. rhsParens = false;
  27523. }
  27524. if (latex) {
  27525. var _rootIdentifier;
  27526. var lhsIdentifier;
  27527. var rhsIdentifier;
  27528. if (parenthesis === "keep") {
  27529. _rootIdentifier = root.getIdentifier();
  27530. lhsIdentifier = root.args[0].getIdentifier();
  27531. rhsIdentifier = root.args[1].getIdentifier();
  27532. } else {
  27533. _rootIdentifier = root.getContent().getIdentifier();
  27534. lhsIdentifier = root.args[0].getContent().getIdentifier();
  27535. rhsIdentifier = root.args[1].getContent().getIdentifier();
  27536. }
  27537. if (lhsPrecedence !== null) {
  27538. if (properties[precedence][_rootIdentifier].latexLeftParens === false) {
  27539. lhsParens = false;
  27540. }
  27541. if (properties[lhsPrecedence][lhsIdentifier].latexParens === false) {
  27542. lhsParens = false;
  27543. }
  27544. }
  27545. if (rhsPrecedence !== null) {
  27546. if (properties[precedence][_rootIdentifier].latexRightParens === false) {
  27547. rhsParens = false;
  27548. }
  27549. if (properties[rhsPrecedence][rhsIdentifier].latexParens === false) {
  27550. rhsParens = false;
  27551. }
  27552. }
  27553. }
  27554. result = [lhsParens, rhsParens];
  27555. }
  27556. break;
  27557. default:
  27558. if (root.getIdentifier() === "OperatorNode:add" || root.getIdentifier() === "OperatorNode:multiply") {
  27559. result = args.map(function(arg2) {
  27560. var argPrecedence = getPrecedence(arg2, parenthesis, implicit, root);
  27561. var assocWithArg = isAssociativeWith(root, arg2, parenthesis);
  27562. var argAssociativity = getAssociativity(arg2, parenthesis);
  27563. if (argPrecedence === null) {
  27564. return false;
  27565. } else if (precedence === argPrecedence && associativity === argAssociativity && !assocWithArg) {
  27566. return true;
  27567. } else if (argPrecedence < precedence) {
  27568. return true;
  27569. }
  27570. return false;
  27571. });
  27572. }
  27573. break;
  27574. }
  27575. if (args.length >= 2 && root.getIdentifier() === "OperatorNode:multiply" && root.implicit && parenthesis !== "all" && implicit === "hide") {
  27576. for (var i2 = 1; i2 < result.length; ++i2) {
  27577. if (startsWithConstant(args[i2], parenthesis) && !result[i2 - 1] && (parenthesis !== "keep" || !isParenthesisNode(args[i2 - 1]))) {
  27578. result[i2] = true;
  27579. }
  27580. }
  27581. }
  27582. return result;
  27583. }
  27584. class OperatorNode2 extends Node2 {
  27585. /**
  27586. * @constructor OperatorNode
  27587. * @extends {Node}
  27588. * An operator with two arguments, like 2+3
  27589. *
  27590. * @param {string} op Operator name, for example '+'
  27591. * @param {string} fn Function name, for example 'add'
  27592. * @param {Node[]} args Operator arguments
  27593. * @param {boolean} [implicit] Is this an implicit multiplication?
  27594. * @param {boolean} [isPercentage] Is this an percentage Operation?
  27595. */
  27596. constructor(op, fn, args, implicit, isPercentage) {
  27597. super();
  27598. if (typeof op !== "string") {
  27599. throw new TypeError('string expected for parameter "op"');
  27600. }
  27601. if (typeof fn !== "string") {
  27602. throw new TypeError('string expected for parameter "fn"');
  27603. }
  27604. if (!Array.isArray(args) || !args.every(isNode)) {
  27605. throw new TypeError('Array containing Nodes expected for parameter "args"');
  27606. }
  27607. this.implicit = implicit === true;
  27608. this.isPercentage = isPercentage === true;
  27609. this.op = op;
  27610. this.fn = fn;
  27611. this.args = args || [];
  27612. }
  27613. get type() {
  27614. return name213;
  27615. }
  27616. get isOperatorNode() {
  27617. return true;
  27618. }
  27619. /**
  27620. * Compile a node into a JavaScript function.
  27621. * This basically pre-calculates as much as possible and only leaves open
  27622. * calculations which depend on a dynamic scope with variables.
  27623. * @param {Object} math Math.js namespace with functions and constants.
  27624. * @param {Object} argNames An object with argument names as key and `true`
  27625. * as value. Used in the SymbolNode to optimize
  27626. * for arguments from user assigned functions
  27627. * (see FunctionAssignmentNode) or special symbols
  27628. * like `end` (see IndexNode).
  27629. * @return {function} Returns a function which can be called like:
  27630. * evalNode(scope: Object, args: Object, context: *)
  27631. */
  27632. _compile(math2, argNames) {
  27633. if (typeof this.fn !== "string" || !isSafeMethod(math2, this.fn)) {
  27634. if (!math2[this.fn]) {
  27635. throw new Error("Function " + this.fn + ' missing in provided namespace "math"');
  27636. } else {
  27637. throw new Error('No access to function "' + this.fn + '"');
  27638. }
  27639. }
  27640. var fn = getSafeProperty(math2, this.fn);
  27641. var evalArgs = map(this.args, function(arg2) {
  27642. return arg2._compile(math2, argNames);
  27643. });
  27644. if (evalArgs.length === 1) {
  27645. var evalArg0 = evalArgs[0];
  27646. return function evalOperatorNode(scope, args, context) {
  27647. return fn(evalArg0(scope, args, context));
  27648. };
  27649. } else if (evalArgs.length === 2) {
  27650. var _evalArg = evalArgs[0];
  27651. var evalArg1 = evalArgs[1];
  27652. return function evalOperatorNode(scope, args, context) {
  27653. return fn(_evalArg(scope, args, context), evalArg1(scope, args, context));
  27654. };
  27655. } else {
  27656. return function evalOperatorNode(scope, args, context) {
  27657. return fn.apply(null, map(evalArgs, function(evalArg) {
  27658. return evalArg(scope, args, context);
  27659. }));
  27660. };
  27661. }
  27662. }
  27663. /**
  27664. * Execute a callback for each of the child nodes of this node
  27665. * @param {function(child: Node, path: string, parent: Node)} callback
  27666. */
  27667. forEach(callback) {
  27668. for (var i2 = 0; i2 < this.args.length; i2++) {
  27669. callback(this.args[i2], "args[" + i2 + "]", this);
  27670. }
  27671. }
  27672. /**
  27673. * Create a new OperatorNode whose children are the results of calling
  27674. * the provided callback function for each child of the original node.
  27675. * @param {function(child: Node, path: string, parent: Node): Node} callback
  27676. * @returns {OperatorNode} Returns a transformed copy of the node
  27677. */
  27678. map(callback) {
  27679. var args = [];
  27680. for (var i2 = 0; i2 < this.args.length; i2++) {
  27681. args[i2] = this._ifNode(callback(this.args[i2], "args[" + i2 + "]", this));
  27682. }
  27683. return new OperatorNode2(this.op, this.fn, args, this.implicit, this.isPercentage);
  27684. }
  27685. /**
  27686. * Create a clone of this node, a shallow copy
  27687. * @return {OperatorNode}
  27688. */
  27689. clone() {
  27690. return new OperatorNode2(this.op, this.fn, this.args.slice(0), this.implicit, this.isPercentage);
  27691. }
  27692. /**
  27693. * Check whether this is an unary OperatorNode:
  27694. * has exactly one argument, like `-a`.
  27695. * @return {boolean}
  27696. * Returns true when an unary operator node, false otherwise.
  27697. */
  27698. isUnary() {
  27699. return this.args.length === 1;
  27700. }
  27701. /**
  27702. * Check whether this is a binary OperatorNode:
  27703. * has exactly two arguments, like `a + b`.
  27704. * @return {boolean}
  27705. * Returns true when a binary operator node, false otherwise.
  27706. */
  27707. isBinary() {
  27708. return this.args.length === 2;
  27709. }
  27710. /**
  27711. * Get string representation.
  27712. * @param {Object} options
  27713. * @return {string} str
  27714. */
  27715. _toString(options) {
  27716. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  27717. var implicit = options && options.implicit ? options.implicit : "hide";
  27718. var args = this.args;
  27719. var parens = calculateNecessaryParentheses(this, parenthesis, implicit, args, false);
  27720. if (args.length === 1) {
  27721. var assoc = getAssociativity(this, parenthesis);
  27722. var operand = args[0].toString(options);
  27723. if (parens[0]) {
  27724. operand = "(" + operand + ")";
  27725. }
  27726. var opIsNamed = /[a-zA-Z]+/.test(this.op);
  27727. if (assoc === "right") {
  27728. return this.op + (opIsNamed ? " " : "") + operand;
  27729. } else if (assoc === "left") {
  27730. return operand + (opIsNamed ? " " : "") + this.op;
  27731. }
  27732. return operand + this.op;
  27733. } else if (args.length === 2) {
  27734. var lhs = args[0].toString(options);
  27735. var rhs = args[1].toString(options);
  27736. if (parens[0]) {
  27737. lhs = "(" + lhs + ")";
  27738. }
  27739. if (parens[1]) {
  27740. rhs = "(" + rhs + ")";
  27741. }
  27742. if (this.implicit && this.getIdentifier() === "OperatorNode:multiply" && implicit === "hide") {
  27743. return lhs + " " + rhs;
  27744. }
  27745. return lhs + " " + this.op + " " + rhs;
  27746. } else if (args.length > 2 && (this.getIdentifier() === "OperatorNode:add" || this.getIdentifier() === "OperatorNode:multiply")) {
  27747. var stringifiedArgs = args.map(function(arg2, index2) {
  27748. arg2 = arg2.toString(options);
  27749. if (parens[index2]) {
  27750. arg2 = "(" + arg2 + ")";
  27751. }
  27752. return arg2;
  27753. });
  27754. if (this.implicit && this.getIdentifier() === "OperatorNode:multiply" && implicit === "hide") {
  27755. return stringifiedArgs.join(" ");
  27756. }
  27757. return stringifiedArgs.join(" " + this.op + " ");
  27758. } else {
  27759. return this.fn + "(" + this.args.join(", ") + ")";
  27760. }
  27761. }
  27762. /**
  27763. * Get a JSON representation of the node
  27764. * @returns {Object}
  27765. */
  27766. toJSON() {
  27767. return {
  27768. mathjs: name213,
  27769. op: this.op,
  27770. fn: this.fn,
  27771. args: this.args,
  27772. implicit: this.implicit,
  27773. isPercentage: this.isPercentage
  27774. };
  27775. }
  27776. /**
  27777. * Instantiate an OperatorNode from its JSON representation
  27778. * @param {Object} json
  27779. * An object structured like
  27780. * ```
  27781. * {"mathjs": "OperatorNode",
  27782. * "op": "+", "fn": "add", "args": [...],
  27783. * "implicit": false,
  27784. * "isPercentage":false}
  27785. * ```
  27786. * where mathjs is optional
  27787. * @returns {OperatorNode}
  27788. */
  27789. static fromJSON(json) {
  27790. return new OperatorNode2(json.op, json.fn, json.args, json.implicit, json.isPercentage);
  27791. }
  27792. /**
  27793. * Get HTML representation.
  27794. * @param {Object} options
  27795. * @return {string} str
  27796. */
  27797. toHTML(options) {
  27798. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  27799. var implicit = options && options.implicit ? options.implicit : "hide";
  27800. var args = this.args;
  27801. var parens = calculateNecessaryParentheses(this, parenthesis, implicit, args, false);
  27802. if (args.length === 1) {
  27803. var assoc = getAssociativity(this, parenthesis);
  27804. var operand = args[0].toHTML(options);
  27805. if (parens[0]) {
  27806. operand = '<span class="math-parenthesis math-round-parenthesis">(</span>' + operand + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  27807. }
  27808. if (assoc === "right") {
  27809. return '<span class="math-operator math-unary-operator math-lefthand-unary-operator">' + escape(this.op) + "</span>" + operand;
  27810. } else {
  27811. return operand + '<span class="math-operator math-unary-operator math-righthand-unary-operator">' + escape(this.op) + "</span>";
  27812. }
  27813. } else if (args.length === 2) {
  27814. var lhs = args[0].toHTML(options);
  27815. var rhs = args[1].toHTML(options);
  27816. if (parens[0]) {
  27817. lhs = '<span class="math-parenthesis math-round-parenthesis">(</span>' + lhs + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  27818. }
  27819. if (parens[1]) {
  27820. rhs = '<span class="math-parenthesis math-round-parenthesis">(</span>' + rhs + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  27821. }
  27822. if (this.implicit && this.getIdentifier() === "OperatorNode:multiply" && implicit === "hide") {
  27823. return lhs + '<span class="math-operator math-binary-operator math-implicit-binary-operator"></span>' + rhs;
  27824. }
  27825. return lhs + '<span class="math-operator math-binary-operator math-explicit-binary-operator">' + escape(this.op) + "</span>" + rhs;
  27826. } else {
  27827. var stringifiedArgs = args.map(function(arg2, index2) {
  27828. arg2 = arg2.toHTML(options);
  27829. if (parens[index2]) {
  27830. arg2 = '<span class="math-parenthesis math-round-parenthesis">(</span>' + arg2 + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  27831. }
  27832. return arg2;
  27833. });
  27834. if (args.length > 2 && (this.getIdentifier() === "OperatorNode:add" || this.getIdentifier() === "OperatorNode:multiply")) {
  27835. if (this.implicit && this.getIdentifier() === "OperatorNode:multiply" && implicit === "hide") {
  27836. return stringifiedArgs.join('<span class="math-operator math-binary-operator math-implicit-binary-operator"></span>');
  27837. }
  27838. return stringifiedArgs.join('<span class="math-operator math-binary-operator math-explicit-binary-operator">' + escape(this.op) + "</span>");
  27839. } else {
  27840. return '<span class="math-function">' + escape(this.fn) + '</span><span class="math-paranthesis math-round-parenthesis">(</span>' + stringifiedArgs.join('<span class="math-separator">,</span>') + '<span class="math-paranthesis math-round-parenthesis">)</span>';
  27841. }
  27842. }
  27843. }
  27844. /**
  27845. * Get LaTeX representation
  27846. * @param {Object} options
  27847. * @return {string} str
  27848. */
  27849. _toTex(options) {
  27850. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  27851. var implicit = options && options.implicit ? options.implicit : "hide";
  27852. var args = this.args;
  27853. var parens = calculateNecessaryParentheses(this, parenthesis, implicit, args, true);
  27854. var op = latexOperators[this.fn];
  27855. op = typeof op === "undefined" ? this.op : op;
  27856. if (args.length === 1) {
  27857. var assoc = getAssociativity(this, parenthesis);
  27858. var operand = args[0].toTex(options);
  27859. if (parens[0]) {
  27860. operand = "\\left(".concat(operand, "\\right)");
  27861. }
  27862. if (assoc === "right") {
  27863. return op + operand;
  27864. } else if (assoc === "left") {
  27865. return operand + op;
  27866. }
  27867. return operand + op;
  27868. } else if (args.length === 2) {
  27869. var lhs = args[0];
  27870. var lhsTex = lhs.toTex(options);
  27871. if (parens[0]) {
  27872. lhsTex = "\\left(".concat(lhsTex, "\\right)");
  27873. }
  27874. var rhs = args[1];
  27875. var rhsTex = rhs.toTex(options);
  27876. if (parens[1]) {
  27877. rhsTex = "\\left(".concat(rhsTex, "\\right)");
  27878. }
  27879. var lhsIdentifier;
  27880. if (parenthesis === "keep") {
  27881. lhsIdentifier = lhs.getIdentifier();
  27882. } else {
  27883. lhsIdentifier = lhs.getContent().getIdentifier();
  27884. }
  27885. switch (this.getIdentifier()) {
  27886. case "OperatorNode:divide":
  27887. return op + "{" + lhsTex + "}{" + rhsTex + "}";
  27888. case "OperatorNode:pow":
  27889. lhsTex = "{" + lhsTex + "}";
  27890. rhsTex = "{" + rhsTex + "}";
  27891. switch (lhsIdentifier) {
  27892. case "ConditionalNode":
  27893. case "OperatorNode:divide":
  27894. lhsTex = "\\left(".concat(lhsTex, "\\right)");
  27895. }
  27896. break;
  27897. case "OperatorNode:multiply":
  27898. if (this.implicit && implicit === "hide") {
  27899. return lhsTex + "~" + rhsTex;
  27900. }
  27901. }
  27902. return lhsTex + op + rhsTex;
  27903. } else if (args.length > 2 && (this.getIdentifier() === "OperatorNode:add" || this.getIdentifier() === "OperatorNode:multiply")) {
  27904. var texifiedArgs = args.map(function(arg2, index2) {
  27905. arg2 = arg2.toTex(options);
  27906. if (parens[index2]) {
  27907. arg2 = "\\left(".concat(arg2, "\\right)");
  27908. }
  27909. return arg2;
  27910. });
  27911. if (this.getIdentifier() === "OperatorNode:multiply" && this.implicit && implicit === "hide") {
  27912. return texifiedArgs.join("~");
  27913. }
  27914. return texifiedArgs.join(op);
  27915. } else {
  27916. return "\\mathrm{" + this.fn + "}\\left(" + args.map(function(arg2) {
  27917. return arg2.toTex(options);
  27918. }).join(",") + "\\right)";
  27919. }
  27920. }
  27921. /**
  27922. * Get identifier.
  27923. * @return {string}
  27924. */
  27925. getIdentifier() {
  27926. return this.type + ":" + this.fn;
  27927. }
  27928. }
  27929. _defineProperty(OperatorNode2, "name", name213);
  27930. return OperatorNode2;
  27931. }, {
  27932. isClass: true,
  27933. isNode: true
  27934. });
  27935. // node_modules/mathjs/lib/esm/expression/node/ParenthesisNode.js
  27936. var name214 = "ParenthesisNode";
  27937. var dependencies214 = ["Node"];
  27938. var createParenthesisNode = factory(name214, dependencies214, (_ref) => {
  27939. var {
  27940. Node: Node2
  27941. } = _ref;
  27942. class ParenthesisNode2 extends Node2 {
  27943. /**
  27944. * @constructor ParenthesisNode
  27945. * @extends {Node}
  27946. * A parenthesis node describes manual parenthesis from the user input
  27947. * @param {Node} content
  27948. * @extends {Node}
  27949. */
  27950. constructor(content) {
  27951. super();
  27952. if (!isNode(content)) {
  27953. throw new TypeError('Node expected for parameter "content"');
  27954. }
  27955. this.content = content;
  27956. }
  27957. get type() {
  27958. return name214;
  27959. }
  27960. get isParenthesisNode() {
  27961. return true;
  27962. }
  27963. /**
  27964. * Compile a node into a JavaScript function.
  27965. * This basically pre-calculates as much as possible and only leaves open
  27966. * calculations which depend on a dynamic scope with variables.
  27967. * @param {Object} math Math.js namespace with functions and constants.
  27968. * @param {Object} argNames An object with argument names as key and `true`
  27969. * as value. Used in the SymbolNode to optimize
  27970. * for arguments from user assigned functions
  27971. * (see FunctionAssignmentNode) or special symbols
  27972. * like `end` (see IndexNode).
  27973. * @return {function} Returns a function which can be called like:
  27974. * evalNode(scope: Object, args: Object, context: *)
  27975. */
  27976. _compile(math2, argNames) {
  27977. return this.content._compile(math2, argNames);
  27978. }
  27979. /**
  27980. * Get the content of the current Node.
  27981. * @return {Node} content
  27982. * @override
  27983. **/
  27984. getContent() {
  27985. return this.content.getContent();
  27986. }
  27987. /**
  27988. * Execute a callback for each of the child nodes of this node
  27989. * @param {function(child: Node, path: string, parent: Node)} callback
  27990. */
  27991. forEach(callback) {
  27992. callback(this.content, "content", this);
  27993. }
  27994. /**
  27995. * Create a new ParenthesisNode whose child is the result of calling
  27996. * the provided callback function on the child of this node.
  27997. * @param {function(child: Node, path: string, parent: Node) : Node} callback
  27998. * @returns {ParenthesisNode} Returns a clone of the node
  27999. */
  28000. map(callback) {
  28001. var content = callback(this.content, "content", this);
  28002. return new ParenthesisNode2(content);
  28003. }
  28004. /**
  28005. * Create a clone of this node, a shallow copy
  28006. * @return {ParenthesisNode}
  28007. */
  28008. clone() {
  28009. return new ParenthesisNode2(this.content);
  28010. }
  28011. /**
  28012. * Get string representation
  28013. * @param {Object} options
  28014. * @return {string} str
  28015. * @override
  28016. */
  28017. _toString(options) {
  28018. if (!options || options && !options.parenthesis || options && options.parenthesis === "keep") {
  28019. return "(" + this.content.toString(options) + ")";
  28020. }
  28021. return this.content.toString(options);
  28022. }
  28023. /**
  28024. * Get a JSON representation of the node
  28025. * @returns {Object}
  28026. */
  28027. toJSON() {
  28028. return {
  28029. mathjs: name214,
  28030. content: this.content
  28031. };
  28032. }
  28033. /**
  28034. * Instantiate an ParenthesisNode from its JSON representation
  28035. * @param {Object} json An object structured like
  28036. * `{"mathjs": "ParenthesisNode", "content": ...}`,
  28037. * where mathjs is optional
  28038. * @returns {ParenthesisNode}
  28039. */
  28040. static fromJSON(json) {
  28041. return new ParenthesisNode2(json.content);
  28042. }
  28043. /**
  28044. * Get HTML representation
  28045. * @param {Object} options
  28046. * @return {string} str
  28047. * @override
  28048. */
  28049. toHTML(options) {
  28050. if (!options || options && !options.parenthesis || options && options.parenthesis === "keep") {
  28051. return '<span class="math-parenthesis math-round-parenthesis">(</span>' + this.content.toHTML(options) + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  28052. }
  28053. return this.content.toHTML(options);
  28054. }
  28055. /**
  28056. * Get LaTeX representation
  28057. * @param {Object} options
  28058. * @return {string} str
  28059. * @override
  28060. */
  28061. _toTex(options) {
  28062. if (!options || options && !options.parenthesis || options && options.parenthesis === "keep") {
  28063. return "\\left(".concat(this.content.toTex(options), "\\right)");
  28064. }
  28065. return this.content.toTex(options);
  28066. }
  28067. }
  28068. _defineProperty(ParenthesisNode2, "name", name214);
  28069. return ParenthesisNode2;
  28070. }, {
  28071. isClass: true,
  28072. isNode: true
  28073. });
  28074. // node_modules/mathjs/lib/esm/expression/node/RangeNode.js
  28075. var name215 = "RangeNode";
  28076. var dependencies215 = ["Node"];
  28077. var createRangeNode = factory(name215, dependencies215, (_ref) => {
  28078. var {
  28079. Node: Node2
  28080. } = _ref;
  28081. function calculateNecessaryParentheses(node, parenthesis, implicit) {
  28082. var precedence = getPrecedence(node, parenthesis, implicit);
  28083. var parens = {};
  28084. var startPrecedence = getPrecedence(node.start, parenthesis, implicit);
  28085. parens.start = startPrecedence !== null && startPrecedence <= precedence || parenthesis === "all";
  28086. if (node.step) {
  28087. var stepPrecedence = getPrecedence(node.step, parenthesis, implicit);
  28088. parens.step = stepPrecedence !== null && stepPrecedence <= precedence || parenthesis === "all";
  28089. }
  28090. var endPrecedence = getPrecedence(node.end, parenthesis, implicit);
  28091. parens.end = endPrecedence !== null && endPrecedence <= precedence || parenthesis === "all";
  28092. return parens;
  28093. }
  28094. class RangeNode2 extends Node2 {
  28095. /**
  28096. * @constructor RangeNode
  28097. * @extends {Node}
  28098. * create a range
  28099. * @param {Node} start included lower-bound
  28100. * @param {Node} end included upper-bound
  28101. * @param {Node} [step] optional step
  28102. */
  28103. constructor(start, end, step) {
  28104. super();
  28105. if (!isNode(start))
  28106. throw new TypeError("Node expected");
  28107. if (!isNode(end))
  28108. throw new TypeError("Node expected");
  28109. if (step && !isNode(step))
  28110. throw new TypeError("Node expected");
  28111. if (arguments.length > 3)
  28112. throw new Error("Too many arguments");
  28113. this.start = start;
  28114. this.end = end;
  28115. this.step = step || null;
  28116. }
  28117. get type() {
  28118. return name215;
  28119. }
  28120. get isRangeNode() {
  28121. return true;
  28122. }
  28123. /**
  28124. * Check whether the RangeNode needs the `end` symbol to be defined.
  28125. * This end is the size of the Matrix in current dimension.
  28126. * @return {boolean}
  28127. */
  28128. needsEnd() {
  28129. var endSymbols = this.filter(function(node) {
  28130. return isSymbolNode(node) && node.name === "end";
  28131. });
  28132. return endSymbols.length > 0;
  28133. }
  28134. /**
  28135. * Compile a node into a JavaScript function.
  28136. * This basically pre-calculates as much as possible and only leaves open
  28137. * calculations which depend on a dynamic scope with variables.
  28138. * @param {Object} math Math.js namespace with functions and constants.
  28139. * @param {Object} argNames An object with argument names as key and `true`
  28140. * as value. Used in the SymbolNode to optimize
  28141. * for arguments from user assigned functions
  28142. * (see FunctionAssignmentNode) or special symbols
  28143. * like `end` (see IndexNode).
  28144. * @return {function} Returns a function which can be called like:
  28145. * evalNode(scope: Object, args: Object, context: *)
  28146. */
  28147. _compile(math2, argNames) {
  28148. var range2 = math2.range;
  28149. var evalStart = this.start._compile(math2, argNames);
  28150. var evalEnd = this.end._compile(math2, argNames);
  28151. if (this.step) {
  28152. var evalStep = this.step._compile(math2, argNames);
  28153. return function evalRangeNode(scope, args, context) {
  28154. return range2(evalStart(scope, args, context), evalEnd(scope, args, context), evalStep(scope, args, context));
  28155. };
  28156. } else {
  28157. return function evalRangeNode(scope, args, context) {
  28158. return range2(evalStart(scope, args, context), evalEnd(scope, args, context));
  28159. };
  28160. }
  28161. }
  28162. /**
  28163. * Execute a callback for each of the child nodes of this node
  28164. * @param {function(child: Node, path: string, parent: Node)} callback
  28165. */
  28166. forEach(callback) {
  28167. callback(this.start, "start", this);
  28168. callback(this.end, "end", this);
  28169. if (this.step) {
  28170. callback(this.step, "step", this);
  28171. }
  28172. }
  28173. /**
  28174. * Create a new RangeNode whose children are the results of calling
  28175. * the provided callback function for each child of the original node.
  28176. * @param {function(child: Node, path: string, parent: Node): Node} callback
  28177. * @returns {RangeNode} Returns a transformed copy of the node
  28178. */
  28179. map(callback) {
  28180. return new RangeNode2(this._ifNode(callback(this.start, "start", this)), this._ifNode(callback(this.end, "end", this)), this.step && this._ifNode(callback(this.step, "step", this)));
  28181. }
  28182. /**
  28183. * Create a clone of this node, a shallow copy
  28184. * @return {RangeNode}
  28185. */
  28186. clone() {
  28187. return new RangeNode2(this.start, this.end, this.step && this.step);
  28188. }
  28189. /**
  28190. * Get string representation
  28191. * @param {Object} options
  28192. * @return {string} str
  28193. */
  28194. _toString(options) {
  28195. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28196. var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit);
  28197. var str;
  28198. var start = this.start.toString(options);
  28199. if (parens.start) {
  28200. start = "(" + start + ")";
  28201. }
  28202. str = start;
  28203. if (this.step) {
  28204. var step = this.step.toString(options);
  28205. if (parens.step) {
  28206. step = "(" + step + ")";
  28207. }
  28208. str += ":" + step;
  28209. }
  28210. var end = this.end.toString(options);
  28211. if (parens.end) {
  28212. end = "(" + end + ")";
  28213. }
  28214. str += ":" + end;
  28215. return str;
  28216. }
  28217. /**
  28218. * Get a JSON representation of the node
  28219. * @returns {Object}
  28220. */
  28221. toJSON() {
  28222. return {
  28223. mathjs: name215,
  28224. start: this.start,
  28225. end: this.end,
  28226. step: this.step
  28227. };
  28228. }
  28229. /**
  28230. * Instantiate an RangeNode from its JSON representation
  28231. * @param {Object} json
  28232. * An object structured like
  28233. * `{"mathjs": "RangeNode", "start": ..., "end": ..., "step": ...}`,
  28234. * where mathjs is optional
  28235. * @returns {RangeNode}
  28236. */
  28237. static fromJSON(json) {
  28238. return new RangeNode2(json.start, json.end, json.step);
  28239. }
  28240. /**
  28241. * Get HTML representation
  28242. * @param {Object} options
  28243. * @return {string} str
  28244. */
  28245. toHTML(options) {
  28246. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28247. var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit);
  28248. var str;
  28249. var start = this.start.toHTML(options);
  28250. if (parens.start) {
  28251. start = '<span class="math-parenthesis math-round-parenthesis">(</span>' + start + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  28252. }
  28253. str = start;
  28254. if (this.step) {
  28255. var step = this.step.toHTML(options);
  28256. if (parens.step) {
  28257. step = '<span class="math-parenthesis math-round-parenthesis">(</span>' + step + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  28258. }
  28259. str += '<span class="math-operator math-range-operator">:</span>' + step;
  28260. }
  28261. var end = this.end.toHTML(options);
  28262. if (parens.end) {
  28263. end = '<span class="math-parenthesis math-round-parenthesis">(</span>' + end + '<span class="math-parenthesis math-round-parenthesis">)</span>';
  28264. }
  28265. str += '<span class="math-operator math-range-operator">:</span>' + end;
  28266. return str;
  28267. }
  28268. /**
  28269. * Get LaTeX representation
  28270. * @params {Object} options
  28271. * @return {string} str
  28272. */
  28273. _toTex(options) {
  28274. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28275. var parens = calculateNecessaryParentheses(this, parenthesis, options && options.implicit);
  28276. var str = this.start.toTex(options);
  28277. if (parens.start) {
  28278. str = "\\left(".concat(str, "\\right)");
  28279. }
  28280. if (this.step) {
  28281. var step = this.step.toTex(options);
  28282. if (parens.step) {
  28283. step = "\\left(".concat(step, "\\right)");
  28284. }
  28285. str += ":" + step;
  28286. }
  28287. var end = this.end.toTex(options);
  28288. if (parens.end) {
  28289. end = "\\left(".concat(end, "\\right)");
  28290. }
  28291. str += ":" + end;
  28292. return str;
  28293. }
  28294. }
  28295. _defineProperty(RangeNode2, "name", name215);
  28296. return RangeNode2;
  28297. }, {
  28298. isClass: true,
  28299. isNode: true
  28300. });
  28301. // node_modules/mathjs/lib/esm/expression/node/RelationalNode.js
  28302. var name216 = "RelationalNode";
  28303. var dependencies216 = ["Node"];
  28304. var createRelationalNode = factory(name216, dependencies216, (_ref) => {
  28305. var {
  28306. Node: Node2
  28307. } = _ref;
  28308. var operatorMap = {
  28309. equal: "==",
  28310. unequal: "!=",
  28311. smaller: "<",
  28312. larger: ">",
  28313. smallerEq: "<=",
  28314. largerEq: ">="
  28315. };
  28316. class RelationalNode2 extends Node2 {
  28317. /**
  28318. * A node representing a chained conditional expression, such as 'x > y > z'
  28319. *
  28320. * @param {String[]} conditionals
  28321. * An array of conditional operators used to compare the parameters
  28322. * @param {Node[]} params
  28323. * The parameters that will be compared
  28324. *
  28325. * @constructor RelationalNode
  28326. * @extends {Node}
  28327. */
  28328. constructor(conditionals, params) {
  28329. super();
  28330. if (!Array.isArray(conditionals)) {
  28331. throw new TypeError("Parameter conditionals must be an array");
  28332. }
  28333. if (!Array.isArray(params)) {
  28334. throw new TypeError("Parameter params must be an array");
  28335. }
  28336. if (conditionals.length !== params.length - 1) {
  28337. throw new TypeError("Parameter params must contain exactly one more element than parameter conditionals");
  28338. }
  28339. this.conditionals = conditionals;
  28340. this.params = params;
  28341. }
  28342. get type() {
  28343. return name216;
  28344. }
  28345. get isRelationalNode() {
  28346. return true;
  28347. }
  28348. /**
  28349. * Compile a node into a JavaScript function.
  28350. * This basically pre-calculates as much as possible and only leaves open
  28351. * calculations which depend on a dynamic scope with variables.
  28352. * @param {Object} math Math.js namespace with functions and constants.
  28353. * @param {Object} argNames An object with argument names as key and `true`
  28354. * as value. Used in the SymbolNode to optimize
  28355. * for arguments from user assigned functions
  28356. * (see FunctionAssignmentNode) or special symbols
  28357. * like `end` (see IndexNode).
  28358. * @return {function} Returns a function which can be called like:
  28359. * evalNode(scope: Object, args: Object, context: *)
  28360. */
  28361. _compile(math2, argNames) {
  28362. var self2 = this;
  28363. var compiled = this.params.map((p) => p._compile(math2, argNames));
  28364. return function evalRelationalNode(scope, args, context) {
  28365. var evalLhs;
  28366. var evalRhs = compiled[0](scope, args, context);
  28367. for (var i2 = 0; i2 < self2.conditionals.length; i2++) {
  28368. evalLhs = evalRhs;
  28369. evalRhs = compiled[i2 + 1](scope, args, context);
  28370. var condFn = getSafeProperty(math2, self2.conditionals[i2]);
  28371. if (!condFn(evalLhs, evalRhs)) {
  28372. return false;
  28373. }
  28374. }
  28375. return true;
  28376. };
  28377. }
  28378. /**
  28379. * Execute a callback for each of the child nodes of this node
  28380. * @param {function(child: Node, path: string, parent: Node)} callback
  28381. */
  28382. forEach(callback) {
  28383. this.params.forEach((n, i2) => callback(n, "params[" + i2 + "]", this), this);
  28384. }
  28385. /**
  28386. * Create a new RelationalNode whose children are the results of calling
  28387. * the provided callback function for each child of the original node.
  28388. * @param {function(child: Node, path: string, parent: Node): Node} callback
  28389. * @returns {RelationalNode} Returns a transformed copy of the node
  28390. */
  28391. map(callback) {
  28392. return new RelationalNode2(this.conditionals.slice(), this.params.map((n, i2) => this._ifNode(callback(n, "params[" + i2 + "]", this)), this));
  28393. }
  28394. /**
  28395. * Create a clone of this node, a shallow copy
  28396. * @return {RelationalNode}
  28397. */
  28398. clone() {
  28399. return new RelationalNode2(this.conditionals, this.params);
  28400. }
  28401. /**
  28402. * Get string representation.
  28403. * @param {Object} options
  28404. * @return {string} str
  28405. */
  28406. _toString(options) {
  28407. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28408. var precedence = getPrecedence(this, parenthesis, options && options.implicit);
  28409. var paramStrings = this.params.map(function(p, index2) {
  28410. var paramPrecedence = getPrecedence(p, parenthesis, options && options.implicit);
  28411. return parenthesis === "all" || paramPrecedence !== null && paramPrecedence <= precedence ? "(" + p.toString(options) + ")" : p.toString(options);
  28412. });
  28413. var ret = paramStrings[0];
  28414. for (var i2 = 0; i2 < this.conditionals.length; i2++) {
  28415. ret += " " + operatorMap[this.conditionals[i2]];
  28416. ret += " " + paramStrings[i2 + 1];
  28417. }
  28418. return ret;
  28419. }
  28420. /**
  28421. * Get a JSON representation of the node
  28422. * @returns {Object}
  28423. */
  28424. toJSON() {
  28425. return {
  28426. mathjs: name216,
  28427. conditionals: this.conditionals,
  28428. params: this.params
  28429. };
  28430. }
  28431. /**
  28432. * Instantiate a RelationalNode from its JSON representation
  28433. * @param {Object} json
  28434. * An object structured like
  28435. * `{"mathjs": "RelationalNode", "conditionals": ..., "params": ...}`,
  28436. * where mathjs is optional
  28437. * @returns {RelationalNode}
  28438. */
  28439. static fromJSON(json) {
  28440. return new RelationalNode2(json.conditionals, json.params);
  28441. }
  28442. /**
  28443. * Get HTML representation
  28444. * @param {Object} options
  28445. * @return {string} str
  28446. */
  28447. toHTML(options) {
  28448. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28449. var precedence = getPrecedence(this, parenthesis, options && options.implicit);
  28450. var paramStrings = this.params.map(function(p, index2) {
  28451. var paramPrecedence = getPrecedence(p, parenthesis, options && options.implicit);
  28452. return parenthesis === "all" || paramPrecedence !== null && paramPrecedence <= precedence ? '<span class="math-parenthesis math-round-parenthesis">(</span>' + p.toHTML(options) + '<span class="math-parenthesis math-round-parenthesis">)</span>' : p.toHTML(options);
  28453. });
  28454. var ret = paramStrings[0];
  28455. for (var i2 = 0; i2 < this.conditionals.length; i2++) {
  28456. ret += '<span class="math-operator math-binary-operator math-explicit-binary-operator">' + escape(operatorMap[this.conditionals[i2]]) + "</span>" + paramStrings[i2 + 1];
  28457. }
  28458. return ret;
  28459. }
  28460. /**
  28461. * Get LaTeX representation
  28462. * @param {Object} options
  28463. * @return {string} str
  28464. */
  28465. _toTex(options) {
  28466. var parenthesis = options && options.parenthesis ? options.parenthesis : "keep";
  28467. var precedence = getPrecedence(this, parenthesis, options && options.implicit);
  28468. var paramStrings = this.params.map(function(p, index2) {
  28469. var paramPrecedence = getPrecedence(p, parenthesis, options && options.implicit);
  28470. return parenthesis === "all" || paramPrecedence !== null && paramPrecedence <= precedence ? "\\left(" + p.toTex(options) + "\right)" : p.toTex(options);
  28471. });
  28472. var ret = paramStrings[0];
  28473. for (var i2 = 0; i2 < this.conditionals.length; i2++) {
  28474. ret += latexOperators[this.conditionals[i2]] + paramStrings[i2 + 1];
  28475. }
  28476. return ret;
  28477. }
  28478. }
  28479. _defineProperty(RelationalNode2, "name", name216);
  28480. return RelationalNode2;
  28481. }, {
  28482. isClass: true,
  28483. isNode: true
  28484. });
  28485. // node_modules/mathjs/lib/esm/expression/node/SymbolNode.js
  28486. var name217 = "SymbolNode";
  28487. var dependencies217 = ["math", "?Unit", "Node"];
  28488. var createSymbolNode = factory(name217, dependencies217, (_ref) => {
  28489. var {
  28490. math: math2,
  28491. Unit: Unit2,
  28492. Node: Node2
  28493. } = _ref;
  28494. function isValuelessUnit(name302) {
  28495. return Unit2 ? Unit2.isValuelessUnit(name302) : false;
  28496. }
  28497. class SymbolNode2 extends Node2 {
  28498. /**
  28499. * @constructor SymbolNode
  28500. * @extends {Node}
  28501. * A symbol node can hold and resolve a symbol
  28502. * @param {string} name
  28503. * @extends {Node}
  28504. */
  28505. constructor(name302) {
  28506. super();
  28507. if (typeof name302 !== "string") {
  28508. throw new TypeError('String expected for parameter "name"');
  28509. }
  28510. this.name = name302;
  28511. }
  28512. get type() {
  28513. return "SymbolNode";
  28514. }
  28515. get isSymbolNode() {
  28516. return true;
  28517. }
  28518. /**
  28519. * Compile a node into a JavaScript function.
  28520. * This basically pre-calculates as much as possible and only leaves open
  28521. * calculations which depend on a dynamic scope with variables.
  28522. * @param {Object} math Math.js namespace with functions and constants.
  28523. * @param {Object} argNames An object with argument names as key and `true`
  28524. * as value. Used in the SymbolNode to optimize
  28525. * for arguments from user assigned functions
  28526. * (see FunctionAssignmentNode) or special symbols
  28527. * like `end` (see IndexNode).
  28528. * @return {function} Returns a function which can be called like:
  28529. * evalNode(scope: Object, args: Object, context: *)
  28530. */
  28531. _compile(math3, argNames) {
  28532. var name302 = this.name;
  28533. if (argNames[name302] === true) {
  28534. return function(scope, args, context) {
  28535. return args[name302];
  28536. };
  28537. } else if (name302 in math3) {
  28538. return function(scope, args, context) {
  28539. return scope.has(name302) ? scope.get(name302) : getSafeProperty(math3, name302);
  28540. };
  28541. } else {
  28542. var isUnit2 = isValuelessUnit(name302);
  28543. return function(scope, args, context) {
  28544. return scope.has(name302) ? scope.get(name302) : isUnit2 ? new Unit2(null, name302) : SymbolNode2.onUndefinedSymbol(name302);
  28545. };
  28546. }
  28547. }
  28548. /**
  28549. * Execute a callback for each of the child nodes of this node
  28550. * @param {function(child: Node, path: string, parent: Node)} callback
  28551. */
  28552. forEach(callback) {
  28553. }
  28554. /**
  28555. * Create a new SymbolNode with children produced by the given callback.
  28556. * Trivial since a SymbolNode has no children
  28557. * @param {function(child: Node, path: string, parent: Node) : Node} callback
  28558. * @returns {SymbolNode} Returns a clone of the node
  28559. */
  28560. map(callback) {
  28561. return this.clone();
  28562. }
  28563. /**
  28564. * Throws an error 'Undefined symbol {name}'
  28565. * @param {string} name
  28566. */
  28567. static onUndefinedSymbol(name302) {
  28568. throw new Error("Undefined symbol " + name302);
  28569. }
  28570. /**
  28571. * Create a clone of this node, a shallow copy
  28572. * @return {SymbolNode}
  28573. */
  28574. clone() {
  28575. return new SymbolNode2(this.name);
  28576. }
  28577. /**
  28578. * Get string representation
  28579. * @param {Object} options
  28580. * @return {string} str
  28581. * @override
  28582. */
  28583. _toString(options) {
  28584. return this.name;
  28585. }
  28586. /**
  28587. * Get HTML representation
  28588. * @param {Object} options
  28589. * @return {string} str
  28590. * @override
  28591. */
  28592. toHTML(options) {
  28593. var name302 = escape(this.name);
  28594. if (name302 === "true" || name302 === "false") {
  28595. return '<span class="math-symbol math-boolean">' + name302 + "</span>";
  28596. } else if (name302 === "i") {
  28597. return '<span class="math-symbol math-imaginary-symbol">' + name302 + "</span>";
  28598. } else if (name302 === "Infinity") {
  28599. return '<span class="math-symbol math-infinity-symbol">' + name302 + "</span>";
  28600. } else if (name302 === "NaN") {
  28601. return '<span class="math-symbol math-nan-symbol">' + name302 + "</span>";
  28602. } else if (name302 === "null") {
  28603. return '<span class="math-symbol math-null-symbol">' + name302 + "</span>";
  28604. } else if (name302 === "undefined") {
  28605. return '<span class="math-symbol math-undefined-symbol">' + name302 + "</span>";
  28606. }
  28607. return '<span class="math-symbol">' + name302 + "</span>";
  28608. }
  28609. /**
  28610. * Get a JSON representation of the node
  28611. * @returns {Object}
  28612. */
  28613. toJSON() {
  28614. return {
  28615. mathjs: "SymbolNode",
  28616. name: this.name
  28617. };
  28618. }
  28619. /**
  28620. * Instantiate a SymbolNode from its JSON representation
  28621. * @param {Object} json An object structured like
  28622. * `{"mathjs": "SymbolNode", name: "x"}`,
  28623. * where mathjs is optional
  28624. * @returns {SymbolNode}
  28625. */
  28626. static fromJSON(json) {
  28627. return new SymbolNode2(json.name);
  28628. }
  28629. /**
  28630. * Get LaTeX representation
  28631. * @param {Object} options
  28632. * @return {string} str
  28633. * @override
  28634. */
  28635. _toTex(options) {
  28636. var isUnit2 = false;
  28637. if (typeof math2[this.name] === "undefined" && isValuelessUnit(this.name)) {
  28638. isUnit2 = true;
  28639. }
  28640. var symbol = toSymbol(this.name, isUnit2);
  28641. if (symbol[0] === "\\") {
  28642. return symbol;
  28643. }
  28644. return " " + symbol;
  28645. }
  28646. }
  28647. return SymbolNode2;
  28648. }, {
  28649. isClass: true,
  28650. isNode: true
  28651. });
  28652. // node_modules/mathjs/lib/esm/utils/scope.js
  28653. function createSubScope(parentScope) {
  28654. for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  28655. args[_key - 1] = arguments[_key];
  28656. }
  28657. if (typeof parentScope.createSubScope === "function") {
  28658. return assign(parentScope.createSubScope(), ...args);
  28659. }
  28660. return assign(createEmptyMap(), parentScope, ...args);
  28661. }
  28662. // node_modules/mathjs/lib/esm/expression/node/FunctionNode.js
  28663. var name218 = "FunctionNode";
  28664. var dependencies218 = ["math", "Node", "SymbolNode"];
  28665. var createFunctionNode = factory(name218, dependencies218, (_ref) => {
  28666. var {
  28667. math: math2,
  28668. Node: Node2,
  28669. SymbolNode: SymbolNode2
  28670. } = _ref;
  28671. var strin = (entity) => format3(entity, {
  28672. truncate: 78
  28673. });
  28674. function expandTemplate(template, node, options) {
  28675. var latex = "";
  28676. var regex = /\$(?:\{([a-z_][a-z_0-9]*)(?:\[([0-9]+)\])?\}|\$)/gi;
  28677. var inputPos = 0;
  28678. var match;
  28679. while ((match = regex.exec(template)) !== null) {
  28680. latex += template.substring(inputPos, match.index);
  28681. inputPos = match.index;
  28682. if (match[0] === "$$") {
  28683. latex += "$";
  28684. inputPos++;
  28685. } else {
  28686. inputPos += match[0].length;
  28687. var property = node[match[1]];
  28688. if (!property) {
  28689. throw new ReferenceError("Template: Property " + match[1] + " does not exist.");
  28690. }
  28691. if (match[2] === void 0) {
  28692. switch (typeof property) {
  28693. case "string":
  28694. latex += property;
  28695. break;
  28696. case "object":
  28697. if (isNode(property)) {
  28698. latex += property.toTex(options);
  28699. } else if (Array.isArray(property)) {
  28700. latex += property.map(function(arg2, index2) {
  28701. if (isNode(arg2)) {
  28702. return arg2.toTex(options);
  28703. }
  28704. throw new TypeError("Template: " + match[1] + "[" + index2 + "] is not a Node.");
  28705. }).join(",");
  28706. } else {
  28707. throw new TypeError("Template: " + match[1] + " has to be a Node, String or array of Nodes");
  28708. }
  28709. break;
  28710. default:
  28711. throw new TypeError("Template: " + match[1] + " has to be a Node, String or array of Nodes");
  28712. }
  28713. } else {
  28714. if (isNode(property[match[2]] && property[match[2]])) {
  28715. latex += property[match[2]].toTex(options);
  28716. } else {
  28717. throw new TypeError("Template: " + match[1] + "[" + match[2] + "] is not a Node.");
  28718. }
  28719. }
  28720. }
  28721. }
  28722. latex += template.slice(inputPos);
  28723. return latex;
  28724. }
  28725. class FunctionNode2 extends Node2 {
  28726. /**
  28727. * @constructor FunctionNode
  28728. * @extends {./Node}
  28729. * invoke a list with arguments on a node
  28730. * @param {./Node | string} fn
  28731. * Item resolving to a function on which to invoke
  28732. * the arguments, typically a SymboNode or AccessorNode
  28733. * @param {./Node[]} args
  28734. */
  28735. constructor(fn, args) {
  28736. super();
  28737. if (typeof fn === "string") {
  28738. fn = new SymbolNode2(fn);
  28739. }
  28740. if (!isNode(fn))
  28741. throw new TypeError('Node expected as parameter "fn"');
  28742. if (!Array.isArray(args) || !args.every(isNode)) {
  28743. throw new TypeError('Array containing Nodes expected for parameter "args"');
  28744. }
  28745. this.fn = fn;
  28746. this.args = args || [];
  28747. }
  28748. // readonly property name
  28749. get name() {
  28750. return this.fn.name || "";
  28751. }
  28752. get type() {
  28753. return name218;
  28754. }
  28755. get isFunctionNode() {
  28756. return true;
  28757. }
  28758. /**
  28759. * Compile a node into a JavaScript function.
  28760. * This basically pre-calculates as much as possible and only leaves open
  28761. * calculations which depend on a dynamic scope with variables.
  28762. * @param {Object} math Math.js namespace with functions and constants.
  28763. * @param {Object} argNames An object with argument names as key and `true`
  28764. * as value. Used in the SymbolNode to optimize
  28765. * for arguments from user assigned functions
  28766. * (see FunctionAssignmentNode) or special symbols
  28767. * like `end` (see IndexNode).
  28768. * @return {function} Returns a function which can be called like:
  28769. * evalNode(scope: Object, args: Object, context: *)
  28770. */
  28771. _compile(math3, argNames) {
  28772. var evalArgs = this.args.map((arg2) => arg2._compile(math3, argNames));
  28773. if (isSymbolNode(this.fn)) {
  28774. var _name = this.fn.name;
  28775. if (!argNames[_name]) {
  28776. var fn = _name in math3 ? getSafeProperty(math3, _name) : void 0;
  28777. var isRaw = typeof fn === "function" && fn.rawArgs === true;
  28778. var resolveFn = (scope) => {
  28779. var value;
  28780. if (scope.has(_name)) {
  28781. value = scope.get(_name);
  28782. } else if (_name in math3) {
  28783. value = getSafeProperty(math3, _name);
  28784. } else {
  28785. return FunctionNode2.onUndefinedFunction(_name);
  28786. }
  28787. if (typeof value === "function") {
  28788. return value;
  28789. }
  28790. throw new TypeError("'".concat(_name, "' is not a function; its value is:\n ").concat(strin(value)));
  28791. };
  28792. if (isRaw) {
  28793. var rawArgs = this.args;
  28794. return function evalFunctionNode(scope, args, context) {
  28795. var fn2 = resolveFn(scope);
  28796. return fn2(rawArgs, math3, createSubScope(scope, args), scope);
  28797. };
  28798. } else {
  28799. switch (evalArgs.length) {
  28800. case 0:
  28801. return function evalFunctionNode(scope, args, context) {
  28802. var fn2 = resolveFn(scope);
  28803. return fn2();
  28804. };
  28805. case 1:
  28806. return function evalFunctionNode(scope, args, context) {
  28807. var fn2 = resolveFn(scope);
  28808. var evalArg0 = evalArgs[0];
  28809. return fn2(evalArg0(scope, args, context));
  28810. };
  28811. case 2:
  28812. return function evalFunctionNode(scope, args, context) {
  28813. var fn2 = resolveFn(scope);
  28814. var evalArg0 = evalArgs[0];
  28815. var evalArg1 = evalArgs[1];
  28816. return fn2(evalArg0(scope, args, context), evalArg1(scope, args, context));
  28817. };
  28818. default:
  28819. return function evalFunctionNode(scope, args, context) {
  28820. var fn2 = resolveFn(scope);
  28821. var values2 = evalArgs.map((evalArg) => evalArg(scope, args, context));
  28822. return fn2(...values2);
  28823. };
  28824. }
  28825. }
  28826. } else {
  28827. var _rawArgs = this.args;
  28828. return function evalFunctionNode(scope, args, context) {
  28829. var fn2 = args[_name];
  28830. if (typeof fn2 !== "function") {
  28831. throw new TypeError("Argument '".concat(_name, "' was not a function; received: ").concat(strin(fn2)));
  28832. }
  28833. if (fn2.rawArgs) {
  28834. return fn2(_rawArgs, math3, createSubScope(scope, args), scope);
  28835. } else {
  28836. var values2 = evalArgs.map((evalArg) => evalArg(scope, args, context));
  28837. return fn2.apply(fn2, values2);
  28838. }
  28839. };
  28840. }
  28841. } else if (isAccessorNode(this.fn) && isIndexNode(this.fn.index) && this.fn.index.isObjectProperty()) {
  28842. var evalObject = this.fn.object._compile(math3, argNames);
  28843. var prop = this.fn.index.getObjectProperty();
  28844. var _rawArgs2 = this.args;
  28845. return function evalFunctionNode(scope, args, context) {
  28846. var object = evalObject(scope, args, context);
  28847. validateSafeMethod(object, prop);
  28848. var isRaw2 = object[prop] && object[prop].rawArgs;
  28849. if (isRaw2) {
  28850. return object[prop](_rawArgs2, math3, createSubScope(scope, args), scope);
  28851. } else {
  28852. var values2 = evalArgs.map((evalArg) => evalArg(scope, args, context));
  28853. return object[prop].apply(object, values2);
  28854. }
  28855. };
  28856. } else {
  28857. var fnExpr = this.fn.toString();
  28858. var evalFn = this.fn._compile(math3, argNames);
  28859. var _rawArgs3 = this.args;
  28860. return function evalFunctionNode(scope, args, context) {
  28861. var fn2 = evalFn(scope, args, context);
  28862. if (typeof fn2 !== "function") {
  28863. throw new TypeError("Expression '".concat(fnExpr, "' did not evaluate to a function; value is:") + "\n ".concat(strin(fn2)));
  28864. }
  28865. if (fn2.rawArgs) {
  28866. return fn2(_rawArgs3, math3, createSubScope(scope, args), scope);
  28867. } else {
  28868. var values2 = evalArgs.map((evalArg) => evalArg(scope, args, context));
  28869. return fn2.apply(fn2, values2);
  28870. }
  28871. };
  28872. }
  28873. }
  28874. /**
  28875. * Execute a callback for each of the child nodes of this node
  28876. * @param {function(child: Node, path: string, parent: Node)} callback
  28877. */
  28878. forEach(callback) {
  28879. callback(this.fn, "fn", this);
  28880. for (var i2 = 0; i2 < this.args.length; i2++) {
  28881. callback(this.args[i2], "args[" + i2 + "]", this);
  28882. }
  28883. }
  28884. /**
  28885. * Create a new FunctionNode whose children are the results of calling
  28886. * the provided callback function for each child of the original node.
  28887. * @param {function(child: Node, path: string, parent: Node): Node} callback
  28888. * @returns {FunctionNode} Returns a transformed copy of the node
  28889. */
  28890. map(callback) {
  28891. var fn = this._ifNode(callback(this.fn, "fn", this));
  28892. var args = [];
  28893. for (var i2 = 0; i2 < this.args.length; i2++) {
  28894. args[i2] = this._ifNode(callback(this.args[i2], "args[" + i2 + "]", this));
  28895. }
  28896. return new FunctionNode2(fn, args);
  28897. }
  28898. /**
  28899. * Create a clone of this node, a shallow copy
  28900. * @return {FunctionNode}
  28901. */
  28902. clone() {
  28903. return new FunctionNode2(this.fn, this.args.slice(0));
  28904. }
  28905. /**
  28906. * Throws an error 'Undefined function {name}'
  28907. * @param {string} name
  28908. */
  28909. /**
  28910. * Get string representation. (wrapper function)
  28911. * This overrides parts of Node's toString function.
  28912. * If callback is an object containing callbacks, it
  28913. * calls the correct callback for the current node,
  28914. * otherwise it falls back to calling Node's toString
  28915. * function.
  28916. *
  28917. * @param {Object} options
  28918. * @return {string} str
  28919. * @override
  28920. */
  28921. toString(options) {
  28922. var customString;
  28923. var name302 = this.fn.toString(options);
  28924. if (options && typeof options.handler === "object" && hasOwnProperty2(options.handler, name302)) {
  28925. customString = options.handler[name302](this, options);
  28926. }
  28927. if (typeof customString !== "undefined") {
  28928. return customString;
  28929. }
  28930. return super.toString(options);
  28931. }
  28932. /**
  28933. * Get string representation
  28934. * @param {Object} options
  28935. * @return {string} str
  28936. */
  28937. _toString(options) {
  28938. var args = this.args.map(function(arg2) {
  28939. return arg2.toString(options);
  28940. });
  28941. var fn = isFunctionAssignmentNode(this.fn) ? "(" + this.fn.toString(options) + ")" : this.fn.toString(options);
  28942. return fn + "(" + args.join(", ") + ")";
  28943. }
  28944. /**
  28945. * Get a JSON representation of the node
  28946. * @returns {Object}
  28947. */
  28948. toJSON() {
  28949. return {
  28950. mathjs: name218,
  28951. fn: this.fn,
  28952. args: this.args
  28953. };
  28954. }
  28955. /**
  28956. * Instantiate an AssignmentNode from its JSON representation
  28957. * @param {Object} json An object structured like
  28958. * `{"mathjs": "FunctionNode", fn: ..., args: ...}`,
  28959. * where mathjs is optional
  28960. * @returns {FunctionNode}
  28961. */
  28962. /**
  28963. * Get HTML representation
  28964. * @param {Object} options
  28965. * @return {string} str
  28966. */
  28967. toHTML(options) {
  28968. var args = this.args.map(function(arg2) {
  28969. return arg2.toHTML(options);
  28970. });
  28971. return '<span class="math-function">' + escape(this.fn) + '</span><span class="math-paranthesis math-round-parenthesis">(</span>' + args.join('<span class="math-separator">,</span>') + '<span class="math-paranthesis math-round-parenthesis">)</span>';
  28972. }
  28973. /**
  28974. * Get LaTeX representation. (wrapper function)
  28975. * This overrides parts of Node's toTex function.
  28976. * If callback is an object containing callbacks, it
  28977. * calls the correct callback for the current node,
  28978. * otherwise it falls back to calling Node's toTex
  28979. * function.
  28980. *
  28981. * @param {Object} options
  28982. * @return {string}
  28983. */
  28984. toTex(options) {
  28985. var customTex;
  28986. if (options && typeof options.handler === "object" && hasOwnProperty2(options.handler, this.name)) {
  28987. customTex = options.handler[this.name](this, options);
  28988. }
  28989. if (typeof customTex !== "undefined") {
  28990. return customTex;
  28991. }
  28992. return super.toTex(options);
  28993. }
  28994. /**
  28995. * Get LaTeX representation
  28996. * @param {Object} options
  28997. * @return {string} str
  28998. */
  28999. _toTex(options) {
  29000. var args = this.args.map(function(arg2) {
  29001. return arg2.toTex(options);
  29002. });
  29003. var latexConverter;
  29004. if (latexFunctions[this.name]) {
  29005. latexConverter = latexFunctions[this.name];
  29006. }
  29007. if (math2[this.name] && (typeof math2[this.name].toTex === "function" || typeof math2[this.name].toTex === "object" || typeof math2[this.name].toTex === "string")) {
  29008. latexConverter = math2[this.name].toTex;
  29009. }
  29010. var customToTex;
  29011. switch (typeof latexConverter) {
  29012. case "function":
  29013. customToTex = latexConverter(this, options);
  29014. break;
  29015. case "string":
  29016. customToTex = expandTemplate(latexConverter, this, options);
  29017. break;
  29018. case "object":
  29019. switch (typeof latexConverter[args.length]) {
  29020. case "function":
  29021. customToTex = latexConverter[args.length](this, options);
  29022. break;
  29023. case "string":
  29024. customToTex = expandTemplate(latexConverter[args.length], this, options);
  29025. break;
  29026. }
  29027. }
  29028. if (typeof customToTex !== "undefined") {
  29029. return customToTex;
  29030. }
  29031. return expandTemplate(defaultTemplate, this, options);
  29032. }
  29033. /**
  29034. * Get identifier.
  29035. * @return {string}
  29036. */
  29037. getIdentifier() {
  29038. return this.type + ":" + this.name;
  29039. }
  29040. }
  29041. _defineProperty(FunctionNode2, "name", name218);
  29042. _defineProperty(FunctionNode2, "onUndefinedFunction", function(name302) {
  29043. throw new Error("Undefined function " + name302);
  29044. });
  29045. _defineProperty(FunctionNode2, "fromJSON", function(json) {
  29046. return new FunctionNode2(json.fn, json.args);
  29047. });
  29048. return FunctionNode2;
  29049. }, {
  29050. isClass: true,
  29051. isNode: true
  29052. });
  29053. // node_modules/mathjs/lib/esm/expression/parse.js
  29054. var name219 = "parse";
  29055. var dependencies219 = ["typed", "numeric", "config", "AccessorNode", "ArrayNode", "AssignmentNode", "BlockNode", "ConditionalNode", "ConstantNode", "FunctionAssignmentNode", "FunctionNode", "IndexNode", "ObjectNode", "OperatorNode", "ParenthesisNode", "RangeNode", "RelationalNode", "SymbolNode"];
  29056. var createParse = factory(name219, dependencies219, (_ref) => {
  29057. var {
  29058. typed: typed2,
  29059. numeric: numeric3,
  29060. config: config4,
  29061. AccessorNode: AccessorNode2,
  29062. ArrayNode: ArrayNode2,
  29063. AssignmentNode: AssignmentNode2,
  29064. BlockNode: BlockNode2,
  29065. ConditionalNode: ConditionalNode2,
  29066. ConstantNode: ConstantNode2,
  29067. FunctionAssignmentNode: FunctionAssignmentNode2,
  29068. FunctionNode: FunctionNode2,
  29069. IndexNode: IndexNode2,
  29070. ObjectNode: ObjectNode2,
  29071. OperatorNode: OperatorNode2,
  29072. ParenthesisNode: ParenthesisNode2,
  29073. RangeNode: RangeNode2,
  29074. RelationalNode: RelationalNode2,
  29075. SymbolNode: SymbolNode2
  29076. } = _ref;
  29077. var parse2 = typed2(name219, {
  29078. string: function string2(expression) {
  29079. return parseStart(expression, {});
  29080. },
  29081. "Array | Matrix": function ArrayMatrix(expressions) {
  29082. return parseMultiple(expressions, {});
  29083. },
  29084. "string, Object": function stringObject(expression, options) {
  29085. var extraNodes = options.nodes !== void 0 ? options.nodes : {};
  29086. return parseStart(expression, extraNodes);
  29087. },
  29088. "Array | Matrix, Object": parseMultiple
  29089. });
  29090. function parseMultiple(expressions) {
  29091. var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  29092. var extraNodes = options.nodes !== void 0 ? options.nodes : {};
  29093. return deepMap(expressions, function(elem) {
  29094. if (typeof elem !== "string")
  29095. throw new TypeError("String expected");
  29096. return parseStart(elem, extraNodes);
  29097. });
  29098. }
  29099. var TOKENTYPE = {
  29100. NULL: 0,
  29101. DELIMITER: 1,
  29102. NUMBER: 2,
  29103. SYMBOL: 3,
  29104. UNKNOWN: 4
  29105. };
  29106. var DELIMITERS = {
  29107. ",": true,
  29108. "(": true,
  29109. ")": true,
  29110. "[": true,
  29111. "]": true,
  29112. "{": true,
  29113. "}": true,
  29114. '"': true,
  29115. "'": true,
  29116. ";": true,
  29117. "+": true,
  29118. "-": true,
  29119. "*": true,
  29120. ".*": true,
  29121. "/": true,
  29122. "./": true,
  29123. "%": true,
  29124. "^": true,
  29125. ".^": true,
  29126. "~": true,
  29127. "!": true,
  29128. "&": true,
  29129. "|": true,
  29130. "^|": true,
  29131. "=": true,
  29132. ":": true,
  29133. "?": true,
  29134. "==": true,
  29135. "!=": true,
  29136. "<": true,
  29137. ">": true,
  29138. "<=": true,
  29139. ">=": true,
  29140. "<<": true,
  29141. ">>": true,
  29142. ">>>": true
  29143. };
  29144. var NAMED_DELIMITERS = {
  29145. mod: true,
  29146. to: true,
  29147. in: true,
  29148. and: true,
  29149. xor: true,
  29150. or: true,
  29151. not: true
  29152. };
  29153. var CONSTANTS = {
  29154. true: true,
  29155. false: false,
  29156. null: null,
  29157. undefined: void 0
  29158. };
  29159. var NUMERIC_CONSTANTS = ["NaN", "Infinity"];
  29160. function initialState() {
  29161. return {
  29162. extraNodes: {},
  29163. // current extra nodes, must be careful not to mutate
  29164. expression: "",
  29165. // current expression
  29166. comment: "",
  29167. // last parsed comment
  29168. index: 0,
  29169. // current index in expr
  29170. token: "",
  29171. // current token
  29172. tokenType: TOKENTYPE.NULL,
  29173. // type of the token
  29174. nestingLevel: 0,
  29175. // level of nesting inside parameters, used to ignore newline characters
  29176. conditionalLevel: null
  29177. // when a conditional is being parsed, the level of the conditional is stored here
  29178. };
  29179. }
  29180. function currentString(state, length) {
  29181. return state.expression.substr(state.index, length);
  29182. }
  29183. function currentCharacter(state) {
  29184. return currentString(state, 1);
  29185. }
  29186. function next(state) {
  29187. state.index++;
  29188. }
  29189. function prevCharacter(state) {
  29190. return state.expression.charAt(state.index - 1);
  29191. }
  29192. function nextCharacter(state) {
  29193. return state.expression.charAt(state.index + 1);
  29194. }
  29195. function getToken(state) {
  29196. state.tokenType = TOKENTYPE.NULL;
  29197. state.token = "";
  29198. state.comment = "";
  29199. while (true) {
  29200. if (currentCharacter(state) === "#") {
  29201. while (currentCharacter(state) !== "\n" && currentCharacter(state) !== "") {
  29202. state.comment += currentCharacter(state);
  29203. next(state);
  29204. }
  29205. }
  29206. if (parse2.isWhitespace(currentCharacter(state), state.nestingLevel)) {
  29207. next(state);
  29208. } else {
  29209. break;
  29210. }
  29211. }
  29212. if (currentCharacter(state) === "") {
  29213. state.tokenType = TOKENTYPE.DELIMITER;
  29214. return;
  29215. }
  29216. if (currentCharacter(state) === "\n" && !state.nestingLevel) {
  29217. state.tokenType = TOKENTYPE.DELIMITER;
  29218. state.token = currentCharacter(state);
  29219. next(state);
  29220. return;
  29221. }
  29222. var c1 = currentCharacter(state);
  29223. var c2 = currentString(state, 2);
  29224. var c3 = currentString(state, 3);
  29225. if (c3.length === 3 && DELIMITERS[c3]) {
  29226. state.tokenType = TOKENTYPE.DELIMITER;
  29227. state.token = c3;
  29228. next(state);
  29229. next(state);
  29230. next(state);
  29231. return;
  29232. }
  29233. if (c2.length === 2 && DELIMITERS[c2]) {
  29234. state.tokenType = TOKENTYPE.DELIMITER;
  29235. state.token = c2;
  29236. next(state);
  29237. next(state);
  29238. return;
  29239. }
  29240. if (DELIMITERS[c1]) {
  29241. state.tokenType = TOKENTYPE.DELIMITER;
  29242. state.token = c1;
  29243. next(state);
  29244. return;
  29245. }
  29246. if (parse2.isDigitDot(c1)) {
  29247. state.tokenType = TOKENTYPE.NUMBER;
  29248. var _c = currentString(state, 2);
  29249. if (_c === "0b" || _c === "0o" || _c === "0x") {
  29250. state.token += currentCharacter(state);
  29251. next(state);
  29252. state.token += currentCharacter(state);
  29253. next(state);
  29254. while (parse2.isHexDigit(currentCharacter(state))) {
  29255. state.token += currentCharacter(state);
  29256. next(state);
  29257. }
  29258. if (currentCharacter(state) === ".") {
  29259. state.token += ".";
  29260. next(state);
  29261. while (parse2.isHexDigit(currentCharacter(state))) {
  29262. state.token += currentCharacter(state);
  29263. next(state);
  29264. }
  29265. } else if (currentCharacter(state) === "i") {
  29266. state.token += "i";
  29267. next(state);
  29268. while (parse2.isDigit(currentCharacter(state))) {
  29269. state.token += currentCharacter(state);
  29270. next(state);
  29271. }
  29272. }
  29273. return;
  29274. }
  29275. if (currentCharacter(state) === ".") {
  29276. state.token += currentCharacter(state);
  29277. next(state);
  29278. if (!parse2.isDigit(currentCharacter(state))) {
  29279. state.tokenType = TOKENTYPE.DELIMITER;
  29280. return;
  29281. }
  29282. } else {
  29283. while (parse2.isDigit(currentCharacter(state))) {
  29284. state.token += currentCharacter(state);
  29285. next(state);
  29286. }
  29287. if (parse2.isDecimalMark(currentCharacter(state), nextCharacter(state))) {
  29288. state.token += currentCharacter(state);
  29289. next(state);
  29290. }
  29291. }
  29292. while (parse2.isDigit(currentCharacter(state))) {
  29293. state.token += currentCharacter(state);
  29294. next(state);
  29295. }
  29296. if (currentCharacter(state) === "E" || currentCharacter(state) === "e") {
  29297. if (parse2.isDigit(nextCharacter(state)) || nextCharacter(state) === "-" || nextCharacter(state) === "+") {
  29298. state.token += currentCharacter(state);
  29299. next(state);
  29300. if (currentCharacter(state) === "+" || currentCharacter(state) === "-") {
  29301. state.token += currentCharacter(state);
  29302. next(state);
  29303. }
  29304. if (!parse2.isDigit(currentCharacter(state))) {
  29305. throw createSyntaxError(state, 'Digit expected, got "' + currentCharacter(state) + '"');
  29306. }
  29307. while (parse2.isDigit(currentCharacter(state))) {
  29308. state.token += currentCharacter(state);
  29309. next(state);
  29310. }
  29311. if (parse2.isDecimalMark(currentCharacter(state), nextCharacter(state))) {
  29312. throw createSyntaxError(state, 'Digit expected, got "' + currentCharacter(state) + '"');
  29313. }
  29314. } else if (nextCharacter(state) === ".") {
  29315. next(state);
  29316. throw createSyntaxError(state, 'Digit expected, got "' + currentCharacter(state) + '"');
  29317. }
  29318. }
  29319. return;
  29320. }
  29321. if (parse2.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state))) {
  29322. while (parse2.isAlpha(currentCharacter(state), prevCharacter(state), nextCharacter(state)) || parse2.isDigit(currentCharacter(state))) {
  29323. state.token += currentCharacter(state);
  29324. next(state);
  29325. }
  29326. if (hasOwnProperty2(NAMED_DELIMITERS, state.token)) {
  29327. state.tokenType = TOKENTYPE.DELIMITER;
  29328. } else {
  29329. state.tokenType = TOKENTYPE.SYMBOL;
  29330. }
  29331. return;
  29332. }
  29333. state.tokenType = TOKENTYPE.UNKNOWN;
  29334. while (currentCharacter(state) !== "") {
  29335. state.token += currentCharacter(state);
  29336. next(state);
  29337. }
  29338. throw createSyntaxError(state, 'Syntax error in part "' + state.token + '"');
  29339. }
  29340. function getTokenSkipNewline(state) {
  29341. do {
  29342. getToken(state);
  29343. } while (state.token === "\n");
  29344. }
  29345. function openParams(state) {
  29346. state.nestingLevel++;
  29347. }
  29348. function closeParams(state) {
  29349. state.nestingLevel--;
  29350. }
  29351. parse2.isAlpha = function isAlpha(c, cPrev, cNext) {
  29352. return parse2.isValidLatinOrGreek(c) || parse2.isValidMathSymbol(c, cNext) || parse2.isValidMathSymbol(cPrev, c);
  29353. };
  29354. parse2.isValidLatinOrGreek = function isValidLatinOrGreek(c) {
  29355. return /^[a-zA-Z_$\u00C0-\u02AF\u0370-\u03FF\u2100-\u214F]$/.test(c);
  29356. };
  29357. parse2.isValidMathSymbol = function isValidMathSymbol(high, low) {
  29358. return /^[\uD835]$/.test(high) && /^[\uDC00-\uDFFF]$/.test(low) && /^[^\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]$/.test(low);
  29359. };
  29360. parse2.isWhitespace = function isWhitespace(c, nestingLevel) {
  29361. return c === " " || c === " " || c === "\n" && nestingLevel > 0;
  29362. };
  29363. parse2.isDecimalMark = function isDecimalMark(c, cNext) {
  29364. return c === "." && cNext !== "/" && cNext !== "*" && cNext !== "^";
  29365. };
  29366. parse2.isDigitDot = function isDigitDot(c) {
  29367. return c >= "0" && c <= "9" || c === ".";
  29368. };
  29369. parse2.isDigit = function isDigit(c) {
  29370. return c >= "0" && c <= "9";
  29371. };
  29372. parse2.isHexDigit = function isHexDigit(c) {
  29373. return c >= "0" && c <= "9" || c >= "a" && c <= "f" || c >= "A" && c <= "F";
  29374. };
  29375. function parseStart(expression, extraNodes) {
  29376. var state = initialState();
  29377. _extends(state, {
  29378. expression,
  29379. extraNodes
  29380. });
  29381. getToken(state);
  29382. var node = parseBlock(state);
  29383. if (state.token !== "") {
  29384. if (state.tokenType === TOKENTYPE.DELIMITER) {
  29385. throw createError(state, "Unexpected operator " + state.token);
  29386. } else {
  29387. throw createSyntaxError(state, 'Unexpected part "' + state.token + '"');
  29388. }
  29389. }
  29390. return node;
  29391. }
  29392. function parseBlock(state) {
  29393. var node;
  29394. var blocks = [];
  29395. var visible;
  29396. if (state.token !== "" && state.token !== "\n" && state.token !== ";") {
  29397. node = parseAssignment(state);
  29398. if (state.comment) {
  29399. node.comment = state.comment;
  29400. }
  29401. }
  29402. while (state.token === "\n" || state.token === ";") {
  29403. if (blocks.length === 0 && node) {
  29404. visible = state.token !== ";";
  29405. blocks.push({
  29406. node,
  29407. visible
  29408. });
  29409. }
  29410. getToken(state);
  29411. if (state.token !== "\n" && state.token !== ";" && state.token !== "") {
  29412. node = parseAssignment(state);
  29413. if (state.comment) {
  29414. node.comment = state.comment;
  29415. }
  29416. visible = state.token !== ";";
  29417. blocks.push({
  29418. node,
  29419. visible
  29420. });
  29421. }
  29422. }
  29423. if (blocks.length > 0) {
  29424. return new BlockNode2(blocks);
  29425. } else {
  29426. if (!node) {
  29427. node = new ConstantNode2(void 0);
  29428. if (state.comment) {
  29429. node.comment = state.comment;
  29430. }
  29431. }
  29432. return node;
  29433. }
  29434. }
  29435. function parseAssignment(state) {
  29436. var name302, args, value, valid;
  29437. var node = parseConditional(state);
  29438. if (state.token === "=") {
  29439. if (isSymbolNode(node)) {
  29440. name302 = node.name;
  29441. getTokenSkipNewline(state);
  29442. value = parseAssignment(state);
  29443. return new AssignmentNode2(new SymbolNode2(name302), value);
  29444. } else if (isAccessorNode(node)) {
  29445. getTokenSkipNewline(state);
  29446. value = parseAssignment(state);
  29447. return new AssignmentNode2(node.object, node.index, value);
  29448. } else if (isFunctionNode(node) && isSymbolNode(node.fn)) {
  29449. valid = true;
  29450. args = [];
  29451. name302 = node.name;
  29452. node.args.forEach(function(arg2, index2) {
  29453. if (isSymbolNode(arg2)) {
  29454. args[index2] = arg2.name;
  29455. } else {
  29456. valid = false;
  29457. }
  29458. });
  29459. if (valid) {
  29460. getTokenSkipNewline(state);
  29461. value = parseAssignment(state);
  29462. return new FunctionAssignmentNode2(name302, args, value);
  29463. }
  29464. }
  29465. throw createSyntaxError(state, "Invalid left hand side of assignment operator =");
  29466. }
  29467. return node;
  29468. }
  29469. function parseConditional(state) {
  29470. var node = parseLogicalOr(state);
  29471. while (state.token === "?") {
  29472. var prev = state.conditionalLevel;
  29473. state.conditionalLevel = state.nestingLevel;
  29474. getTokenSkipNewline(state);
  29475. var condition = node;
  29476. var trueExpr = parseAssignment(state);
  29477. if (state.token !== ":")
  29478. throw createSyntaxError(state, "False part of conditional expression expected");
  29479. state.conditionalLevel = null;
  29480. getTokenSkipNewline(state);
  29481. var falseExpr = parseAssignment(state);
  29482. node = new ConditionalNode2(condition, trueExpr, falseExpr);
  29483. state.conditionalLevel = prev;
  29484. }
  29485. return node;
  29486. }
  29487. function parseLogicalOr(state) {
  29488. var node = parseLogicalXor(state);
  29489. while (state.token === "or") {
  29490. getTokenSkipNewline(state);
  29491. node = new OperatorNode2("or", "or", [node, parseLogicalXor(state)]);
  29492. }
  29493. return node;
  29494. }
  29495. function parseLogicalXor(state) {
  29496. var node = parseLogicalAnd(state);
  29497. while (state.token === "xor") {
  29498. getTokenSkipNewline(state);
  29499. node = new OperatorNode2("xor", "xor", [node, parseLogicalAnd(state)]);
  29500. }
  29501. return node;
  29502. }
  29503. function parseLogicalAnd(state) {
  29504. var node = parseBitwiseOr(state);
  29505. while (state.token === "and") {
  29506. getTokenSkipNewline(state);
  29507. node = new OperatorNode2("and", "and", [node, parseBitwiseOr(state)]);
  29508. }
  29509. return node;
  29510. }
  29511. function parseBitwiseOr(state) {
  29512. var node = parseBitwiseXor(state);
  29513. while (state.token === "|") {
  29514. getTokenSkipNewline(state);
  29515. node = new OperatorNode2("|", "bitOr", [node, parseBitwiseXor(state)]);
  29516. }
  29517. return node;
  29518. }
  29519. function parseBitwiseXor(state) {
  29520. var node = parseBitwiseAnd(state);
  29521. while (state.token === "^|") {
  29522. getTokenSkipNewline(state);
  29523. node = new OperatorNode2("^|", "bitXor", [node, parseBitwiseAnd(state)]);
  29524. }
  29525. return node;
  29526. }
  29527. function parseBitwiseAnd(state) {
  29528. var node = parseRelational(state);
  29529. while (state.token === "&") {
  29530. getTokenSkipNewline(state);
  29531. node = new OperatorNode2("&", "bitAnd", [node, parseRelational(state)]);
  29532. }
  29533. return node;
  29534. }
  29535. function parseRelational(state) {
  29536. var params = [parseShift(state)];
  29537. var conditionals = [];
  29538. var operators = {
  29539. "==": "equal",
  29540. "!=": "unequal",
  29541. "<": "smaller",
  29542. ">": "larger",
  29543. "<=": "smallerEq",
  29544. ">=": "largerEq"
  29545. };
  29546. while (hasOwnProperty2(operators, state.token)) {
  29547. var cond = {
  29548. name: state.token,
  29549. fn: operators[state.token]
  29550. };
  29551. conditionals.push(cond);
  29552. getTokenSkipNewline(state);
  29553. params.push(parseShift(state));
  29554. }
  29555. if (params.length === 1) {
  29556. return params[0];
  29557. } else if (params.length === 2) {
  29558. return new OperatorNode2(conditionals[0].name, conditionals[0].fn, params);
  29559. } else {
  29560. return new RelationalNode2(conditionals.map((c) => c.fn), params);
  29561. }
  29562. }
  29563. function parseShift(state) {
  29564. var node, name302, fn, params;
  29565. node = parseConversion(state);
  29566. var operators = {
  29567. "<<": "leftShift",
  29568. ">>": "rightArithShift",
  29569. ">>>": "rightLogShift"
  29570. };
  29571. while (hasOwnProperty2(operators, state.token)) {
  29572. name302 = state.token;
  29573. fn = operators[name302];
  29574. getTokenSkipNewline(state);
  29575. params = [node, parseConversion(state)];
  29576. node = new OperatorNode2(name302, fn, params);
  29577. }
  29578. return node;
  29579. }
  29580. function parseConversion(state) {
  29581. var node, name302, fn, params;
  29582. node = parseRange(state);
  29583. var operators = {
  29584. to: "to",
  29585. in: "to"
  29586. // alias of 'to'
  29587. };
  29588. while (hasOwnProperty2(operators, state.token)) {
  29589. name302 = state.token;
  29590. fn = operators[name302];
  29591. getTokenSkipNewline(state);
  29592. if (name302 === "in" && state.token === "") {
  29593. node = new OperatorNode2("*", "multiply", [node, new SymbolNode2("in")], true);
  29594. } else {
  29595. params = [node, parseRange(state)];
  29596. node = new OperatorNode2(name302, fn, params);
  29597. }
  29598. }
  29599. return node;
  29600. }
  29601. function parseRange(state) {
  29602. var node;
  29603. var params = [];
  29604. if (state.token === ":") {
  29605. node = new ConstantNode2(1);
  29606. } else {
  29607. node = parseAddSubtract(state);
  29608. }
  29609. if (state.token === ":" && state.conditionalLevel !== state.nestingLevel) {
  29610. params.push(node);
  29611. while (state.token === ":" && params.length < 3) {
  29612. getTokenSkipNewline(state);
  29613. if (state.token === ")" || state.token === "]" || state.token === "," || state.token === "") {
  29614. params.push(new SymbolNode2("end"));
  29615. } else {
  29616. params.push(parseAddSubtract(state));
  29617. }
  29618. }
  29619. if (params.length === 3) {
  29620. node = new RangeNode2(params[0], params[2], params[1]);
  29621. } else {
  29622. node = new RangeNode2(params[0], params[1]);
  29623. }
  29624. }
  29625. return node;
  29626. }
  29627. function parseAddSubtract(state) {
  29628. var node, name302, fn, params;
  29629. node = parseMultiplyDivide(state);
  29630. var operators = {
  29631. "+": "add",
  29632. "-": "subtract"
  29633. };
  29634. while (hasOwnProperty2(operators, state.token)) {
  29635. name302 = state.token;
  29636. fn = operators[name302];
  29637. getTokenSkipNewline(state);
  29638. var rightNode = parseMultiplyDivide(state);
  29639. if (rightNode.isPercentage) {
  29640. params = [node, new OperatorNode2("*", "multiply", [node, rightNode])];
  29641. } else {
  29642. params = [node, rightNode];
  29643. }
  29644. node = new OperatorNode2(name302, fn, params);
  29645. }
  29646. return node;
  29647. }
  29648. function parseMultiplyDivide(state) {
  29649. var node, last, name302, fn;
  29650. node = parseImplicitMultiplication(state);
  29651. last = node;
  29652. var operators = {
  29653. "*": "multiply",
  29654. ".*": "dotMultiply",
  29655. "/": "divide",
  29656. "./": "dotDivide"
  29657. };
  29658. while (true) {
  29659. if (hasOwnProperty2(operators, state.token)) {
  29660. name302 = state.token;
  29661. fn = operators[name302];
  29662. getTokenSkipNewline(state);
  29663. last = parseImplicitMultiplication(state);
  29664. node = new OperatorNode2(name302, fn, [node, last]);
  29665. } else {
  29666. break;
  29667. }
  29668. }
  29669. return node;
  29670. }
  29671. function parseImplicitMultiplication(state) {
  29672. var node, last;
  29673. node = parseRule2(state);
  29674. last = node;
  29675. while (true) {
  29676. if (state.tokenType === TOKENTYPE.SYMBOL || state.token === "in" && isConstantNode(node) || state.tokenType === TOKENTYPE.NUMBER && !isConstantNode(last) && (!isOperatorNode(last) || last.op === "!") || state.token === "(") {
  29677. last = parseRule2(state);
  29678. node = new OperatorNode2(
  29679. "*",
  29680. "multiply",
  29681. [node, last],
  29682. true
  29683. /* implicit */
  29684. );
  29685. } else {
  29686. break;
  29687. }
  29688. }
  29689. return node;
  29690. }
  29691. function parseRule2(state) {
  29692. var node = parsePercentage(state);
  29693. var last = node;
  29694. var tokenStates = [];
  29695. while (true) {
  29696. if (state.token === "/" && rule2Node(last)) {
  29697. tokenStates.push(_extends({}, state));
  29698. getTokenSkipNewline(state);
  29699. if (state.tokenType === TOKENTYPE.NUMBER) {
  29700. tokenStates.push(_extends({}, state));
  29701. getTokenSkipNewline(state);
  29702. if (state.tokenType === TOKENTYPE.SYMBOL || state.token === "(") {
  29703. _extends(state, tokenStates.pop());
  29704. tokenStates.pop();
  29705. last = parsePercentage(state);
  29706. node = new OperatorNode2("/", "divide", [node, last]);
  29707. } else {
  29708. tokenStates.pop();
  29709. _extends(state, tokenStates.pop());
  29710. break;
  29711. }
  29712. } else {
  29713. _extends(state, tokenStates.pop());
  29714. break;
  29715. }
  29716. } else {
  29717. break;
  29718. }
  29719. }
  29720. return node;
  29721. }
  29722. function parsePercentage(state) {
  29723. var node, name302, fn, params;
  29724. node = parseUnary(state);
  29725. var operators = {
  29726. "%": "mod",
  29727. mod: "mod"
  29728. };
  29729. while (hasOwnProperty2(operators, state.token)) {
  29730. name302 = state.token;
  29731. fn = operators[name302];
  29732. getTokenSkipNewline(state);
  29733. if (name302 === "%" && state.tokenType === TOKENTYPE.DELIMITER && state.token !== "(") {
  29734. node = new OperatorNode2("/", "divide", [node, new ConstantNode2(100)], false, true);
  29735. } else {
  29736. params = [node, parseUnary(state)];
  29737. node = new OperatorNode2(name302, fn, params);
  29738. }
  29739. }
  29740. return node;
  29741. }
  29742. function parseUnary(state) {
  29743. var name302, params, fn;
  29744. var operators = {
  29745. "-": "unaryMinus",
  29746. "+": "unaryPlus",
  29747. "~": "bitNot",
  29748. not: "not"
  29749. };
  29750. if (hasOwnProperty2(operators, state.token)) {
  29751. fn = operators[state.token];
  29752. name302 = state.token;
  29753. getTokenSkipNewline(state);
  29754. params = [parseUnary(state)];
  29755. return new OperatorNode2(name302, fn, params);
  29756. }
  29757. return parsePow(state);
  29758. }
  29759. function parsePow(state) {
  29760. var node, name302, fn, params;
  29761. node = parseLeftHandOperators(state);
  29762. if (state.token === "^" || state.token === ".^") {
  29763. name302 = state.token;
  29764. fn = name302 === "^" ? "pow" : "dotPow";
  29765. getTokenSkipNewline(state);
  29766. params = [node, parseUnary(state)];
  29767. node = new OperatorNode2(name302, fn, params);
  29768. }
  29769. return node;
  29770. }
  29771. function parseLeftHandOperators(state) {
  29772. var node, name302, fn, params;
  29773. node = parseCustomNodes(state);
  29774. var operators = {
  29775. "!": "factorial",
  29776. "'": "ctranspose"
  29777. };
  29778. while (hasOwnProperty2(operators, state.token)) {
  29779. name302 = state.token;
  29780. fn = operators[name302];
  29781. getToken(state);
  29782. params = [node];
  29783. node = new OperatorNode2(name302, fn, params);
  29784. node = parseAccessors(state, node);
  29785. }
  29786. return node;
  29787. }
  29788. function parseCustomNodes(state) {
  29789. var params = [];
  29790. if (state.tokenType === TOKENTYPE.SYMBOL && hasOwnProperty2(state.extraNodes, state.token)) {
  29791. var CustomNode = state.extraNodes[state.token];
  29792. getToken(state);
  29793. if (state.token === "(") {
  29794. params = [];
  29795. openParams(state);
  29796. getToken(state);
  29797. if (state.token !== ")") {
  29798. params.push(parseAssignment(state));
  29799. while (state.token === ",") {
  29800. getToken(state);
  29801. params.push(parseAssignment(state));
  29802. }
  29803. }
  29804. if (state.token !== ")") {
  29805. throw createSyntaxError(state, "Parenthesis ) expected");
  29806. }
  29807. closeParams(state);
  29808. getToken(state);
  29809. }
  29810. return new CustomNode(params);
  29811. }
  29812. return parseSymbol(state);
  29813. }
  29814. function parseSymbol(state) {
  29815. var node, name302;
  29816. if (state.tokenType === TOKENTYPE.SYMBOL || state.tokenType === TOKENTYPE.DELIMITER && state.token in NAMED_DELIMITERS) {
  29817. name302 = state.token;
  29818. getToken(state);
  29819. if (hasOwnProperty2(CONSTANTS, name302)) {
  29820. node = new ConstantNode2(CONSTANTS[name302]);
  29821. } else if (NUMERIC_CONSTANTS.indexOf(name302) !== -1) {
  29822. node = new ConstantNode2(numeric3(name302, "number"));
  29823. } else {
  29824. node = new SymbolNode2(name302);
  29825. }
  29826. node = parseAccessors(state, node);
  29827. return node;
  29828. }
  29829. return parseDoubleQuotesString(state);
  29830. }
  29831. function parseAccessors(state, node, types) {
  29832. var params;
  29833. while ((state.token === "(" || state.token === "[" || state.token === ".") && (!types || types.indexOf(state.token) !== -1)) {
  29834. params = [];
  29835. if (state.token === "(") {
  29836. if (isSymbolNode(node) || isAccessorNode(node)) {
  29837. openParams(state);
  29838. getToken(state);
  29839. if (state.token !== ")") {
  29840. params.push(parseAssignment(state));
  29841. while (state.token === ",") {
  29842. getToken(state);
  29843. params.push(parseAssignment(state));
  29844. }
  29845. }
  29846. if (state.token !== ")") {
  29847. throw createSyntaxError(state, "Parenthesis ) expected");
  29848. }
  29849. closeParams(state);
  29850. getToken(state);
  29851. node = new FunctionNode2(node, params);
  29852. } else {
  29853. return node;
  29854. }
  29855. } else if (state.token === "[") {
  29856. openParams(state);
  29857. getToken(state);
  29858. if (state.token !== "]") {
  29859. params.push(parseAssignment(state));
  29860. while (state.token === ",") {
  29861. getToken(state);
  29862. params.push(parseAssignment(state));
  29863. }
  29864. }
  29865. if (state.token !== "]") {
  29866. throw createSyntaxError(state, "Parenthesis ] expected");
  29867. }
  29868. closeParams(state);
  29869. getToken(state);
  29870. node = new AccessorNode2(node, new IndexNode2(params));
  29871. } else {
  29872. getToken(state);
  29873. if (state.tokenType !== TOKENTYPE.SYMBOL) {
  29874. throw createSyntaxError(state, "Property name expected after dot");
  29875. }
  29876. params.push(new ConstantNode2(state.token));
  29877. getToken(state);
  29878. var dotNotation = true;
  29879. node = new AccessorNode2(node, new IndexNode2(params, dotNotation));
  29880. }
  29881. }
  29882. return node;
  29883. }
  29884. function parseDoubleQuotesString(state) {
  29885. var node, str;
  29886. if (state.token === '"') {
  29887. str = parseDoubleQuotesStringToken(state);
  29888. node = new ConstantNode2(str);
  29889. node = parseAccessors(state, node);
  29890. return node;
  29891. }
  29892. return parseSingleQuotesString(state);
  29893. }
  29894. function parseDoubleQuotesStringToken(state) {
  29895. var str = "";
  29896. while (currentCharacter(state) !== "" && currentCharacter(state) !== '"') {
  29897. if (currentCharacter(state) === "\\") {
  29898. str += currentCharacter(state);
  29899. next(state);
  29900. }
  29901. str += currentCharacter(state);
  29902. next(state);
  29903. }
  29904. getToken(state);
  29905. if (state.token !== '"') {
  29906. throw createSyntaxError(state, 'End of string " expected');
  29907. }
  29908. getToken(state);
  29909. return JSON.parse('"' + str + '"');
  29910. }
  29911. function parseSingleQuotesString(state) {
  29912. var node, str;
  29913. if (state.token === "'") {
  29914. str = parseSingleQuotesStringToken(state);
  29915. node = new ConstantNode2(str);
  29916. node = parseAccessors(state, node);
  29917. return node;
  29918. }
  29919. return parseMatrix(state);
  29920. }
  29921. function parseSingleQuotesStringToken(state) {
  29922. var str = "";
  29923. while (currentCharacter(state) !== "" && currentCharacter(state) !== "'") {
  29924. if (currentCharacter(state) === "\\") {
  29925. str += currentCharacter(state);
  29926. next(state);
  29927. }
  29928. str += currentCharacter(state);
  29929. next(state);
  29930. }
  29931. getToken(state);
  29932. if (state.token !== "'") {
  29933. throw createSyntaxError(state, "End of string ' expected");
  29934. }
  29935. getToken(state);
  29936. return JSON.parse('"' + str + '"');
  29937. }
  29938. function parseMatrix(state) {
  29939. var array, params, rows, cols;
  29940. if (state.token === "[") {
  29941. openParams(state);
  29942. getToken(state);
  29943. if (state.token !== "]") {
  29944. var row2 = parseRow(state);
  29945. if (state.token === ";") {
  29946. rows = 1;
  29947. params = [row2];
  29948. while (state.token === ";") {
  29949. getToken(state);
  29950. params[rows] = parseRow(state);
  29951. rows++;
  29952. }
  29953. if (state.token !== "]") {
  29954. throw createSyntaxError(state, "End of matrix ] expected");
  29955. }
  29956. closeParams(state);
  29957. getToken(state);
  29958. cols = params[0].items.length;
  29959. for (var r = 1; r < rows; r++) {
  29960. if (params[r].items.length !== cols) {
  29961. throw createError(state, "Column dimensions mismatch (" + params[r].items.length + " !== " + cols + ")");
  29962. }
  29963. }
  29964. array = new ArrayNode2(params);
  29965. } else {
  29966. if (state.token !== "]") {
  29967. throw createSyntaxError(state, "End of matrix ] expected");
  29968. }
  29969. closeParams(state);
  29970. getToken(state);
  29971. array = row2;
  29972. }
  29973. } else {
  29974. closeParams(state);
  29975. getToken(state);
  29976. array = new ArrayNode2([]);
  29977. }
  29978. return parseAccessors(state, array);
  29979. }
  29980. return parseObject(state);
  29981. }
  29982. function parseRow(state) {
  29983. var params = [parseAssignment(state)];
  29984. var len = 1;
  29985. while (state.token === ",") {
  29986. getToken(state);
  29987. params[len] = parseAssignment(state);
  29988. len++;
  29989. }
  29990. return new ArrayNode2(params);
  29991. }
  29992. function parseObject(state) {
  29993. if (state.token === "{") {
  29994. openParams(state);
  29995. var key;
  29996. var properties2 = {};
  29997. do {
  29998. getToken(state);
  29999. if (state.token !== "}") {
  30000. if (state.token === '"') {
  30001. key = parseDoubleQuotesStringToken(state);
  30002. } else if (state.token === "'") {
  30003. key = parseSingleQuotesStringToken(state);
  30004. } else if (state.tokenType === TOKENTYPE.SYMBOL || state.tokenType === TOKENTYPE.DELIMITER && state.token in NAMED_DELIMITERS) {
  30005. key = state.token;
  30006. getToken(state);
  30007. } else {
  30008. throw createSyntaxError(state, "Symbol or string expected as object key");
  30009. }
  30010. if (state.token !== ":") {
  30011. throw createSyntaxError(state, "Colon : expected after object key");
  30012. }
  30013. getToken(state);
  30014. properties2[key] = parseAssignment(state);
  30015. }
  30016. } while (state.token === ",");
  30017. if (state.token !== "}") {
  30018. throw createSyntaxError(state, "Comma , or bracket } expected after object value");
  30019. }
  30020. closeParams(state);
  30021. getToken(state);
  30022. var node = new ObjectNode2(properties2);
  30023. node = parseAccessors(state, node);
  30024. return node;
  30025. }
  30026. return parseNumber(state);
  30027. }
  30028. function parseNumber(state) {
  30029. var numberStr;
  30030. if (state.tokenType === TOKENTYPE.NUMBER) {
  30031. numberStr = state.token;
  30032. getToken(state);
  30033. return new ConstantNode2(numeric3(numberStr, config4.number));
  30034. }
  30035. return parseParentheses(state);
  30036. }
  30037. function parseParentheses(state) {
  30038. var node;
  30039. if (state.token === "(") {
  30040. openParams(state);
  30041. getToken(state);
  30042. node = parseAssignment(state);
  30043. if (state.token !== ")") {
  30044. throw createSyntaxError(state, "Parenthesis ) expected");
  30045. }
  30046. closeParams(state);
  30047. getToken(state);
  30048. node = new ParenthesisNode2(node);
  30049. node = parseAccessors(state, node);
  30050. return node;
  30051. }
  30052. return parseEnd(state);
  30053. }
  30054. function parseEnd(state) {
  30055. if (state.token === "") {
  30056. throw createSyntaxError(state, "Unexpected end of expression");
  30057. } else {
  30058. throw createSyntaxError(state, "Value expected");
  30059. }
  30060. }
  30061. function col(state) {
  30062. return state.index - state.token.length + 1;
  30063. }
  30064. function createSyntaxError(state, message) {
  30065. var c = col(state);
  30066. var error = new SyntaxError(message + " (char " + c + ")");
  30067. error.char = c;
  30068. return error;
  30069. }
  30070. function createError(state, message) {
  30071. var c = col(state);
  30072. var error = new SyntaxError(message + " (char " + c + ")");
  30073. error.char = c;
  30074. return error;
  30075. }
  30076. typed2.addConversion({
  30077. from: "string",
  30078. to: "Node",
  30079. convert: parse2
  30080. });
  30081. return parse2;
  30082. });
  30083. // node_modules/mathjs/lib/esm/expression/function/compile.js
  30084. var name220 = "compile";
  30085. var dependencies220 = ["typed", "parse"];
  30086. var createCompile = factory(name220, dependencies220, (_ref) => {
  30087. var {
  30088. typed: typed2,
  30089. parse: parse2
  30090. } = _ref;
  30091. return typed2(name220, {
  30092. string: function string2(expr) {
  30093. return parse2(expr).compile();
  30094. },
  30095. "Array | Matrix": function ArrayMatrix(expr) {
  30096. return deepMap(expr, function(entry) {
  30097. return parse2(entry).compile();
  30098. });
  30099. }
  30100. });
  30101. });
  30102. // node_modules/mathjs/lib/esm/expression/function/evaluate.js
  30103. var name221 = "evaluate";
  30104. var dependencies221 = ["typed", "parse"];
  30105. var createEvaluate = factory(name221, dependencies221, (_ref) => {
  30106. var {
  30107. typed: typed2,
  30108. parse: parse2
  30109. } = _ref;
  30110. return typed2(name221, {
  30111. string: function string2(expr) {
  30112. var scope = createEmptyMap();
  30113. return parse2(expr).compile().evaluate(scope);
  30114. },
  30115. "string, Map | Object": function stringMapObject(expr, scope) {
  30116. return parse2(expr).compile().evaluate(scope);
  30117. },
  30118. "Array | Matrix": function ArrayMatrix(expr) {
  30119. var scope = createEmptyMap();
  30120. return deepMap(expr, function(entry) {
  30121. return parse2(entry).compile().evaluate(scope);
  30122. });
  30123. },
  30124. "Array | Matrix, Map | Object": function ArrayMatrixMapObject(expr, scope) {
  30125. return deepMap(expr, function(entry) {
  30126. return parse2(entry).compile().evaluate(scope);
  30127. });
  30128. }
  30129. });
  30130. });
  30131. // node_modules/mathjs/lib/esm/expression/Parser.js
  30132. var name222 = "Parser";
  30133. var dependencies222 = ["evaluate"];
  30134. var createParserClass = factory(name222, dependencies222, (_ref) => {
  30135. var {
  30136. evaluate: evaluate2
  30137. } = _ref;
  30138. function Parser2() {
  30139. if (!(this instanceof Parser2)) {
  30140. throw new SyntaxError("Constructor must be called with the new operator");
  30141. }
  30142. Object.defineProperty(this, "scope", {
  30143. value: createEmptyMap(),
  30144. writable: false
  30145. });
  30146. }
  30147. Parser2.prototype.type = "Parser";
  30148. Parser2.prototype.isParser = true;
  30149. Parser2.prototype.evaluate = function(expr) {
  30150. return evaluate2(expr, this.scope);
  30151. };
  30152. Parser2.prototype.get = function(name302) {
  30153. if (this.scope.has(name302)) {
  30154. return this.scope.get(name302);
  30155. }
  30156. };
  30157. Parser2.prototype.getAll = function() {
  30158. return toObject(this.scope);
  30159. };
  30160. Parser2.prototype.getAllAsMap = function() {
  30161. return this.scope;
  30162. };
  30163. Parser2.prototype.set = function(name302, value) {
  30164. this.scope.set(name302, value);
  30165. return value;
  30166. };
  30167. Parser2.prototype.remove = function(name302) {
  30168. this.scope.delete(name302);
  30169. };
  30170. Parser2.prototype.clear = function() {
  30171. this.scope.clear();
  30172. };
  30173. return Parser2;
  30174. }, {
  30175. isClass: true
  30176. });
  30177. // node_modules/mathjs/lib/esm/expression/function/parser.js
  30178. var name223 = "parser";
  30179. var dependencies223 = ["typed", "Parser"];
  30180. var createParser = factory(name223, dependencies223, (_ref) => {
  30181. var {
  30182. typed: typed2,
  30183. Parser: Parser2
  30184. } = _ref;
  30185. return typed2(name223, {
  30186. "": function _() {
  30187. return new Parser2();
  30188. }
  30189. });
  30190. });
  30191. // node_modules/mathjs/lib/esm/function/algebra/decomposition/lup.js
  30192. var name224 = "lup";
  30193. var dependencies224 = ["typed", "matrix", "abs", "addScalar", "divideScalar", "multiplyScalar", "subtract", "larger", "equalScalar", "unaryMinus", "DenseMatrix", "SparseMatrix", "Spa"];
  30194. var createLup = factory(name224, dependencies224, (_ref) => {
  30195. var {
  30196. typed: typed2,
  30197. matrix: matrix2,
  30198. abs: abs3,
  30199. addScalar: addScalar2,
  30200. divideScalar: divideScalar2,
  30201. multiplyScalar: multiplyScalar2,
  30202. subtract: subtract2,
  30203. larger: larger2,
  30204. equalScalar: equalScalar2,
  30205. unaryMinus: unaryMinus2,
  30206. DenseMatrix: DenseMatrix2,
  30207. SparseMatrix: SparseMatrix2,
  30208. Spa: Spa2
  30209. } = _ref;
  30210. return typed2(name224, {
  30211. DenseMatrix: function DenseMatrix3(m) {
  30212. return _denseLUP(m);
  30213. },
  30214. SparseMatrix: function SparseMatrix3(m) {
  30215. return _sparseLUP(m);
  30216. },
  30217. Array: function Array2(a) {
  30218. var m = matrix2(a);
  30219. var r = _denseLUP(m);
  30220. return {
  30221. L: r.L.valueOf(),
  30222. U: r.U.valueOf(),
  30223. p: r.p
  30224. };
  30225. }
  30226. });
  30227. function _denseLUP(m) {
  30228. var rows = m._size[0];
  30229. var columns = m._size[1];
  30230. var n = Math.min(rows, columns);
  30231. var data = clone(m._data);
  30232. var ldata = [];
  30233. var lsize = [rows, n];
  30234. var udata = [];
  30235. var usize = [n, columns];
  30236. var i2, j, k;
  30237. var p = [];
  30238. for (i2 = 0; i2 < rows; i2++) {
  30239. p[i2] = i2;
  30240. }
  30241. for (j = 0; j < columns; j++) {
  30242. if (j > 0) {
  30243. for (i2 = 0; i2 < rows; i2++) {
  30244. var min3 = Math.min(i2, j);
  30245. var s = 0;
  30246. for (k = 0; k < min3; k++) {
  30247. s = addScalar2(s, multiplyScalar2(data[i2][k], data[k][j]));
  30248. }
  30249. data[i2][j] = subtract2(data[i2][j], s);
  30250. }
  30251. }
  30252. var pi3 = j;
  30253. var pabsv = 0;
  30254. var vjj = 0;
  30255. for (i2 = j; i2 < rows; i2++) {
  30256. var v = data[i2][j];
  30257. var absv = abs3(v);
  30258. if (larger2(absv, pabsv)) {
  30259. pi3 = i2;
  30260. pabsv = absv;
  30261. vjj = v;
  30262. }
  30263. }
  30264. if (j !== pi3) {
  30265. p[j] = [p[pi3], p[pi3] = p[j]][0];
  30266. DenseMatrix2._swapRows(j, pi3, data);
  30267. }
  30268. if (j < rows) {
  30269. for (i2 = j + 1; i2 < rows; i2++) {
  30270. var vij = data[i2][j];
  30271. if (!equalScalar2(vij, 0)) {
  30272. data[i2][j] = divideScalar2(data[i2][j], vjj);
  30273. }
  30274. }
  30275. }
  30276. }
  30277. for (j = 0; j < columns; j++) {
  30278. for (i2 = 0; i2 < rows; i2++) {
  30279. if (j === 0) {
  30280. if (i2 < columns) {
  30281. udata[i2] = [];
  30282. }
  30283. ldata[i2] = [];
  30284. }
  30285. if (i2 < j) {
  30286. if (i2 < columns) {
  30287. udata[i2][j] = data[i2][j];
  30288. }
  30289. if (j < rows) {
  30290. ldata[i2][j] = 0;
  30291. }
  30292. continue;
  30293. }
  30294. if (i2 === j) {
  30295. if (i2 < columns) {
  30296. udata[i2][j] = data[i2][j];
  30297. }
  30298. if (j < rows) {
  30299. ldata[i2][j] = 1;
  30300. }
  30301. continue;
  30302. }
  30303. if (i2 < columns) {
  30304. udata[i2][j] = 0;
  30305. }
  30306. if (j < rows) {
  30307. ldata[i2][j] = data[i2][j];
  30308. }
  30309. }
  30310. }
  30311. var l = new DenseMatrix2({
  30312. data: ldata,
  30313. size: lsize
  30314. });
  30315. var u = new DenseMatrix2({
  30316. data: udata,
  30317. size: usize
  30318. });
  30319. var pv = [];
  30320. for (i2 = 0, n = p.length; i2 < n; i2++) {
  30321. pv[p[i2]] = i2;
  30322. }
  30323. return {
  30324. L: l,
  30325. U: u,
  30326. p: pv,
  30327. toString: function toString() {
  30328. return "L: " + this.L.toString() + "\nU: " + this.U.toString() + "\nP: " + this.p;
  30329. }
  30330. };
  30331. }
  30332. function _sparseLUP(m) {
  30333. var rows = m._size[0];
  30334. var columns = m._size[1];
  30335. var n = Math.min(rows, columns);
  30336. var values2 = m._values;
  30337. var index2 = m._index;
  30338. var ptr = m._ptr;
  30339. var lvalues = [];
  30340. var lindex = [];
  30341. var lptr = [];
  30342. var lsize = [rows, n];
  30343. var uvalues = [];
  30344. var uindex = [];
  30345. var uptr = [];
  30346. var usize = [n, columns];
  30347. var i2, j, k;
  30348. var pvCo = [];
  30349. var pvOc = [];
  30350. for (i2 = 0; i2 < rows; i2++) {
  30351. pvCo[i2] = i2;
  30352. pvOc[i2] = i2;
  30353. }
  30354. var swapIndeces = function swapIndeces2(x, y) {
  30355. var kx = pvOc[x];
  30356. var ky = pvOc[y];
  30357. pvCo[kx] = y;
  30358. pvCo[ky] = x;
  30359. pvOc[x] = ky;
  30360. pvOc[y] = kx;
  30361. };
  30362. var _loop = function _loop2() {
  30363. var spa = new Spa2();
  30364. if (j < rows) {
  30365. lptr.push(lvalues.length);
  30366. lvalues.push(1);
  30367. lindex.push(j);
  30368. }
  30369. uptr.push(uvalues.length);
  30370. var k0 = ptr[j];
  30371. var k1 = ptr[j + 1];
  30372. for (k = k0; k < k1; k++) {
  30373. i2 = index2[k];
  30374. spa.set(pvCo[i2], values2[k]);
  30375. }
  30376. if (j > 0) {
  30377. spa.forEach(0, j - 1, function(k2, vkj) {
  30378. SparseMatrix2._forEachRow(k2, lvalues, lindex, lptr, function(i3, vik) {
  30379. if (i3 > k2) {
  30380. spa.accumulate(i3, unaryMinus2(multiplyScalar2(vik, vkj)));
  30381. }
  30382. });
  30383. });
  30384. }
  30385. var pi3 = j;
  30386. var vjj = spa.get(j);
  30387. var pabsv = abs3(vjj);
  30388. spa.forEach(j + 1, rows - 1, function(x, v) {
  30389. var absv = abs3(v);
  30390. if (larger2(absv, pabsv)) {
  30391. pi3 = x;
  30392. pabsv = absv;
  30393. vjj = v;
  30394. }
  30395. });
  30396. if (j !== pi3) {
  30397. SparseMatrix2._swapRows(j, pi3, lsize[1], lvalues, lindex, lptr);
  30398. SparseMatrix2._swapRows(j, pi3, usize[1], uvalues, uindex, uptr);
  30399. spa.swap(j, pi3);
  30400. swapIndeces(j, pi3);
  30401. }
  30402. spa.forEach(0, rows - 1, function(x, v) {
  30403. if (x <= j) {
  30404. uvalues.push(v);
  30405. uindex.push(x);
  30406. } else {
  30407. v = divideScalar2(v, vjj);
  30408. if (!equalScalar2(v, 0)) {
  30409. lvalues.push(v);
  30410. lindex.push(x);
  30411. }
  30412. }
  30413. });
  30414. };
  30415. for (j = 0; j < columns; j++) {
  30416. _loop();
  30417. }
  30418. uptr.push(uvalues.length);
  30419. lptr.push(lvalues.length);
  30420. return {
  30421. L: new SparseMatrix2({
  30422. values: lvalues,
  30423. index: lindex,
  30424. ptr: lptr,
  30425. size: lsize
  30426. }),
  30427. U: new SparseMatrix2({
  30428. values: uvalues,
  30429. index: uindex,
  30430. ptr: uptr,
  30431. size: usize
  30432. }),
  30433. p: pvCo,
  30434. toString: function toString() {
  30435. return "L: " + this.L.toString() + "\nU: " + this.U.toString() + "\nP: " + this.p;
  30436. }
  30437. };
  30438. }
  30439. });
  30440. // node_modules/mathjs/lib/esm/function/algebra/decomposition/qr.js
  30441. var name225 = "qr";
  30442. var dependencies225 = ["typed", "matrix", "zeros", "identity", "isZero", "equal", "sign", "sqrt", "conj", "unaryMinus", "addScalar", "divideScalar", "multiplyScalar", "subtract", "complex"];
  30443. var createQr = factory(name225, dependencies225, (_ref) => {
  30444. var {
  30445. typed: typed2,
  30446. matrix: matrix2,
  30447. zeros: zeros3,
  30448. identity: identity2,
  30449. isZero: isZero2,
  30450. equal: equal2,
  30451. sign: sign4,
  30452. sqrt: sqrt3,
  30453. conj: conj2,
  30454. unaryMinus: unaryMinus2,
  30455. addScalar: addScalar2,
  30456. divideScalar: divideScalar2,
  30457. multiplyScalar: multiplyScalar2,
  30458. subtract: subtract2,
  30459. complex: complex2
  30460. } = _ref;
  30461. return _extends(typed2(name225, {
  30462. DenseMatrix: function DenseMatrix2(m) {
  30463. return _denseQR(m);
  30464. },
  30465. SparseMatrix: function SparseMatrix2(m) {
  30466. return _sparseQR(m);
  30467. },
  30468. Array: function Array2(a) {
  30469. var m = matrix2(a);
  30470. var r = _denseQR(m);
  30471. return {
  30472. Q: r.Q.valueOf(),
  30473. R: r.R.valueOf()
  30474. };
  30475. }
  30476. }), {
  30477. _denseQRimpl
  30478. });
  30479. function _denseQRimpl(m) {
  30480. var rows = m._size[0];
  30481. var cols = m._size[1];
  30482. var Q2 = identity2([rows], "dense");
  30483. var Qdata = Q2._data;
  30484. var R = m.clone();
  30485. var Rdata = R._data;
  30486. var i2, j, k;
  30487. var w = zeros3([rows], "");
  30488. for (k = 0; k < Math.min(cols, rows); ++k) {
  30489. var pivot = Rdata[k][k];
  30490. var sgn = unaryMinus2(equal2(pivot, 0) ? 1 : sign4(pivot));
  30491. var conjSgn = conj2(sgn);
  30492. var alphaSquared = 0;
  30493. for (i2 = k; i2 < rows; i2++) {
  30494. alphaSquared = addScalar2(alphaSquared, multiplyScalar2(Rdata[i2][k], conj2(Rdata[i2][k])));
  30495. }
  30496. var alpha = multiplyScalar2(sgn, sqrt3(alphaSquared));
  30497. if (!isZero2(alpha)) {
  30498. var u1 = subtract2(pivot, alpha);
  30499. w[k] = 1;
  30500. for (i2 = k + 1; i2 < rows; i2++) {
  30501. w[i2] = divideScalar2(Rdata[i2][k], u1);
  30502. }
  30503. var tau3 = unaryMinus2(conj2(divideScalar2(u1, alpha)));
  30504. var s = void 0;
  30505. for (j = k; j < cols; j++) {
  30506. s = 0;
  30507. for (i2 = k; i2 < rows; i2++) {
  30508. s = addScalar2(s, multiplyScalar2(conj2(w[i2]), Rdata[i2][j]));
  30509. }
  30510. s = multiplyScalar2(s, tau3);
  30511. for (i2 = k; i2 < rows; i2++) {
  30512. Rdata[i2][j] = multiplyScalar2(subtract2(Rdata[i2][j], multiplyScalar2(w[i2], s)), conjSgn);
  30513. }
  30514. }
  30515. for (i2 = 0; i2 < rows; i2++) {
  30516. s = 0;
  30517. for (j = k; j < rows; j++) {
  30518. s = addScalar2(s, multiplyScalar2(Qdata[i2][j], w[j]));
  30519. }
  30520. s = multiplyScalar2(s, tau3);
  30521. for (j = k; j < rows; ++j) {
  30522. Qdata[i2][j] = divideScalar2(subtract2(Qdata[i2][j], multiplyScalar2(s, conj2(w[j]))), conjSgn);
  30523. }
  30524. }
  30525. }
  30526. }
  30527. return {
  30528. Q: Q2,
  30529. R,
  30530. toString: function toString() {
  30531. return "Q: " + this.Q.toString() + "\nR: " + this.R.toString();
  30532. }
  30533. };
  30534. }
  30535. function _denseQR(m) {
  30536. var ret = _denseQRimpl(m);
  30537. var Rdata = ret.R._data;
  30538. if (m._data.length > 0) {
  30539. var zero = Rdata[0][0].type === "Complex" ? complex2(0) : 0;
  30540. for (var i2 = 0; i2 < Rdata.length; ++i2) {
  30541. for (var j = 0; j < i2 && j < (Rdata[0] || []).length; ++j) {
  30542. Rdata[i2][j] = zero;
  30543. }
  30544. }
  30545. }
  30546. return ret;
  30547. }
  30548. function _sparseQR(m) {
  30549. throw new Error("qr not implemented for sparse matrices yet");
  30550. }
  30551. });
  30552. // node_modules/mathjs/lib/esm/function/algebra/sparse/csPermute.js
  30553. function csPermute(a, pinv2, q, values2) {
  30554. var avalues = a._values;
  30555. var aindex = a._index;
  30556. var aptr = a._ptr;
  30557. var asize = a._size;
  30558. var adt = a._datatype;
  30559. var m = asize[0];
  30560. var n = asize[1];
  30561. var cvalues = values2 && a._values ? [] : null;
  30562. var cindex = [];
  30563. var cptr = [];
  30564. var nz = 0;
  30565. for (var k = 0; k < n; k++) {
  30566. cptr[k] = nz;
  30567. var j = q ? q[k] : k;
  30568. for (var t0 = aptr[j], t1 = aptr[j + 1], t = t0; t < t1; t++) {
  30569. var r = pinv2 ? pinv2[aindex[t]] : aindex[t];
  30570. cindex[nz] = r;
  30571. if (cvalues) {
  30572. cvalues[nz] = avalues[t];
  30573. }
  30574. nz++;
  30575. }
  30576. }
  30577. cptr[n] = nz;
  30578. return a.createSparseMatrix({
  30579. values: cvalues,
  30580. index: cindex,
  30581. ptr: cptr,
  30582. size: [m, n],
  30583. datatype: adt
  30584. });
  30585. }
  30586. // node_modules/mathjs/lib/esm/function/algebra/sparse/csTdfs.js
  30587. function csTdfs(j, k, w, head, next, post, stack) {
  30588. var top = 0;
  30589. w[stack] = j;
  30590. while (top >= 0) {
  30591. var p = w[stack + top];
  30592. var i2 = w[head + p];
  30593. if (i2 === -1) {
  30594. top--;
  30595. post[k++] = p;
  30596. } else {
  30597. w[head + p] = w[next + i2];
  30598. ++top;
  30599. w[stack + top] = i2;
  30600. }
  30601. }
  30602. return k;
  30603. }
  30604. // node_modules/mathjs/lib/esm/function/algebra/sparse/csPost.js
  30605. function csPost(parent, n) {
  30606. if (!parent) {
  30607. return null;
  30608. }
  30609. var k = 0;
  30610. var j;
  30611. var post = [];
  30612. var w = [];
  30613. var head = 0;
  30614. var next = n;
  30615. var stack = 2 * n;
  30616. for (j = 0; j < n; j++) {
  30617. w[head + j] = -1;
  30618. }
  30619. for (j = n - 1; j >= 0; j--) {
  30620. if (parent[j] === -1) {
  30621. continue;
  30622. }
  30623. w[next + j] = w[head + parent[j]];
  30624. w[head + parent[j]] = j;
  30625. }
  30626. for (j = 0; j < n; j++) {
  30627. if (parent[j] !== -1) {
  30628. continue;
  30629. }
  30630. k = csTdfs(j, k, w, head, next, post, stack);
  30631. }
  30632. return post;
  30633. }
  30634. // node_modules/mathjs/lib/esm/function/algebra/sparse/csEtree.js
  30635. function csEtree(a, ata) {
  30636. if (!a) {
  30637. return null;
  30638. }
  30639. var aindex = a._index;
  30640. var aptr = a._ptr;
  30641. var asize = a._size;
  30642. var m = asize[0];
  30643. var n = asize[1];
  30644. var parent = [];
  30645. var w = [];
  30646. var ancestor = 0;
  30647. var prev = n;
  30648. var i2, inext;
  30649. if (ata) {
  30650. for (i2 = 0; i2 < m; i2++) {
  30651. w[prev + i2] = -1;
  30652. }
  30653. }
  30654. for (var k = 0; k < n; k++) {
  30655. parent[k] = -1;
  30656. w[ancestor + k] = -1;
  30657. for (var p0 = aptr[k], p1 = aptr[k + 1], p = p0; p < p1; p++) {
  30658. var r = aindex[p];
  30659. i2 = ata ? w[prev + r] : r;
  30660. for (; i2 !== -1 && i2 < k; i2 = inext) {
  30661. inext = w[ancestor + i2];
  30662. w[ancestor + i2] = k;
  30663. if (inext === -1) {
  30664. parent[i2] = k;
  30665. }
  30666. }
  30667. if (ata) {
  30668. w[prev + r] = k;
  30669. }
  30670. }
  30671. }
  30672. return parent;
  30673. }
  30674. // node_modules/mathjs/lib/esm/function/algebra/sparse/csFkeep.js
  30675. function csFkeep(a, callback, other) {
  30676. var avalues = a._values;
  30677. var aindex = a._index;
  30678. var aptr = a._ptr;
  30679. var asize = a._size;
  30680. var n = asize[1];
  30681. var nz = 0;
  30682. for (var j = 0; j < n; j++) {
  30683. var p = aptr[j];
  30684. aptr[j] = nz;
  30685. for (; p < aptr[j + 1]; p++) {
  30686. if (callback(aindex[p], j, avalues ? avalues[p] : 1, other)) {
  30687. aindex[nz] = aindex[p];
  30688. if (avalues) {
  30689. avalues[nz] = avalues[p];
  30690. }
  30691. nz++;
  30692. }
  30693. }
  30694. }
  30695. aptr[n] = nz;
  30696. aindex.splice(nz, aindex.length - nz);
  30697. if (avalues) {
  30698. avalues.splice(nz, avalues.length - nz);
  30699. }
  30700. return nz;
  30701. }
  30702. // node_modules/mathjs/lib/esm/function/algebra/sparse/csFlip.js
  30703. function csFlip(i2) {
  30704. return -i2 - 2;
  30705. }
  30706. // node_modules/mathjs/lib/esm/function/algebra/sparse/csAmd.js
  30707. var name226 = "csAmd";
  30708. var dependencies226 = ["add", "multiply", "transpose"];
  30709. var createCsAmd = factory(name226, dependencies226, (_ref) => {
  30710. var {
  30711. add: add3,
  30712. multiply: multiply2,
  30713. transpose: transpose2
  30714. } = _ref;
  30715. return function csAmd(order, a) {
  30716. if (!a || order <= 0 || order > 3) {
  30717. return null;
  30718. }
  30719. var asize = a._size;
  30720. var m = asize[0];
  30721. var n = asize[1];
  30722. var lemax = 0;
  30723. var dense = Math.max(16, 10 * Math.sqrt(n));
  30724. dense = Math.min(n - 2, dense);
  30725. var cm = _createTargetMatrix(order, a, m, n, dense);
  30726. csFkeep(cm, _diag, null);
  30727. var cindex = cm._index;
  30728. var cptr = cm._ptr;
  30729. var cnz = cptr[n];
  30730. var P3 = [];
  30731. var W = [];
  30732. var len = 0;
  30733. var nv = n + 1;
  30734. var next = 2 * (n + 1);
  30735. var head = 3 * (n + 1);
  30736. var elen = 4 * (n + 1);
  30737. var degree = 5 * (n + 1);
  30738. var w = 6 * (n + 1);
  30739. var hhead = 7 * (n + 1);
  30740. var last = P3;
  30741. var mark = _initializeQuotientGraph(n, cptr, W, len, head, last, next, hhead, nv, w, elen, degree);
  30742. var nel = _initializeDegreeLists(n, cptr, W, degree, elen, w, dense, nv, head, last, next);
  30743. var mindeg = 0;
  30744. var i2, j, k, k1, k2, e3, pj, ln2, nvi, pk, eln, p1, p2, pn, h, d;
  30745. while (nel < n) {
  30746. for (k = -1; mindeg < n && (k = W[head + mindeg]) === -1; mindeg++)
  30747. ;
  30748. if (W[next + k] !== -1) {
  30749. last[W[next + k]] = -1;
  30750. }
  30751. W[head + mindeg] = W[next + k];
  30752. var elenk = W[elen + k];
  30753. var nvk = W[nv + k];
  30754. nel += nvk;
  30755. var dk = 0;
  30756. W[nv + k] = -nvk;
  30757. var p = cptr[k];
  30758. var pk1 = elenk === 0 ? p : cnz;
  30759. var pk2 = pk1;
  30760. for (k1 = 1; k1 <= elenk + 1; k1++) {
  30761. if (k1 > elenk) {
  30762. e3 = k;
  30763. pj = p;
  30764. ln2 = W[len + k] - elenk;
  30765. } else {
  30766. e3 = cindex[p++];
  30767. pj = cptr[e3];
  30768. ln2 = W[len + e3];
  30769. }
  30770. for (k2 = 1; k2 <= ln2; k2++) {
  30771. i2 = cindex[pj++];
  30772. if ((nvi = W[nv + i2]) <= 0) {
  30773. continue;
  30774. }
  30775. dk += nvi;
  30776. W[nv + i2] = -nvi;
  30777. cindex[pk2++] = i2;
  30778. if (W[next + i2] !== -1) {
  30779. last[W[next + i2]] = last[i2];
  30780. }
  30781. if (last[i2] !== -1) {
  30782. W[next + last[i2]] = W[next + i2];
  30783. } else {
  30784. W[head + W[degree + i2]] = W[next + i2];
  30785. }
  30786. }
  30787. if (e3 !== k) {
  30788. cptr[e3] = csFlip(k);
  30789. W[w + e3] = 0;
  30790. }
  30791. }
  30792. if (elenk !== 0) {
  30793. cnz = pk2;
  30794. }
  30795. W[degree + k] = dk;
  30796. cptr[k] = pk1;
  30797. W[len + k] = pk2 - pk1;
  30798. W[elen + k] = -2;
  30799. mark = _wclear(mark, lemax, W, w, n);
  30800. for (pk = pk1; pk < pk2; pk++) {
  30801. i2 = cindex[pk];
  30802. if ((eln = W[elen + i2]) <= 0) {
  30803. continue;
  30804. }
  30805. nvi = -W[nv + i2];
  30806. var wnvi = mark - nvi;
  30807. for (p = cptr[i2], p1 = cptr[i2] + eln - 1; p <= p1; p++) {
  30808. e3 = cindex[p];
  30809. if (W[w + e3] >= mark) {
  30810. W[w + e3] -= nvi;
  30811. } else if (W[w + e3] !== 0) {
  30812. W[w + e3] = W[degree + e3] + wnvi;
  30813. }
  30814. }
  30815. }
  30816. for (pk = pk1; pk < pk2; pk++) {
  30817. i2 = cindex[pk];
  30818. p1 = cptr[i2];
  30819. p2 = p1 + W[elen + i2] - 1;
  30820. pn = p1;
  30821. for (h = 0, d = 0, p = p1; p <= p2; p++) {
  30822. e3 = cindex[p];
  30823. if (W[w + e3] !== 0) {
  30824. var dext = W[w + e3] - mark;
  30825. if (dext > 0) {
  30826. d += dext;
  30827. cindex[pn++] = e3;
  30828. h += e3;
  30829. } else {
  30830. cptr[e3] = csFlip(k);
  30831. W[w + e3] = 0;
  30832. }
  30833. }
  30834. }
  30835. W[elen + i2] = pn - p1 + 1;
  30836. var p3 = pn;
  30837. var p4 = p1 + W[len + i2];
  30838. for (p = p2 + 1; p < p4; p++) {
  30839. j = cindex[p];
  30840. var nvj = W[nv + j];
  30841. if (nvj <= 0) {
  30842. continue;
  30843. }
  30844. d += nvj;
  30845. cindex[pn++] = j;
  30846. h += j;
  30847. }
  30848. if (d === 0) {
  30849. cptr[i2] = csFlip(k);
  30850. nvi = -W[nv + i2];
  30851. dk -= nvi;
  30852. nvk += nvi;
  30853. nel += nvi;
  30854. W[nv + i2] = 0;
  30855. W[elen + i2] = -1;
  30856. } else {
  30857. W[degree + i2] = Math.min(W[degree + i2], d);
  30858. cindex[pn] = cindex[p3];
  30859. cindex[p3] = cindex[p1];
  30860. cindex[p1] = k;
  30861. W[len + i2] = pn - p1 + 1;
  30862. h = (h < 0 ? -h : h) % n;
  30863. W[next + i2] = W[hhead + h];
  30864. W[hhead + h] = i2;
  30865. last[i2] = h;
  30866. }
  30867. }
  30868. W[degree + k] = dk;
  30869. lemax = Math.max(lemax, dk);
  30870. mark = _wclear(mark + lemax, lemax, W, w, n);
  30871. for (pk = pk1; pk < pk2; pk++) {
  30872. i2 = cindex[pk];
  30873. if (W[nv + i2] >= 0) {
  30874. continue;
  30875. }
  30876. h = last[i2];
  30877. i2 = W[hhead + h];
  30878. W[hhead + h] = -1;
  30879. for (; i2 !== -1 && W[next + i2] !== -1; i2 = W[next + i2], mark++) {
  30880. ln2 = W[len + i2];
  30881. eln = W[elen + i2];
  30882. for (p = cptr[i2] + 1; p <= cptr[i2] + ln2 - 1; p++) {
  30883. W[w + cindex[p]] = mark;
  30884. }
  30885. var jlast = i2;
  30886. for (j = W[next + i2]; j !== -1; ) {
  30887. var ok2 = W[len + j] === ln2 && W[elen + j] === eln;
  30888. for (p = cptr[j] + 1; ok2 && p <= cptr[j] + ln2 - 1; p++) {
  30889. if (W[w + cindex[p]] !== mark) {
  30890. ok2 = 0;
  30891. }
  30892. }
  30893. if (ok2) {
  30894. cptr[j] = csFlip(i2);
  30895. W[nv + i2] += W[nv + j];
  30896. W[nv + j] = 0;
  30897. W[elen + j] = -1;
  30898. j = W[next + j];
  30899. W[next + jlast] = j;
  30900. } else {
  30901. jlast = j;
  30902. j = W[next + j];
  30903. }
  30904. }
  30905. }
  30906. }
  30907. for (p = pk1, pk = pk1; pk < pk2; pk++) {
  30908. i2 = cindex[pk];
  30909. if ((nvi = -W[nv + i2]) <= 0) {
  30910. continue;
  30911. }
  30912. W[nv + i2] = nvi;
  30913. d = W[degree + i2] + dk - nvi;
  30914. d = Math.min(d, n - nel - nvi);
  30915. if (W[head + d] !== -1) {
  30916. last[W[head + d]] = i2;
  30917. }
  30918. W[next + i2] = W[head + d];
  30919. last[i2] = -1;
  30920. W[head + d] = i2;
  30921. mindeg = Math.min(mindeg, d);
  30922. W[degree + i2] = d;
  30923. cindex[p++] = i2;
  30924. }
  30925. W[nv + k] = nvk;
  30926. if ((W[len + k] = p - pk1) === 0) {
  30927. cptr[k] = -1;
  30928. W[w + k] = 0;
  30929. }
  30930. if (elenk !== 0) {
  30931. cnz = p;
  30932. }
  30933. }
  30934. for (i2 = 0; i2 < n; i2++) {
  30935. cptr[i2] = csFlip(cptr[i2]);
  30936. }
  30937. for (j = 0; j <= n; j++) {
  30938. W[head + j] = -1;
  30939. }
  30940. for (j = n; j >= 0; j--) {
  30941. if (W[nv + j] > 0) {
  30942. continue;
  30943. }
  30944. W[next + j] = W[head + cptr[j]];
  30945. W[head + cptr[j]] = j;
  30946. }
  30947. for (e3 = n; e3 >= 0; e3--) {
  30948. if (W[nv + e3] <= 0) {
  30949. continue;
  30950. }
  30951. if (cptr[e3] !== -1) {
  30952. W[next + e3] = W[head + cptr[e3]];
  30953. W[head + cptr[e3]] = e3;
  30954. }
  30955. }
  30956. for (k = 0, i2 = 0; i2 <= n; i2++) {
  30957. if (cptr[i2] === -1) {
  30958. k = csTdfs(i2, k, W, head, next, P3, w);
  30959. }
  30960. }
  30961. P3.splice(P3.length - 1, 1);
  30962. return P3;
  30963. };
  30964. function _createTargetMatrix(order, a, m, n, dense) {
  30965. var at = transpose2(a);
  30966. if (order === 1 && n === m) {
  30967. return add3(a, at);
  30968. }
  30969. if (order === 2) {
  30970. var tindex = at._index;
  30971. var tptr = at._ptr;
  30972. var p2 = 0;
  30973. for (var j = 0; j < m; j++) {
  30974. var p = tptr[j];
  30975. tptr[j] = p2;
  30976. if (tptr[j + 1] - p > dense) {
  30977. continue;
  30978. }
  30979. for (var p1 = tptr[j + 1]; p < p1; p++) {
  30980. tindex[p2++] = tindex[p];
  30981. }
  30982. }
  30983. tptr[m] = p2;
  30984. a = transpose2(at);
  30985. return multiply2(at, a);
  30986. }
  30987. return multiply2(at, a);
  30988. }
  30989. function _initializeQuotientGraph(n, cptr, W, len, head, last, next, hhead, nv, w, elen, degree) {
  30990. for (var k = 0; k < n; k++) {
  30991. W[len + k] = cptr[k + 1] - cptr[k];
  30992. }
  30993. W[len + n] = 0;
  30994. for (var i2 = 0; i2 <= n; i2++) {
  30995. W[head + i2] = -1;
  30996. last[i2] = -1;
  30997. W[next + i2] = -1;
  30998. W[hhead + i2] = -1;
  30999. W[nv + i2] = 1;
  31000. W[w + i2] = 1;
  31001. W[elen + i2] = 0;
  31002. W[degree + i2] = W[len + i2];
  31003. }
  31004. var mark = _wclear(0, 0, W, w, n);
  31005. W[elen + n] = -2;
  31006. cptr[n] = -1;
  31007. W[w + n] = 0;
  31008. return mark;
  31009. }
  31010. function _initializeDegreeLists(n, cptr, W, degree, elen, w, dense, nv, head, last, next) {
  31011. var nel = 0;
  31012. for (var i2 = 0; i2 < n; i2++) {
  31013. var d = W[degree + i2];
  31014. if (d === 0) {
  31015. W[elen + i2] = -2;
  31016. nel++;
  31017. cptr[i2] = -1;
  31018. W[w + i2] = 0;
  31019. } else if (d > dense) {
  31020. W[nv + i2] = 0;
  31021. W[elen + i2] = -1;
  31022. nel++;
  31023. cptr[i2] = csFlip(n);
  31024. W[nv + n]++;
  31025. } else {
  31026. var h = W[head + d];
  31027. if (h !== -1) {
  31028. last[h] = i2;
  31029. }
  31030. W[next + i2] = W[head + d];
  31031. W[head + d] = i2;
  31032. }
  31033. }
  31034. return nel;
  31035. }
  31036. function _wclear(mark, lemax, W, w, n) {
  31037. if (mark < 2 || mark + lemax < 0) {
  31038. for (var k = 0; k < n; k++) {
  31039. if (W[w + k] !== 0) {
  31040. W[w + k] = 1;
  31041. }
  31042. }
  31043. mark = 2;
  31044. }
  31045. return mark;
  31046. }
  31047. function _diag(i2, j) {
  31048. return i2 !== j;
  31049. }
  31050. });
  31051. // node_modules/mathjs/lib/esm/function/algebra/sparse/csLeaf.js
  31052. function csLeaf(i2, j, w, first, maxfirst, prevleaf, ancestor) {
  31053. var s, sparent;
  31054. var jleaf = 0;
  31055. var q;
  31056. if (i2 <= j || w[first + j] <= w[maxfirst + i2]) {
  31057. return -1;
  31058. }
  31059. w[maxfirst + i2] = w[first + j];
  31060. var jprev = w[prevleaf + i2];
  31061. w[prevleaf + i2] = j;
  31062. if (jprev === -1) {
  31063. jleaf = 1;
  31064. q = i2;
  31065. } else {
  31066. jleaf = 2;
  31067. for (q = jprev; q !== w[ancestor + q]; q = w[ancestor + q])
  31068. ;
  31069. for (s = jprev; s !== q; s = sparent) {
  31070. sparent = w[ancestor + s];
  31071. w[ancestor + s] = q;
  31072. }
  31073. }
  31074. return {
  31075. jleaf,
  31076. q
  31077. };
  31078. }
  31079. // node_modules/mathjs/lib/esm/function/algebra/sparse/csCounts.js
  31080. var name227 = "csCounts";
  31081. var dependencies227 = ["transpose"];
  31082. var createCsCounts = factory(name227, dependencies227, (_ref) => {
  31083. var {
  31084. transpose: transpose2
  31085. } = _ref;
  31086. return function(a, parent, post, ata) {
  31087. if (!a || !parent || !post) {
  31088. return null;
  31089. }
  31090. var asize = a._size;
  31091. var m = asize[0];
  31092. var n = asize[1];
  31093. var i2, j, k, J, p, p0, p1;
  31094. var s = 4 * n + (ata ? n + m + 1 : 0);
  31095. var w = [];
  31096. var ancestor = 0;
  31097. var maxfirst = n;
  31098. var prevleaf = 2 * n;
  31099. var first = 3 * n;
  31100. var head = 4 * n;
  31101. var next = 5 * n + 1;
  31102. for (k = 0; k < s; k++) {
  31103. w[k] = -1;
  31104. }
  31105. var colcount = [];
  31106. var at = transpose2(a);
  31107. var tindex = at._index;
  31108. var tptr = at._ptr;
  31109. for (k = 0; k < n; k++) {
  31110. j = post[k];
  31111. colcount[j] = w[first + j] === -1 ? 1 : 0;
  31112. for (; j !== -1 && w[first + j] === -1; j = parent[j]) {
  31113. w[first + j] = k;
  31114. }
  31115. }
  31116. if (ata) {
  31117. for (k = 0; k < n; k++) {
  31118. w[post[k]] = k;
  31119. }
  31120. for (i2 = 0; i2 < m; i2++) {
  31121. for (k = n, p0 = tptr[i2], p1 = tptr[i2 + 1], p = p0; p < p1; p++) {
  31122. k = Math.min(k, w[tindex[p]]);
  31123. }
  31124. w[next + i2] = w[head + k];
  31125. w[head + k] = i2;
  31126. }
  31127. }
  31128. for (i2 = 0; i2 < n; i2++) {
  31129. w[ancestor + i2] = i2;
  31130. }
  31131. for (k = 0; k < n; k++) {
  31132. j = post[k];
  31133. if (parent[j] !== -1) {
  31134. colcount[parent[j]]--;
  31135. }
  31136. for (J = ata ? w[head + k] : j; J !== -1; J = ata ? w[next + J] : -1) {
  31137. for (p = tptr[J]; p < tptr[J + 1]; p++) {
  31138. i2 = tindex[p];
  31139. var r = csLeaf(i2, j, w, first, maxfirst, prevleaf, ancestor);
  31140. if (r.jleaf >= 1) {
  31141. colcount[j]++;
  31142. }
  31143. if (r.jleaf === 2) {
  31144. colcount[r.q]--;
  31145. }
  31146. }
  31147. }
  31148. if (parent[j] !== -1) {
  31149. w[ancestor + j] = parent[j];
  31150. }
  31151. }
  31152. for (j = 0; j < n; j++) {
  31153. if (parent[j] !== -1) {
  31154. colcount[parent[j]] += colcount[j];
  31155. }
  31156. }
  31157. return colcount;
  31158. };
  31159. });
  31160. // node_modules/mathjs/lib/esm/function/algebra/sparse/csSqr.js
  31161. var name228 = "csSqr";
  31162. var dependencies228 = ["add", "multiply", "transpose"];
  31163. var createCsSqr = factory(name228, dependencies228, (_ref) => {
  31164. var {
  31165. add: add3,
  31166. multiply: multiply2,
  31167. transpose: transpose2
  31168. } = _ref;
  31169. var csAmd = createCsAmd({
  31170. add: add3,
  31171. multiply: multiply2,
  31172. transpose: transpose2
  31173. });
  31174. var csCounts = createCsCounts({
  31175. transpose: transpose2
  31176. });
  31177. return function csSqr(order, a, qr2) {
  31178. var aptr = a._ptr;
  31179. var asize = a._size;
  31180. var n = asize[1];
  31181. var k;
  31182. var s = {};
  31183. s.q = csAmd(order, a);
  31184. if (order && !s.q) {
  31185. return null;
  31186. }
  31187. if (qr2) {
  31188. var c = order ? csPermute(a, null, s.q, 0) : a;
  31189. s.parent = csEtree(c, 1);
  31190. var post = csPost(s.parent, n);
  31191. s.cp = csCounts(c, s.parent, post, 1);
  31192. if (c && s.parent && s.cp && _vcount(c, s)) {
  31193. for (s.unz = 0, k = 0; k < n; k++) {
  31194. s.unz += s.cp[k];
  31195. }
  31196. }
  31197. } else {
  31198. s.unz = 4 * aptr[n] + n;
  31199. s.lnz = s.unz;
  31200. }
  31201. return s;
  31202. };
  31203. function _vcount(a, s) {
  31204. var aptr = a._ptr;
  31205. var aindex = a._index;
  31206. var asize = a._size;
  31207. var m = asize[0];
  31208. var n = asize[1];
  31209. s.pinv = [];
  31210. s.leftmost = [];
  31211. var parent = s.parent;
  31212. var pinv2 = s.pinv;
  31213. var leftmost = s.leftmost;
  31214. var w = [];
  31215. var next = 0;
  31216. var head = m;
  31217. var tail = m + n;
  31218. var nque = m + 2 * n;
  31219. var i2, k, p, p0, p1;
  31220. for (k = 0; k < n; k++) {
  31221. w[head + k] = -1;
  31222. w[tail + k] = -1;
  31223. w[nque + k] = 0;
  31224. }
  31225. for (i2 = 0; i2 < m; i2++) {
  31226. leftmost[i2] = -1;
  31227. }
  31228. for (k = n - 1; k >= 0; k--) {
  31229. for (p0 = aptr[k], p1 = aptr[k + 1], p = p0; p < p1; p++) {
  31230. leftmost[aindex[p]] = k;
  31231. }
  31232. }
  31233. for (i2 = m - 1; i2 >= 0; i2--) {
  31234. pinv2[i2] = -1;
  31235. k = leftmost[i2];
  31236. if (k === -1) {
  31237. continue;
  31238. }
  31239. if (w[nque + k]++ === 0) {
  31240. w[tail + k] = i2;
  31241. }
  31242. w[next + i2] = w[head + k];
  31243. w[head + k] = i2;
  31244. }
  31245. s.lnz = 0;
  31246. s.m2 = m;
  31247. for (k = 0; k < n; k++) {
  31248. i2 = w[head + k];
  31249. s.lnz++;
  31250. if (i2 < 0) {
  31251. i2 = s.m2++;
  31252. }
  31253. pinv2[i2] = k;
  31254. if (--nque[k] <= 0) {
  31255. continue;
  31256. }
  31257. s.lnz += w[nque + k];
  31258. var pa = parent[k];
  31259. if (pa !== -1) {
  31260. if (w[nque + pa] === 0) {
  31261. w[tail + pa] = w[tail + k];
  31262. }
  31263. w[next + w[tail + k]] = w[head + pa];
  31264. w[head + pa] = w[next + i2];
  31265. w[nque + pa] += w[nque + k];
  31266. }
  31267. }
  31268. for (i2 = 0; i2 < m; i2++) {
  31269. if (pinv2[i2] < 0) {
  31270. pinv2[i2] = k++;
  31271. }
  31272. }
  31273. return true;
  31274. }
  31275. });
  31276. // node_modules/mathjs/lib/esm/function/algebra/sparse/csMarked.js
  31277. function csMarked(w, j) {
  31278. return w[j] < 0;
  31279. }
  31280. // node_modules/mathjs/lib/esm/function/algebra/sparse/csMark.js
  31281. function csMark(w, j) {
  31282. w[j] = csFlip(w[j]);
  31283. }
  31284. // node_modules/mathjs/lib/esm/function/algebra/sparse/csUnflip.js
  31285. function csUnflip(i2) {
  31286. return i2 < 0 ? csFlip(i2) : i2;
  31287. }
  31288. // node_modules/mathjs/lib/esm/function/algebra/sparse/csDfs.js
  31289. function csDfs(j, g, top, xi, pinv2) {
  31290. var index2 = g._index;
  31291. var ptr = g._ptr;
  31292. var size2 = g._size;
  31293. var n = size2[1];
  31294. var i2, p, p2;
  31295. var head = 0;
  31296. xi[0] = j;
  31297. while (head >= 0) {
  31298. j = xi[head];
  31299. var jnew = pinv2 ? pinv2[j] : j;
  31300. if (!csMarked(ptr, j)) {
  31301. csMark(ptr, j);
  31302. xi[n + head] = jnew < 0 ? 0 : csUnflip(ptr[jnew]);
  31303. }
  31304. var done = 1;
  31305. for (p = xi[n + head], p2 = jnew < 0 ? 0 : csUnflip(ptr[jnew + 1]); p < p2; p++) {
  31306. i2 = index2[p];
  31307. if (csMarked(ptr, i2)) {
  31308. continue;
  31309. }
  31310. xi[n + head] = p;
  31311. xi[++head] = i2;
  31312. done = 0;
  31313. break;
  31314. }
  31315. if (done) {
  31316. head--;
  31317. xi[--top] = j;
  31318. }
  31319. }
  31320. return top;
  31321. }
  31322. // node_modules/mathjs/lib/esm/function/algebra/sparse/csReach.js
  31323. function csReach(g, b, k, xi, pinv2) {
  31324. var gptr = g._ptr;
  31325. var gsize = g._size;
  31326. var bindex = b._index;
  31327. var bptr = b._ptr;
  31328. var n = gsize[1];
  31329. var p, p0, p1;
  31330. var top = n;
  31331. for (p0 = bptr[k], p1 = bptr[k + 1], p = p0; p < p1; p++) {
  31332. var i2 = bindex[p];
  31333. if (!csMarked(gptr, i2)) {
  31334. top = csDfs(i2, g, top, xi, pinv2);
  31335. }
  31336. }
  31337. for (p = top; p < n; p++) {
  31338. csMark(gptr, xi[p]);
  31339. }
  31340. return top;
  31341. }
  31342. // node_modules/mathjs/lib/esm/function/algebra/sparse/csSpsolve.js
  31343. var name229 = "csSpsolve";
  31344. var dependencies229 = ["divideScalar", "multiply", "subtract"];
  31345. var createCsSpsolve = factory(name229, dependencies229, (_ref) => {
  31346. var {
  31347. divideScalar: divideScalar2,
  31348. multiply: multiply2,
  31349. subtract: subtract2
  31350. } = _ref;
  31351. return function csSpsolve(g, b, k, xi, x, pinv2, lo) {
  31352. var gvalues = g._values;
  31353. var gindex = g._index;
  31354. var gptr = g._ptr;
  31355. var gsize = g._size;
  31356. var n = gsize[1];
  31357. var bvalues = b._values;
  31358. var bindex = b._index;
  31359. var bptr = b._ptr;
  31360. var p, p0, p1, q;
  31361. var top = csReach(g, b, k, xi, pinv2);
  31362. for (p = top; p < n; p++) {
  31363. x[xi[p]] = 0;
  31364. }
  31365. for (p0 = bptr[k], p1 = bptr[k + 1], p = p0; p < p1; p++) {
  31366. x[bindex[p]] = bvalues[p];
  31367. }
  31368. for (var px = top; px < n; px++) {
  31369. var j = xi[px];
  31370. var J = pinv2 ? pinv2[j] : j;
  31371. if (J < 0) {
  31372. continue;
  31373. }
  31374. p0 = gptr[J];
  31375. p1 = gptr[J + 1];
  31376. x[j] = divideScalar2(x[j], gvalues[lo ? p0 : p1 - 1]);
  31377. p = lo ? p0 + 1 : p0;
  31378. q = lo ? p1 : p1 - 1;
  31379. for (; p < q; p++) {
  31380. var i2 = gindex[p];
  31381. x[i2] = subtract2(x[i2], multiply2(gvalues[p], x[j]));
  31382. }
  31383. }
  31384. return top;
  31385. };
  31386. });
  31387. // node_modules/mathjs/lib/esm/function/algebra/sparse/csLu.js
  31388. var name230 = "csLu";
  31389. var dependencies230 = ["abs", "divideScalar", "multiply", "subtract", "larger", "largerEq", "SparseMatrix"];
  31390. var createCsLu = factory(name230, dependencies230, (_ref) => {
  31391. var {
  31392. abs: abs3,
  31393. divideScalar: divideScalar2,
  31394. multiply: multiply2,
  31395. subtract: subtract2,
  31396. larger: larger2,
  31397. largerEq: largerEq2,
  31398. SparseMatrix: SparseMatrix2
  31399. } = _ref;
  31400. var csSpsolve = createCsSpsolve({
  31401. divideScalar: divideScalar2,
  31402. multiply: multiply2,
  31403. subtract: subtract2
  31404. });
  31405. return function csLu(m, s, tol) {
  31406. if (!m) {
  31407. return null;
  31408. }
  31409. var size2 = m._size;
  31410. var n = size2[1];
  31411. var q;
  31412. var lnz = 100;
  31413. var unz = 100;
  31414. if (s) {
  31415. q = s.q;
  31416. lnz = s.lnz || lnz;
  31417. unz = s.unz || unz;
  31418. }
  31419. var lvalues = [];
  31420. var lindex = [];
  31421. var lptr = [];
  31422. var L = new SparseMatrix2({
  31423. values: lvalues,
  31424. index: lindex,
  31425. ptr: lptr,
  31426. size: [n, n]
  31427. });
  31428. var uvalues = [];
  31429. var uindex = [];
  31430. var uptr = [];
  31431. var U = new SparseMatrix2({
  31432. values: uvalues,
  31433. index: uindex,
  31434. ptr: uptr,
  31435. size: [n, n]
  31436. });
  31437. var pinv2 = [];
  31438. var i2, p;
  31439. var x = [];
  31440. var xi = [];
  31441. for (i2 = 0; i2 < n; i2++) {
  31442. x[i2] = 0;
  31443. pinv2[i2] = -1;
  31444. lptr[i2 + 1] = 0;
  31445. }
  31446. lnz = 0;
  31447. unz = 0;
  31448. for (var k = 0; k < n; k++) {
  31449. lptr[k] = lnz;
  31450. uptr[k] = unz;
  31451. var col = q ? q[k] : k;
  31452. var top = csSpsolve(L, m, col, xi, x, pinv2, 1);
  31453. var ipiv = -1;
  31454. var a = -1;
  31455. for (p = top; p < n; p++) {
  31456. i2 = xi[p];
  31457. if (pinv2[i2] < 0) {
  31458. var xabs = abs3(x[i2]);
  31459. if (larger2(xabs, a)) {
  31460. a = xabs;
  31461. ipiv = i2;
  31462. }
  31463. } else {
  31464. uindex[unz] = pinv2[i2];
  31465. uvalues[unz++] = x[i2];
  31466. }
  31467. }
  31468. if (ipiv === -1 || a <= 0) {
  31469. return null;
  31470. }
  31471. if (pinv2[col] < 0 && largerEq2(abs3(x[col]), multiply2(a, tol))) {
  31472. ipiv = col;
  31473. }
  31474. var pivot = x[ipiv];
  31475. uindex[unz] = k;
  31476. uvalues[unz++] = pivot;
  31477. pinv2[ipiv] = k;
  31478. lindex[lnz] = ipiv;
  31479. lvalues[lnz++] = 1;
  31480. for (p = top; p < n; p++) {
  31481. i2 = xi[p];
  31482. if (pinv2[i2] < 0) {
  31483. lindex[lnz] = i2;
  31484. lvalues[lnz++] = divideScalar2(x[i2], pivot);
  31485. }
  31486. x[i2] = 0;
  31487. }
  31488. }
  31489. lptr[n] = lnz;
  31490. uptr[n] = unz;
  31491. for (p = 0; p < lnz; p++) {
  31492. lindex[p] = pinv2[lindex[p]];
  31493. }
  31494. lvalues.splice(lnz, lvalues.length - lnz);
  31495. lindex.splice(lnz, lindex.length - lnz);
  31496. uvalues.splice(unz, uvalues.length - unz);
  31497. uindex.splice(unz, uindex.length - unz);
  31498. return {
  31499. L,
  31500. U,
  31501. pinv: pinv2
  31502. };
  31503. };
  31504. });
  31505. // node_modules/mathjs/lib/esm/function/algebra/decomposition/slu.js
  31506. var name231 = "slu";
  31507. var dependencies231 = ["typed", "abs", "add", "multiply", "transpose", "divideScalar", "subtract", "larger", "largerEq", "SparseMatrix"];
  31508. var createSlu = factory(name231, dependencies231, (_ref) => {
  31509. var {
  31510. typed: typed2,
  31511. abs: abs3,
  31512. add: add3,
  31513. multiply: multiply2,
  31514. transpose: transpose2,
  31515. divideScalar: divideScalar2,
  31516. subtract: subtract2,
  31517. larger: larger2,
  31518. largerEq: largerEq2,
  31519. SparseMatrix: SparseMatrix2
  31520. } = _ref;
  31521. var csSqr = createCsSqr({
  31522. add: add3,
  31523. multiply: multiply2,
  31524. transpose: transpose2
  31525. });
  31526. var csLu = createCsLu({
  31527. abs: abs3,
  31528. divideScalar: divideScalar2,
  31529. multiply: multiply2,
  31530. subtract: subtract2,
  31531. larger: larger2,
  31532. largerEq: largerEq2,
  31533. SparseMatrix: SparseMatrix2
  31534. });
  31535. return typed2(name231, {
  31536. "SparseMatrix, number, number": function SparseMatrixNumberNumber(a, order, threshold) {
  31537. if (!isInteger(order) || order < 0 || order > 3) {
  31538. throw new Error("Symbolic Ordering and Analysis order must be an integer number in the interval [0, 3]");
  31539. }
  31540. if (threshold < 0 || threshold > 1) {
  31541. throw new Error("Partial pivoting threshold must be a number from 0 to 1");
  31542. }
  31543. var s = csSqr(order, a, false);
  31544. var f = csLu(a, s, threshold);
  31545. return {
  31546. L: f.L,
  31547. U: f.U,
  31548. p: f.pinv,
  31549. q: s.q,
  31550. toString: function toString() {
  31551. return "L: " + this.L.toString() + "\nU: " + this.U.toString() + "\np: " + this.p.toString() + (this.q ? "\nq: " + this.q.toString() : "") + "\n";
  31552. }
  31553. };
  31554. }
  31555. });
  31556. });
  31557. // node_modules/mathjs/lib/esm/function/algebra/sparse/csIpvec.js
  31558. function csIpvec(p, b) {
  31559. var k;
  31560. var n = b.length;
  31561. var x = [];
  31562. if (p) {
  31563. for (k = 0; k < n; k++) {
  31564. x[p[k]] = b[k];
  31565. }
  31566. } else {
  31567. for (k = 0; k < n; k++) {
  31568. x[k] = b[k];
  31569. }
  31570. }
  31571. return x;
  31572. }
  31573. // node_modules/mathjs/lib/esm/function/algebra/solver/lusolve.js
  31574. var name232 = "lusolve";
  31575. var dependencies232 = ["typed", "matrix", "lup", "slu", "usolve", "lsolve", "DenseMatrix"];
  31576. var createLusolve = factory(name232, dependencies232, (_ref) => {
  31577. var {
  31578. typed: typed2,
  31579. matrix: matrix2,
  31580. lup: lup2,
  31581. slu: slu2,
  31582. usolve: usolve2,
  31583. lsolve: lsolve2,
  31584. DenseMatrix: DenseMatrix2
  31585. } = _ref;
  31586. var solveValidation = createSolveValidation({
  31587. DenseMatrix: DenseMatrix2
  31588. });
  31589. return typed2(name232, {
  31590. "Array, Array | Matrix": function ArrayArrayMatrix(a, b) {
  31591. a = matrix2(a);
  31592. var d = lup2(a);
  31593. var x = _lusolve(d.L, d.U, d.p, null, b);
  31594. return x.valueOf();
  31595. },
  31596. "DenseMatrix, Array | Matrix": function DenseMatrixArrayMatrix(a, b) {
  31597. var d = lup2(a);
  31598. return _lusolve(d.L, d.U, d.p, null, b);
  31599. },
  31600. "SparseMatrix, Array | Matrix": function SparseMatrixArrayMatrix(a, b) {
  31601. var d = lup2(a);
  31602. return _lusolve(d.L, d.U, d.p, null, b);
  31603. },
  31604. "SparseMatrix, Array | Matrix, number, number": function SparseMatrixArrayMatrixNumberNumber(a, b, order, threshold) {
  31605. var d = slu2(a, order, threshold);
  31606. return _lusolve(d.L, d.U, d.p, d.q, b);
  31607. },
  31608. "Object, Array | Matrix": function ObjectArrayMatrix(d, b) {
  31609. return _lusolve(d.L, d.U, d.p, d.q, b);
  31610. }
  31611. });
  31612. function _toMatrix(a) {
  31613. if (isMatrix(a)) {
  31614. return a;
  31615. }
  31616. if (isArray(a)) {
  31617. return matrix2(a);
  31618. }
  31619. throw new TypeError("Invalid Matrix LU decomposition");
  31620. }
  31621. function _lusolve(l, u, p, q, b) {
  31622. l = _toMatrix(l);
  31623. u = _toMatrix(u);
  31624. if (p) {
  31625. b = solveValidation(l, b, true);
  31626. b._data = csIpvec(p, b._data);
  31627. }
  31628. var y = lsolve2(l, b);
  31629. var x = usolve2(u, y);
  31630. if (q) {
  31631. x._data = csIpvec(q, x._data);
  31632. }
  31633. return x;
  31634. }
  31635. });
  31636. // node_modules/mathjs/lib/esm/function/algebra/polynomialRoot.js
  31637. var name233 = "polynomialRoot";
  31638. var dependencies233 = ["typed", "isZero", "equalScalar", "add", "subtract", "multiply", "divide", "sqrt", "unaryMinus", "cbrt", "typeOf", "im", "re"];
  31639. var createPolynomialRoot = factory(name233, dependencies233, (_ref) => {
  31640. var {
  31641. typed: typed2,
  31642. isZero: isZero2,
  31643. equalScalar: equalScalar2,
  31644. add: add3,
  31645. subtract: subtract2,
  31646. multiply: multiply2,
  31647. divide: divide3,
  31648. sqrt: sqrt3,
  31649. unaryMinus: unaryMinus2,
  31650. cbrt: cbrt5,
  31651. typeOf: typeOf3,
  31652. im: im2,
  31653. re: re2
  31654. } = _ref;
  31655. return typed2(name233, {
  31656. "number|Complex, ...number|Complex": (constant, restCoeffs) => {
  31657. var coeffs = [constant, ...restCoeffs];
  31658. while (coeffs.length > 0 && isZero2(coeffs[coeffs.length - 1])) {
  31659. coeffs.pop();
  31660. }
  31661. if (coeffs.length < 2) {
  31662. throw new RangeError("Polynomial [".concat(constant, ", ").concat(restCoeffs, "] must have a non-zero non-constant coefficient"));
  31663. }
  31664. switch (coeffs.length) {
  31665. case 2:
  31666. return [unaryMinus2(divide3(coeffs[0], coeffs[1]))];
  31667. case 3: {
  31668. var [c, b, a] = coeffs;
  31669. var denom = multiply2(2, a);
  31670. var d1 = multiply2(b, b);
  31671. var d2 = multiply2(4, a, c);
  31672. if (equalScalar2(d1, d2))
  31673. return [divide3(unaryMinus2(b), denom)];
  31674. var discriminant = sqrt3(subtract2(d1, d2));
  31675. return [divide3(subtract2(discriminant, b), denom), divide3(subtract2(unaryMinus2(discriminant), b), denom)];
  31676. }
  31677. case 4: {
  31678. var [d, _c, _b, _a] = coeffs;
  31679. var _denom = unaryMinus2(multiply2(3, _a));
  31680. var D0_1 = multiply2(_b, _b);
  31681. var D0_2 = multiply2(3, _a, _c);
  31682. var D1_1 = add3(multiply2(2, _b, _b, _b), multiply2(27, _a, _a, d));
  31683. var D1_2 = multiply2(9, _a, _b, _c);
  31684. if (equalScalar2(D0_1, D0_2) && equalScalar2(D1_1, D1_2)) {
  31685. return [divide3(_b, _denom)];
  31686. }
  31687. var Delta0 = subtract2(D0_1, D0_2);
  31688. var Delta1 = subtract2(D1_1, D1_2);
  31689. var discriminant1 = add3(multiply2(18, _a, _b, _c, d), multiply2(_b, _b, _c, _c));
  31690. var discriminant2 = add3(multiply2(4, _b, _b, _b, d), multiply2(4, _a, _c, _c, _c), multiply2(27, _a, _a, d, d));
  31691. if (equalScalar2(discriminant1, discriminant2)) {
  31692. return [
  31693. divide3(subtract2(multiply2(4, _a, _b, _c), add3(multiply2(9, _a, _a, d), multiply2(_b, _b, _b))), multiply2(_a, Delta0)),
  31694. // simple root
  31695. divide3(subtract2(multiply2(9, _a, d), multiply2(_b, _c)), multiply2(2, Delta0))
  31696. // double root
  31697. ];
  31698. }
  31699. var Ccubed;
  31700. if (equalScalar2(D0_1, D0_2)) {
  31701. Ccubed = Delta1;
  31702. } else {
  31703. Ccubed = divide3(add3(Delta1, sqrt3(subtract2(multiply2(Delta1, Delta1), multiply2(4, Delta0, Delta0, Delta0)))), 2);
  31704. }
  31705. var allRoots = true;
  31706. var rawRoots = cbrt5(Ccubed, allRoots).toArray().map((C) => divide3(add3(_b, C, divide3(Delta0, C)), _denom));
  31707. return rawRoots.map((r) => {
  31708. if (typeOf3(r) === "Complex" && equalScalar2(re2(r), re2(r) + im2(r))) {
  31709. return re2(r);
  31710. }
  31711. return r;
  31712. });
  31713. }
  31714. default:
  31715. throw new RangeError("only implemented for cubic or lower-order polynomials, not ".concat(coeffs));
  31716. }
  31717. }
  31718. });
  31719. });
  31720. // node_modules/mathjs/lib/esm/expression/Help.js
  31721. var name234 = "Help";
  31722. var dependencies234 = ["parse"];
  31723. var createHelpClass = factory(name234, dependencies234, (_ref) => {
  31724. var {
  31725. parse: parse2
  31726. } = _ref;
  31727. function Help2(doc) {
  31728. if (!(this instanceof Help2)) {
  31729. throw new SyntaxError("Constructor must be called with the new operator");
  31730. }
  31731. if (!doc)
  31732. throw new Error('Argument "doc" missing');
  31733. this.doc = doc;
  31734. }
  31735. Help2.prototype.type = "Help";
  31736. Help2.prototype.isHelp = true;
  31737. Help2.prototype.toString = function() {
  31738. var doc = this.doc || {};
  31739. var desc = "\n";
  31740. if (doc.name) {
  31741. desc += "Name: " + doc.name + "\n\n";
  31742. }
  31743. if (doc.category) {
  31744. desc += "Category: " + doc.category + "\n\n";
  31745. }
  31746. if (doc.description) {
  31747. desc += "Description:\n " + doc.description + "\n\n";
  31748. }
  31749. if (doc.syntax) {
  31750. desc += "Syntax:\n " + doc.syntax.join("\n ") + "\n\n";
  31751. }
  31752. if (doc.examples) {
  31753. desc += "Examples:\n";
  31754. var scope = {};
  31755. for (var i2 = 0; i2 < doc.examples.length; i2++) {
  31756. var expr = doc.examples[i2];
  31757. desc += " " + expr + "\n";
  31758. var res = void 0;
  31759. try {
  31760. res = parse2(expr).compile().evaluate(scope);
  31761. } catch (e3) {
  31762. res = e3;
  31763. }
  31764. if (res !== void 0 && !isHelp(res)) {
  31765. desc += " " + format3(res, {
  31766. precision: 14
  31767. }) + "\n";
  31768. }
  31769. }
  31770. desc += "\n";
  31771. }
  31772. if (doc.mayThrow && doc.mayThrow.length) {
  31773. desc += "Throws: " + doc.mayThrow.join(", ") + "\n\n";
  31774. }
  31775. if (doc.seealso && doc.seealso.length) {
  31776. desc += "See also: " + doc.seealso.join(", ") + "\n";
  31777. }
  31778. return desc;
  31779. };
  31780. Help2.prototype.toJSON = function() {
  31781. var obj = clone(this.doc);
  31782. obj.mathjs = "Help";
  31783. return obj;
  31784. };
  31785. Help2.fromJSON = function(json) {
  31786. var doc = {};
  31787. Object.keys(json).filter((prop) => prop !== "mathjs").forEach((prop) => {
  31788. doc[prop] = json[prop];
  31789. });
  31790. return new Help2(doc);
  31791. };
  31792. Help2.prototype.valueOf = Help2.prototype.toString;
  31793. return Help2;
  31794. }, {
  31795. isClass: true
  31796. });
  31797. // node_modules/mathjs/lib/esm/type/chain/Chain.js
  31798. var name235 = "Chain";
  31799. var dependencies235 = ["?on", "math", "typed"];
  31800. var createChainClass = factory(name235, dependencies235, (_ref) => {
  31801. var {
  31802. on,
  31803. math: math2,
  31804. typed: typed2
  31805. } = _ref;
  31806. function Chain2(value) {
  31807. if (!(this instanceof Chain2)) {
  31808. throw new SyntaxError("Constructor must be called with the new operator");
  31809. }
  31810. if (isChain(value)) {
  31811. this.value = value.value;
  31812. } else {
  31813. this.value = value;
  31814. }
  31815. }
  31816. Chain2.prototype.type = "Chain";
  31817. Chain2.prototype.isChain = true;
  31818. Chain2.prototype.done = function() {
  31819. return this.value;
  31820. };
  31821. Chain2.prototype.valueOf = function() {
  31822. return this.value;
  31823. };
  31824. Chain2.prototype.toString = function() {
  31825. return format3(this.value);
  31826. };
  31827. Chain2.prototype.toJSON = function() {
  31828. return {
  31829. mathjs: "Chain",
  31830. value: this.value
  31831. };
  31832. };
  31833. Chain2.fromJSON = function(json) {
  31834. return new Chain2(json.value);
  31835. };
  31836. function createProxy(name302, fn) {
  31837. if (typeof fn === "function") {
  31838. Chain2.prototype[name302] = chainify(fn);
  31839. }
  31840. }
  31841. function createLazyProxy(name302, resolver) {
  31842. lazy(Chain2.prototype, name302, function outerResolver() {
  31843. var fn = resolver();
  31844. if (typeof fn === "function") {
  31845. return chainify(fn);
  31846. }
  31847. return void 0;
  31848. });
  31849. }
  31850. function chainify(fn) {
  31851. return function() {
  31852. if (arguments.length === 0) {
  31853. return new Chain2(fn(this.value));
  31854. }
  31855. var args = [this.value];
  31856. for (var i2 = 0; i2 < arguments.length; i2++) {
  31857. args[i2 + 1] = arguments[i2];
  31858. }
  31859. if (typed2.isTypedFunction(fn)) {
  31860. var sigObject = typed2.resolve(fn, args);
  31861. if (sigObject.params.length === 1) {
  31862. throw new Error("chain function " + fn.name + " cannot match rest parameter between chain value and additional arguments.");
  31863. }
  31864. return new Chain2(sigObject.implementation.apply(fn, args));
  31865. }
  31866. return new Chain2(fn.apply(fn, args));
  31867. };
  31868. }
  31869. Chain2.createProxy = function(arg0, arg1) {
  31870. if (typeof arg0 === "string") {
  31871. createProxy(arg0, arg1);
  31872. } else {
  31873. var _loop = function _loop2(_name2) {
  31874. if (hasOwnProperty2(arg0, _name2) && excludedNames[_name2] === void 0) {
  31875. createLazyProxy(_name2, () => arg0[_name2]);
  31876. }
  31877. };
  31878. for (var _name in arg0) {
  31879. _loop(_name);
  31880. }
  31881. }
  31882. };
  31883. var excludedNames = {
  31884. expression: true,
  31885. docs: true,
  31886. type: true,
  31887. classes: true,
  31888. json: true,
  31889. error: true,
  31890. isChain: true
  31891. // conflicts with the property isChain of a Chain instance
  31892. };
  31893. Chain2.createProxy(math2);
  31894. if (on) {
  31895. on("import", function(name302, resolver, path) {
  31896. if (!path) {
  31897. createLazyProxy(name302, resolver);
  31898. }
  31899. });
  31900. }
  31901. return Chain2;
  31902. }, {
  31903. isClass: true
  31904. });
  31905. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/e.js
  31906. var eDocs = {
  31907. name: "e",
  31908. category: "Constants",
  31909. syntax: ["e"],
  31910. description: "Euler's number, the base of the natural logarithm. Approximately equal to 2.71828",
  31911. examples: ["e", "e ^ 2", "exp(2)", "log(e)"],
  31912. seealso: ["exp"]
  31913. };
  31914. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/false.js
  31915. var falseDocs = {
  31916. name: "false",
  31917. category: "Constants",
  31918. syntax: ["false"],
  31919. description: "Boolean value false",
  31920. examples: ["false"],
  31921. seealso: ["true"]
  31922. };
  31923. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/i.js
  31924. var iDocs = {
  31925. name: "i",
  31926. category: "Constants",
  31927. syntax: ["i"],
  31928. description: "Imaginary unit, defined as i*i=-1. A complex number is described as a + b*i, where a is the real part, and b is the imaginary part.",
  31929. examples: ["i", "i * i", "sqrt(-1)"],
  31930. seealso: []
  31931. };
  31932. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/Infinity.js
  31933. var InfinityDocs = {
  31934. name: "Infinity",
  31935. category: "Constants",
  31936. syntax: ["Infinity"],
  31937. description: "Infinity, a number which is larger than the maximum number that can be handled by a floating point number.",
  31938. examples: ["Infinity", "1 / 0"],
  31939. seealso: []
  31940. };
  31941. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/LN10.js
  31942. var LN10Docs = {
  31943. name: "LN10",
  31944. category: "Constants",
  31945. syntax: ["LN10"],
  31946. description: "Returns the natural logarithm of 10, approximately equal to 2.302",
  31947. examples: ["LN10", "log(10)"],
  31948. seealso: []
  31949. };
  31950. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/LN2.js
  31951. var LN2Docs = {
  31952. name: "LN2",
  31953. category: "Constants",
  31954. syntax: ["LN2"],
  31955. description: "Returns the natural logarithm of 2, approximately equal to 0.693",
  31956. examples: ["LN2", "log(2)"],
  31957. seealso: []
  31958. };
  31959. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/LOG10E.js
  31960. var LOG10EDocs = {
  31961. name: "LOG10E",
  31962. category: "Constants",
  31963. syntax: ["LOG10E"],
  31964. description: "Returns the base-10 logarithm of E, approximately equal to 0.434",
  31965. examples: ["LOG10E", "log(e, 10)"],
  31966. seealso: []
  31967. };
  31968. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/LOG2E.js
  31969. var LOG2EDocs = {
  31970. name: "LOG2E",
  31971. category: "Constants",
  31972. syntax: ["LOG2E"],
  31973. description: "Returns the base-2 logarithm of E, approximately equal to 1.442",
  31974. examples: ["LOG2E", "log(e, 2)"],
  31975. seealso: []
  31976. };
  31977. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/NaN.js
  31978. var NaNDocs = {
  31979. name: "NaN",
  31980. category: "Constants",
  31981. syntax: ["NaN"],
  31982. description: "Not a number",
  31983. examples: ["NaN", "0 / 0"],
  31984. seealso: []
  31985. };
  31986. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/null.js
  31987. var nullDocs = {
  31988. name: "null",
  31989. category: "Constants",
  31990. syntax: ["null"],
  31991. description: "Value null",
  31992. examples: ["null"],
  31993. seealso: ["true", "false"]
  31994. };
  31995. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/phi.js
  31996. var phiDocs = {
  31997. name: "phi",
  31998. category: "Constants",
  31999. syntax: ["phi"],
  32000. description: "Phi is the golden ratio. Two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Phi is defined as `(1 + sqrt(5)) / 2` and is approximately 1.618034...",
  32001. examples: ["phi"],
  32002. seealso: []
  32003. };
  32004. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/pi.js
  32005. var piDocs = {
  32006. name: "pi",
  32007. category: "Constants",
  32008. syntax: ["pi"],
  32009. description: "The number pi is a mathematical constant that is the ratio of a circle's circumference to its diameter, and is approximately equal to 3.14159",
  32010. examples: ["pi", "sin(pi/2)"],
  32011. seealso: ["tau"]
  32012. };
  32013. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/SQRT1_2.js
  32014. var SQRT12Docs = {
  32015. name: "SQRT1_2",
  32016. category: "Constants",
  32017. syntax: ["SQRT1_2"],
  32018. description: "Returns the square root of 1/2, approximately equal to 0.707",
  32019. examples: ["SQRT1_2", "sqrt(1/2)"],
  32020. seealso: []
  32021. };
  32022. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/SQRT2.js
  32023. var SQRT2Docs = {
  32024. name: "SQRT2",
  32025. category: "Constants",
  32026. syntax: ["SQRT2"],
  32027. description: "Returns the square root of 2, approximately equal to 1.414",
  32028. examples: ["SQRT2", "sqrt(2)"],
  32029. seealso: []
  32030. };
  32031. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/tau.js
  32032. var tauDocs = {
  32033. name: "tau",
  32034. category: "Constants",
  32035. syntax: ["tau"],
  32036. description: "Tau is the ratio constant of a circle's circumference to radius, equal to 2 * pi, approximately 6.2832.",
  32037. examples: ["tau", "2 * pi"],
  32038. seealso: ["pi"]
  32039. };
  32040. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/true.js
  32041. var trueDocs = {
  32042. name: "true",
  32043. category: "Constants",
  32044. syntax: ["true"],
  32045. description: "Boolean value true",
  32046. examples: ["true"],
  32047. seealso: ["false"]
  32048. };
  32049. // node_modules/mathjs/lib/esm/expression/embeddedDocs/constants/version.js
  32050. var versionDocs = {
  32051. name: "version",
  32052. category: "Constants",
  32053. syntax: ["version"],
  32054. description: "A string with the version number of math.js",
  32055. examples: ["version"],
  32056. seealso: []
  32057. };
  32058. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/bignumber.js
  32059. var bignumberDocs = {
  32060. name: "bignumber",
  32061. category: "Construction",
  32062. syntax: ["bignumber(x)"],
  32063. description: "Create a big number from a number or string.",
  32064. examples: ["0.1 + 0.2", "bignumber(0.1) + bignumber(0.2)", 'bignumber("7.2")', 'bignumber("7.2e500")', "bignumber([0.1, 0.2, 0.3])"],
  32065. seealso: ["boolean", "complex", "fraction", "index", "matrix", "string", "unit"]
  32066. };
  32067. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/boolean.js
  32068. var booleanDocs = {
  32069. name: "boolean",
  32070. category: "Construction",
  32071. syntax: ["x", "boolean(x)"],
  32072. description: "Convert a string or number into a boolean.",
  32073. examples: ["boolean(0)", "boolean(1)", "boolean(3)", 'boolean("true")', 'boolean("false")', "boolean([1, 0, 1, 1])"],
  32074. seealso: ["bignumber", "complex", "index", "matrix", "number", "string", "unit"]
  32075. };
  32076. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/complex.js
  32077. var complexDocs = {
  32078. name: "complex",
  32079. category: "Construction",
  32080. syntax: ["complex()", "complex(re, im)", "complex(string)"],
  32081. description: "Create a complex number.",
  32082. examples: ["complex()", "complex(2, 3)", 'complex("7 - 2i")'],
  32083. seealso: ["bignumber", "boolean", "index", "matrix", "number", "string", "unit"]
  32084. };
  32085. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/createUnit.js
  32086. var createUnitDocs = {
  32087. name: "createUnit",
  32088. category: "Construction",
  32089. syntax: ["createUnit(definitions)", "createUnit(name, definition)"],
  32090. description: "Create a user-defined unit and register it with the Unit type.",
  32091. examples: ['createUnit("foo")', 'createUnit("knot", {definition: "0.514444444 m/s", aliases: ["knots", "kt", "kts"]})', 'createUnit("mph", "1 mile/hour")'],
  32092. seealso: ["unit", "splitUnit"]
  32093. };
  32094. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/fraction.js
  32095. var fractionDocs = {
  32096. name: "fraction",
  32097. category: "Construction",
  32098. syntax: ["fraction(num)", "fraction(matrix)", "fraction(num,den)", "fraction({n: num, d: den})"],
  32099. description: "Create a fraction from a number or from integer numerator and denominator.",
  32100. examples: ["fraction(0.125)", "fraction(1, 3) + fraction(2, 5)", "fraction({n: 333, d: 53})", "fraction([sqrt(9), sqrt(10), sqrt(11)])"],
  32101. seealso: ["bignumber", "boolean", "complex", "index", "matrix", "string", "unit"]
  32102. };
  32103. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/index.js
  32104. var indexDocs = {
  32105. name: "index",
  32106. category: "Construction",
  32107. syntax: ["[start]", "[start:end]", "[start:step:end]", "[start1, start 2, ...]", "[start1:end1, start2:end2, ...]", "[start1:step1:end1, start2:step2:end2, ...]"],
  32108. description: "Create an index to get or replace a subset of a matrix",
  32109. examples: ["[1, 2, 3]", "A = [1, 2, 3; 4, 5, 6]", "A[1, :]", "A[1, 2] = 50", "A[1:2, 1:2] = ones(2, 2)"],
  32110. seealso: ["bignumber", "boolean", "complex", "matrix,", "number", "range", "string", "unit"]
  32111. };
  32112. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/matrix.js
  32113. var matrixDocs = {
  32114. name: "matrix",
  32115. category: "Construction",
  32116. syntax: ["[]", "[a1, b1, ...; a2, b2, ...]", "matrix()", 'matrix("dense")', "matrix([...])"],
  32117. description: "Create a matrix.",
  32118. examples: ["[]", "[1, 2, 3]", "[1, 2, 3; 4, 5, 6]", "matrix()", "matrix([3, 4])", 'matrix([3, 4; 5, 6], "sparse")', 'matrix([3, 4; 5, 6], "sparse", "number")'],
  32119. seealso: ["bignumber", "boolean", "complex", "index", "number", "string", "unit", "sparse"]
  32120. };
  32121. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/number.js
  32122. var numberDocs = {
  32123. name: "number",
  32124. category: "Construction",
  32125. syntax: ["x", "number(x)", "number(unit, valuelessUnit)"],
  32126. description: "Create a number or convert a string or boolean into a number.",
  32127. examples: ["2", "2e3", "4.05", "number(2)", 'number("7.2")', "number(true)", "number([true, false, true, true])", 'number(unit("52cm"), "m")'],
  32128. seealso: ["bignumber", "boolean", "complex", "fraction", "index", "matrix", "string", "unit"]
  32129. };
  32130. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/sparse.js
  32131. var sparseDocs = {
  32132. name: "sparse",
  32133. category: "Construction",
  32134. syntax: ["sparse()", "sparse([a1, b1, ...; a1, b2, ...])", 'sparse([a1, b1, ...; a1, b2, ...], "number")'],
  32135. description: "Create a sparse matrix.",
  32136. examples: ["sparse()", "sparse([3, 4; 5, 6])", 'sparse([3, 0; 5, 0], "number")'],
  32137. seealso: ["bignumber", "boolean", "complex", "index", "number", "string", "unit", "matrix"]
  32138. };
  32139. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/splitUnit.js
  32140. var splitUnitDocs = {
  32141. name: "splitUnit",
  32142. category: "Construction",
  32143. syntax: ["splitUnit(unit: Unit, parts: Unit[])"],
  32144. description: "Split a unit in an array of units whose sum is equal to the original unit.",
  32145. examples: ['splitUnit(1 m, ["feet", "inch"])'],
  32146. seealso: ["unit", "createUnit"]
  32147. };
  32148. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/string.js
  32149. var stringDocs = {
  32150. name: "string",
  32151. category: "Construction",
  32152. syntax: ['"text"', "string(x)"],
  32153. description: "Create a string or convert a value to a string",
  32154. examples: ['"Hello World!"', "string(4.2)", "string(3 + 2i)"],
  32155. seealso: ["bignumber", "boolean", "complex", "index", "matrix", "number", "unit"]
  32156. };
  32157. // node_modules/mathjs/lib/esm/expression/embeddedDocs/construction/unit.js
  32158. var unitDocs = {
  32159. name: "unit",
  32160. category: "Construction",
  32161. syntax: ["value unit", "unit(value, unit)", "unit(string)"],
  32162. description: "Create a unit.",
  32163. examples: ["5.5 mm", "3 inch", 'unit(7.1, "kilogram")', 'unit("23 deg")'],
  32164. seealso: ["bignumber", "boolean", "complex", "index", "matrix", "number", "string"]
  32165. };
  32166. // node_modules/mathjs/lib/esm/expression/embeddedDocs/core/config.js
  32167. var configDocs = {
  32168. name: "config",
  32169. category: "Core",
  32170. syntax: ["config()", "config(options)"],
  32171. description: "Get configuration or change configuration.",
  32172. examples: ["config()", "1/3 + 1/4", 'config({number: "Fraction"})', "1/3 + 1/4"],
  32173. seealso: []
  32174. };
  32175. // node_modules/mathjs/lib/esm/expression/embeddedDocs/core/import.js
  32176. var importDocs = {
  32177. name: "import",
  32178. category: "Core",
  32179. syntax: ["import(functions)", "import(functions, options)"],
  32180. description: "Import functions or constants from an object.",
  32181. examples: ["import({myFn: f(x)=x^2, myConstant: 32 })", "myFn(2)", "myConstant"],
  32182. seealso: []
  32183. };
  32184. // node_modules/mathjs/lib/esm/expression/embeddedDocs/core/typed.js
  32185. var typedDocs = {
  32186. name: "typed",
  32187. category: "Core",
  32188. syntax: ["typed(signatures)", "typed(name, signatures)"],
  32189. description: "Create a typed function.",
  32190. examples: ['double = typed({ "number": f(x)=x+x })', "double(2)", 'double("hello")'],
  32191. seealso: []
  32192. };
  32193. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/derivative.js
  32194. var derivativeDocs = {
  32195. name: "derivative",
  32196. category: "Algebra",
  32197. syntax: ["derivative(expr, variable)", "derivative(expr, variable, {simplify: boolean})"],
  32198. description: "Takes the derivative of an expression expressed in parser Nodes. The derivative will be taken over the supplied variable in the second parameter. If there are multiple variables in the expression, it will return a partial derivative.",
  32199. examples: ['derivative("2x^3", "x")', 'derivative("2x^3", "x", {simplify: false})', 'derivative("2x^2 + 3x + 4", "x")', 'derivative("sin(2x)", "x")', 'f = parse("x^2 + x")', 'x = parse("x")', "df = derivative(f, x)", "df.evaluate({x: 3})"],
  32200. seealso: ["simplify", "parse", "evaluate"]
  32201. };
  32202. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js
  32203. var leafCountDocs = {
  32204. name: "leafCount",
  32205. category: "Algebra",
  32206. syntax: ["leafCount(expr)"],
  32207. description: "Computes the number of leaves in the parse tree of the given expression",
  32208. examples: ['leafCount("e^(i*pi)-1")', 'leafCount(parse("{a: 22/7, b: 10^(1/2)}"))'],
  32209. seealso: ["simplify"]
  32210. };
  32211. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/lsolve.js
  32212. var lsolveDocs = {
  32213. name: "lsolve",
  32214. category: "Algebra",
  32215. syntax: ["x=lsolve(L, b)"],
  32216. description: "Finds one solution of the linear system L * x = b where L is an [n x n] lower triangular matrix and b is a [n] column vector.",
  32217. examples: ["a = [-2, 3; 2, 1]", "b = [11, 9]", "x = lsolve(a, b)"],
  32218. seealso: ["lsolveAll", "lup", "lusolve", "usolve", "matrix", "sparse"]
  32219. };
  32220. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/lsolveAll.js
  32221. var lsolveAllDocs = {
  32222. name: "lsolveAll",
  32223. category: "Algebra",
  32224. syntax: ["x=lsolveAll(L, b)"],
  32225. description: "Finds all solutions of the linear system L * x = b where L is an [n x n] lower triangular matrix and b is a [n] column vector.",
  32226. examples: ["a = [-2, 3; 2, 1]", "b = [11, 9]", "x = lsolve(a, b)"],
  32227. seealso: ["lsolve", "lup", "lusolve", "usolve", "matrix", "sparse"]
  32228. };
  32229. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/lup.js
  32230. var lupDocs = {
  32231. name: "lup",
  32232. category: "Algebra",
  32233. syntax: ["lup(m)"],
  32234. description: "Calculate the Matrix LU decomposition with partial pivoting. Matrix A is decomposed in three matrices (L, U, P) where P * A = L * U",
  32235. examples: ["lup([[2, 1], [1, 4]])", "lup(matrix([[2, 1], [1, 4]]))", "lup(sparse([[2, 1], [1, 4]]))"],
  32236. seealso: ["lusolve", "lsolve", "usolve", "matrix", "sparse", "slu", "qr"]
  32237. };
  32238. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/lusolve.js
  32239. var lusolveDocs = {
  32240. name: "lusolve",
  32241. category: "Algebra",
  32242. syntax: ["x=lusolve(A, b)", "x=lusolve(lu, b)"],
  32243. description: "Solves the linear system A * x = b where A is an [n x n] matrix and b is a [n] column vector.",
  32244. examples: ["a = [-2, 3; 2, 1]", "b = [11, 9]", "x = lusolve(a, b)"],
  32245. seealso: ["lup", "slu", "lsolve", "usolve", "matrix", "sparse"]
  32246. };
  32247. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js
  32248. var polynomialRootDocs = {
  32249. name: "polynomialRoot",
  32250. category: "Algebra",
  32251. syntax: ["x=polynomialRoot(-6, 3)", "x=polynomialRoot(4, -4, 1)", "x=polynomialRoot(-8, 12, -6, 1)"],
  32252. description: "Finds the roots of a univariate polynomial given by its coefficients starting from constant, linear, and so on, increasing in degree.",
  32253. examples: ["a = polynomialRoot(-6, 11, -6 1)"],
  32254. seealso: ["cbrt", "sqrt"]
  32255. };
  32256. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/qr.js
  32257. var qrDocs = {
  32258. name: "qr",
  32259. category: "Algebra",
  32260. syntax: ["qr(A)"],
  32261. description: "Calculates the Matrix QR decomposition. Matrix `A` is decomposed in two matrices (`Q`, `R`) where `Q` is an orthogonal matrix and `R` is an upper triangular matrix.",
  32262. examples: ["qr([[1, -1, 4], [1, 4, -2], [1, 4, 2], [1, -1, 0]])"],
  32263. seealso: ["lup", "slu", "matrix"]
  32264. };
  32265. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/rationalize.js
  32266. var rationalizeDocs = {
  32267. name: "rationalize",
  32268. category: "Algebra",
  32269. syntax: ["rationalize(expr)", "rationalize(expr, scope)", "rationalize(expr, scope, detailed)"],
  32270. description: "Transform a rationalizable expression in a rational fraction. If rational fraction is one variable polynomial then converts the numerator and denominator in canonical form, with decreasing exponents, returning the coefficients of numerator.",
  32271. examples: ['rationalize("2x/y - y/(x+1)")', 'rationalize("2x/y - y/(x+1)", true)'],
  32272. seealso: ["simplify"]
  32273. };
  32274. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/resolve.js
  32275. var resolveDocs = {
  32276. name: "resolve",
  32277. category: "Algebra",
  32278. syntax: ["resolve(node, scope)"],
  32279. description: "Recursively substitute variables in an expression tree.",
  32280. examples: ['resolve(parse("1 + x"), { x: 7 })', 'resolve(parse("size(text)"), { text: "Hello World" })', 'resolve(parse("x + y"), { x: parse("3z") })', 'resolve(parse("3x"), { x: parse("y+z"), z: parse("w^y") })'],
  32281. seealso: ["simplify", "evaluate"],
  32282. mayThrow: ["ReferenceError"]
  32283. };
  32284. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/simplify.js
  32285. var simplifyDocs = {
  32286. name: "simplify",
  32287. category: "Algebra",
  32288. syntax: ["simplify(expr)", "simplify(expr, rules)"],
  32289. description: "Simplify an expression tree.",
  32290. examples: ['simplify("3 + 2 / 4")', 'simplify("2x + x")', 'f = parse("x * (x + 2 + x)")', "simplified = simplify(f)", "simplified.evaluate({x: 2})"],
  32291. seealso: ["simplifyCore", "derivative", "evaluate", "parse", "rationalize", "resolve"]
  32292. };
  32293. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js
  32294. var simplifyConstantDocs = {
  32295. name: "simplifyConstant",
  32296. category: "Algebra",
  32297. syntax: ["simplifyConstant(expr)", "simplifyConstant(expr, options)"],
  32298. description: "Replace constant subexpressions of node with their values.",
  32299. examples: ['simplifyConatant("(3-3)*x")', 'simplifyConstant(parse("z-cos(tau/8)"))'],
  32300. seealso: ["simplify", "simplifyCore", "evaluate"]
  32301. };
  32302. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js
  32303. var simplifyCoreDocs = {
  32304. name: "simplifyCore",
  32305. category: "Algebra",
  32306. syntax: ["simplifyCore(node)"],
  32307. description: "Perform simple one-pass simplifications on an expression tree.",
  32308. examples: ['simplifyCore(parse("0*x"))', 'simplifyCore(parse("(x+0)*2"))'],
  32309. seealso: ["simplify", "simplifyConstant", "evaluate"]
  32310. };
  32311. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/slu.js
  32312. var sluDocs = {
  32313. name: "slu",
  32314. category: "Algebra",
  32315. syntax: ["slu(A, order, threshold)"],
  32316. description: "Calculate the Matrix LU decomposition with full pivoting. Matrix A is decomposed in two matrices (L, U) and two permutation vectors (pinv, q) where P * A * Q = L * U",
  32317. examples: ["slu(sparse([4.5, 0, 3.2, 0; 3.1, 2.9, 0, 0.9; 0, 1.7, 3, 0; 3.5, 0.4, 0, 1]), 1, 0.001)"],
  32318. seealso: ["lusolve", "lsolve", "usolve", "matrix", "sparse", "lup", "qr"]
  32319. };
  32320. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js
  32321. var symbolicEqualDocs = {
  32322. name: "symbolicEqual",
  32323. category: "Algebra",
  32324. syntax: ["symbolicEqual(expr1, expr2)", "symbolicEqual(expr1, expr2, options)"],
  32325. description: "Returns true if the difference of the expressions simplifies to 0",
  32326. examples: ['symbolicEqual("x*y","y*x")', 'symbolicEqual("abs(x^2)", "x^2")', 'symbolicEqual("abs(x)", "x", {context: {abs: {trivial: true}}})'],
  32327. seealso: ["simplify", "evaluate"]
  32328. };
  32329. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/usolve.js
  32330. var usolveDocs = {
  32331. name: "usolve",
  32332. category: "Algebra",
  32333. syntax: ["x=usolve(U, b)"],
  32334. description: "Finds one solution of the linear system U * x = b where U is an [n x n] upper triangular matrix and b is a [n] column vector.",
  32335. examples: ["x=usolve(sparse([1, 1, 1, 1; 0, 1, 1, 1; 0, 0, 1, 1; 0, 0, 0, 1]), [1; 2; 3; 4])"],
  32336. seealso: ["usolveAll", "lup", "lusolve", "lsolve", "matrix", "sparse"]
  32337. };
  32338. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/algebra/usolveAll.js
  32339. var usolveAllDocs = {
  32340. name: "usolveAll",
  32341. category: "Algebra",
  32342. syntax: ["x=usolve(U, b)"],
  32343. description: "Finds all solutions of the linear system U * x = b where U is an [n x n] upper triangular matrix and b is a [n] column vector.",
  32344. examples: ["x=usolve(sparse([1, 1, 1, 1; 0, 1, 1, 1; 0, 0, 1, 1; 0, 0, 0, 1]), [1; 2; 3; 4])"],
  32345. seealso: ["usolve", "lup", "lusolve", "lsolve", "matrix", "sparse"]
  32346. };
  32347. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/abs.js
  32348. var absDocs = {
  32349. name: "abs",
  32350. category: "Arithmetic",
  32351. syntax: ["abs(x)"],
  32352. description: "Compute the absolute value.",
  32353. examples: ["abs(3.5)", "abs(-4.2)"],
  32354. seealso: ["sign"]
  32355. };
  32356. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/add.js
  32357. var addDocs = {
  32358. name: "add",
  32359. category: "Operators",
  32360. syntax: ["x + y", "add(x, y)"],
  32361. description: "Add two values.",
  32362. examples: ["a = 2.1 + 3.6", "a - 3.6", "3 + 2i", "3 cm + 2 inch", '"2.3" + "4"'],
  32363. seealso: ["subtract"]
  32364. };
  32365. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/cbrt.js
  32366. var cbrtDocs = {
  32367. name: "cbrt",
  32368. category: "Arithmetic",
  32369. syntax: ["cbrt(x)", "cbrt(x, allRoots)"],
  32370. description: "Compute the cubic root value. If x = y * y * y, then y is the cubic root of x. When `x` is a number or complex number, an optional second argument `allRoots` can be provided to return all three cubic roots. If not provided, the principal root is returned",
  32371. examples: ["cbrt(64)", "cube(4)", "cbrt(-8)", "cbrt(2 + 3i)", "cbrt(8i)", "cbrt(8i, true)", "cbrt(27 m^3)"],
  32372. seealso: ["square", "sqrt", "cube", "multiply"]
  32373. };
  32374. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/ceil.js
  32375. var ceilDocs = {
  32376. name: "ceil",
  32377. category: "Arithmetic",
  32378. syntax: ["ceil(x)"],
  32379. description: "Round a value towards plus infinity. If x is complex, both real and imaginary part are rounded towards plus infinity.",
  32380. examples: ["ceil(3.2)", "ceil(3.8)", "ceil(-4.2)"],
  32381. seealso: ["floor", "fix", "round"]
  32382. };
  32383. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/cube.js
  32384. var cubeDocs = {
  32385. name: "cube",
  32386. category: "Arithmetic",
  32387. syntax: ["cube(x)"],
  32388. description: "Compute the cube of a value. The cube of x is x * x * x.",
  32389. examples: ["cube(2)", "2^3", "2 * 2 * 2"],
  32390. seealso: ["multiply", "square", "pow"]
  32391. };
  32392. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/divide.js
  32393. var divideDocs = {
  32394. name: "divide",
  32395. category: "Operators",
  32396. syntax: ["x / y", "divide(x, y)"],
  32397. description: "Divide two values.",
  32398. examples: ["a = 2 / 3", "a * 3", "4.5 / 2", "3 + 4 / 2", "(3 + 4) / 2", "18 km / 4.5"],
  32399. seealso: ["multiply"]
  32400. };
  32401. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/dotDivide.js
  32402. var dotDivideDocs = {
  32403. name: "dotDivide",
  32404. category: "Operators",
  32405. syntax: ["x ./ y", "dotDivide(x, y)"],
  32406. description: "Divide two values element wise.",
  32407. examples: ["a = [1, 2, 3; 4, 5, 6]", "b = [2, 1, 1; 3, 2, 5]", "a ./ b"],
  32408. seealso: ["multiply", "dotMultiply", "divide"]
  32409. };
  32410. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/dotMultiply.js
  32411. var dotMultiplyDocs = {
  32412. name: "dotMultiply",
  32413. category: "Operators",
  32414. syntax: ["x .* y", "dotMultiply(x, y)"],
  32415. description: "Multiply two values element wise.",
  32416. examples: ["a = [1, 2, 3; 4, 5, 6]", "b = [2, 1, 1; 3, 2, 5]", "a .* b"],
  32417. seealso: ["multiply", "divide", "dotDivide"]
  32418. };
  32419. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/dotPow.js
  32420. var dotPowDocs = {
  32421. name: "dotPow",
  32422. category: "Operators",
  32423. syntax: ["x .^ y", "dotPow(x, y)"],
  32424. description: "Calculates the power of x to y element wise.",
  32425. examples: ["a = [1, 2, 3; 4, 5, 6]", "a .^ 2"],
  32426. seealso: ["pow"]
  32427. };
  32428. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/exp.js
  32429. var expDocs = {
  32430. name: "exp",
  32431. category: "Arithmetic",
  32432. syntax: ["exp(x)"],
  32433. description: "Calculate the exponent of a value.",
  32434. examples: ["exp(1.3)", "e ^ 1.3", "log(exp(1.3))", "x = 2.4", "(exp(i*x) == cos(x) + i*sin(x)) # Euler's formula"],
  32435. seealso: ["expm", "expm1", "pow", "log"]
  32436. };
  32437. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/expm.js
  32438. var expmDocs = {
  32439. name: "expm",
  32440. category: "Arithmetic",
  32441. syntax: ["exp(x)"],
  32442. description: "Compute the matrix exponential, expm(A) = e^A. The matrix must be square. Not to be confused with exp(a), which performs element-wise exponentiation.",
  32443. examples: ["expm([[0,2],[0,0]])"],
  32444. seealso: ["exp"]
  32445. };
  32446. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/expm1.js
  32447. var expm1Docs = {
  32448. name: "expm1",
  32449. category: "Arithmetic",
  32450. syntax: ["expm1(x)"],
  32451. description: "Calculate the value of subtracting 1 from the exponential value.",
  32452. examples: ["expm1(2)", "pow(e, 2) - 1", "log(expm1(2) + 1)"],
  32453. seealso: ["exp", "pow", "log"]
  32454. };
  32455. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/fix.js
  32456. var fixDocs = {
  32457. name: "fix",
  32458. category: "Arithmetic",
  32459. syntax: ["fix(x)"],
  32460. description: "Round a value towards zero. If x is complex, both real and imaginary part are rounded towards zero.",
  32461. examples: ["fix(3.2)", "fix(3.8)", "fix(-4.2)", "fix(-4.8)"],
  32462. seealso: ["ceil", "floor", "round"]
  32463. };
  32464. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/floor.js
  32465. var floorDocs = {
  32466. name: "floor",
  32467. category: "Arithmetic",
  32468. syntax: ["floor(x)"],
  32469. description: "Round a value towards minus infinity.If x is complex, both real and imaginary part are rounded towards minus infinity.",
  32470. examples: ["floor(3.2)", "floor(3.8)", "floor(-4.2)"],
  32471. seealso: ["ceil", "fix", "round"]
  32472. };
  32473. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/gcd.js
  32474. var gcdDocs = {
  32475. name: "gcd",
  32476. category: "Arithmetic",
  32477. syntax: ["gcd(a, b)", "gcd(a, b, c, ...)"],
  32478. description: "Compute the greatest common divisor.",
  32479. examples: ["gcd(8, 12)", "gcd(-4, 6)", "gcd(25, 15, -10)"],
  32480. seealso: ["lcm", "xgcd"]
  32481. };
  32482. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/hypot.js
  32483. var hypotDocs = {
  32484. name: "hypot",
  32485. category: "Arithmetic",
  32486. syntax: ["hypot(a, b, c, ...)", "hypot([a, b, c, ...])"],
  32487. description: "Calculate the hypotenusa of a list with values. ",
  32488. examples: ["hypot(3, 4)", "sqrt(3^2 + 4^2)", "hypot(-2)", "hypot([3, 4, 5])"],
  32489. seealso: ["abs", "norm"]
  32490. };
  32491. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js
  32492. var invmodDocs = {
  32493. name: "invmod",
  32494. category: "Arithmetic",
  32495. syntax: ["invmod(a, b)"],
  32496. description: "Calculate the (modular) multiplicative inverse of a modulo b. Solution to the equation ax ≣ 1 (mod b)",
  32497. examples: ["invmod(8, 12)=NaN", "invmod(7, 13)=2", "invmod(15151, 15122)=10429"],
  32498. seealso: ["gcd", "xgcd"]
  32499. };
  32500. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/lcm.js
  32501. var lcmDocs = {
  32502. name: "lcm",
  32503. category: "Arithmetic",
  32504. syntax: ["lcm(x, y)"],
  32505. description: "Compute the least common multiple.",
  32506. examples: ["lcm(4, 6)", "lcm(6, 21)", "lcm(6, 21, 5)"],
  32507. seealso: ["gcd"]
  32508. };
  32509. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/log.js
  32510. var logDocs = {
  32511. name: "log",
  32512. category: "Arithmetic",
  32513. syntax: ["log(x)", "log(x, base)"],
  32514. description: "Compute the logarithm of a value. If no base is provided, the natural logarithm of x is calculated. If base if provided, the logarithm is calculated for the specified base. log(x, base) is defined as log(x) / log(base).",
  32515. examples: ["log(3.5)", "a = log(2.4)", "exp(a)", "10 ^ 4", "log(10000, 10)", "log(10000) / log(10)", "b = log(1024, 2)", "2 ^ b"],
  32516. seealso: ["exp", "log1p", "log2", "log10"]
  32517. };
  32518. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/log10.js
  32519. var log10Docs = {
  32520. name: "log10",
  32521. category: "Arithmetic",
  32522. syntax: ["log10(x)"],
  32523. description: "Compute the 10-base logarithm of a value.",
  32524. examples: ["log10(0.00001)", "log10(10000)", "10 ^ 4", "log(10000) / log(10)", "log(10000, 10)"],
  32525. seealso: ["exp", "log"]
  32526. };
  32527. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/log1p.js
  32528. var log1pDocs = {
  32529. name: "log1p",
  32530. category: "Arithmetic",
  32531. syntax: ["log1p(x)", "log1p(x, base)"],
  32532. description: "Calculate the logarithm of a `value+1`",
  32533. examples: ["log1p(2.5)", "exp(log1p(1.4))", "pow(10, 4)", "log1p(9999, 10)", "log1p(9999) / log(10)"],
  32534. seealso: ["exp", "log", "log2", "log10"]
  32535. };
  32536. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/log2.js
  32537. var log2Docs = {
  32538. name: "log2",
  32539. category: "Arithmetic",
  32540. syntax: ["log2(x)"],
  32541. description: "Calculate the 2-base of a value. This is the same as calculating `log(x, 2)`.",
  32542. examples: ["log2(0.03125)", "log2(16)", "log2(16) / log2(2)", "pow(2, 4)"],
  32543. seealso: ["exp", "log1p", "log", "log10"]
  32544. };
  32545. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/mod.js
  32546. var modDocs = {
  32547. name: "mod",
  32548. category: "Operators",
  32549. syntax: ["x % y", "x mod y", "mod(x, y)"],
  32550. description: "Calculates the modulus, the remainder of an integer division.",
  32551. examples: ["7 % 3", "11 % 2", "10 mod 4", "isOdd(x) = x % 2", "isOdd(2)", "isOdd(3)"],
  32552. seealso: ["divide"]
  32553. };
  32554. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/multiply.js
  32555. var multiplyDocs = {
  32556. name: "multiply",
  32557. category: "Operators",
  32558. syntax: ["x * y", "multiply(x, y)"],
  32559. description: "multiply two values.",
  32560. examples: ["a = 2.1 * 3.4", "a / 3.4", "2 * 3 + 4", "2 * (3 + 4)", "3 * 2.1 km"],
  32561. seealso: ["divide"]
  32562. };
  32563. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/norm.js
  32564. var normDocs = {
  32565. name: "norm",
  32566. category: "Arithmetic",
  32567. syntax: ["norm(x)", "norm(x, p)"],
  32568. description: "Calculate the norm of a number, vector or matrix.",
  32569. examples: ["abs(-3.5)", "norm(-3.5)", "norm(3 - 4i)", "norm([1, 2, -3], Infinity)", "norm([1, 2, -3], -Infinity)", "norm([3, 4], 2)", "norm([[1, 2], [3, 4]], 1)", 'norm([[1, 2], [3, 4]], "inf")', 'norm([[1, 2], [3, 4]], "fro")']
  32570. };
  32571. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/nthRoot.js
  32572. var nthRootDocs = {
  32573. name: "nthRoot",
  32574. category: "Arithmetic",
  32575. syntax: ["nthRoot(a)", "nthRoot(a, root)"],
  32576. description: 'Calculate the nth root of a value. The principal nth root of a positive real number A, is the positive real solution of the equation "x^root = A".',
  32577. examples: ["4 ^ 3", "nthRoot(64, 3)", "nthRoot(9, 2)", "sqrt(9)"],
  32578. seealso: ["nthRoots", "pow", "sqrt"]
  32579. };
  32580. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/nthRoots.js
  32581. var nthRootsDocs = {
  32582. name: "nthRoots",
  32583. category: "Arithmetic",
  32584. syntax: ["nthRoots(A)", "nthRoots(A, root)"],
  32585. description: 'Calculate the nth roots of a value. An nth root of a positive real number A, is a positive real solution of the equation "x^root = A". This function returns an array of complex values.',
  32586. examples: ["nthRoots(1)", "nthRoots(1, 3)"],
  32587. seealso: ["sqrt", "pow", "nthRoot"]
  32588. };
  32589. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js
  32590. var powDocs = {
  32591. name: "pow",
  32592. category: "Operators",
  32593. syntax: ["x ^ y", "pow(x, y)"],
  32594. description: "Calculates the power of x to y, x^y.",
  32595. examples: ["2^3", "2*2*2", "1 + e ^ (pi * i)", "pow([[1, 2], [4, 3]], 2)", "pow([[1, 2], [4, 3]], -1)"],
  32596. seealso: ["multiply", "nthRoot", "nthRoots", "sqrt"]
  32597. };
  32598. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/round.js
  32599. var roundDocs = {
  32600. name: "round",
  32601. category: "Arithmetic",
  32602. syntax: ["round(x)", "round(x, n)"],
  32603. description: "round a value towards the nearest integer.If x is complex, both real and imaginary part are rounded towards the nearest integer. When n is specified, the value is rounded to n decimals.",
  32604. examples: ["round(3.2)", "round(3.8)", "round(-4.2)", "round(-4.8)", "round(pi, 3)", "round(123.45678, 2)"],
  32605. seealso: ["ceil", "floor", "fix"]
  32606. };
  32607. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/sign.js
  32608. var signDocs = {
  32609. name: "sign",
  32610. category: "Arithmetic",
  32611. syntax: ["sign(x)"],
  32612. description: "Compute the sign of a value. The sign of a value x is 1 when x>1, -1 when x<0, and 0 when x=0.",
  32613. examples: ["sign(3.5)", "sign(-4.2)", "sign(0)"],
  32614. seealso: ["abs"]
  32615. };
  32616. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/sqrt.js
  32617. var sqrtDocs = {
  32618. name: "sqrt",
  32619. category: "Arithmetic",
  32620. syntax: ["sqrt(x)"],
  32621. description: "Compute the square root value. If x = y * y, then y is the square root of x.",
  32622. examples: ["sqrt(25)", "5 * 5", "sqrt(-1)"],
  32623. seealso: ["square", "sqrtm", "multiply", "nthRoot", "nthRoots", "pow"]
  32624. };
  32625. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/sqrtm.js
  32626. var sqrtmDocs = {
  32627. name: "sqrtm",
  32628. category: "Arithmetic",
  32629. syntax: ["sqrtm(x)"],
  32630. description: "Calculate the principal square root of a square matrix. The principal square root matrix `X` of another matrix `A` is such that `X * X = A`.",
  32631. examples: ["sqrtm([[33, 24], [48, 57]])"],
  32632. seealso: ["sqrt", "abs", "square", "multiply"]
  32633. };
  32634. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/sylvester.js
  32635. var sylvesterDocs = {
  32636. name: "sylvester",
  32637. category: "Matrix",
  32638. syntax: ["sylvester(A,B,C)"],
  32639. description: "Solves the real-valued Sylvester equation AX+XB=C for X",
  32640. examples: ["sylvester([[-1, -2], [1, 1]], [[-2, 1], [-1, 2]], [[-3, 2], [3, 0]])", "sylvester(A,B,C)"],
  32641. seealso: ["schur", "lyap"]
  32642. };
  32643. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/schur.js
  32644. var schurDocs = {
  32645. name: "schur",
  32646. category: "Matrix",
  32647. syntax: ["schur(A)"],
  32648. description: "Performs a real Schur decomposition of the real matrix A = UTU'",
  32649. examples: ["schur([[1, 0], [-4, 3]])", "schur(A)"],
  32650. seealso: ["lyap", "sylvester"]
  32651. };
  32652. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/lyap.js
  32653. var lyapDocs = {
  32654. name: "lyap",
  32655. category: "Matrix",
  32656. syntax: ["lyap(A,Q)"],
  32657. description: "Solves the Continuous-time Lyapunov equation AP+PA'+Q=0 for P",
  32658. examples: ["lyap([[-2, 0], [1, -4]], [[3, 1], [1, 3]])", "lyap(A,Q)"],
  32659. seealso: ["schur", "sylvester"]
  32660. };
  32661. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/square.js
  32662. var squareDocs = {
  32663. name: "square",
  32664. category: "Arithmetic",
  32665. syntax: ["square(x)"],
  32666. description: "Compute the square of a value. The square of x is x * x.",
  32667. examples: ["square(3)", "sqrt(9)", "3^2", "3 * 3"],
  32668. seealso: ["multiply", "pow", "sqrt", "cube"]
  32669. };
  32670. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/subtract.js
  32671. var subtractDocs = {
  32672. name: "subtract",
  32673. category: "Operators",
  32674. syntax: ["x - y", "subtract(x, y)"],
  32675. description: "subtract two values.",
  32676. examples: ["a = 5.3 - 2", "a + 2", "2/3 - 1/6", "2 * 3 - 3", "2.1 km - 500m"],
  32677. seealso: ["add"]
  32678. };
  32679. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/unaryMinus.js
  32680. var unaryMinusDocs = {
  32681. name: "unaryMinus",
  32682. category: "Operators",
  32683. syntax: ["-x", "unaryMinus(x)"],
  32684. description: "Inverse the sign of a value. Converts booleans and strings to numbers.",
  32685. examples: ["-4.5", "-(-5.6)", '-"22"'],
  32686. seealso: ["add", "subtract", "unaryPlus"]
  32687. };
  32688. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/unaryPlus.js
  32689. var unaryPlusDocs = {
  32690. name: "unaryPlus",
  32691. category: "Operators",
  32692. syntax: ["+x", "unaryPlus(x)"],
  32693. description: "Converts booleans and strings to numbers.",
  32694. examples: ["+true", '+"2"'],
  32695. seealso: ["add", "subtract", "unaryMinus"]
  32696. };
  32697. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/arithmetic/xgcd.js
  32698. var xgcdDocs = {
  32699. name: "xgcd",
  32700. category: "Arithmetic",
  32701. syntax: ["xgcd(a, b)"],
  32702. description: "Calculate the extended greatest common divisor for two values. The result is an array [d, x, y] with 3 entries, where d is the greatest common divisor, and d = x * a + y * b.",
  32703. examples: ["xgcd(8, 12)", "gcd(8, 12)", "xgcd(36163, 21199)"],
  32704. seealso: ["gcd", "lcm"]
  32705. };
  32706. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/bitAnd.js
  32707. var bitAndDocs = {
  32708. name: "bitAnd",
  32709. category: "Bitwise",
  32710. syntax: ["x & y", "bitAnd(x, y)"],
  32711. description: "Bitwise AND operation. Performs the logical AND operation on each pair of the corresponding bits of the two given values by multiplying them. If both bits in the compared position are 1, the bit in the resulting binary representation is 1, otherwise, the result is 0",
  32712. examples: ["5 & 3", "bitAnd(53, 131)", "[1, 12, 31] & 42"],
  32713. seealso: ["bitNot", "bitOr", "bitXor", "leftShift", "rightArithShift", "rightLogShift"]
  32714. };
  32715. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/bitNot.js
  32716. var bitNotDocs = {
  32717. name: "bitNot",
  32718. category: "Bitwise",
  32719. syntax: ["~x", "bitNot(x)"],
  32720. description: "Bitwise NOT operation. Performs a logical negation on each bit of the given value. Bits that are 0 become 1, and those that are 1 become 0.",
  32721. examples: ["~1", "~2", "bitNot([2, -3, 4])"],
  32722. seealso: ["bitAnd", "bitOr", "bitXor", "leftShift", "rightArithShift", "rightLogShift"]
  32723. };
  32724. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/bitOr.js
  32725. var bitOrDocs = {
  32726. name: "bitOr",
  32727. category: "Bitwise",
  32728. syntax: ["x | y", "bitOr(x, y)"],
  32729. description: "Bitwise OR operation. Performs the logical inclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if the first bit is 1 or the second bit is 1 or both bits are 1, otherwise, the result is 0.",
  32730. examples: ["5 | 3", "bitOr([1, 2, 3], 4)"],
  32731. seealso: ["bitAnd", "bitNot", "bitXor", "leftShift", "rightArithShift", "rightLogShift"]
  32732. };
  32733. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/bitXor.js
  32734. var bitXorDocs = {
  32735. name: "bitXor",
  32736. category: "Bitwise",
  32737. syntax: ["bitXor(x, y)"],
  32738. description: "Bitwise XOR operation, exclusive OR. Performs the logical exclusive OR operation on each pair of corresponding bits of the two given values. The result in each position is 1 if only the first bit is 1 or only the second bit is 1, but will be 0 if both are 0 or both are 1.",
  32739. examples: ["bitOr(1, 2)", "bitXor([2, 3, 4], 4)"],
  32740. seealso: ["bitAnd", "bitNot", "bitOr", "leftShift", "rightArithShift", "rightLogShift"]
  32741. };
  32742. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/leftShift.js
  32743. var leftShiftDocs = {
  32744. name: "leftShift",
  32745. category: "Bitwise",
  32746. syntax: ["x << y", "leftShift(x, y)"],
  32747. description: "Bitwise left logical shift of a value x by y number of bits.",
  32748. examples: ["4 << 1", "8 >> 1"],
  32749. seealso: ["bitAnd", "bitNot", "bitOr", "bitXor", "rightArithShift", "rightLogShift"]
  32750. };
  32751. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/rightArithShift.js
  32752. var rightArithShiftDocs = {
  32753. name: "rightArithShift",
  32754. category: "Bitwise",
  32755. syntax: ["x >> y", "rightArithShift(x, y)"],
  32756. description: "Bitwise right arithmetic shift of a value x by y number of bits.",
  32757. examples: ["8 >> 1", "4 << 1", "-12 >> 2"],
  32758. seealso: ["bitAnd", "bitNot", "bitOr", "bitXor", "leftShift", "rightLogShift"]
  32759. };
  32760. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/bitwise/rightLogShift.js
  32761. var rightLogShiftDocs = {
  32762. name: "rightLogShift",
  32763. category: "Bitwise",
  32764. syntax: ["x >>> y", "rightLogShift(x, y)"],
  32765. description: "Bitwise right logical shift of a value x by y number of bits.",
  32766. examples: ["8 >>> 1", "4 << 1", "-12 >>> 2"],
  32767. seealso: ["bitAnd", "bitNot", "bitOr", "bitXor", "leftShift", "rightArithShift"]
  32768. };
  32769. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/combinatorics/bellNumbers.js
  32770. var bellNumbersDocs = {
  32771. name: "bellNumbers",
  32772. category: "Combinatorics",
  32773. syntax: ["bellNumbers(n)"],
  32774. description: "The Bell Numbers count the number of partitions of a set. A partition is a pairwise disjoint subset of S whose union is S. `bellNumbers` only takes integer arguments. The following condition must be enforced: n >= 0.",
  32775. examples: ["bellNumbers(3)", "bellNumbers(8)"],
  32776. seealso: ["stirlingS2"]
  32777. };
  32778. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/combinatorics/catalan.js
  32779. var catalanDocs = {
  32780. name: "catalan",
  32781. category: "Combinatorics",
  32782. syntax: ["catalan(n)"],
  32783. description: "The Catalan Numbers enumerate combinatorial structures of many different types. catalan only takes integer arguments. The following condition must be enforced: n >= 0.",
  32784. examples: ["catalan(3)", "catalan(8)"],
  32785. seealso: ["bellNumbers"]
  32786. };
  32787. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/combinatorics/composition.js
  32788. var compositionDocs = {
  32789. name: "composition",
  32790. category: "Combinatorics",
  32791. syntax: ["composition(n, k)"],
  32792. description: "The composition counts of n into k parts. composition only takes integer arguments. The following condition must be enforced: k <= n.",
  32793. examples: ["composition(5, 3)"],
  32794. seealso: ["combinations"]
  32795. };
  32796. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/combinatorics/stirlingS2.js
  32797. var stirlingS2Docs = {
  32798. name: "stirlingS2",
  32799. category: "Combinatorics",
  32800. syntax: ["stirlingS2(n, k)"],
  32801. description: "he Stirling numbers of the second kind, counts the number of ways to partition a set of n labelled objects into k nonempty unlabelled subsets. `stirlingS2` only takes integer arguments. The following condition must be enforced: k <= n. If n = k or k = 1, then s(n,k) = 1.",
  32802. examples: ["stirlingS2(5, 3)"],
  32803. seealso: ["bellNumbers"]
  32804. };
  32805. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/complex/arg.js
  32806. var argDocs = {
  32807. name: "arg",
  32808. category: "Complex",
  32809. syntax: ["arg(x)"],
  32810. description: "Compute the argument of a complex value. If x = a+bi, the argument is computed as atan2(b, a).",
  32811. examples: ["arg(2 + 2i)", "atan2(3, 2)", "arg(2 + 3i)"],
  32812. seealso: ["re", "im", "conj", "abs"]
  32813. };
  32814. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/complex/conj.js
  32815. var conjDocs = {
  32816. name: "conj",
  32817. category: "Complex",
  32818. syntax: ["conj(x)"],
  32819. description: "Compute the complex conjugate of a complex value. If x = a+bi, the complex conjugate is a-bi.",
  32820. examples: ["conj(2 + 3i)", "conj(2 - 3i)", "conj(-5.2i)"],
  32821. seealso: ["re", "im", "abs", "arg"]
  32822. };
  32823. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/complex/im.js
  32824. var imDocs = {
  32825. name: "im",
  32826. category: "Complex",
  32827. syntax: ["im(x)"],
  32828. description: "Get the imaginary part of a complex number.",
  32829. examples: ["im(2 + 3i)", "re(2 + 3i)", "im(-5.2i)", "im(2.4)"],
  32830. seealso: ["re", "conj", "abs", "arg"]
  32831. };
  32832. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/complex/re.js
  32833. var reDocs = {
  32834. name: "re",
  32835. category: "Complex",
  32836. syntax: ["re(x)"],
  32837. description: "Get the real part of a complex number.",
  32838. examples: ["re(2 + 3i)", "im(2 + 3i)", "re(-5.2i)", "re(2.4)"],
  32839. seealso: ["im", "conj", "abs", "arg"]
  32840. };
  32841. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/expression/evaluate.js
  32842. var evaluateDocs = {
  32843. name: "evaluate",
  32844. category: "Expression",
  32845. syntax: ["evaluate(expression)", "evaluate([expr1, expr2, expr3, ...])"],
  32846. description: "Evaluate an expression or an array with expressions.",
  32847. examples: ['evaluate("2 + 3")', 'evaluate("sqrt(" + 4 + ")")'],
  32848. seealso: []
  32849. };
  32850. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/expression/help.js
  32851. var helpDocs = {
  32852. name: "help",
  32853. category: "Expression",
  32854. syntax: ["help(object)", "help(string)"],
  32855. description: "Display documentation on a function or data type.",
  32856. examples: ["help(sqrt)", 'help("complex")'],
  32857. seealso: []
  32858. };
  32859. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/geometry/distance.js
  32860. var distanceDocs = {
  32861. name: "distance",
  32862. category: "Geometry",
  32863. syntax: ["distance([x1, y1], [x2, y2])", "distance([[x1, y1], [x2, y2]])"],
  32864. description: "Calculates the Euclidean distance between two points.",
  32865. examples: ["distance([0,0], [4,4])", "distance([[0,0], [4,4]])"],
  32866. seealso: []
  32867. };
  32868. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/geometry/intersect.js
  32869. var intersectDocs = {
  32870. name: "intersect",
  32871. category: "Geometry",
  32872. syntax: ["intersect(expr1, expr2, expr3, expr4)", "intersect(expr1, expr2, expr3)"],
  32873. description: "Computes the intersection point of lines and/or planes.",
  32874. examples: ["intersect([0, 0], [10, 10], [10, 0], [0, 10])", "intersect([1, 0, 1], [4, -2, 2], [1, 1, 1, 6])"],
  32875. seealso: []
  32876. };
  32877. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/logical/and.js
  32878. var andDocs = {
  32879. name: "and",
  32880. category: "Logical",
  32881. syntax: ["x and y", "and(x, y)"],
  32882. description: "Logical and. Test whether two values are both defined with a nonzero/nonempty value.",
  32883. examples: ["true and false", "true and true", "2 and 4"],
  32884. seealso: ["not", "or", "xor"]
  32885. };
  32886. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/logical/not.js
  32887. var notDocs = {
  32888. name: "not",
  32889. category: "Logical",
  32890. syntax: ["not x", "not(x)"],
  32891. description: "Logical not. Flips the boolean value of given argument.",
  32892. examples: ["not true", "not false", "not 2", "not 0"],
  32893. seealso: ["and", "or", "xor"]
  32894. };
  32895. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/logical/or.js
  32896. var orDocs = {
  32897. name: "or",
  32898. category: "Logical",
  32899. syntax: ["x or y", "or(x, y)"],
  32900. description: "Logical or. Test if at least one value is defined with a nonzero/nonempty value.",
  32901. examples: ["true or false", "false or false", "0 or 4"],
  32902. seealso: ["not", "and", "xor"]
  32903. };
  32904. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/logical/xor.js
  32905. var xorDocs = {
  32906. name: "xor",
  32907. category: "Logical",
  32908. syntax: ["x xor y", "xor(x, y)"],
  32909. description: "Logical exclusive or, xor. Test whether one and only one value is defined with a nonzero/nonempty value.",
  32910. examples: ["true xor false", "false xor false", "true xor true", "0 xor 4"],
  32911. seealso: ["not", "and", "or"]
  32912. };
  32913. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/column.js
  32914. var columnDocs = {
  32915. name: "column",
  32916. category: "Matrix",
  32917. syntax: ["column(x, index)"],
  32918. description: "Return a column from a matrix or array.",
  32919. examples: ["A = [[1, 2], [3, 4]]", "column(A, 1)", "column(A, 2)"],
  32920. seealso: ["row", "matrixFromColumns"]
  32921. };
  32922. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/concat.js
  32923. var concatDocs = {
  32924. name: "concat",
  32925. category: "Matrix",
  32926. syntax: ["concat(A, B, C, ...)", "concat(A, B, C, ..., dim)"],
  32927. description: "Concatenate matrices. By default, the matrices are concatenated by the last dimension. The dimension on which to concatenate can be provided as last argument.",
  32928. examples: ["A = [1, 2; 5, 6]", "B = [3, 4; 7, 8]", "concat(A, B)", "concat(A, B, 1)", "concat(A, B, 2)"],
  32929. seealso: ["det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  32930. };
  32931. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/count.js
  32932. var countDocs = {
  32933. name: "count",
  32934. category: "Matrix",
  32935. syntax: ["count(x)"],
  32936. description: "Count the number of elements of a matrix, array or string.",
  32937. examples: ["a = [1, 2; 3, 4; 5, 6]", "count(a)", "size(a)", 'count("hello world")'],
  32938. seealso: ["size"]
  32939. };
  32940. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/cross.js
  32941. var crossDocs = {
  32942. name: "cross",
  32943. category: "Matrix",
  32944. syntax: ["cross(A, B)"],
  32945. description: "Calculate the cross product for two vectors in three dimensional space.",
  32946. examples: ["cross([1, 1, 0], [0, 1, 1])", "cross([3, -3, 1], [4, 9, 2])", "cross([2, 3, 4], [5, 6, 7])"],
  32947. seealso: ["multiply", "dot"]
  32948. };
  32949. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/ctranspose.js
  32950. var ctransposeDocs = {
  32951. name: "ctranspose",
  32952. category: "Matrix",
  32953. syntax: ["x'", "ctranspose(x)"],
  32954. description: "Complex Conjugate and Transpose a matrix",
  32955. examples: ["a = [1, 2, 3; 4, 5, 6]", "a'", "ctranspose(a)"],
  32956. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "zeros"]
  32957. };
  32958. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/det.js
  32959. var detDocs = {
  32960. name: "det",
  32961. category: "Matrix",
  32962. syntax: ["det(x)"],
  32963. description: "Calculate the determinant of a matrix",
  32964. examples: ["det([1, 2; 3, 4])", "det([-2, 2, 3; -1, 1, 3; 2, 0, -1])"],
  32965. seealso: ["concat", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  32966. };
  32967. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/diag.js
  32968. var diagDocs = {
  32969. name: "diag",
  32970. category: "Matrix",
  32971. syntax: ["diag(x)", "diag(x, k)"],
  32972. description: "Create a diagonal matrix or retrieve the diagonal of a matrix. When x is a vector, a matrix with the vector values on the diagonal will be returned. When x is a matrix, a vector with the diagonal values of the matrix is returned. When k is provided, the k-th diagonal will be filled in or retrieved, if k is positive, the values are placed on the super diagonal. When k is negative, the values are placed on the sub diagonal.",
  32973. examples: ["diag(1:3)", "diag(1:3, 1)", "a = [1, 2, 3; 4, 5, 6; 7, 8, 9]", "diag(a)"],
  32974. seealso: ["concat", "det", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  32975. };
  32976. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/diff.js
  32977. var diffDocs = {
  32978. name: "diff",
  32979. category: "Matrix",
  32980. syntax: ["diff(arr)", "diff(arr, dim)"],
  32981. description: ["Create a new matrix or array with the difference of the passed matrix or array.", "Dim parameter is optional and used to indicant the dimension of the array/matrix to apply the difference", "If no dimension parameter is passed it is assumed as dimension 0", "Dimension is zero-based in javascript and one-based in the parser", "Arrays must be 'rectangular' meaning arrays like [1, 2]", "If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays"],
  32982. examples: ["diff([1, 2, 4, 7, 0])", "diff([1, 2, 4, 7, 0], 0)", "diff(matrix([1, 2, 4, 7, 0]))", "diff([[1, 2], [3, 4]])", "diff([[1, 2], [3, 4]], 0)", "diff([[1, 2], [3, 4]], 1)", "diff([[1, 2], [3, 4]], bignumber(1))", "diff(matrix([[1, 2], [3, 4]]), 1)", "diff([[1, 2], matrix([3, 4])], 1)"],
  32983. seealso: ["subtract", "partitionSelect"]
  32984. };
  32985. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/dot.js
  32986. var dotDocs = {
  32987. name: "dot",
  32988. category: "Matrix",
  32989. syntax: ["dot(A, B)", "A * B"],
  32990. description: "Calculate the dot product of two vectors. The dot product of A = [a1, a2, a3, ..., an] and B = [b1, b2, b3, ..., bn] is defined as dot(A, B) = a1 * b1 + a2 * b2 + a3 * b3 + ... + an * bn",
  32991. examples: ["dot([2, 4, 1], [2, 2, 3])", "[2, 4, 1] * [2, 2, 3]"],
  32992. seealso: ["multiply", "cross"]
  32993. };
  32994. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/eigs.js
  32995. var eigsDocs = {
  32996. name: "eigs",
  32997. category: "Matrix",
  32998. syntax: ["eigs(x)"],
  32999. description: "Calculate the eigenvalues and eigenvectors of a real symmetric matrix",
  33000. examples: ["eigs([[5, 2.3], [2.3, 1]])"],
  33001. seealso: ["inv"]
  33002. };
  33003. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/filter.js
  33004. var filterDocs = {
  33005. name: "filter",
  33006. category: "Matrix",
  33007. syntax: ["filter(x, test)"],
  33008. description: "Filter items in a matrix.",
  33009. examples: ["isPositive(x) = x > 0", "filter([6, -2, -1, 4, 3], isPositive)", "filter([6, -2, 0, 1, 0], x != 0)"],
  33010. seealso: ["sort", "map", "forEach"]
  33011. };
  33012. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/flatten.js
  33013. var flattenDocs = {
  33014. name: "flatten",
  33015. category: "Matrix",
  33016. syntax: ["flatten(x)"],
  33017. description: "Flatten a multi dimensional matrix into a single dimensional matrix.",
  33018. examples: ["a = [1, 2, 3; 4, 5, 6]", "size(a)", "b = flatten(a)", "size(b)"],
  33019. seealso: ["concat", "resize", "size", "squeeze"]
  33020. };
  33021. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/forEach.js
  33022. var forEachDocs = {
  33023. name: "forEach",
  33024. category: "Matrix",
  33025. syntax: ["forEach(x, callback)"],
  33026. description: "Iterates over all elements of a matrix/array, and executes the given callback function.",
  33027. examples: ["numberOfPets = {}", "addPet(n) = numberOfPets[n] = (numberOfPets[n] ? numberOfPets[n]:0 ) + 1;", 'forEach(["Dog","Cat","Cat"], addPet)', "numberOfPets"],
  33028. seealso: ["map", "sort", "filter"]
  33029. };
  33030. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/getMatrixDataType.js
  33031. var getMatrixDataTypeDocs = {
  33032. name: "getMatrixDataType",
  33033. category: "Matrix",
  33034. syntax: ["getMatrixDataType(x)"],
  33035. description: 'Find the data type of all elements in a matrix or array, for example "number" if all items are a number and "Complex" if all values are complex numbers. If a matrix contains more than one data type, it will return "mixed".',
  33036. examples: ["getMatrixDataType([1, 2, 3])", "getMatrixDataType([[5 cm], [2 inch]])", 'getMatrixDataType([1, "text"])', "getMatrixDataType([1, bignumber(4)])"],
  33037. seealso: ["matrix", "sparse", "typeOf"]
  33038. };
  33039. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/identity.js
  33040. var identityDocs = {
  33041. name: "identity",
  33042. category: "Matrix",
  33043. syntax: ["identity(n)", "identity(m, n)", "identity([m, n])"],
  33044. description: "Returns the identity matrix with size m-by-n. The matrix has ones on the diagonal and zeros elsewhere.",
  33045. examples: ["identity(3)", "identity(3, 5)", "a = [1, 2, 3; 4, 5, 6]", "identity(size(a))"],
  33046. seealso: ["concat", "det", "diag", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  33047. };
  33048. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/inv.js
  33049. var invDocs = {
  33050. name: "inv",
  33051. category: "Matrix",
  33052. syntax: ["inv(x)"],
  33053. description: "Calculate the inverse of a matrix",
  33054. examples: ["inv([1, 2; 3, 4])", "inv(4)", "1 / 4"],
  33055. seealso: ["concat", "det", "diag", "identity", "ones", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  33056. };
  33057. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/pinv.js
  33058. var pinvDocs = {
  33059. name: "pinv",
  33060. category: "Matrix",
  33061. syntax: ["pinv(x)"],
  33062. description: "Calculate the Moore–Penrose inverse of a matrix",
  33063. examples: ["pinv([1, 2; 3, 4])", "pinv([[1, 0], [0, 1], [0, 1]])", "pinv(4)"],
  33064. seealso: ["inv"]
  33065. };
  33066. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/kron.js
  33067. var kronDocs = {
  33068. name: "kron",
  33069. category: "Matrix",
  33070. syntax: ["kron(x, y)"],
  33071. description: "Calculates the kronecker product of 2 matrices or vectors.",
  33072. examples: ["kron([[1, 0], [0, 1]], [[1, 2], [3, 4]])", "kron([1,1], [2,3,4])"],
  33073. seealso: ["multiply", "dot", "cross"]
  33074. };
  33075. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/map.js
  33076. var mapDocs = {
  33077. name: "map",
  33078. category: "Matrix",
  33079. syntax: ["map(x, callback)"],
  33080. description: "Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.",
  33081. examples: ["map([1, 2, 3], square)"],
  33082. seealso: ["filter", "forEach"]
  33083. };
  33084. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/matrixFromColumns.js
  33085. var matrixFromColumnsDocs = {
  33086. name: "matrixFromColumns",
  33087. category: "Matrix",
  33088. syntax: ["matrixFromColumns(...arr)", "matrixFromColumns(row1, row2)", "matrixFromColumns(row1, row2, row3)"],
  33089. description: "Create a dense matrix from vectors as individual columns.",
  33090. examples: ["matrixFromColumns([1, 2, 3], [[4],[5],[6]])"],
  33091. seealso: ["matrix", "matrixFromRows", "matrixFromFunction", "zeros"]
  33092. };
  33093. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/matrixFromFunction.js
  33094. var matrixFromFunctionDocs = {
  33095. name: "matrixFromFunction",
  33096. category: "Matrix",
  33097. syntax: ["matrixFromFunction(size, fn)", "matrixFromFunction(size, fn, format)", "matrixFromFunction(size, fn, format, datatype)", "matrixFromFunction(size, format, fn)", "matrixFromFunction(size, format, datatype, fn)"],
  33098. description: "Create a matrix by evaluating a generating function at each index.",
  33099. examples: ["f(I) = I[1] - I[2]", "matrixFromFunction([3,3], f)", "g(I) = I[1] - I[2] == 1 ? 4 : 0", 'matrixFromFunction([100, 100], "sparse", g)', "matrixFromFunction([5], random)"],
  33100. seealso: ["matrix", "matrixFromRows", "matrixFromColumns", "zeros"]
  33101. };
  33102. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/matrixFromRows.js
  33103. var matrixFromRowsDocs = {
  33104. name: "matrixFromRows",
  33105. category: "Matrix",
  33106. syntax: ["matrixFromRows(...arr)", "matrixFromRows(row1, row2)", "matrixFromRows(row1, row2, row3)"],
  33107. description: "Create a dense matrix from vectors as individual rows.",
  33108. examples: ["matrixFromRows([1, 2, 3], [[4],[5],[6]])"],
  33109. seealso: ["matrix", "matrixFromColumns", "matrixFromFunction", "zeros"]
  33110. };
  33111. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/ones.js
  33112. var onesDocs = {
  33113. name: "ones",
  33114. category: "Matrix",
  33115. syntax: ["ones(m)", "ones(m, n)", "ones(m, n, p, ...)", "ones([m])", "ones([m, n])", "ones([m, n, p, ...])"],
  33116. description: "Create a matrix containing ones.",
  33117. examples: ["ones(3)", "ones(3, 5)", "ones([2,3]) * 4.5", "a = [1, 2, 3; 4, 5, 6]", "ones(size(a))"],
  33118. seealso: ["concat", "det", "diag", "identity", "inv", "range", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  33119. };
  33120. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/partitionSelect.js
  33121. var partitionSelectDocs = {
  33122. name: "partitionSelect",
  33123. category: "Matrix",
  33124. syntax: ["partitionSelect(x, k)", "partitionSelect(x, k, compare)"],
  33125. description: "Partition-based selection of an array or 1D matrix. Will find the kth smallest value, and mutates the input array. Uses Quickselect.",
  33126. examples: ["partitionSelect([5, 10, 1], 2)", 'partitionSelect(["C", "B", "A", "D"], 1, compareText)', "arr = [5, 2, 1]", "partitionSelect(arr, 0) # returns 1, arr is now: [1, 2, 5]", "arr", "partitionSelect(arr, 1, 'desc') # returns 2, arr is now: [5, 2, 1]", "arr"],
  33127. seealso: ["sort"]
  33128. };
  33129. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/range.js
  33130. var rangeDocs = {
  33131. name: "range",
  33132. category: "Type",
  33133. syntax: ["start:end", "start:step:end", "range(start, end)", "range(start, end, step)", "range(string)"],
  33134. description: "Create a range. Lower bound of the range is included, upper bound is excluded.",
  33135. examples: ["1:5", "3:-1:-3", "range(3, 7)", "range(0, 12, 2)", 'range("4:10")', "a = [1, 2, 3, 4; 5, 6, 7, 8]", "a[1:2, 1:2]"],
  33136. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "size", "squeeze", "subset", "trace", "transpose", "zeros"]
  33137. };
  33138. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/reshape.js
  33139. var reshapeDocs = {
  33140. name: "reshape",
  33141. category: "Matrix",
  33142. syntax: ["reshape(x, sizes)"],
  33143. description: "Reshape a multi dimensional array to fit the specified dimensions.",
  33144. examples: ["reshape([1, 2, 3, 4, 5, 6], [2, 3])", "reshape([[1, 2], [3, 4]], [1, 4])", "reshape([[1, 2], [3, 4]], [4])", "reshape([1, 2, 3, 4], [-1, 2])"],
  33145. seealso: ["size", "squeeze", "resize"]
  33146. };
  33147. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/resize.js
  33148. var resizeDocs = {
  33149. name: "resize",
  33150. category: "Matrix",
  33151. syntax: ["resize(x, size)", "resize(x, size, defaultValue)"],
  33152. description: "Resize a matrix.",
  33153. examples: ["resize([1,2,3,4,5], [3])", "resize([1,2,3], [5])", "resize([1,2,3], [5], -1)", "resize(2, [2, 3])", 'resize("hello", [8], "!")'],
  33154. seealso: ["size", "subset", "squeeze", "reshape"]
  33155. };
  33156. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/rotate.js
  33157. var rotateDocs = {
  33158. name: "rotate",
  33159. category: "Matrix",
  33160. syntax: ["rotate(w, theta)", "rotate(w, theta, v)"],
  33161. description: "Returns a 2-D rotation matrix (2x2) for a given angle (in radians). Returns a 2-D rotation matrix (3x3) of a given angle (in radians) around given axis.",
  33162. examples: ["rotate([1, 0], pi / 2)", 'rotate(matrix([1, 0]), unit("35deg"))', 'rotate([1, 0, 0], unit("90deg"), [0, 0, 1])', 'rotate(matrix([1, 0, 0]), unit("90deg"), matrix([0, 0, 1]))'],
  33163. seealso: ["matrix", "rotationMatrix"]
  33164. };
  33165. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/rotationMatrix.js
  33166. var rotationMatrixDocs = {
  33167. name: "rotationMatrix",
  33168. category: "Matrix",
  33169. syntax: ["rotationMatrix(theta)", "rotationMatrix(theta, v)", "rotationMatrix(theta, v, format)"],
  33170. description: "Returns a 2-D rotation matrix (2x2) for a given angle (in radians). Returns a 2-D rotation matrix (3x3) of a given angle (in radians) around given axis.",
  33171. examples: ["rotationMatrix(pi / 2)", 'rotationMatrix(unit("45deg"), [0, 0, 1])', 'rotationMatrix(1, matrix([0, 0, 1]), "sparse")'],
  33172. seealso: ["cos", "sin"]
  33173. };
  33174. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/row.js
  33175. var rowDocs = {
  33176. name: "row",
  33177. category: "Matrix",
  33178. syntax: ["row(x, index)"],
  33179. description: "Return a row from a matrix or array.",
  33180. examples: ["A = [[1, 2], [3, 4]]", "row(A, 1)", "row(A, 2)"],
  33181. seealso: ["column", "matrixFromRows"]
  33182. };
  33183. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/size.js
  33184. var sizeDocs = {
  33185. name: "size",
  33186. category: "Matrix",
  33187. syntax: ["size(x)"],
  33188. description: "Calculate the size of a matrix.",
  33189. examples: ["size(2.3)", 'size("hello world")', "a = [1, 2; 3, 4; 5, 6]", "size(a)", "size(1:6)"],
  33190. seealso: ["concat", "count", "det", "diag", "identity", "inv", "ones", "range", "squeeze", "subset", "trace", "transpose", "zeros"]
  33191. };
  33192. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/sort.js
  33193. var sortDocs = {
  33194. name: "sort",
  33195. category: "Matrix",
  33196. syntax: ["sort(x)", "sort(x, compare)"],
  33197. description: 'Sort the items in a matrix. Compare can be a string "asc", "desc", "natural", or a custom sort function.',
  33198. examples: ["sort([5, 10, 1])", 'sort(["C", "B", "A", "D"], "natural")', "sortByLength(a, b) = size(a)[1] - size(b)[1]", 'sort(["Langdon", "Tom", "Sara"], sortByLength)', 'sort(["10", "1", "2"], "natural")'],
  33199. seealso: ["map", "filter", "forEach"]
  33200. };
  33201. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/squeeze.js
  33202. var squeezeDocs = {
  33203. name: "squeeze",
  33204. category: "Matrix",
  33205. syntax: ["squeeze(x)"],
  33206. description: "Remove inner and outer singleton dimensions from a matrix.",
  33207. examples: ["a = zeros(3,2,1)", "size(squeeze(a))", "b = zeros(1,1,3)", "size(squeeze(b))"],
  33208. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "subset", "trace", "transpose", "zeros"]
  33209. };
  33210. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/subset.js
  33211. var subsetDocs = {
  33212. name: "subset",
  33213. category: "Matrix",
  33214. syntax: ["value(index)", "value(index) = replacement", "subset(value, [index])", "subset(value, [index], replacement)"],
  33215. description: "Get or set a subset of the entries of a matrix or characters of a string. Indexes are one-based. There should be one index specification for each dimension of the target. Each specification can be a single index, a list of indices, or a range in colon notation `l:u`. In a range, both the lower bound l and upper bound u are included; and if a bound is omitted it defaults to the most extreme valid value. The cartesian product of the indices specified in each dimension determines the target of the operation.",
  33216. examples: ["d = [1, 2; 3, 4]", "e = []", "e[1, 1:2] = [5, 6]", "e[2, :] = [7, 8]", "f = d * e", "f[2, 1]", "f[:, 1]", "f[[1,2], [1,3]] = [9, 10; 11, 12]", "f"],
  33217. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "trace", "transpose", "zeros"]
  33218. };
  33219. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/trace.js
  33220. var traceDocs = {
  33221. name: "trace",
  33222. category: "Matrix",
  33223. syntax: ["trace(A)"],
  33224. description: "Calculate the trace of a matrix: the sum of the elements on the main diagonal of a square matrix.",
  33225. examples: ["A = [1, 2, 3; -1, 2, 3; 2, 0, 3]", "trace(A)"],
  33226. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "transpose", "zeros"]
  33227. };
  33228. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/transpose.js
  33229. var transposeDocs = {
  33230. name: "transpose",
  33231. category: "Matrix",
  33232. syntax: ["x'", "transpose(x)"],
  33233. description: "Transpose a matrix",
  33234. examples: ["a = [1, 2, 3; 4, 5, 6]", "a'", "transpose(a)"],
  33235. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "zeros"]
  33236. };
  33237. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/zeros.js
  33238. var zerosDocs = {
  33239. name: "zeros",
  33240. category: "Matrix",
  33241. syntax: ["zeros(m)", "zeros(m, n)", "zeros(m, n, p, ...)", "zeros([m])", "zeros([m, n])", "zeros([m, n, p, ...])"],
  33242. description: "Create a matrix containing zeros.",
  33243. examples: ["zeros(3)", "zeros(3, 5)", "a = [1, 2, 3; 4, 5, 6]", "zeros(size(a))"],
  33244. seealso: ["concat", "det", "diag", "identity", "inv", "ones", "range", "size", "squeeze", "subset", "trace", "transpose"]
  33245. };
  33246. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/fft.js
  33247. var fftDocs = {
  33248. name: "fft",
  33249. category: "Matrix",
  33250. syntax: ["fft(x)"],
  33251. description: "Calculate N-dimensional fourier transform",
  33252. examples: ["fft([[1, 0], [1, 0]])"],
  33253. seealso: ["ifft"]
  33254. };
  33255. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/matrix/ifft.js
  33256. var ifftDocs = {
  33257. name: "ifft",
  33258. category: "Matrix",
  33259. syntax: ["ifft(x)"],
  33260. description: "Calculate N-dimensional inverse fourier transform",
  33261. examples: ["ifft([[2, 2], [0, 0]])"],
  33262. seealso: ["fft"]
  33263. };
  33264. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/combinations.js
  33265. var combinationsDocs = {
  33266. name: "combinations",
  33267. category: "Probability",
  33268. syntax: ["combinations(n, k)"],
  33269. description: "Compute the number of combinations of n items taken k at a time",
  33270. examples: ["combinations(7, 5)"],
  33271. seealso: ["combinationsWithRep", "permutations", "factorial"]
  33272. };
  33273. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/combinationsWithRep.js
  33274. var combinationsWithRepDocs = {
  33275. name: "combinationsWithRep",
  33276. category: "Probability",
  33277. syntax: ["combinationsWithRep(n, k)"],
  33278. description: "Compute the number of combinations of n items taken k at a time with replacements.",
  33279. examples: ["combinationsWithRep(7, 5)"],
  33280. seealso: ["combinations", "permutations", "factorial"]
  33281. };
  33282. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/factorial.js
  33283. var factorialDocs = {
  33284. name: "factorial",
  33285. category: "Probability",
  33286. syntax: ["n!", "factorial(n)"],
  33287. description: "Compute the factorial of a value",
  33288. examples: ["5!", "5 * 4 * 3 * 2 * 1", "3!"],
  33289. seealso: ["combinations", "combinationsWithRep", "permutations", "gamma"]
  33290. };
  33291. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/gamma.js
  33292. var gammaDocs = {
  33293. name: "gamma",
  33294. category: "Probability",
  33295. syntax: ["gamma(n)"],
  33296. description: "Compute the gamma function. For small values, the Lanczos approximation is used, and for large values the extended Stirling approximation.",
  33297. examples: ["gamma(4)", "3!", "gamma(1/2)", "sqrt(pi)"],
  33298. seealso: ["factorial"]
  33299. };
  33300. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/lgamma.js
  33301. var lgammaDocs = {
  33302. name: "lgamma",
  33303. category: "Probability",
  33304. syntax: ["lgamma(n)"],
  33305. description: "Logarithm of the gamma function for real, positive numbers and complex numbers, using Lanczos approximation for numbers and Stirling series for complex numbers.",
  33306. examples: ["lgamma(4)", "lgamma(1/2)", "lgamma(i)", "lgamma(complex(1.1, 2))"],
  33307. seealso: ["gamma"]
  33308. };
  33309. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/kldivergence.js
  33310. var kldivergenceDocs = {
  33311. name: "kldivergence",
  33312. category: "Probability",
  33313. syntax: ["kldivergence(x, y)"],
  33314. description: "Calculate the Kullback-Leibler (KL) divergence between two distributions.",
  33315. examples: ["kldivergence([0.7,0.5,0.4], [0.2,0.9,0.5])"],
  33316. seealso: []
  33317. };
  33318. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/multinomial.js
  33319. var multinomialDocs = {
  33320. name: "multinomial",
  33321. category: "Probability",
  33322. syntax: ["multinomial(A)"],
  33323. description: "Multinomial Coefficients compute the number of ways of picking a1, a2, ..., ai unordered outcomes from `n` possibilities. multinomial takes one array of integers as an argument. The following condition must be enforced: every ai > 0.",
  33324. examples: ["multinomial([1, 2, 1])"],
  33325. seealso: ["combinations", "factorial"]
  33326. };
  33327. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/permutations.js
  33328. var permutationsDocs = {
  33329. name: "permutations",
  33330. category: "Probability",
  33331. syntax: ["permutations(n)", "permutations(n, k)"],
  33332. description: "Compute the number of permutations of n items taken k at a time",
  33333. examples: ["permutations(5)", "permutations(5, 3)"],
  33334. seealso: ["combinations", "combinationsWithRep", "factorial"]
  33335. };
  33336. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/pickRandom.js
  33337. var pickRandomDocs = {
  33338. name: "pickRandom",
  33339. category: "Probability",
  33340. syntax: ["pickRandom(array)", "pickRandom(array, number)", "pickRandom(array, weights)", "pickRandom(array, number, weights)", "pickRandom(array, weights, number)"],
  33341. description: "Pick a random entry from a given array.",
  33342. examples: ["pickRandom(0:10)", "pickRandom([1, 3, 1, 6])", "pickRandom([1, 3, 1, 6], 2)", "pickRandom([1, 3, 1, 6], [2, 3, 2, 1])", "pickRandom([1, 3, 1, 6], 2, [2, 3, 2, 1])", "pickRandom([1, 3, 1, 6], [2, 3, 2, 1], 2)"],
  33343. seealso: ["random", "randomInt"]
  33344. };
  33345. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/random.js
  33346. var randomDocs = {
  33347. name: "random",
  33348. category: "Probability",
  33349. syntax: ["random()", "random(max)", "random(min, max)", "random(size)", "random(size, max)", "random(size, min, max)"],
  33350. description: "Return a random number.",
  33351. examples: ["random()", "random(10, 20)", "random([2, 3])"],
  33352. seealso: ["pickRandom", "randomInt"]
  33353. };
  33354. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/probability/randomInt.js
  33355. var randomIntDocs = {
  33356. name: "randomInt",
  33357. category: "Probability",
  33358. syntax: ["randomInt(max)", "randomInt(min, max)", "randomInt(size)", "randomInt(size, max)", "randomInt(size, min, max)"],
  33359. description: "Return a random integer number",
  33360. examples: ["randomInt(10, 20)", "randomInt([2, 3], 10)"],
  33361. seealso: ["pickRandom", "random"]
  33362. };
  33363. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/compare.js
  33364. var compareDocs = {
  33365. name: "compare",
  33366. category: "Relational",
  33367. syntax: ["compare(x, y)"],
  33368. description: "Compare two values. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",
  33369. examples: ["compare(2, 3)", "compare(3, 2)", "compare(2, 2)", "compare(5cm, 40mm)", "compare(2, [1, 2, 3])"],
  33370. seealso: ["equal", "unequal", "smaller", "smallerEq", "largerEq", "compareNatural", "compareText"]
  33371. };
  33372. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/compareNatural.js
  33373. var compareNaturalDocs = {
  33374. name: "compareNatural",
  33375. category: "Relational",
  33376. syntax: ["compareNatural(x, y)"],
  33377. description: "Compare two values of any type in a deterministic, natural way. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",
  33378. examples: ["compareNatural(2, 3)", "compareNatural(3, 2)", "compareNatural(2, 2)", "compareNatural(5cm, 40mm)", 'compareNatural("2", "10")', "compareNatural(2 + 3i, 2 + 4i)", "compareNatural([1, 2, 4], [1, 2, 3])", "compareNatural([1, 5], [1, 2, 3])", "compareNatural([1, 2], [1, 2])", "compareNatural({a: 2}, {a: 4})"],
  33379. seealso: ["equal", "unequal", "smaller", "smallerEq", "largerEq", "compare", "compareText"]
  33380. };
  33381. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/compareText.js
  33382. var compareTextDocs = {
  33383. name: "compareText",
  33384. category: "Relational",
  33385. syntax: ["compareText(x, y)"],
  33386. description: "Compare two strings lexically. Comparison is case sensitive. Returns 1 when x > y, -1 when x < y, and 0 when x == y.",
  33387. examples: ['compareText("B", "A")', 'compareText("A", "B")', 'compareText("A", "A")', 'compareText("2", "10")', 'compare("2", "10")', "compare(2, 10)", 'compareNatural("2", "10")', 'compareText("B", ["A", "B", "C"])'],
  33388. seealso: ["compare", "compareNatural"]
  33389. };
  33390. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/deepEqual.js
  33391. var deepEqualDocs = {
  33392. name: "deepEqual",
  33393. category: "Relational",
  33394. syntax: ["deepEqual(x, y)"],
  33395. description: "Check equality of two matrices element wise. Returns true if the size of both matrices is equal and when and each of the elements are equal.",
  33396. examples: ["deepEqual([1,3,4], [1,3,4])", "deepEqual([1,3,4], [1,3])"],
  33397. seealso: ["equal", "unequal", "smaller", "larger", "smallerEq", "largerEq", "compare"]
  33398. };
  33399. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/equal.js
  33400. var equalDocs = {
  33401. name: "equal",
  33402. category: "Relational",
  33403. syntax: ["x == y", "equal(x, y)"],
  33404. description: "Check equality of two values. Returns true if the values are equal, and false if not.",
  33405. examples: ["2+2 == 3", "2+2 == 4", "a = 3.2", "b = 6-2.8", "a == b", "50cm == 0.5m"],
  33406. seealso: ["unequal", "smaller", "larger", "smallerEq", "largerEq", "compare", "deepEqual", "equalText"]
  33407. };
  33408. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/equalText.js
  33409. var equalTextDocs = {
  33410. name: "equalText",
  33411. category: "Relational",
  33412. syntax: ["equalText(x, y)"],
  33413. description: "Check equality of two strings. Comparison is case sensitive. Returns true if the values are equal, and false if not.",
  33414. examples: ['equalText("Hello", "Hello")', 'equalText("a", "A")', 'equal("2e3", "2000")', 'equalText("2e3", "2000")', 'equalText("B", ["A", "B", "C"])'],
  33415. seealso: ["compare", "compareNatural", "compareText", "equal"]
  33416. };
  33417. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/larger.js
  33418. var largerDocs = {
  33419. name: "larger",
  33420. category: "Relational",
  33421. syntax: ["x > y", "larger(x, y)"],
  33422. description: "Check if value x is larger than y. Returns true if x is larger than y, and false if not.",
  33423. examples: ["2 > 3", "5 > 2*2", "a = 3.3", "b = 6-2.8", "(a > b)", "(b < a)", "5 cm > 2 inch"],
  33424. seealso: ["equal", "unequal", "smaller", "smallerEq", "largerEq", "compare"]
  33425. };
  33426. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/largerEq.js
  33427. var largerEqDocs = {
  33428. name: "largerEq",
  33429. category: "Relational",
  33430. syntax: ["x >= y", "largerEq(x, y)"],
  33431. description: "Check if value x is larger or equal to y. Returns true if x is larger or equal to y, and false if not.",
  33432. examples: ["2 >= 1+1", "2 > 1+1", "a = 3.2", "b = 6-2.8", "(a >= b)"],
  33433. seealso: ["equal", "unequal", "smallerEq", "smaller", "compare"]
  33434. };
  33435. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/smaller.js
  33436. var smallerDocs = {
  33437. name: "smaller",
  33438. category: "Relational",
  33439. syntax: ["x < y", "smaller(x, y)"],
  33440. description: "Check if value x is smaller than value y. Returns true if x is smaller than y, and false if not.",
  33441. examples: ["2 < 3", "5 < 2*2", "a = 3.3", "b = 6-2.8", "(a < b)", "5 cm < 2 inch"],
  33442. seealso: ["equal", "unequal", "larger", "smallerEq", "largerEq", "compare"]
  33443. };
  33444. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/smallerEq.js
  33445. var smallerEqDocs = {
  33446. name: "smallerEq",
  33447. category: "Relational",
  33448. syntax: ["x <= y", "smallerEq(x, y)"],
  33449. description: "Check if value x is smaller or equal to value y. Returns true if x is smaller than y, and false if not.",
  33450. examples: ["2 <= 1+1", "2 < 1+1", "a = 3.2", "b = 6-2.8", "(a <= b)"],
  33451. seealso: ["equal", "unequal", "larger", "smaller", "largerEq", "compare"]
  33452. };
  33453. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/relational/unequal.js
  33454. var unequalDocs = {
  33455. name: "unequal",
  33456. category: "Relational",
  33457. syntax: ["x != y", "unequal(x, y)"],
  33458. description: "Check unequality of two values. Returns true if the values are unequal, and false if they are equal.",
  33459. examples: ["2+2 != 3", "2+2 != 4", "a = 3.2", "b = 6-2.8", "a != b", "50cm != 0.5m", "5 cm != 2 inch"],
  33460. seealso: ["equal", "smaller", "larger", "smallerEq", "largerEq", "compare", "deepEqual"]
  33461. };
  33462. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setCartesian.js
  33463. var setCartesianDocs = {
  33464. name: "setCartesian",
  33465. category: "Set",
  33466. syntax: ["setCartesian(set1, set2)"],
  33467. description: "Create the cartesian product of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays and the values will be sorted in ascending order before the operation.",
  33468. examples: ["setCartesian([1, 2], [3, 4])"],
  33469. seealso: ["setUnion", "setIntersect", "setDifference", "setPowerset"]
  33470. };
  33471. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setDifference.js
  33472. var setDifferenceDocs = {
  33473. name: "setDifference",
  33474. category: "Set",
  33475. syntax: ["setDifference(set1, set2)"],
  33476. description: "Create the difference of two (multi)sets: every element of set1, that is not the element of set2. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",
  33477. examples: ["setDifference([1, 2, 3, 4], [3, 4, 5, 6])", "setDifference([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],
  33478. seealso: ["setUnion", "setIntersect", "setSymDifference"]
  33479. };
  33480. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setDistinct.js
  33481. var setDistinctDocs = {
  33482. name: "setDistinct",
  33483. category: "Set",
  33484. syntax: ["setDistinct(set)"],
  33485. description: "Collect the distinct elements of a multiset. A multi-dimension array will be converted to a single-dimension array before the operation.",
  33486. examples: ["setDistinct([1, 1, 1, 2, 2, 3])"],
  33487. seealso: ["setMultiplicity"]
  33488. };
  33489. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setIntersect.js
  33490. var setIntersectDocs = {
  33491. name: "setIntersect",
  33492. category: "Set",
  33493. syntax: ["setIntersect(set1, set2)"],
  33494. description: "Create the intersection of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",
  33495. examples: ["setIntersect([1, 2, 3, 4], [3, 4, 5, 6])", "setIntersect([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],
  33496. seealso: ["setUnion", "setDifference"]
  33497. };
  33498. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setIsSubset.js
  33499. var setIsSubsetDocs = {
  33500. name: "setIsSubset",
  33501. category: "Set",
  33502. syntax: ["setIsSubset(set1, set2)"],
  33503. description: "Check whether a (multi)set is a subset of another (multi)set: every element of set1 is the element of set2. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",
  33504. examples: ["setIsSubset([1, 2], [3, 4, 5, 6])", "setIsSubset([3, 4], [3, 4, 5, 6])"],
  33505. seealso: ["setUnion", "setIntersect", "setDifference"]
  33506. };
  33507. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setMultiplicity.js
  33508. var setMultiplicityDocs = {
  33509. name: "setMultiplicity",
  33510. category: "Set",
  33511. syntax: ["setMultiplicity(element, set)"],
  33512. description: "Count the multiplicity of an element in a multiset. A multi-dimension array will be converted to a single-dimension array before the operation.",
  33513. examples: ["setMultiplicity(1, [1, 2, 2, 4])", "setMultiplicity(2, [1, 2, 2, 4])"],
  33514. seealso: ["setDistinct", "setSize"]
  33515. };
  33516. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setPowerset.js
  33517. var setPowersetDocs = {
  33518. name: "setPowerset",
  33519. category: "Set",
  33520. syntax: ["setPowerset(set)"],
  33521. description: "Create the powerset of a (multi)set: the powerset contains very possible subsets of a (multi)set. A multi-dimension array will be converted to a single-dimension array before the operation.",
  33522. examples: ["setPowerset([1, 2, 3])"],
  33523. seealso: ["setCartesian"]
  33524. };
  33525. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setSize.js
  33526. var setSizeDocs = {
  33527. name: "setSize",
  33528. category: "Set",
  33529. syntax: ["setSize(set)", "setSize(set, unique)"],
  33530. description: 'Count the number of elements of a (multi)set. When the second parameter "unique" is true, count only the unique values. A multi-dimension array will be converted to a single-dimension array before the operation.',
  33531. examples: ["setSize([1, 2, 2, 4])", "setSize([1, 2, 2, 4], true)"],
  33532. seealso: ["setUnion", "setIntersect", "setDifference"]
  33533. };
  33534. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setSymDifference.js
  33535. var setSymDifferenceDocs = {
  33536. name: "setSymDifference",
  33537. category: "Set",
  33538. syntax: ["setSymDifference(set1, set2)"],
  33539. description: "Create the symmetric difference of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",
  33540. examples: ["setSymDifference([1, 2, 3, 4], [3, 4, 5, 6])", "setSymDifference([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],
  33541. seealso: ["setUnion", "setIntersect", "setDifference"]
  33542. };
  33543. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/set/setUnion.js
  33544. var setUnionDocs = {
  33545. name: "setUnion",
  33546. category: "Set",
  33547. syntax: ["setUnion(set1, set2)"],
  33548. description: "Create the union of two (multi)sets. Multi-dimension arrays will be converted to single-dimension arrays before the operation.",
  33549. examples: ["setUnion([1, 2, 3, 4], [3, 4, 5, 6])", "setUnion([[1, 2], [3, 4]], [[3, 4], [5, 6]])"],
  33550. seealso: ["setIntersect", "setDifference"]
  33551. };
  33552. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/special/erf.js
  33553. var erfDocs = {
  33554. name: "erf",
  33555. category: "Special",
  33556. syntax: ["erf(x)"],
  33557. description: "Compute the erf function of a value using a rational Chebyshev approximations for different intervals of x",
  33558. examples: ["erf(0.2)", "erf(-0.5)", "erf(4)"],
  33559. seealso: []
  33560. };
  33561. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/mad.js
  33562. var madDocs = {
  33563. name: "mad",
  33564. category: "Statistics",
  33565. syntax: ["mad(a, b, c, ...)", "mad(A)"],
  33566. description: "Compute the median absolute deviation of a matrix or a list with values. The median absolute deviation is defined as the median of the absolute deviations from the median.",
  33567. examples: ["mad(10, 20, 30)", "mad([1, 2, 3])"],
  33568. seealso: ["mean", "median", "std", "abs"]
  33569. };
  33570. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/max.js
  33571. var maxDocs = {
  33572. name: "max",
  33573. category: "Statistics",
  33574. syntax: ["max(a, b, c, ...)", "max(A)", "max(A, dimension)"],
  33575. description: "Compute the maximum value of a list of values.",
  33576. examples: ["max(2, 3, 4, 1)", "max([2, 3, 4, 1])", "max([2, 5; 4, 3])", "max([2, 5; 4, 3], 1)", "max([2, 5; 4, 3], 2)", "max(2.7, 7.1, -4.5, 2.0, 4.1)", "min(2.7, 7.1, -4.5, 2.0, 4.1)"],
  33577. seealso: ["mean", "median", "min", "prod", "std", "sum", "variance"]
  33578. };
  33579. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/mean.js
  33580. var meanDocs = {
  33581. name: "mean",
  33582. category: "Statistics",
  33583. syntax: ["mean(a, b, c, ...)", "mean(A)", "mean(A, dimension)"],
  33584. description: "Compute the arithmetic mean of a list of values.",
  33585. examples: ["mean(2, 3, 4, 1)", "mean([2, 3, 4, 1])", "mean([2, 5; 4, 3])", "mean([2, 5; 4, 3], 1)", "mean([2, 5; 4, 3], 2)", "mean([1.0, 2.7, 3.2, 4.0])"],
  33586. seealso: ["max", "median", "min", "prod", "std", "sum", "variance"]
  33587. };
  33588. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/median.js
  33589. var medianDocs = {
  33590. name: "median",
  33591. category: "Statistics",
  33592. syntax: ["median(a, b, c, ...)", "median(A)"],
  33593. description: "Compute the median of all values. The values are sorted and the middle value is returned. In case of an even number of values, the average of the two middle values is returned.",
  33594. examples: ["median(5, 2, 7)", "median([3, -1, 5, 7])"],
  33595. seealso: ["max", "mean", "min", "prod", "std", "sum", "variance", "quantileSeq"]
  33596. };
  33597. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/min.js
  33598. var minDocs = {
  33599. name: "min",
  33600. category: "Statistics",
  33601. syntax: ["min(a, b, c, ...)", "min(A)", "min(A, dimension)"],
  33602. description: "Compute the minimum value of a list of values.",
  33603. examples: ["min(2, 3, 4, 1)", "min([2, 3, 4, 1])", "min([2, 5; 4, 3])", "min([2, 5; 4, 3], 1)", "min([2, 5; 4, 3], 2)", "min(2.7, 7.1, -4.5, 2.0, 4.1)", "max(2.7, 7.1, -4.5, 2.0, 4.1)"],
  33604. seealso: ["max", "mean", "median", "prod", "std", "sum", "variance"]
  33605. };
  33606. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/mode.js
  33607. var modeDocs = {
  33608. name: "mode",
  33609. category: "Statistics",
  33610. syntax: ["mode(a, b, c, ...)", "mode(A)", "mode(A, a, b, B, c, ...)"],
  33611. description: "Computes the mode of all values as an array. In case mode being more than one, multiple values are returned in an array.",
  33612. examples: ["mode(2, 1, 4, 3, 1)", "mode([1, 2.7, 3.2, 4, 2.7])", "mode(1, 4, 6, 1, 6)"],
  33613. seealso: ["max", "mean", "min", "median", "prod", "std", "sum", "variance"]
  33614. };
  33615. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/prod.js
  33616. var prodDocs = {
  33617. name: "prod",
  33618. category: "Statistics",
  33619. syntax: ["prod(a, b, c, ...)", "prod(A)"],
  33620. description: "Compute the product of all values.",
  33621. examples: ["prod(2, 3, 4)", "prod([2, 3, 4])", "prod([2, 5; 4, 3])"],
  33622. seealso: ["max", "mean", "min", "median", "min", "std", "sum", "variance"]
  33623. };
  33624. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/quantileSeq.js
  33625. var quantileSeqDocs = {
  33626. name: "quantileSeq",
  33627. category: "Statistics",
  33628. syntax: ["quantileSeq(A, prob[, sorted])", "quantileSeq(A, [prob1, prob2, ...][, sorted])", "quantileSeq(A, N[, sorted])"],
  33629. description: "Compute the prob order quantile of a matrix or a list with values. The sequence is sorted and the middle value is returned. Supported types of sequence values are: Number, BigNumber, Unit Supported types of probablity are: Number, BigNumber. \n\nIn case of a (multi dimensional) array or matrix, the prob order quantile of all elements will be calculated.",
  33630. examples: ["quantileSeq([3, -1, 5, 7], 0.5)", "quantileSeq([3, -1, 5, 7], [1/3, 2/3])", "quantileSeq([3, -1, 5, 7], 2)", "quantileSeq([-1, 3, 5, 7], 0.5, true)"],
  33631. seealso: ["mean", "median", "min", "max", "prod", "std", "sum", "variance"]
  33632. };
  33633. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/std.js
  33634. var stdDocs = {
  33635. name: "std",
  33636. category: "Statistics",
  33637. syntax: ["std(a, b, c, ...)", "std(A)", "std(A, dimension)", "std(A, normalization)", "std(A, dimension, normalization)"],
  33638. description: 'Compute the standard deviation of all values, defined as std(A) = sqrt(variance(A)). Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',
  33639. examples: ["std(2, 4, 6)", "std([2, 4, 6, 8])", 'std([2, 4, 6, 8], "uncorrected")', 'std([2, 4, 6, 8], "biased")', "std([1, 2, 3; 4, 5, 6])"],
  33640. seealso: ["max", "mean", "min", "median", "prod", "sum", "variance"]
  33641. };
  33642. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js
  33643. var cumSumDocs = {
  33644. name: "cumsum",
  33645. category: "Statistics",
  33646. syntax: ["cumsum(a, b, c, ...)", "cumsum(A)"],
  33647. description: "Compute the cumulative sum of all values.",
  33648. examples: ["cumsum(2, 3, 4, 1)", "cumsum([2, 3, 4, 1])", "cumsum([1, 2; 3, 4])", "cumsum([1, 2; 3, 4], 1)", "cumsum([1, 2; 3, 4], 2)"],
  33649. seealso: ["max", "mean", "median", "min", "prod", "std", "sum", "variance"]
  33650. };
  33651. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/sum.js
  33652. var sumDocs = {
  33653. name: "sum",
  33654. category: "Statistics",
  33655. syntax: ["sum(a, b, c, ...)", "sum(A)", "sum(A, dimension)"],
  33656. description: "Compute the sum of all values.",
  33657. examples: ["sum(2, 3, 4, 1)", "sum([2, 3, 4, 1])", "sum([2, 5; 4, 3])"],
  33658. seealso: ["max", "mean", "median", "min", "prod", "std", "sum", "variance"]
  33659. };
  33660. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/statistics/variance.js
  33661. var varianceDocs = {
  33662. name: "variance",
  33663. category: "Statistics",
  33664. syntax: ["variance(a, b, c, ...)", "variance(A)", "variance(A, dimension)", "variance(A, normalization)", "variance(A, dimension, normalization)"],
  33665. description: 'Compute the variance of all values. Optional parameter normalization can be "unbiased" (default), "uncorrected", or "biased".',
  33666. examples: ["variance(2, 4, 6)", "variance([2, 4, 6, 8])", 'variance([2, 4, 6, 8], "uncorrected")', 'variance([2, 4, 6, 8], "biased")', "variance([1, 2, 3; 4, 5, 6])"],
  33667. seealso: ["max", "mean", "min", "median", "min", "prod", "std", "sum"]
  33668. };
  33669. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acos.js
  33670. var acosDocs = {
  33671. name: "acos",
  33672. category: "Trigonometry",
  33673. syntax: ["acos(x)"],
  33674. description: "Compute the inverse cosine of a value in radians.",
  33675. examples: ["acos(0.5)", "acos(cos(2.3))"],
  33676. seealso: ["cos", "atan", "asin"]
  33677. };
  33678. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acosh.js
  33679. var acoshDocs = {
  33680. name: "acosh",
  33681. category: "Trigonometry",
  33682. syntax: ["acosh(x)"],
  33683. description: "Calculate the hyperbolic arccos of a value, defined as `acosh(x) = ln(sqrt(x^2 - 1) + x)`.",
  33684. examples: ["acosh(1.5)"],
  33685. seealso: ["cosh", "asinh", "atanh"]
  33686. };
  33687. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acot.js
  33688. var acotDocs = {
  33689. name: "acot",
  33690. category: "Trigonometry",
  33691. syntax: ["acot(x)"],
  33692. description: "Calculate the inverse cotangent of a value.",
  33693. examples: ["acot(0.5)", "acot(cot(0.5))", "acot(2)"],
  33694. seealso: ["cot", "atan"]
  33695. };
  33696. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acoth.js
  33697. var acothDocs = {
  33698. name: "acoth",
  33699. category: "Trigonometry",
  33700. syntax: ["acoth(x)"],
  33701. description: "Calculate the hyperbolic arccotangent of a value, defined as `acoth(x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.",
  33702. examples: ["acoth(2)", "acoth(0.5)"],
  33703. seealso: ["acsch", "asech"]
  33704. };
  33705. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acsc.js
  33706. var acscDocs = {
  33707. name: "acsc",
  33708. category: "Trigonometry",
  33709. syntax: ["acsc(x)"],
  33710. description: "Calculate the inverse cotangent of a value.",
  33711. examples: ["acsc(2)", "acsc(csc(0.5))", "acsc(0.5)"],
  33712. seealso: ["csc", "asin", "asec"]
  33713. };
  33714. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/acsch.js
  33715. var acschDocs = {
  33716. name: "acsch",
  33717. category: "Trigonometry",
  33718. syntax: ["acsch(x)"],
  33719. description: "Calculate the hyperbolic arccosecant of a value, defined as `acsch(x) = ln(1/x + sqrt(1/x^2 + 1))`.",
  33720. examples: ["acsch(0.5)"],
  33721. seealso: ["asech", "acoth"]
  33722. };
  33723. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/asec.js
  33724. var asecDocs = {
  33725. name: "asec",
  33726. category: "Trigonometry",
  33727. syntax: ["asec(x)"],
  33728. description: "Calculate the inverse secant of a value.",
  33729. examples: ["asec(0.5)", "asec(sec(0.5))", "asec(2)"],
  33730. seealso: ["acos", "acot", "acsc"]
  33731. };
  33732. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/asech.js
  33733. var asechDocs = {
  33734. name: "asech",
  33735. category: "Trigonometry",
  33736. syntax: ["asech(x)"],
  33737. description: "Calculate the inverse secant of a value.",
  33738. examples: ["asech(0.5)"],
  33739. seealso: ["acsch", "acoth"]
  33740. };
  33741. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/asin.js
  33742. var asinDocs = {
  33743. name: "asin",
  33744. category: "Trigonometry",
  33745. syntax: ["asin(x)"],
  33746. description: "Compute the inverse sine of a value in radians.",
  33747. examples: ["asin(0.5)", "asin(sin(0.5))"],
  33748. seealso: ["sin", "acos", "atan"]
  33749. };
  33750. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/asinh.js
  33751. var asinhDocs = {
  33752. name: "asinh",
  33753. category: "Trigonometry",
  33754. syntax: ["asinh(x)"],
  33755. description: "Calculate the hyperbolic arcsine of a value, defined as `asinh(x) = ln(x + sqrt(x^2 + 1))`.",
  33756. examples: ["asinh(0.5)"],
  33757. seealso: ["acosh", "atanh"]
  33758. };
  33759. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/atan.js
  33760. var atanDocs = {
  33761. name: "atan",
  33762. category: "Trigonometry",
  33763. syntax: ["atan(x)"],
  33764. description: "Compute the inverse tangent of a value in radians.",
  33765. examples: ["atan(0.5)", "atan(tan(0.5))"],
  33766. seealso: ["tan", "acos", "asin"]
  33767. };
  33768. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/atan2.js
  33769. var atan2Docs = {
  33770. name: "atan2",
  33771. category: "Trigonometry",
  33772. syntax: ["atan2(y, x)"],
  33773. description: "Computes the principal value of the arc tangent of y/x in radians.",
  33774. examples: ["atan2(2, 2) / pi", "angle = 60 deg in rad", "x = cos(angle)", "y = sin(angle)", "atan2(y, x)"],
  33775. seealso: ["sin", "cos", "tan"]
  33776. };
  33777. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/atanh.js
  33778. var atanhDocs = {
  33779. name: "atanh",
  33780. category: "Trigonometry",
  33781. syntax: ["atanh(x)"],
  33782. description: "Calculate the hyperbolic arctangent of a value, defined as `atanh(x) = ln((1 + x)/(1 - x)) / 2`.",
  33783. examples: ["atanh(0.5)"],
  33784. seealso: ["acosh", "asinh"]
  33785. };
  33786. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/cos.js
  33787. var cosDocs = {
  33788. name: "cos",
  33789. category: "Trigonometry",
  33790. syntax: ["cos(x)"],
  33791. description: "Compute the cosine of x in radians.",
  33792. examples: ["cos(2)", "cos(pi / 4) ^ 2", "cos(180 deg)", "cos(60 deg)", "sin(0.2)^2 + cos(0.2)^2"],
  33793. seealso: ["acos", "sin", "tan"]
  33794. };
  33795. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/cosh.js
  33796. var coshDocs = {
  33797. name: "cosh",
  33798. category: "Trigonometry",
  33799. syntax: ["cosh(x)"],
  33800. description: "Compute the hyperbolic cosine of x in radians.",
  33801. examples: ["cosh(0.5)"],
  33802. seealso: ["sinh", "tanh", "coth"]
  33803. };
  33804. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/cot.js
  33805. var cotDocs = {
  33806. name: "cot",
  33807. category: "Trigonometry",
  33808. syntax: ["cot(x)"],
  33809. description: "Compute the cotangent of x in radians. Defined as 1/tan(x)",
  33810. examples: ["cot(2)", "1 / tan(2)"],
  33811. seealso: ["sec", "csc", "tan"]
  33812. };
  33813. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/coth.js
  33814. var cothDocs = {
  33815. name: "coth",
  33816. category: "Trigonometry",
  33817. syntax: ["coth(x)"],
  33818. description: "Compute the hyperbolic cotangent of x in radians.",
  33819. examples: ["coth(2)", "1 / tanh(2)"],
  33820. seealso: ["sech", "csch", "tanh"]
  33821. };
  33822. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/csc.js
  33823. var cscDocs = {
  33824. name: "csc",
  33825. category: "Trigonometry",
  33826. syntax: ["csc(x)"],
  33827. description: "Compute the cosecant of x in radians. Defined as 1/sin(x)",
  33828. examples: ["csc(2)", "1 / sin(2)"],
  33829. seealso: ["sec", "cot", "sin"]
  33830. };
  33831. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/csch.js
  33832. var cschDocs = {
  33833. name: "csch",
  33834. category: "Trigonometry",
  33835. syntax: ["csch(x)"],
  33836. description: "Compute the hyperbolic cosecant of x in radians. Defined as 1/sinh(x)",
  33837. examples: ["csch(2)", "1 / sinh(2)"],
  33838. seealso: ["sech", "coth", "sinh"]
  33839. };
  33840. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/sec.js
  33841. var secDocs = {
  33842. name: "sec",
  33843. category: "Trigonometry",
  33844. syntax: ["sec(x)"],
  33845. description: "Compute the secant of x in radians. Defined as 1/cos(x)",
  33846. examples: ["sec(2)", "1 / cos(2)"],
  33847. seealso: ["cot", "csc", "cos"]
  33848. };
  33849. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/sech.js
  33850. var sechDocs = {
  33851. name: "sech",
  33852. category: "Trigonometry",
  33853. syntax: ["sech(x)"],
  33854. description: "Compute the hyperbolic secant of x in radians. Defined as 1/cosh(x)",
  33855. examples: ["sech(2)", "1 / cosh(2)"],
  33856. seealso: ["coth", "csch", "cosh"]
  33857. };
  33858. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/sin.js
  33859. var sinDocs = {
  33860. name: "sin",
  33861. category: "Trigonometry",
  33862. syntax: ["sin(x)"],
  33863. description: "Compute the sine of x in radians.",
  33864. examples: ["sin(2)", "sin(pi / 4) ^ 2", "sin(90 deg)", "sin(30 deg)", "sin(0.2)^2 + cos(0.2)^2"],
  33865. seealso: ["asin", "cos", "tan"]
  33866. };
  33867. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/sinh.js
  33868. var sinhDocs = {
  33869. name: "sinh",
  33870. category: "Trigonometry",
  33871. syntax: ["sinh(x)"],
  33872. description: "Compute the hyperbolic sine of x in radians.",
  33873. examples: ["sinh(0.5)"],
  33874. seealso: ["cosh", "tanh"]
  33875. };
  33876. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/tan.js
  33877. var tanDocs = {
  33878. name: "tan",
  33879. category: "Trigonometry",
  33880. syntax: ["tan(x)"],
  33881. description: "Compute the tangent of x in radians.",
  33882. examples: ["tan(0.5)", "sin(0.5) / cos(0.5)", "tan(pi / 4)", "tan(45 deg)"],
  33883. seealso: ["atan", "sin", "cos"]
  33884. };
  33885. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/trigonometry/tanh.js
  33886. var tanhDocs = {
  33887. name: "tanh",
  33888. category: "Trigonometry",
  33889. syntax: ["tanh(x)"],
  33890. description: "Compute the hyperbolic tangent of x in radians.",
  33891. examples: ["tanh(0.5)", "sinh(0.5) / cosh(0.5)"],
  33892. seealso: ["sinh", "cosh"]
  33893. };
  33894. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/units/to.js
  33895. var toDocs = {
  33896. name: "to",
  33897. category: "Units",
  33898. syntax: ["x to unit", "to(x, unit)"],
  33899. description: "Change the unit of a value.",
  33900. examples: ["5 inch to cm", "3.2kg to g", "16 bytes in bits"],
  33901. seealso: []
  33902. };
  33903. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/bin.js
  33904. var binDocs = {
  33905. name: "bin",
  33906. category: "Utils",
  33907. syntax: ["bin(value)"],
  33908. description: "Format a number as binary",
  33909. examples: ["bin(2)"],
  33910. seealso: ["oct", "hex"]
  33911. };
  33912. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/clone.js
  33913. var cloneDocs = {
  33914. name: "clone",
  33915. category: "Utils",
  33916. syntax: ["clone(x)"],
  33917. description: "Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices",
  33918. examples: ["clone(3.5)", "clone(2 - 4i)", "clone(45 deg)", "clone([1, 2; 3, 4])", 'clone("hello world")'],
  33919. seealso: []
  33920. };
  33921. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/format.js
  33922. var formatDocs = {
  33923. name: "format",
  33924. category: "Utils",
  33925. syntax: ["format(value)", "format(value, precision)"],
  33926. description: "Format a value of any type as string.",
  33927. examples: ["format(2.3)", "format(3 - 4i)", "format([])", "format(pi, 3)"],
  33928. seealso: ["print"]
  33929. };
  33930. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/hasNumericValue.js
  33931. var hasNumericValueDocs = {
  33932. name: "hasNumericValue",
  33933. category: "Utils",
  33934. syntax: ["hasNumericValue(x)"],
  33935. description: "Test whether a value is an numeric value. In case of a string, true is returned if the string contains a numeric value.",
  33936. examples: ["hasNumericValue(2)", 'hasNumericValue("2")', 'isNumeric("2")', "hasNumericValue(0)", "hasNumericValue(bignumber(500))", "hasNumericValue(fraction(0.125))", "hasNumericValue(2 + 3i)", 'hasNumericValue([2.3, "foo", false])'],
  33937. seealso: ["isInteger", "isZero", "isNegative", "isPositive", "isNaN", "isNumeric"]
  33938. };
  33939. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/hex.js
  33940. var hexDocs = {
  33941. name: "hex",
  33942. category: "Utils",
  33943. syntax: ["hex(value)"],
  33944. description: "Format a number as hexadecimal",
  33945. examples: ["hex(240)"],
  33946. seealso: ["bin", "oct"]
  33947. };
  33948. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isInteger.js
  33949. var isIntegerDocs = {
  33950. name: "isInteger",
  33951. category: "Utils",
  33952. syntax: ["isInteger(x)"],
  33953. description: "Test whether a value is an integer number.",
  33954. examples: ["isInteger(2)", "isInteger(3.5)", "isInteger([3, 0.5, -2])"],
  33955. seealso: ["isNegative", "isNumeric", "isPositive", "isZero"]
  33956. };
  33957. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isNaN.js
  33958. var isNaNDocs = {
  33959. name: "isNaN",
  33960. category: "Utils",
  33961. syntax: ["isNaN(x)"],
  33962. description: "Test whether a value is NaN (not a number)",
  33963. examples: ["isNaN(2)", "isNaN(0 / 0)", "isNaN(NaN)", "isNaN(Infinity)"],
  33964. seealso: ["isNegative", "isNumeric", "isPositive", "isZero"]
  33965. };
  33966. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isNegative.js
  33967. var isNegativeDocs = {
  33968. name: "isNegative",
  33969. category: "Utils",
  33970. syntax: ["isNegative(x)"],
  33971. description: "Test whether a value is negative: smaller than zero.",
  33972. examples: ["isNegative(2)", "isNegative(0)", "isNegative(-4)", "isNegative([3, 0.5, -2])"],
  33973. seealso: ["isInteger", "isNumeric", "isPositive", "isZero"]
  33974. };
  33975. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isNumeric.js
  33976. var isNumericDocs = {
  33977. name: "isNumeric",
  33978. category: "Utils",
  33979. syntax: ["isNumeric(x)"],
  33980. description: "Test whether a value is a numeric value. Returns true when the input is a number, BigNumber, Fraction, or boolean.",
  33981. examples: ["isNumeric(2)", 'isNumeric("2")', 'hasNumericValue("2")', "isNumeric(0)", "isNumeric(bignumber(500))", "isNumeric(fraction(0.125))", "isNumeric(2 + 3i)", 'isNumeric([2.3, "foo", false])'],
  33982. seealso: ["isInteger", "isZero", "isNegative", "isPositive", "isNaN", "hasNumericValue"]
  33983. };
  33984. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isPositive.js
  33985. var isPositiveDocs = {
  33986. name: "isPositive",
  33987. category: "Utils",
  33988. syntax: ["isPositive(x)"],
  33989. description: "Test whether a value is positive: larger than zero.",
  33990. examples: ["isPositive(2)", "isPositive(0)", "isPositive(-4)", "isPositive([3, 0.5, -2])"],
  33991. seealso: ["isInteger", "isNumeric", "isNegative", "isZero"]
  33992. };
  33993. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isPrime.js
  33994. var isPrimeDocs = {
  33995. name: "isPrime",
  33996. category: "Utils",
  33997. syntax: ["isPrime(x)"],
  33998. description: "Test whether a value is prime: has no divisors other than itself and one.",
  33999. examples: ["isPrime(3)", "isPrime(-2)", "isPrime([2, 17, 100])"],
  34000. seealso: ["isInteger", "isNumeric", "isNegative", "isZero"]
  34001. };
  34002. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/isZero.js
  34003. var isZeroDocs = {
  34004. name: "isZero",
  34005. category: "Utils",
  34006. syntax: ["isZero(x)"],
  34007. description: "Test whether a value is zero.",
  34008. examples: ["isZero(2)", "isZero(0)", "isZero(-4)", "isZero([3, 0, -2, 0])"],
  34009. seealso: ["isInteger", "isNumeric", "isNegative", "isPositive"]
  34010. };
  34011. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/numeric.js
  34012. var numericDocs = {
  34013. name: "numeric",
  34014. category: "Utils",
  34015. syntax: ["numeric(x)"],
  34016. description: "Convert a numeric input to a specific numeric type: number, BigNumber, or Fraction.",
  34017. examples: ['numeric("4")', 'numeric("4", "number")', 'numeric("4", "BigNumber")', 'numeric("4", "Fraction)', 'numeric(4, "Fraction")', 'numeric(fraction(2, 5), "number)'],
  34018. seealso: ["number", "fraction", "bignumber", "string", "format"]
  34019. };
  34020. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/oct.js
  34021. var octDocs = {
  34022. name: "oct",
  34023. category: "Utils",
  34024. syntax: ["oct(value)"],
  34025. description: "Format a number as octal",
  34026. examples: ["oct(56)"],
  34027. seealso: ["bin", "hex"]
  34028. };
  34029. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/print.js
  34030. var printDocs = {
  34031. name: "print",
  34032. category: "Utils",
  34033. syntax: ["print(template, values)", "print(template, values, precision)"],
  34034. description: "Interpolate values into a string template.",
  34035. examples: ['print("Lucy is $age years old", {age: 5})', 'print("The value of pi is $pi", {pi: pi}, 3)', 'print("Hello, $user.name!", {user: {name: "John"}})', 'print("Values: $0, $1, $2", [6, 9, 4])'],
  34036. seealso: ["format"]
  34037. };
  34038. // node_modules/mathjs/lib/esm/expression/embeddedDocs/function/utils/typeOf.js
  34039. var typeOfDocs = {
  34040. name: "typeOf",
  34041. category: "Utils",
  34042. syntax: ["typeOf(x)"],
  34043. description: "Get the type of a variable.",
  34044. examples: ["typeOf(3.5)", "typeOf(2 - 4i)", "typeOf(45 deg)", 'typeOf("hello world")'],
  34045. seealso: ["getMatrixDataType"]
  34046. };
  34047. // node_modules/mathjs/lib/esm/expression/embeddedDocs/embeddedDocs.js
  34048. var embeddedDocs = {
  34049. // construction functions
  34050. bignumber: bignumberDocs,
  34051. boolean: booleanDocs,
  34052. complex: complexDocs,
  34053. createUnit: createUnitDocs,
  34054. fraction: fractionDocs,
  34055. index: indexDocs,
  34056. matrix: matrixDocs,
  34057. number: numberDocs,
  34058. sparse: sparseDocs,
  34059. splitUnit: splitUnitDocs,
  34060. string: stringDocs,
  34061. unit: unitDocs,
  34062. // constants
  34063. e: eDocs,
  34064. E: eDocs,
  34065. false: falseDocs,
  34066. i: iDocs,
  34067. Infinity: InfinityDocs,
  34068. LN2: LN2Docs,
  34069. LN10: LN10Docs,
  34070. LOG2E: LOG2EDocs,
  34071. LOG10E: LOG10EDocs,
  34072. NaN: NaNDocs,
  34073. null: nullDocs,
  34074. pi: piDocs,
  34075. PI: piDocs,
  34076. phi: phiDocs,
  34077. SQRT1_2: SQRT12Docs,
  34078. SQRT2: SQRT2Docs,
  34079. tau: tauDocs,
  34080. true: trueDocs,
  34081. version: versionDocs,
  34082. // physical constants
  34083. // TODO: more detailed docs for physical constants
  34084. speedOfLight: {
  34085. description: "Speed of light in vacuum",
  34086. examples: ["speedOfLight"]
  34087. },
  34088. gravitationConstant: {
  34089. description: "Newtonian constant of gravitation",
  34090. examples: ["gravitationConstant"]
  34091. },
  34092. planckConstant: {
  34093. description: "Planck constant",
  34094. examples: ["planckConstant"]
  34095. },
  34096. reducedPlanckConstant: {
  34097. description: "Reduced Planck constant",
  34098. examples: ["reducedPlanckConstant"]
  34099. },
  34100. magneticConstant: {
  34101. description: "Magnetic constant (vacuum permeability)",
  34102. examples: ["magneticConstant"]
  34103. },
  34104. electricConstant: {
  34105. description: "Electric constant (vacuum permeability)",
  34106. examples: ["electricConstant"]
  34107. },
  34108. vacuumImpedance: {
  34109. description: "Characteristic impedance of vacuum",
  34110. examples: ["vacuumImpedance"]
  34111. },
  34112. coulomb: {
  34113. description: "Coulomb's constant",
  34114. examples: ["coulomb"]
  34115. },
  34116. elementaryCharge: {
  34117. description: "Elementary charge",
  34118. examples: ["elementaryCharge"]
  34119. },
  34120. bohrMagneton: {
  34121. description: "Borh magneton",
  34122. examples: ["bohrMagneton"]
  34123. },
  34124. conductanceQuantum: {
  34125. description: "Conductance quantum",
  34126. examples: ["conductanceQuantum"]
  34127. },
  34128. inverseConductanceQuantum: {
  34129. description: "Inverse conductance quantum",
  34130. examples: ["inverseConductanceQuantum"]
  34131. },
  34132. // josephson: {description: 'Josephson constant', examples: ['josephson']},
  34133. magneticFluxQuantum: {
  34134. description: "Magnetic flux quantum",
  34135. examples: ["magneticFluxQuantum"]
  34136. },
  34137. nuclearMagneton: {
  34138. description: "Nuclear magneton",
  34139. examples: ["nuclearMagneton"]
  34140. },
  34141. klitzing: {
  34142. description: "Von Klitzing constant",
  34143. examples: ["klitzing"]
  34144. },
  34145. bohrRadius: {
  34146. description: "Borh radius",
  34147. examples: ["bohrRadius"]
  34148. },
  34149. classicalElectronRadius: {
  34150. description: "Classical electron radius",
  34151. examples: ["classicalElectronRadius"]
  34152. },
  34153. electronMass: {
  34154. description: "Electron mass",
  34155. examples: ["electronMass"]
  34156. },
  34157. fermiCoupling: {
  34158. description: "Fermi coupling constant",
  34159. examples: ["fermiCoupling"]
  34160. },
  34161. fineStructure: {
  34162. description: "Fine-structure constant",
  34163. examples: ["fineStructure"]
  34164. },
  34165. hartreeEnergy: {
  34166. description: "Hartree energy",
  34167. examples: ["hartreeEnergy"]
  34168. },
  34169. protonMass: {
  34170. description: "Proton mass",
  34171. examples: ["protonMass"]
  34172. },
  34173. deuteronMass: {
  34174. description: "Deuteron Mass",
  34175. examples: ["deuteronMass"]
  34176. },
  34177. neutronMass: {
  34178. description: "Neutron mass",
  34179. examples: ["neutronMass"]
  34180. },
  34181. quantumOfCirculation: {
  34182. description: "Quantum of circulation",
  34183. examples: ["quantumOfCirculation"]
  34184. },
  34185. rydberg: {
  34186. description: "Rydberg constant",
  34187. examples: ["rydberg"]
  34188. },
  34189. thomsonCrossSection: {
  34190. description: "Thomson cross section",
  34191. examples: ["thomsonCrossSection"]
  34192. },
  34193. weakMixingAngle: {
  34194. description: "Weak mixing angle",
  34195. examples: ["weakMixingAngle"]
  34196. },
  34197. efimovFactor: {
  34198. description: "Efimov factor",
  34199. examples: ["efimovFactor"]
  34200. },
  34201. atomicMass: {
  34202. description: "Atomic mass constant",
  34203. examples: ["atomicMass"]
  34204. },
  34205. avogadro: {
  34206. description: "Avogadro's number",
  34207. examples: ["avogadro"]
  34208. },
  34209. boltzmann: {
  34210. description: "Boltzmann constant",
  34211. examples: ["boltzmann"]
  34212. },
  34213. faraday: {
  34214. description: "Faraday constant",
  34215. examples: ["faraday"]
  34216. },
  34217. firstRadiation: {
  34218. description: "First radiation constant",
  34219. examples: ["firstRadiation"]
  34220. },
  34221. loschmidt: {
  34222. description: "Loschmidt constant at T=273.15 K and p=101.325 kPa",
  34223. examples: ["loschmidt"]
  34224. },
  34225. gasConstant: {
  34226. description: "Gas constant",
  34227. examples: ["gasConstant"]
  34228. },
  34229. molarPlanckConstant: {
  34230. description: "Molar Planck constant",
  34231. examples: ["molarPlanckConstant"]
  34232. },
  34233. molarVolume: {
  34234. description: "Molar volume of an ideal gas at T=273.15 K and p=101.325 kPa",
  34235. examples: ["molarVolume"]
  34236. },
  34237. sackurTetrode: {
  34238. description: "Sackur-Tetrode constant at T=1 K and p=101.325 kPa",
  34239. examples: ["sackurTetrode"]
  34240. },
  34241. secondRadiation: {
  34242. description: "Second radiation constant",
  34243. examples: ["secondRadiation"]
  34244. },
  34245. stefanBoltzmann: {
  34246. description: "Stefan-Boltzmann constant",
  34247. examples: ["stefanBoltzmann"]
  34248. },
  34249. wienDisplacement: {
  34250. description: "Wien displacement law constant",
  34251. examples: ["wienDisplacement"]
  34252. },
  34253. // spectralRadiance: {description: 'First radiation constant for spectral radiance', examples: ['spectralRadiance']},
  34254. molarMass: {
  34255. description: "Molar mass constant",
  34256. examples: ["molarMass"]
  34257. },
  34258. molarMassC12: {
  34259. description: "Molar mass constant of carbon-12",
  34260. examples: ["molarMassC12"]
  34261. },
  34262. gravity: {
  34263. description: "Standard acceleration of gravity (standard acceleration of free-fall on Earth)",
  34264. examples: ["gravity"]
  34265. },
  34266. planckLength: {
  34267. description: "Planck length",
  34268. examples: ["planckLength"]
  34269. },
  34270. planckMass: {
  34271. description: "Planck mass",
  34272. examples: ["planckMass"]
  34273. },
  34274. planckTime: {
  34275. description: "Planck time",
  34276. examples: ["planckTime"]
  34277. },
  34278. planckCharge: {
  34279. description: "Planck charge",
  34280. examples: ["planckCharge"]
  34281. },
  34282. planckTemperature: {
  34283. description: "Planck temperature",
  34284. examples: ["planckTemperature"]
  34285. },
  34286. // functions - algebra
  34287. derivative: derivativeDocs,
  34288. lsolve: lsolveDocs,
  34289. lsolveAll: lsolveAllDocs,
  34290. lup: lupDocs,
  34291. lusolve: lusolveDocs,
  34292. leafCount: leafCountDocs,
  34293. polynomialRoot: polynomialRootDocs,
  34294. resolve: resolveDocs,
  34295. simplify: simplifyDocs,
  34296. simplifyConstant: simplifyConstantDocs,
  34297. simplifyCore: simplifyCoreDocs,
  34298. symbolicEqual: symbolicEqualDocs,
  34299. rationalize: rationalizeDocs,
  34300. slu: sluDocs,
  34301. usolve: usolveDocs,
  34302. usolveAll: usolveAllDocs,
  34303. qr: qrDocs,
  34304. // functions - arithmetic
  34305. abs: absDocs,
  34306. add: addDocs,
  34307. cbrt: cbrtDocs,
  34308. ceil: ceilDocs,
  34309. cube: cubeDocs,
  34310. divide: divideDocs,
  34311. dotDivide: dotDivideDocs,
  34312. dotMultiply: dotMultiplyDocs,
  34313. dotPow: dotPowDocs,
  34314. exp: expDocs,
  34315. expm: expmDocs,
  34316. expm1: expm1Docs,
  34317. fix: fixDocs,
  34318. floor: floorDocs,
  34319. gcd: gcdDocs,
  34320. hypot: hypotDocs,
  34321. lcm: lcmDocs,
  34322. log: logDocs,
  34323. log2: log2Docs,
  34324. log1p: log1pDocs,
  34325. log10: log10Docs,
  34326. mod: modDocs,
  34327. multiply: multiplyDocs,
  34328. norm: normDocs,
  34329. nthRoot: nthRootDocs,
  34330. nthRoots: nthRootsDocs,
  34331. pow: powDocs,
  34332. round: roundDocs,
  34333. sign: signDocs,
  34334. sqrt: sqrtDocs,
  34335. sqrtm: sqrtmDocs,
  34336. square: squareDocs,
  34337. subtract: subtractDocs,
  34338. unaryMinus: unaryMinusDocs,
  34339. unaryPlus: unaryPlusDocs,
  34340. xgcd: xgcdDocs,
  34341. invmod: invmodDocs,
  34342. // functions - bitwise
  34343. bitAnd: bitAndDocs,
  34344. bitNot: bitNotDocs,
  34345. bitOr: bitOrDocs,
  34346. bitXor: bitXorDocs,
  34347. leftShift: leftShiftDocs,
  34348. rightArithShift: rightArithShiftDocs,
  34349. rightLogShift: rightLogShiftDocs,
  34350. // functions - combinatorics
  34351. bellNumbers: bellNumbersDocs,
  34352. catalan: catalanDocs,
  34353. composition: compositionDocs,
  34354. stirlingS2: stirlingS2Docs,
  34355. // functions - core
  34356. config: configDocs,
  34357. import: importDocs,
  34358. typed: typedDocs,
  34359. // functions - complex
  34360. arg: argDocs,
  34361. conj: conjDocs,
  34362. re: reDocs,
  34363. im: imDocs,
  34364. // functions - expression
  34365. evaluate: evaluateDocs,
  34366. help: helpDocs,
  34367. // functions - geometry
  34368. distance: distanceDocs,
  34369. intersect: intersectDocs,
  34370. // functions - logical
  34371. and: andDocs,
  34372. not: notDocs,
  34373. or: orDocs,
  34374. xor: xorDocs,
  34375. // functions - matrix
  34376. concat: concatDocs,
  34377. count: countDocs,
  34378. cross: crossDocs,
  34379. column: columnDocs,
  34380. ctranspose: ctransposeDocs,
  34381. det: detDocs,
  34382. diag: diagDocs,
  34383. diff: diffDocs,
  34384. dot: dotDocs,
  34385. getMatrixDataType: getMatrixDataTypeDocs,
  34386. identity: identityDocs,
  34387. filter: filterDocs,
  34388. flatten: flattenDocs,
  34389. forEach: forEachDocs,
  34390. inv: invDocs,
  34391. pinv: pinvDocs,
  34392. eigs: eigsDocs,
  34393. kron: kronDocs,
  34394. matrixFromFunction: matrixFromFunctionDocs,
  34395. matrixFromRows: matrixFromRowsDocs,
  34396. matrixFromColumns: matrixFromColumnsDocs,
  34397. map: mapDocs,
  34398. ones: onesDocs,
  34399. partitionSelect: partitionSelectDocs,
  34400. range: rangeDocs,
  34401. resize: resizeDocs,
  34402. reshape: reshapeDocs,
  34403. rotate: rotateDocs,
  34404. rotationMatrix: rotationMatrixDocs,
  34405. row: rowDocs,
  34406. size: sizeDocs,
  34407. sort: sortDocs,
  34408. squeeze: squeezeDocs,
  34409. subset: subsetDocs,
  34410. trace: traceDocs,
  34411. transpose: transposeDocs,
  34412. zeros: zerosDocs,
  34413. fft: fftDocs,
  34414. ifft: ifftDocs,
  34415. sylvester: sylvesterDocs,
  34416. schur: schurDocs,
  34417. lyap: lyapDocs,
  34418. // functions - probability
  34419. combinations: combinationsDocs,
  34420. combinationsWithRep: combinationsWithRepDocs,
  34421. // distribution: distributionDocs,
  34422. factorial: factorialDocs,
  34423. gamma: gammaDocs,
  34424. kldivergence: kldivergenceDocs,
  34425. lgamma: lgammaDocs,
  34426. multinomial: multinomialDocs,
  34427. permutations: permutationsDocs,
  34428. pickRandom: pickRandomDocs,
  34429. random: randomDocs,
  34430. randomInt: randomIntDocs,
  34431. // functions - relational
  34432. compare: compareDocs,
  34433. compareNatural: compareNaturalDocs,
  34434. compareText: compareTextDocs,
  34435. deepEqual: deepEqualDocs,
  34436. equal: equalDocs,
  34437. equalText: equalTextDocs,
  34438. larger: largerDocs,
  34439. largerEq: largerEqDocs,
  34440. smaller: smallerDocs,
  34441. smallerEq: smallerEqDocs,
  34442. unequal: unequalDocs,
  34443. // functions - set
  34444. setCartesian: setCartesianDocs,
  34445. setDifference: setDifferenceDocs,
  34446. setDistinct: setDistinctDocs,
  34447. setIntersect: setIntersectDocs,
  34448. setIsSubset: setIsSubsetDocs,
  34449. setMultiplicity: setMultiplicityDocs,
  34450. setPowerset: setPowersetDocs,
  34451. setSize: setSizeDocs,
  34452. setSymDifference: setSymDifferenceDocs,
  34453. setUnion: setUnionDocs,
  34454. // functions - special
  34455. erf: erfDocs,
  34456. // functions - statistics
  34457. cumsum: cumSumDocs,
  34458. mad: madDocs,
  34459. max: maxDocs,
  34460. mean: meanDocs,
  34461. median: medianDocs,
  34462. min: minDocs,
  34463. mode: modeDocs,
  34464. prod: prodDocs,
  34465. quantileSeq: quantileSeqDocs,
  34466. std: stdDocs,
  34467. sum: sumDocs,
  34468. variance: varianceDocs,
  34469. // functions - trigonometry
  34470. acos: acosDocs,
  34471. acosh: acoshDocs,
  34472. acot: acotDocs,
  34473. acoth: acothDocs,
  34474. acsc: acscDocs,
  34475. acsch: acschDocs,
  34476. asec: asecDocs,
  34477. asech: asechDocs,
  34478. asin: asinDocs,
  34479. asinh: asinhDocs,
  34480. atan: atanDocs,
  34481. atanh: atanhDocs,
  34482. atan2: atan2Docs,
  34483. cos: cosDocs,
  34484. cosh: coshDocs,
  34485. cot: cotDocs,
  34486. coth: cothDocs,
  34487. csc: cscDocs,
  34488. csch: cschDocs,
  34489. sec: secDocs,
  34490. sech: sechDocs,
  34491. sin: sinDocs,
  34492. sinh: sinhDocs,
  34493. tan: tanDocs,
  34494. tanh: tanhDocs,
  34495. // functions - units
  34496. to: toDocs,
  34497. // functions - utils
  34498. clone: cloneDocs,
  34499. format: formatDocs,
  34500. bin: binDocs,
  34501. oct: octDocs,
  34502. hex: hexDocs,
  34503. isNaN: isNaNDocs,
  34504. isInteger: isIntegerDocs,
  34505. isNegative: isNegativeDocs,
  34506. isNumeric: isNumericDocs,
  34507. hasNumericValue: hasNumericValueDocs,
  34508. isPositive: isPositiveDocs,
  34509. isPrime: isPrimeDocs,
  34510. isZero: isZeroDocs,
  34511. print: printDocs,
  34512. typeOf: typeOfDocs,
  34513. numeric: numericDocs
  34514. };
  34515. // node_modules/mathjs/lib/esm/expression/function/help.js
  34516. var name236 = "help";
  34517. var dependencies236 = ["typed", "mathWithTransform", "Help"];
  34518. var createHelp = factory(name236, dependencies236, (_ref) => {
  34519. var {
  34520. typed: typed2,
  34521. mathWithTransform: mathWithTransform2,
  34522. Help: Help2
  34523. } = _ref;
  34524. return typed2(name236, {
  34525. any: function any(search) {
  34526. var prop;
  34527. var searchName = search;
  34528. if (typeof search !== "string") {
  34529. for (prop in mathWithTransform2) {
  34530. if (hasOwnProperty2(mathWithTransform2, prop) && search === mathWithTransform2[prop]) {
  34531. searchName = prop;
  34532. break;
  34533. }
  34534. }
  34535. }
  34536. var doc = getSafeProperty(embeddedDocs, searchName);
  34537. if (!doc) {
  34538. var searchText = typeof searchName === "function" ? searchName.name : searchName;
  34539. throw new Error('No documentation found on "' + searchText + '"');
  34540. }
  34541. return new Help2(doc);
  34542. }
  34543. });
  34544. });
  34545. // node_modules/mathjs/lib/esm/type/chain/function/chain.js
  34546. var name237 = "chain";
  34547. var dependencies237 = ["typed", "Chain"];
  34548. var createChain = factory(name237, dependencies237, (_ref) => {
  34549. var {
  34550. typed: typed2,
  34551. Chain: Chain2
  34552. } = _ref;
  34553. return typed2(name237, {
  34554. "": function _() {
  34555. return new Chain2();
  34556. },
  34557. any: function any(value) {
  34558. return new Chain2(value);
  34559. }
  34560. });
  34561. });
  34562. // node_modules/mathjs/lib/esm/function/matrix/det.js
  34563. var name238 = "det";
  34564. var dependencies238 = ["typed", "matrix", "subtract", "multiply", "divideScalar", "isZero", "unaryMinus"];
  34565. var createDet = factory(name238, dependencies238, (_ref) => {
  34566. var {
  34567. typed: typed2,
  34568. matrix: matrix2,
  34569. subtract: subtract2,
  34570. multiply: multiply2,
  34571. divideScalar: divideScalar2,
  34572. isZero: isZero2,
  34573. unaryMinus: unaryMinus2
  34574. } = _ref;
  34575. return typed2(name238, {
  34576. any: function any(x) {
  34577. return clone(x);
  34578. },
  34579. "Array | Matrix": function det2(x) {
  34580. var size2;
  34581. if (isMatrix(x)) {
  34582. size2 = x.size();
  34583. } else if (Array.isArray(x)) {
  34584. x = matrix2(x);
  34585. size2 = x.size();
  34586. } else {
  34587. size2 = [];
  34588. }
  34589. switch (size2.length) {
  34590. case 0:
  34591. return clone(x);
  34592. case 1:
  34593. if (size2[0] === 1) {
  34594. return clone(x.valueOf()[0]);
  34595. }
  34596. if (size2[0] === 0) {
  34597. return 1;
  34598. } else {
  34599. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  34600. }
  34601. case 2: {
  34602. var rows = size2[0];
  34603. var cols = size2[1];
  34604. if (rows === cols) {
  34605. return _det(x.clone().valueOf(), rows, cols);
  34606. }
  34607. if (cols === 0) {
  34608. return 1;
  34609. } else {
  34610. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  34611. }
  34612. }
  34613. default:
  34614. throw new RangeError("Matrix must be two dimensional (size: " + format3(size2) + ")");
  34615. }
  34616. }
  34617. });
  34618. function _det(matrix3, rows, cols) {
  34619. if (rows === 1) {
  34620. return clone(matrix3[0][0]);
  34621. } else if (rows === 2) {
  34622. return subtract2(multiply2(matrix3[0][0], matrix3[1][1]), multiply2(matrix3[1][0], matrix3[0][1]));
  34623. } else {
  34624. var negated = false;
  34625. var rowIndices = new Array(rows).fill(0).map((_, i3) => i3);
  34626. for (var k = 0; k < rows; k++) {
  34627. var k_ = rowIndices[k];
  34628. if (isZero2(matrix3[k_][k])) {
  34629. var _k = void 0;
  34630. for (_k = k + 1; _k < rows; _k++) {
  34631. if (!isZero2(matrix3[rowIndices[_k]][k])) {
  34632. k_ = rowIndices[_k];
  34633. rowIndices[_k] = rowIndices[k];
  34634. rowIndices[k] = k_;
  34635. negated = !negated;
  34636. break;
  34637. }
  34638. }
  34639. if (_k === rows)
  34640. return matrix3[k_][k];
  34641. }
  34642. var piv = matrix3[k_][k];
  34643. var piv_ = k === 0 ? 1 : matrix3[rowIndices[k - 1]][k - 1];
  34644. for (var i2 = k + 1; i2 < rows; i2++) {
  34645. var i_ = rowIndices[i2];
  34646. for (var j = k + 1; j < rows; j++) {
  34647. matrix3[i_][j] = divideScalar2(subtract2(multiply2(matrix3[i_][j], piv), multiply2(matrix3[i_][k], matrix3[k_][j])), piv_);
  34648. }
  34649. }
  34650. }
  34651. var det2 = matrix3[rowIndices[rows - 1]][rows - 1];
  34652. return negated ? unaryMinus2(det2) : det2;
  34653. }
  34654. }
  34655. });
  34656. // node_modules/mathjs/lib/esm/function/matrix/inv.js
  34657. var name239 = "inv";
  34658. var dependencies239 = ["typed", "matrix", "divideScalar", "addScalar", "multiply", "unaryMinus", "det", "identity", "abs"];
  34659. var createInv = factory(name239, dependencies239, (_ref) => {
  34660. var {
  34661. typed: typed2,
  34662. matrix: matrix2,
  34663. divideScalar: divideScalar2,
  34664. addScalar: addScalar2,
  34665. multiply: multiply2,
  34666. unaryMinus: unaryMinus2,
  34667. det: det2,
  34668. identity: identity2,
  34669. abs: abs3
  34670. } = _ref;
  34671. return typed2(name239, {
  34672. "Array | Matrix": function ArrayMatrix(x) {
  34673. var size2 = isMatrix(x) ? x.size() : arraySize(x);
  34674. switch (size2.length) {
  34675. case 1:
  34676. if (size2[0] === 1) {
  34677. if (isMatrix(x)) {
  34678. return matrix2([divideScalar2(1, x.valueOf()[0])]);
  34679. } else {
  34680. return [divideScalar2(1, x[0])];
  34681. }
  34682. } else {
  34683. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  34684. }
  34685. case 2: {
  34686. var rows = size2[0];
  34687. var cols = size2[1];
  34688. if (rows === cols) {
  34689. if (isMatrix(x)) {
  34690. return matrix2(_inv(x.valueOf(), rows, cols), x.storage());
  34691. } else {
  34692. return _inv(x, rows, cols);
  34693. }
  34694. } else {
  34695. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  34696. }
  34697. }
  34698. default:
  34699. throw new RangeError("Matrix must be two dimensional (size: " + format3(size2) + ")");
  34700. }
  34701. },
  34702. any: function any(x) {
  34703. return divideScalar2(1, x);
  34704. }
  34705. });
  34706. function _inv(mat, rows, cols) {
  34707. var r, s, f, value, temp;
  34708. if (rows === 1) {
  34709. value = mat[0][0];
  34710. if (value === 0) {
  34711. throw Error("Cannot calculate inverse, determinant is zero");
  34712. }
  34713. return [[divideScalar2(1, value)]];
  34714. } else if (rows === 2) {
  34715. var d = det2(mat);
  34716. if (d === 0) {
  34717. throw Error("Cannot calculate inverse, determinant is zero");
  34718. }
  34719. return [[divideScalar2(mat[1][1], d), divideScalar2(unaryMinus2(mat[0][1]), d)], [divideScalar2(unaryMinus2(mat[1][0]), d), divideScalar2(mat[0][0], d)]];
  34720. } else {
  34721. var A = mat.concat();
  34722. for (r = 0; r < rows; r++) {
  34723. A[r] = A[r].concat();
  34724. }
  34725. var B = identity2(rows).valueOf();
  34726. for (var c = 0; c < cols; c++) {
  34727. var ABig = abs3(A[c][c]);
  34728. var rBig = c;
  34729. r = c + 1;
  34730. while (r < rows) {
  34731. if (abs3(A[r][c]) > ABig) {
  34732. ABig = abs3(A[r][c]);
  34733. rBig = r;
  34734. }
  34735. r++;
  34736. }
  34737. if (ABig === 0) {
  34738. throw Error("Cannot calculate inverse, determinant is zero");
  34739. }
  34740. r = rBig;
  34741. if (r !== c) {
  34742. temp = A[c];
  34743. A[c] = A[r];
  34744. A[r] = temp;
  34745. temp = B[c];
  34746. B[c] = B[r];
  34747. B[r] = temp;
  34748. }
  34749. var Ac = A[c];
  34750. var Bc = B[c];
  34751. for (r = 0; r < rows; r++) {
  34752. var Ar = A[r];
  34753. var Br = B[r];
  34754. if (r !== c) {
  34755. if (Ar[c] !== 0) {
  34756. f = divideScalar2(unaryMinus2(Ar[c]), Ac[c]);
  34757. for (s = c; s < cols; s++) {
  34758. Ar[s] = addScalar2(Ar[s], multiply2(f, Ac[s]));
  34759. }
  34760. for (s = 0; s < cols; s++) {
  34761. Br[s] = addScalar2(Br[s], multiply2(f, Bc[s]));
  34762. }
  34763. }
  34764. } else {
  34765. f = Ac[c];
  34766. for (s = c; s < cols; s++) {
  34767. Ar[s] = divideScalar2(Ar[s], f);
  34768. }
  34769. for (s = 0; s < cols; s++) {
  34770. Br[s] = divideScalar2(Br[s], f);
  34771. }
  34772. }
  34773. }
  34774. }
  34775. return B;
  34776. }
  34777. }
  34778. });
  34779. // node_modules/mathjs/lib/esm/function/matrix/pinv.js
  34780. var name240 = "pinv";
  34781. var dependencies240 = ["typed", "matrix", "inv", "deepEqual", "equal", "dotDivide", "dot", "ctranspose", "divideScalar", "multiply", "add", "Complex"];
  34782. var createPinv = factory(name240, dependencies240, (_ref) => {
  34783. var {
  34784. typed: typed2,
  34785. matrix: matrix2,
  34786. inv: inv2,
  34787. deepEqual: deepEqual2,
  34788. equal: equal2,
  34789. dotDivide: dotDivide2,
  34790. dot: dot2,
  34791. ctranspose: ctranspose2,
  34792. divideScalar: divideScalar2,
  34793. multiply: multiply2,
  34794. add: add3,
  34795. Complex: Complex3
  34796. } = _ref;
  34797. return typed2(name240, {
  34798. "Array | Matrix": function ArrayMatrix(x) {
  34799. var size2 = isMatrix(x) ? x.size() : arraySize(x);
  34800. switch (size2.length) {
  34801. case 1:
  34802. if (_isZeros(x))
  34803. return ctranspose2(x);
  34804. if (size2[0] === 1) {
  34805. return inv2(x);
  34806. } else {
  34807. return dotDivide2(ctranspose2(x), dot2(x, x));
  34808. }
  34809. case 2: {
  34810. if (_isZeros(x))
  34811. return ctranspose2(x);
  34812. var rows = size2[0];
  34813. var cols = size2[1];
  34814. if (rows === cols) {
  34815. try {
  34816. return inv2(x);
  34817. } catch (err) {
  34818. if (err instanceof Error && err.message.match(/Cannot calculate inverse, determinant is zero/)) {
  34819. } else {
  34820. throw err;
  34821. }
  34822. }
  34823. }
  34824. if (isMatrix(x)) {
  34825. return matrix2(_pinv(x.valueOf(), rows, cols), x.storage());
  34826. } else {
  34827. return _pinv(x, rows, cols);
  34828. }
  34829. }
  34830. default:
  34831. throw new RangeError("Matrix must be two dimensional (size: " + format3(size2) + ")");
  34832. }
  34833. },
  34834. any: function any(x) {
  34835. if (equal2(x, 0))
  34836. return clone(x);
  34837. return divideScalar2(1, x);
  34838. }
  34839. });
  34840. function _pinv(mat, rows, cols) {
  34841. var {
  34842. C,
  34843. F
  34844. } = _rankFact(mat, rows, cols);
  34845. var Cpinv = multiply2(inv2(multiply2(ctranspose2(C), C)), ctranspose2(C));
  34846. var Fpinv = multiply2(ctranspose2(F), inv2(multiply2(F, ctranspose2(F))));
  34847. return multiply2(Fpinv, Cpinv);
  34848. }
  34849. function _rref(mat, rows, cols) {
  34850. var M = clone(mat);
  34851. var lead = 0;
  34852. for (var r = 0; r < rows; r++) {
  34853. if (cols <= lead) {
  34854. return M;
  34855. }
  34856. var i2 = r;
  34857. while (_isZero(M[i2][lead])) {
  34858. i2++;
  34859. if (rows === i2) {
  34860. i2 = r;
  34861. lead++;
  34862. if (cols === lead) {
  34863. return M;
  34864. }
  34865. }
  34866. }
  34867. [M[i2], M[r]] = [M[r], M[i2]];
  34868. var val = M[r][lead];
  34869. for (var j = 0; j < cols; j++) {
  34870. M[r][j] = dotDivide2(M[r][j], val);
  34871. }
  34872. for (var _i = 0; _i < rows; _i++) {
  34873. if (_i === r)
  34874. continue;
  34875. val = M[_i][lead];
  34876. for (var _j = 0; _j < cols; _j++) {
  34877. M[_i][_j] = add3(M[_i][_j], multiply2(-1, multiply2(val, M[r][_j])));
  34878. }
  34879. }
  34880. lead++;
  34881. }
  34882. return M;
  34883. }
  34884. function _rankFact(mat, rows, cols) {
  34885. var rref = _rref(mat, rows, cols);
  34886. var C = mat.map((_, i2) => _.filter((_2, j) => j < rows && !_isZero(dot2(rref[j], rref[j]))));
  34887. var F = rref.filter((_, i2) => !_isZero(dot2(rref[i2], rref[i2])));
  34888. return {
  34889. C,
  34890. F
  34891. };
  34892. }
  34893. function _isZero(x) {
  34894. return equal2(add3(x, Complex3(1, 1)), add3(0, Complex3(1, 1)));
  34895. }
  34896. function _isZeros(arr) {
  34897. return deepEqual2(add3(arr, Complex3(1, 1)), add3(multiply2(arr, 0), Complex3(1, 1)));
  34898. }
  34899. });
  34900. // node_modules/mathjs/lib/esm/function/matrix/eigs/complexEigs.js
  34901. function createComplexEigs(_ref) {
  34902. var {
  34903. addScalar: addScalar2,
  34904. subtract: subtract2,
  34905. flatten: flatten3,
  34906. multiply: multiply2,
  34907. multiplyScalar: multiplyScalar2,
  34908. divideScalar: divideScalar2,
  34909. sqrt: sqrt3,
  34910. abs: abs3,
  34911. bignumber: bignumber2,
  34912. diag: diag2,
  34913. inv: inv2,
  34914. qr: qr2,
  34915. usolve: usolve2,
  34916. usolveAll: usolveAll2,
  34917. equal: equal2,
  34918. complex: complex2,
  34919. larger: larger2,
  34920. smaller: smaller2,
  34921. matrixFromColumns: matrixFromColumns2,
  34922. dot: dot2
  34923. } = _ref;
  34924. function complexEigs(arr, N, prec, type, findVectors) {
  34925. if (findVectors === void 0) {
  34926. findVectors = true;
  34927. }
  34928. var R = balance(arr, N, prec, type, findVectors);
  34929. reduceToHessenberg(arr, N, prec, type, findVectors, R);
  34930. var {
  34931. values: values2,
  34932. C
  34933. } = iterateUntilTriangular(arr, N, prec, type, findVectors);
  34934. var vectors;
  34935. if (findVectors) {
  34936. vectors = findEigenvectors(arr, N, C, R, values2, prec, type);
  34937. vectors = matrixFromColumns2(...vectors);
  34938. }
  34939. return {
  34940. values: values2,
  34941. vectors
  34942. };
  34943. }
  34944. function balance(arr, N, prec, type, findVectors) {
  34945. var big = type === "BigNumber";
  34946. var cplx = type === "Complex";
  34947. var realzero = big ? bignumber2(0) : 0;
  34948. var one = big ? bignumber2(1) : cplx ? complex2(1) : 1;
  34949. var realone = big ? bignumber2(1) : 1;
  34950. var radix = big ? bignumber2(10) : 2;
  34951. var radixSq = multiplyScalar2(radix, radix);
  34952. var Rdiag;
  34953. if (findVectors) {
  34954. Rdiag = Array(N).fill(one);
  34955. }
  34956. var last = false;
  34957. while (!last) {
  34958. last = true;
  34959. for (var i2 = 0; i2 < N; i2++) {
  34960. var colNorm = realzero;
  34961. var rowNorm = realzero;
  34962. for (var j = 0; j < N; j++) {
  34963. if (i2 === j)
  34964. continue;
  34965. var c = abs3(arr[i2][j]);
  34966. colNorm = addScalar2(colNorm, c);
  34967. rowNorm = addScalar2(rowNorm, c);
  34968. }
  34969. if (!equal2(colNorm, 0) && !equal2(rowNorm, 0)) {
  34970. var f = realone;
  34971. var _c = colNorm;
  34972. var rowDivRadix = divideScalar2(rowNorm, radix);
  34973. var rowMulRadix = multiplyScalar2(rowNorm, radix);
  34974. while (smaller2(_c, rowDivRadix)) {
  34975. _c = multiplyScalar2(_c, radixSq);
  34976. f = multiplyScalar2(f, radix);
  34977. }
  34978. while (larger2(_c, rowMulRadix)) {
  34979. _c = divideScalar2(_c, radixSq);
  34980. f = divideScalar2(f, radix);
  34981. }
  34982. var condition = smaller2(divideScalar2(addScalar2(_c, rowNorm), f), multiplyScalar2(addScalar2(colNorm, rowNorm), 0.95));
  34983. if (condition) {
  34984. last = false;
  34985. var g = divideScalar2(1, f);
  34986. for (var _j = 0; _j < N; _j++) {
  34987. if (i2 === _j) {
  34988. continue;
  34989. }
  34990. arr[i2][_j] = multiplyScalar2(arr[i2][_j], f);
  34991. arr[_j][i2] = multiplyScalar2(arr[_j][i2], g);
  34992. }
  34993. if (findVectors) {
  34994. Rdiag[i2] = multiplyScalar2(Rdiag[i2], f);
  34995. }
  34996. }
  34997. }
  34998. }
  34999. }
  35000. return diag2(Rdiag);
  35001. }
  35002. function reduceToHessenberg(arr, N, prec, type, findVectors, R) {
  35003. var big = type === "BigNumber";
  35004. var cplx = type === "Complex";
  35005. var zero = big ? bignumber2(0) : cplx ? complex2(0) : 0;
  35006. if (big) {
  35007. prec = bignumber2(prec);
  35008. }
  35009. for (var i2 = 0; i2 < N - 2; i2++) {
  35010. var maxIndex = 0;
  35011. var max3 = zero;
  35012. for (var j = i2 + 1; j < N; j++) {
  35013. var el = arr[j][i2];
  35014. if (smaller2(abs3(max3), abs3(el))) {
  35015. max3 = el;
  35016. maxIndex = j;
  35017. }
  35018. }
  35019. if (smaller2(abs3(max3), prec)) {
  35020. continue;
  35021. }
  35022. if (maxIndex !== i2 + 1) {
  35023. var tmp1 = arr[maxIndex];
  35024. arr[maxIndex] = arr[i2 + 1];
  35025. arr[i2 + 1] = tmp1;
  35026. for (var _j2 = 0; _j2 < N; _j2++) {
  35027. var tmp2 = arr[_j2][maxIndex];
  35028. arr[_j2][maxIndex] = arr[_j2][i2 + 1];
  35029. arr[_j2][i2 + 1] = tmp2;
  35030. }
  35031. if (findVectors) {
  35032. var tmp3 = R[maxIndex];
  35033. R[maxIndex] = R[i2 + 1];
  35034. R[i2 + 1] = tmp3;
  35035. }
  35036. }
  35037. for (var _j3 = i2 + 2; _j3 < N; _j3++) {
  35038. var n = divideScalar2(arr[_j3][i2], max3);
  35039. if (n === 0) {
  35040. continue;
  35041. }
  35042. for (var k = 0; k < N; k++) {
  35043. arr[_j3][k] = subtract2(arr[_j3][k], multiplyScalar2(n, arr[i2 + 1][k]));
  35044. }
  35045. for (var _k = 0; _k < N; _k++) {
  35046. arr[_k][i2 + 1] = addScalar2(arr[_k][i2 + 1], multiplyScalar2(n, arr[_k][_j3]));
  35047. }
  35048. if (findVectors) {
  35049. for (var _k2 = 0; _k2 < N; _k2++) {
  35050. R[_j3][_k2] = subtract2(R[_j3][_k2], multiplyScalar2(n, R[i2 + 1][_k2]));
  35051. }
  35052. }
  35053. }
  35054. }
  35055. return R;
  35056. }
  35057. function iterateUntilTriangular(A, N, prec, type, findVectors) {
  35058. var big = type === "BigNumber";
  35059. var cplx = type === "Complex";
  35060. var one = big ? bignumber2(1) : cplx ? complex2(1) : 1;
  35061. if (big) {
  35062. prec = bignumber2(prec);
  35063. }
  35064. var arr = clone(A);
  35065. var lambdas = [];
  35066. var n = N;
  35067. var Sdiag = [];
  35068. var Qtotal = findVectors ? diag2(Array(N).fill(one)) : void 0;
  35069. var Qpartial = findVectors ? diag2(Array(n).fill(one)) : void 0;
  35070. var lastConvergenceBefore = 0;
  35071. while (lastConvergenceBefore <= 100) {
  35072. lastConvergenceBefore += 1;
  35073. var k = 0;
  35074. for (var i2 = 0; i2 < n; i2++) {
  35075. arr[i2][i2] = subtract2(arr[i2][i2], k);
  35076. }
  35077. var {
  35078. Q: Q2,
  35079. R
  35080. } = qr2(arr);
  35081. arr = multiply2(R, Q2);
  35082. for (var _i = 0; _i < n; _i++) {
  35083. arr[_i][_i] = addScalar2(arr[_i][_i], k);
  35084. }
  35085. if (findVectors) {
  35086. Qpartial = multiply2(Qpartial, Q2);
  35087. }
  35088. if (n === 1 || smaller2(abs3(arr[n - 1][n - 2]), prec)) {
  35089. lastConvergenceBefore = 0;
  35090. lambdas.push(arr[n - 1][n - 1]);
  35091. if (findVectors) {
  35092. Sdiag.unshift([[1]]);
  35093. inflateMatrix(Qpartial, N);
  35094. Qtotal = multiply2(Qtotal, Qpartial);
  35095. if (n > 1) {
  35096. Qpartial = diag2(Array(n - 1).fill(one));
  35097. }
  35098. }
  35099. n -= 1;
  35100. arr.pop();
  35101. for (var _i2 = 0; _i2 < n; _i2++) {
  35102. arr[_i2].pop();
  35103. }
  35104. } else if (n === 2 || smaller2(abs3(arr[n - 2][n - 3]), prec)) {
  35105. lastConvergenceBefore = 0;
  35106. var ll = eigenvalues2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1]);
  35107. lambdas.push(...ll);
  35108. if (findVectors) {
  35109. Sdiag.unshift(jordanBase2x2(arr[n - 2][n - 2], arr[n - 2][n - 1], arr[n - 1][n - 2], arr[n - 1][n - 1], ll[0], ll[1], prec, type));
  35110. inflateMatrix(Qpartial, N);
  35111. Qtotal = multiply2(Qtotal, Qpartial);
  35112. if (n > 2) {
  35113. Qpartial = diag2(Array(n - 2).fill(one));
  35114. }
  35115. }
  35116. n -= 2;
  35117. arr.pop();
  35118. arr.pop();
  35119. for (var _i3 = 0; _i3 < n; _i3++) {
  35120. arr[_i3].pop();
  35121. arr[_i3].pop();
  35122. }
  35123. }
  35124. if (n === 0) {
  35125. break;
  35126. }
  35127. }
  35128. lambdas.sort((a, b) => +subtract2(abs3(a), abs3(b)));
  35129. if (lastConvergenceBefore > 100) {
  35130. var err = Error("The eigenvalues failed to converge. Only found these eigenvalues: " + lambdas.join(", "));
  35131. err.values = lambdas;
  35132. err.vectors = [];
  35133. throw err;
  35134. }
  35135. var C = findVectors ? multiply2(Qtotal, blockDiag(Sdiag, N)) : void 0;
  35136. return {
  35137. values: lambdas,
  35138. C
  35139. };
  35140. }
  35141. function findEigenvectors(A, N, C, R, values2, prec, type) {
  35142. var Cinv = inv2(C);
  35143. var U = multiply2(Cinv, A, C);
  35144. var big = type === "BigNumber";
  35145. var cplx = type === "Complex";
  35146. var zero = big ? bignumber2(0) : cplx ? complex2(0) : 0;
  35147. var one = big ? bignumber2(1) : cplx ? complex2(1) : 1;
  35148. var uniqueValues = [];
  35149. var multiplicities = [];
  35150. for (var λ of values2) {
  35151. var i2 = indexOf(uniqueValues, λ, equal2);
  35152. if (i2 === -1) {
  35153. uniqueValues.push(λ);
  35154. multiplicities.push(1);
  35155. } else {
  35156. multiplicities[i2] += 1;
  35157. }
  35158. }
  35159. var vectors = [];
  35160. var len = uniqueValues.length;
  35161. var b = Array(N).fill(zero);
  35162. var E = diag2(Array(N).fill(one));
  35163. var failedLambdas = [];
  35164. var _loop = function _loop2() {
  35165. var λ2 = uniqueValues[_i4];
  35166. var S = subtract2(U, multiply2(λ2, E));
  35167. var solutions = usolveAll2(S, b);
  35168. solutions.shift();
  35169. while (solutions.length < multiplicities[_i4]) {
  35170. var approxVec = inverseIterate(S, N, solutions, prec, type);
  35171. if (approxVec == null) {
  35172. failedLambdas.push(λ2);
  35173. break;
  35174. }
  35175. solutions.push(approxVec);
  35176. }
  35177. var correction = multiply2(inv2(R), C);
  35178. solutions = solutions.map((v) => multiply2(correction, v));
  35179. vectors.push(...solutions.map((v) => flatten3(v)));
  35180. };
  35181. for (var _i4 = 0; _i4 < len; _i4++) {
  35182. _loop();
  35183. }
  35184. if (failedLambdas.length !== 0) {
  35185. var err = new Error("Failed to find eigenvectors for the following eigenvalues: " + failedLambdas.join(", "));
  35186. err.values = values2;
  35187. err.vectors = vectors;
  35188. throw err;
  35189. }
  35190. return vectors;
  35191. }
  35192. function eigenvalues2x2(a, b, c, d) {
  35193. var trA = addScalar2(a, d);
  35194. var detA = subtract2(multiplyScalar2(a, d), multiplyScalar2(b, c));
  35195. var x = multiplyScalar2(trA, 0.5);
  35196. var y = multiplyScalar2(sqrt3(subtract2(multiplyScalar2(trA, trA), multiplyScalar2(4, detA))), 0.5);
  35197. return [addScalar2(x, y), subtract2(x, y)];
  35198. }
  35199. function jordanBase2x2(a, b, c, d, l1, l2, prec, type) {
  35200. var big = type === "BigNumber";
  35201. var cplx = type === "Complex";
  35202. var zero = big ? bignumber2(0) : cplx ? complex2(0) : 0;
  35203. var one = big ? bignumber2(1) : cplx ? complex2(1) : 1;
  35204. if (smaller2(abs3(c), prec)) {
  35205. return [[one, zero], [zero, one]];
  35206. }
  35207. if (larger2(abs3(subtract2(l1, l2)), prec)) {
  35208. return [[subtract2(l1, d), subtract2(l2, d)], [c, c]];
  35209. }
  35210. var na = subtract2(a, l1);
  35211. var nb = subtract2(b, l1);
  35212. var nc = subtract2(c, l1);
  35213. var nd = subtract2(d, l1);
  35214. if (smaller2(abs3(nb), prec)) {
  35215. return [[na, one], [nc, zero]];
  35216. } else {
  35217. return [[nb, zero], [nd, one]];
  35218. }
  35219. }
  35220. function inflateMatrix(arr, N) {
  35221. for (var i2 = 0; i2 < arr.length; i2++) {
  35222. arr[i2].push(...Array(N - arr[i2].length).fill(0));
  35223. }
  35224. for (var _i5 = arr.length; _i5 < N; _i5++) {
  35225. arr.push(Array(N).fill(0));
  35226. arr[_i5][_i5] = 1;
  35227. }
  35228. return arr;
  35229. }
  35230. function blockDiag(arr, N) {
  35231. var M = [];
  35232. for (var i2 = 0; i2 < N; i2++) {
  35233. M[i2] = Array(N).fill(0);
  35234. }
  35235. var I = 0;
  35236. for (var sub2 of arr) {
  35237. var n = sub2.length;
  35238. for (var _i6 = 0; _i6 < n; _i6++) {
  35239. for (var j = 0; j < n; j++) {
  35240. M[I + _i6][I + j] = sub2[_i6][j];
  35241. }
  35242. }
  35243. I += n;
  35244. }
  35245. return M;
  35246. }
  35247. function indexOf(arr, el, fn) {
  35248. for (var i2 = 0; i2 < arr.length; i2++) {
  35249. if (fn(arr[i2], el)) {
  35250. return i2;
  35251. }
  35252. }
  35253. return -1;
  35254. }
  35255. function inverseIterate(A, N, orthog, prec, type) {
  35256. var largeNum = type === "BigNumber" ? bignumber2(1e3) : 1e3;
  35257. var b;
  35258. var i2 = 0;
  35259. while (true) {
  35260. b = randomOrthogonalVector(N, orthog, type);
  35261. b = usolve2(A, b);
  35262. if (larger2(norm2(b), largeNum)) {
  35263. break;
  35264. }
  35265. if (++i2 >= 5) {
  35266. return null;
  35267. }
  35268. }
  35269. i2 = 0;
  35270. while (true) {
  35271. var c = usolve2(A, b);
  35272. if (smaller2(norm2(orthogonalComplement(b, [c])), prec)) {
  35273. break;
  35274. }
  35275. if (++i2 >= 10) {
  35276. return null;
  35277. }
  35278. b = normalize(c);
  35279. }
  35280. return b;
  35281. }
  35282. function randomOrthogonalVector(N, orthog, type) {
  35283. var big = type === "BigNumber";
  35284. var cplx = type === "Complex";
  35285. var v = Array(N).fill(0).map((_) => 2 * Math.random() - 1);
  35286. if (big) {
  35287. v = v.map((n) => bignumber2(n));
  35288. }
  35289. if (cplx) {
  35290. v = v.map((n) => complex2(n));
  35291. }
  35292. v = orthogonalComplement(v, orthog);
  35293. return normalize(v, type);
  35294. }
  35295. function orthogonalComplement(v, orthog) {
  35296. for (var w of orthog) {
  35297. v = subtract2(v, multiply2(divideScalar2(dot2(w, v), dot2(w, w)), w));
  35298. }
  35299. return v;
  35300. }
  35301. function norm2(v) {
  35302. return abs3(sqrt3(dot2(v, v)));
  35303. }
  35304. function normalize(v, type) {
  35305. var big = type === "BigNumber";
  35306. var cplx = type === "Complex";
  35307. var one = big ? bignumber2(1) : cplx ? complex2(1) : 1;
  35308. return multiply2(divideScalar2(one, norm2(v)), v);
  35309. }
  35310. return complexEigs;
  35311. }
  35312. // node_modules/mathjs/lib/esm/function/matrix/eigs/realSymetric.js
  35313. function createRealSymmetric(_ref) {
  35314. var {
  35315. config: config4,
  35316. addScalar: addScalar2,
  35317. subtract: subtract2,
  35318. abs: abs3,
  35319. atan: atan4,
  35320. cos: cos3,
  35321. sin: sin3,
  35322. multiplyScalar: multiplyScalar2,
  35323. inv: inv2,
  35324. bignumber: bignumber2,
  35325. multiply: multiply2,
  35326. add: add3
  35327. } = _ref;
  35328. function main(arr, N) {
  35329. var prec = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : config4.epsilon;
  35330. var type = arguments.length > 3 ? arguments[3] : void 0;
  35331. if (type === "number") {
  35332. return diag2(arr, prec);
  35333. }
  35334. if (type === "BigNumber") {
  35335. return diagBig(arr, prec);
  35336. }
  35337. throw TypeError("Unsupported data type: " + type);
  35338. }
  35339. function diag2(x, precision) {
  35340. var N = x.length;
  35341. var e0 = Math.abs(precision / N);
  35342. var psi;
  35343. var Sij = new Array(N);
  35344. for (var i2 = 0; i2 < N; i2++) {
  35345. Sij[i2] = createArray(N, 0);
  35346. Sij[i2][i2] = 1;
  35347. }
  35348. var Vab = getAij(x);
  35349. while (Math.abs(Vab[1]) >= Math.abs(e0)) {
  35350. var _i = Vab[0][0];
  35351. var j = Vab[0][1];
  35352. psi = getTheta(x[_i][_i], x[j][j], x[_i][j]);
  35353. x = x1(x, psi, _i, j);
  35354. Sij = Sij1(Sij, psi, _i, j);
  35355. Vab = getAij(x);
  35356. }
  35357. var Ei = createArray(N, 0);
  35358. for (var _i2 = 0; _i2 < N; _i2++) {
  35359. Ei[_i2] = x[_i2][_i2];
  35360. }
  35361. return sorting(clone(Ei), clone(Sij));
  35362. }
  35363. function diagBig(x, precision) {
  35364. var N = x.length;
  35365. var e0 = abs3(precision / N);
  35366. var psi;
  35367. var Sij = new Array(N);
  35368. for (var i2 = 0; i2 < N; i2++) {
  35369. Sij[i2] = createArray(N, 0);
  35370. Sij[i2][i2] = 1;
  35371. }
  35372. var Vab = getAijBig(x);
  35373. while (abs3(Vab[1]) >= abs3(e0)) {
  35374. var _i3 = Vab[0][0];
  35375. var j = Vab[0][1];
  35376. psi = getThetaBig(x[_i3][_i3], x[j][j], x[_i3][j]);
  35377. x = x1Big(x, psi, _i3, j);
  35378. Sij = Sij1Big(Sij, psi, _i3, j);
  35379. Vab = getAijBig(x);
  35380. }
  35381. var Ei = createArray(N, 0);
  35382. for (var _i4 = 0; _i4 < N; _i4++) {
  35383. Ei[_i4] = x[_i4][_i4];
  35384. }
  35385. return sorting(clone(Ei), clone(Sij));
  35386. }
  35387. function getTheta(aii, ajj, aij) {
  35388. var denom = ajj - aii;
  35389. if (Math.abs(denom) <= config4.epsilon) {
  35390. return Math.PI / 4;
  35391. } else {
  35392. return 0.5 * Math.atan(2 * aij / (ajj - aii));
  35393. }
  35394. }
  35395. function getThetaBig(aii, ajj, aij) {
  35396. var denom = subtract2(ajj, aii);
  35397. if (abs3(denom) <= config4.epsilon) {
  35398. return bignumber2(-1).acos().div(4);
  35399. } else {
  35400. return multiplyScalar2(0.5, atan4(multiply2(2, aij, inv2(denom))));
  35401. }
  35402. }
  35403. function Sij1(Sij, theta, i2, j) {
  35404. var N = Sij.length;
  35405. var c = Math.cos(theta);
  35406. var s = Math.sin(theta);
  35407. var Ski = createArray(N, 0);
  35408. var Skj = createArray(N, 0);
  35409. for (var k = 0; k < N; k++) {
  35410. Ski[k] = c * Sij[k][i2] - s * Sij[k][j];
  35411. Skj[k] = s * Sij[k][i2] + c * Sij[k][j];
  35412. }
  35413. for (var _k = 0; _k < N; _k++) {
  35414. Sij[_k][i2] = Ski[_k];
  35415. Sij[_k][j] = Skj[_k];
  35416. }
  35417. return Sij;
  35418. }
  35419. function Sij1Big(Sij, theta, i2, j) {
  35420. var N = Sij.length;
  35421. var c = cos3(theta);
  35422. var s = sin3(theta);
  35423. var Ski = createArray(N, bignumber2(0));
  35424. var Skj = createArray(N, bignumber2(0));
  35425. for (var k = 0; k < N; k++) {
  35426. Ski[k] = subtract2(multiplyScalar2(c, Sij[k][i2]), multiplyScalar2(s, Sij[k][j]));
  35427. Skj[k] = addScalar2(multiplyScalar2(s, Sij[k][i2]), multiplyScalar2(c, Sij[k][j]));
  35428. }
  35429. for (var _k2 = 0; _k2 < N; _k2++) {
  35430. Sij[_k2][i2] = Ski[_k2];
  35431. Sij[_k2][j] = Skj[_k2];
  35432. }
  35433. return Sij;
  35434. }
  35435. function x1Big(Hij, theta, i2, j) {
  35436. var N = Hij.length;
  35437. var c = bignumber2(cos3(theta));
  35438. var s = bignumber2(sin3(theta));
  35439. var c2 = multiplyScalar2(c, c);
  35440. var s2 = multiplyScalar2(s, s);
  35441. var Aki = createArray(N, bignumber2(0));
  35442. var Akj = createArray(N, bignumber2(0));
  35443. var csHij = multiply2(bignumber2(2), c, s, Hij[i2][j]);
  35444. var Aii = addScalar2(subtract2(multiplyScalar2(c2, Hij[i2][i2]), csHij), multiplyScalar2(s2, Hij[j][j]));
  35445. var Ajj = add3(multiplyScalar2(s2, Hij[i2][i2]), csHij, multiplyScalar2(c2, Hij[j][j]));
  35446. for (var k = 0; k < N; k++) {
  35447. Aki[k] = subtract2(multiplyScalar2(c, Hij[i2][k]), multiplyScalar2(s, Hij[j][k]));
  35448. Akj[k] = addScalar2(multiplyScalar2(s, Hij[i2][k]), multiplyScalar2(c, Hij[j][k]));
  35449. }
  35450. Hij[i2][i2] = Aii;
  35451. Hij[j][j] = Ajj;
  35452. Hij[i2][j] = bignumber2(0);
  35453. Hij[j][i2] = bignumber2(0);
  35454. for (var _k3 = 0; _k3 < N; _k3++) {
  35455. if (_k3 !== i2 && _k3 !== j) {
  35456. Hij[i2][_k3] = Aki[_k3];
  35457. Hij[_k3][i2] = Aki[_k3];
  35458. Hij[j][_k3] = Akj[_k3];
  35459. Hij[_k3][j] = Akj[_k3];
  35460. }
  35461. }
  35462. return Hij;
  35463. }
  35464. function x1(Hij, theta, i2, j) {
  35465. var N = Hij.length;
  35466. var c = Math.cos(theta);
  35467. var s = Math.sin(theta);
  35468. var c2 = c * c;
  35469. var s2 = s * s;
  35470. var Aki = createArray(N, 0);
  35471. var Akj = createArray(N, 0);
  35472. var Aii = c2 * Hij[i2][i2] - 2 * c * s * Hij[i2][j] + s2 * Hij[j][j];
  35473. var Ajj = s2 * Hij[i2][i2] + 2 * c * s * Hij[i2][j] + c2 * Hij[j][j];
  35474. for (var k = 0; k < N; k++) {
  35475. Aki[k] = c * Hij[i2][k] - s * Hij[j][k];
  35476. Akj[k] = s * Hij[i2][k] + c * Hij[j][k];
  35477. }
  35478. Hij[i2][i2] = Aii;
  35479. Hij[j][j] = Ajj;
  35480. Hij[i2][j] = 0;
  35481. Hij[j][i2] = 0;
  35482. for (var _k4 = 0; _k4 < N; _k4++) {
  35483. if (_k4 !== i2 && _k4 !== j) {
  35484. Hij[i2][_k4] = Aki[_k4];
  35485. Hij[_k4][i2] = Aki[_k4];
  35486. Hij[j][_k4] = Akj[_k4];
  35487. Hij[_k4][j] = Akj[_k4];
  35488. }
  35489. }
  35490. return Hij;
  35491. }
  35492. function getAij(Mij) {
  35493. var N = Mij.length;
  35494. var maxMij = 0;
  35495. var maxIJ = [0, 1];
  35496. for (var i2 = 0; i2 < N; i2++) {
  35497. for (var j = i2 + 1; j < N; j++) {
  35498. if (Math.abs(maxMij) < Math.abs(Mij[i2][j])) {
  35499. maxMij = Math.abs(Mij[i2][j]);
  35500. maxIJ = [i2, j];
  35501. }
  35502. }
  35503. }
  35504. return [maxIJ, maxMij];
  35505. }
  35506. function getAijBig(Mij) {
  35507. var N = Mij.length;
  35508. var maxMij = 0;
  35509. var maxIJ = [0, 1];
  35510. for (var i2 = 0; i2 < N; i2++) {
  35511. for (var j = i2 + 1; j < N; j++) {
  35512. if (abs3(maxMij) < abs3(Mij[i2][j])) {
  35513. maxMij = abs3(Mij[i2][j]);
  35514. maxIJ = [i2, j];
  35515. }
  35516. }
  35517. }
  35518. return [maxIJ, maxMij];
  35519. }
  35520. function sorting(E, S) {
  35521. var N = E.length;
  35522. var values2 = Array(N);
  35523. var vectors = Array(N);
  35524. for (var k = 0; k < N; k++) {
  35525. vectors[k] = Array(N);
  35526. }
  35527. for (var i2 = 0; i2 < N; i2++) {
  35528. var minID = 0;
  35529. var minE = E[0];
  35530. for (var j = 0; j < E.length; j++) {
  35531. if (abs3(E[j]) < abs3(minE)) {
  35532. minID = j;
  35533. minE = E[minID];
  35534. }
  35535. }
  35536. values2[i2] = E.splice(minID, 1)[0];
  35537. for (var _k5 = 0; _k5 < N; _k5++) {
  35538. vectors[_k5][i2] = S[_k5][minID];
  35539. S[_k5].splice(minID, 1);
  35540. }
  35541. }
  35542. return {
  35543. values: values2,
  35544. vectors
  35545. };
  35546. }
  35547. function createArray(size2, value) {
  35548. var array = new Array(size2);
  35549. for (var i2 = 0; i2 < size2; i2++) {
  35550. array[i2] = value;
  35551. }
  35552. return array;
  35553. }
  35554. return main;
  35555. }
  35556. // node_modules/mathjs/lib/esm/function/matrix/eigs.js
  35557. var name241 = "eigs";
  35558. var dependencies241 = ["config", "typed", "matrix", "addScalar", "equal", "subtract", "abs", "atan", "cos", "sin", "multiplyScalar", "divideScalar", "inv", "bignumber", "multiply", "add", "larger", "column", "flatten", "number", "complex", "sqrt", "diag", "qr", "usolve", "usolveAll", "im", "re", "smaller", "matrixFromColumns", "dot"];
  35559. var createEigs = factory(name241, dependencies241, (_ref) => {
  35560. var {
  35561. config: config4,
  35562. typed: typed2,
  35563. matrix: matrix2,
  35564. addScalar: addScalar2,
  35565. subtract: subtract2,
  35566. equal: equal2,
  35567. abs: abs3,
  35568. atan: atan4,
  35569. cos: cos3,
  35570. sin: sin3,
  35571. multiplyScalar: multiplyScalar2,
  35572. divideScalar: divideScalar2,
  35573. inv: inv2,
  35574. bignumber: bignumber2,
  35575. multiply: multiply2,
  35576. add: add3,
  35577. larger: larger2,
  35578. column: column2,
  35579. flatten: flatten3,
  35580. number: number2,
  35581. complex: complex2,
  35582. sqrt: sqrt3,
  35583. diag: diag2,
  35584. qr: qr2,
  35585. usolve: usolve2,
  35586. usolveAll: usolveAll2,
  35587. im: im2,
  35588. re: re2,
  35589. smaller: smaller2,
  35590. matrixFromColumns: matrixFromColumns2,
  35591. dot: dot2
  35592. } = _ref;
  35593. var doRealSymetric = createRealSymmetric({
  35594. config: config4,
  35595. addScalar: addScalar2,
  35596. subtract: subtract2,
  35597. column: column2,
  35598. flatten: flatten3,
  35599. equal: equal2,
  35600. abs: abs3,
  35601. atan: atan4,
  35602. cos: cos3,
  35603. sin: sin3,
  35604. multiplyScalar: multiplyScalar2,
  35605. inv: inv2,
  35606. bignumber: bignumber2,
  35607. complex: complex2,
  35608. multiply: multiply2,
  35609. add: add3
  35610. });
  35611. var doComplexEigs = createComplexEigs({
  35612. config: config4,
  35613. addScalar: addScalar2,
  35614. subtract: subtract2,
  35615. multiply: multiply2,
  35616. multiplyScalar: multiplyScalar2,
  35617. flatten: flatten3,
  35618. divideScalar: divideScalar2,
  35619. sqrt: sqrt3,
  35620. abs: abs3,
  35621. bignumber: bignumber2,
  35622. diag: diag2,
  35623. qr: qr2,
  35624. inv: inv2,
  35625. usolve: usolve2,
  35626. usolveAll: usolveAll2,
  35627. equal: equal2,
  35628. complex: complex2,
  35629. larger: larger2,
  35630. smaller: smaller2,
  35631. matrixFromColumns: matrixFromColumns2,
  35632. dot: dot2
  35633. });
  35634. return typed2("eigs", {
  35635. Array: function Array2(x) {
  35636. var mat = matrix2(x);
  35637. return computeValuesAndVectors(mat);
  35638. },
  35639. "Array, number|BigNumber": function ArrayNumberBigNumber(x, prec) {
  35640. var mat = matrix2(x);
  35641. return computeValuesAndVectors(mat, prec);
  35642. },
  35643. Matrix: function Matrix2(mat) {
  35644. var {
  35645. values: values2,
  35646. vectors
  35647. } = computeValuesAndVectors(mat);
  35648. return {
  35649. values: matrix2(values2),
  35650. vectors: matrix2(vectors)
  35651. };
  35652. },
  35653. "Matrix, number|BigNumber": function MatrixNumberBigNumber(mat, prec) {
  35654. var {
  35655. values: values2,
  35656. vectors
  35657. } = computeValuesAndVectors(mat, prec);
  35658. return {
  35659. values: matrix2(values2),
  35660. vectors: matrix2(vectors)
  35661. };
  35662. }
  35663. });
  35664. function computeValuesAndVectors(mat, prec) {
  35665. if (prec === void 0) {
  35666. prec = config4.epsilon;
  35667. }
  35668. var size2 = mat.size();
  35669. if (size2.length !== 2 || size2[0] !== size2[1]) {
  35670. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  35671. }
  35672. var arr = mat.toArray();
  35673. var N = size2[0];
  35674. if (isReal(arr, N, prec)) {
  35675. coerceReal(arr, N);
  35676. if (isSymmetric(arr, N, prec)) {
  35677. var _type = coerceTypes(mat, arr, N);
  35678. return doRealSymetric(arr, N, prec, _type);
  35679. }
  35680. }
  35681. var type = coerceTypes(mat, arr, N);
  35682. return doComplexEigs(arr, N, prec, type);
  35683. }
  35684. function isSymmetric(arr, N, prec) {
  35685. for (var i2 = 0; i2 < N; i2++) {
  35686. for (var j = i2; j < N; j++) {
  35687. if (larger2(bignumber2(abs3(subtract2(arr[i2][j], arr[j][i2]))), prec)) {
  35688. return false;
  35689. }
  35690. }
  35691. }
  35692. return true;
  35693. }
  35694. function isReal(arr, N, prec) {
  35695. for (var i2 = 0; i2 < N; i2++) {
  35696. for (var j = 0; j < N; j++) {
  35697. if (larger2(bignumber2(abs3(im2(arr[i2][j]))), prec)) {
  35698. return false;
  35699. }
  35700. }
  35701. }
  35702. return true;
  35703. }
  35704. function coerceReal(arr, N) {
  35705. for (var i2 = 0; i2 < N; i2++) {
  35706. for (var j = 0; j < N; j++) {
  35707. arr[i2][j] = re2(arr[i2][j]);
  35708. }
  35709. }
  35710. }
  35711. function coerceTypes(mat, arr, N) {
  35712. var type = mat.datatype();
  35713. if (type === "number" || type === "BigNumber" || type === "Complex") {
  35714. return type;
  35715. }
  35716. var hasNumber = false;
  35717. var hasBig = false;
  35718. var hasComplex = false;
  35719. for (var i2 = 0; i2 < N; i2++) {
  35720. for (var j = 0; j < N; j++) {
  35721. var el = arr[i2][j];
  35722. if (isNumber(el) || isFraction(el)) {
  35723. hasNumber = true;
  35724. } else if (isBigNumber(el)) {
  35725. hasBig = true;
  35726. } else if (isComplex(el)) {
  35727. hasComplex = true;
  35728. } else {
  35729. throw TypeError("Unsupported type in Matrix: " + typeOf(el));
  35730. }
  35731. }
  35732. }
  35733. if (hasBig && hasComplex) {
  35734. console.warn("Complex BigNumbers not supported, this operation will lose precission.");
  35735. }
  35736. if (hasComplex) {
  35737. for (var _i = 0; _i < N; _i++) {
  35738. for (var _j = 0; _j < N; _j++) {
  35739. arr[_i][_j] = complex2(arr[_i][_j]);
  35740. }
  35741. }
  35742. return "Complex";
  35743. }
  35744. if (hasBig) {
  35745. for (var _i2 = 0; _i2 < N; _i2++) {
  35746. for (var _j2 = 0; _j2 < N; _j2++) {
  35747. arr[_i2][_j2] = bignumber2(arr[_i2][_j2]);
  35748. }
  35749. }
  35750. return "BigNumber";
  35751. }
  35752. if (hasNumber) {
  35753. for (var _i3 = 0; _i3 < N; _i3++) {
  35754. for (var _j3 = 0; _j3 < N; _j3++) {
  35755. arr[_i3][_j3] = number2(arr[_i3][_j3]);
  35756. }
  35757. }
  35758. return "number";
  35759. } else {
  35760. throw TypeError("Matrix contains unsupported types only.");
  35761. }
  35762. }
  35763. });
  35764. // node_modules/mathjs/lib/esm/function/matrix/expm.js
  35765. var name242 = "expm";
  35766. var dependencies242 = ["typed", "abs", "add", "identity", "inv", "multiply"];
  35767. var createExpm = factory(name242, dependencies242, (_ref) => {
  35768. var {
  35769. typed: typed2,
  35770. abs: abs3,
  35771. add: add3,
  35772. identity: identity2,
  35773. inv: inv2,
  35774. multiply: multiply2
  35775. } = _ref;
  35776. return typed2(name242, {
  35777. Matrix: function Matrix2(A) {
  35778. var size2 = A.size();
  35779. if (size2.length !== 2 || size2[0] !== size2[1]) {
  35780. throw new RangeError("Matrix must be square (size: " + format3(size2) + ")");
  35781. }
  35782. var n = size2[0];
  35783. var eps = 1e-15;
  35784. var infNorm = infinityNorm(A);
  35785. var params = findParams(infNorm, eps);
  35786. var q = params.q;
  35787. var j = params.j;
  35788. var Apos = multiply2(A, Math.pow(2, -j));
  35789. var N = identity2(n);
  35790. var D = identity2(n);
  35791. var factor = 1;
  35792. var AposToI = Apos;
  35793. var alternate = -1;
  35794. for (var i2 = 1; i2 <= q; i2++) {
  35795. if (i2 > 1) {
  35796. AposToI = multiply2(AposToI, Apos);
  35797. alternate = -alternate;
  35798. }
  35799. factor = factor * (q - i2 + 1) / ((2 * q - i2 + 1) * i2);
  35800. N = add3(N, multiply2(factor, AposToI));
  35801. D = add3(D, multiply2(factor * alternate, AposToI));
  35802. }
  35803. var R = multiply2(inv2(D), N);
  35804. for (var _i = 0; _i < j; _i++) {
  35805. R = multiply2(R, R);
  35806. }
  35807. return isSparseMatrix(A) ? A.createSparseMatrix(R) : R;
  35808. }
  35809. });
  35810. function infinityNorm(A) {
  35811. var n = A.size()[0];
  35812. var infNorm = 0;
  35813. for (var i2 = 0; i2 < n; i2++) {
  35814. var rowSum = 0;
  35815. for (var j = 0; j < n; j++) {
  35816. rowSum += abs3(A.get([i2, j]));
  35817. }
  35818. infNorm = Math.max(rowSum, infNorm);
  35819. }
  35820. return infNorm;
  35821. }
  35822. function findParams(infNorm, eps) {
  35823. var maxSearchSize = 30;
  35824. for (var k = 0; k < maxSearchSize; k++) {
  35825. for (var q = 0; q <= k; q++) {
  35826. var j = k - q;
  35827. if (errorEstimate(infNorm, q, j) < eps) {
  35828. return {
  35829. q,
  35830. j
  35831. };
  35832. }
  35833. }
  35834. }
  35835. throw new Error("Could not find acceptable parameters to compute the matrix exponential (try increasing maxSearchSize in expm.js)");
  35836. }
  35837. function errorEstimate(infNorm, q, j) {
  35838. var qfac = 1;
  35839. for (var i2 = 2; i2 <= q; i2++) {
  35840. qfac *= i2;
  35841. }
  35842. var twoqfac = qfac;
  35843. for (var _i2 = q + 1; _i2 <= 2 * q; _i2++) {
  35844. twoqfac *= _i2;
  35845. }
  35846. var twoqp1fac = twoqfac * (2 * q + 1);
  35847. return 8 * Math.pow(infNorm / Math.pow(2, j), 2 * q) * qfac * qfac / (twoqfac * twoqp1fac);
  35848. }
  35849. });
  35850. // node_modules/mathjs/lib/esm/function/matrix/sqrtm.js
  35851. var name243 = "sqrtm";
  35852. var dependencies243 = ["typed", "abs", "add", "multiply", "map", "sqrt", "subtract", "inv", "size", "max", "identity"];
  35853. var createSqrtm = factory(name243, dependencies243, (_ref) => {
  35854. var {
  35855. typed: typed2,
  35856. abs: abs3,
  35857. add: add3,
  35858. multiply: multiply2,
  35859. map: map3,
  35860. sqrt: sqrt3,
  35861. subtract: subtract2,
  35862. inv: inv2,
  35863. size: size2,
  35864. max: max3,
  35865. identity: identity2
  35866. } = _ref;
  35867. var _maxIterations = 1e3;
  35868. var _tolerance = 1e-6;
  35869. function _denmanBeavers(A) {
  35870. var error;
  35871. var iterations = 0;
  35872. var Y = A;
  35873. var Z = identity2(size2(A));
  35874. do {
  35875. var Yk = Y;
  35876. Y = multiply2(0.5, add3(Yk, inv2(Z)));
  35877. Z = multiply2(0.5, add3(Z, inv2(Yk)));
  35878. error = max3(abs3(subtract2(Y, Yk)));
  35879. if (error > _tolerance && ++iterations > _maxIterations) {
  35880. throw new Error("computing square root of matrix: iterative method could not converge");
  35881. }
  35882. } while (error > _tolerance);
  35883. return Y;
  35884. }
  35885. return typed2(name243, {
  35886. "Array | Matrix": function ArrayMatrix(A) {
  35887. var size3 = isMatrix(A) ? A.size() : arraySize(A);
  35888. switch (size3.length) {
  35889. case 1:
  35890. if (size3[0] === 1) {
  35891. return map3(A, sqrt3);
  35892. } else {
  35893. throw new RangeError("Matrix must be square (size: " + format3(size3) + ")");
  35894. }
  35895. case 2: {
  35896. var rows = size3[0];
  35897. var cols = size3[1];
  35898. if (rows === cols) {
  35899. return _denmanBeavers(A);
  35900. } else {
  35901. throw new RangeError("Matrix must be square (size: " + format3(size3) + ")");
  35902. }
  35903. }
  35904. default:
  35905. throw new RangeError("Matrix must be at most two dimensional (size: " + format3(size3) + ")");
  35906. }
  35907. }
  35908. });
  35909. });
  35910. // node_modules/mathjs/lib/esm/function/algebra/sylvester.js
  35911. var name244 = "sylvester";
  35912. var dependencies244 = ["typed", "schur", "matrixFromColumns", "matrix", "multiply", "range", "concat", "transpose", "index", "subset", "add", "subtract", "identity", "lusolve", "abs"];
  35913. var createSylvester = factory(name244, dependencies244, (_ref) => {
  35914. var {
  35915. typed: typed2,
  35916. schur: schur2,
  35917. matrixFromColumns: matrixFromColumns2,
  35918. matrix: matrix2,
  35919. multiply: multiply2,
  35920. range: range2,
  35921. concat: concat2,
  35922. transpose: transpose2,
  35923. index: index2,
  35924. subset: subset2,
  35925. add: add3,
  35926. subtract: subtract2,
  35927. identity: identity2,
  35928. lusolve: lusolve2,
  35929. abs: abs3
  35930. } = _ref;
  35931. return typed2(name244, {
  35932. "Matrix, Matrix, Matrix": _sylvester,
  35933. "Array, Matrix, Matrix": function ArrayMatrixMatrix(A, B, C) {
  35934. return _sylvester(matrix2(A), B, C);
  35935. },
  35936. "Array, Array, Matrix": function ArrayArrayMatrix(A, B, C) {
  35937. return _sylvester(matrix2(A), matrix2(B), C);
  35938. },
  35939. "Array, Matrix, Array": function ArrayMatrixArray(A, B, C) {
  35940. return _sylvester(matrix2(A), B, matrix2(C));
  35941. },
  35942. "Matrix, Array, Matrix": function MatrixArrayMatrix(A, B, C) {
  35943. return _sylvester(A, matrix2(B), C);
  35944. },
  35945. "Matrix, Array, Array": function MatrixArrayArray(A, B, C) {
  35946. return _sylvester(A, matrix2(B), matrix2(C));
  35947. },
  35948. "Matrix, Matrix, Array": function MatrixMatrixArray(A, B, C) {
  35949. return _sylvester(A, B, matrix2(C));
  35950. },
  35951. "Array, Array, Array": function ArrayArrayArray(A, B, C) {
  35952. return _sylvester(matrix2(A), matrix2(B), matrix2(C)).toArray();
  35953. }
  35954. });
  35955. function _sylvester(A, B, C) {
  35956. var n = B.size()[0];
  35957. var m = A.size()[0];
  35958. var sA = schur2(A);
  35959. var F = sA.T;
  35960. var U = sA.U;
  35961. var sB = schur2(multiply2(-1, B));
  35962. var G = sB.T;
  35963. var V = sB.U;
  35964. var D = multiply2(multiply2(transpose2(U), C), V);
  35965. var all2 = range2(0, m);
  35966. var y = [];
  35967. var hc = (a, b) => concat2(a, b, 1);
  35968. var vc = (a, b) => concat2(a, b, 0);
  35969. for (var k = 0; k < n; k++) {
  35970. if (k < n - 1 && abs3(subset2(G, index2(k + 1, k))) > 1e-5) {
  35971. var RHS = vc(subset2(D, index2(all2, k)), subset2(D, index2(all2, k + 1)));
  35972. for (var j = 0; j < k; j++) {
  35973. RHS = add3(RHS, vc(multiply2(y[j], subset2(G, index2(j, k))), multiply2(y[j], subset2(G, index2(j, k + 1)))));
  35974. }
  35975. var gkk = multiply2(identity2(m), multiply2(-1, subset2(G, index2(k, k))));
  35976. var gmk = multiply2(identity2(m), multiply2(-1, subset2(G, index2(k + 1, k))));
  35977. var gkm = multiply2(identity2(m), multiply2(-1, subset2(G, index2(k, k + 1))));
  35978. var gmm = multiply2(identity2(m), multiply2(-1, subset2(G, index2(k + 1, k + 1))));
  35979. var LHS = vc(hc(add3(F, gkk), gmk), hc(gkm, add3(F, gmm)));
  35980. var yAux = lusolve2(LHS, RHS);
  35981. y[k] = yAux.subset(index2(range2(0, m), 0));
  35982. y[k + 1] = yAux.subset(index2(range2(m, 2 * m), 0));
  35983. k++;
  35984. } else {
  35985. var _RHS = subset2(D, index2(all2, k));
  35986. for (var _j = 0; _j < k; _j++) {
  35987. _RHS = add3(_RHS, multiply2(y[_j], subset2(G, index2(_j, k))));
  35988. }
  35989. var _gkk = subset2(G, index2(k, k));
  35990. var _LHS = subtract2(F, multiply2(_gkk, identity2(m)));
  35991. y[k] = lusolve2(_LHS, _RHS);
  35992. }
  35993. }
  35994. var Y = matrix2(matrixFromColumns2(...y));
  35995. var X = multiply2(U, multiply2(Y, transpose2(V)));
  35996. return X;
  35997. }
  35998. });
  35999. // node_modules/mathjs/lib/esm/function/algebra/decomposition/schur.js
  36000. var name245 = "schur";
  36001. var dependencies245 = ["typed", "matrix", "identity", "multiply", "qr", "norm", "subtract"];
  36002. var createSchur = factory(name245, dependencies245, (_ref) => {
  36003. var {
  36004. typed: typed2,
  36005. matrix: matrix2,
  36006. identity: identity2,
  36007. multiply: multiply2,
  36008. qr: qr2,
  36009. norm: norm2,
  36010. subtract: subtract2
  36011. } = _ref;
  36012. return typed2(name245, {
  36013. Array: function Array2(X) {
  36014. var r = _schur(matrix2(X));
  36015. return {
  36016. U: r.U.valueOf(),
  36017. T: r.T.valueOf()
  36018. };
  36019. },
  36020. Matrix: function Matrix2(X) {
  36021. return _schur(X);
  36022. }
  36023. });
  36024. function _schur(X) {
  36025. var n = X.size()[0];
  36026. var A = X;
  36027. var U = identity2(n);
  36028. var k = 0;
  36029. var A0;
  36030. do {
  36031. A0 = A;
  36032. var QR = qr2(A);
  36033. var Q2 = QR.Q;
  36034. var R = QR.R;
  36035. A = multiply2(R, Q2);
  36036. U = multiply2(U, Q2);
  36037. if (k++ > 100) {
  36038. break;
  36039. }
  36040. } while (norm2(subtract2(A, A0)) > 1e-4);
  36041. return {
  36042. U,
  36043. T: A
  36044. };
  36045. }
  36046. });
  36047. // node_modules/mathjs/lib/esm/function/algebra/lyap.js
  36048. var name246 = "lyap";
  36049. var dependencies246 = ["typed", "matrix", "sylvester", "multiply", "transpose"];
  36050. var createLyap = factory(name246, dependencies246, (_ref) => {
  36051. var {
  36052. typed: typed2,
  36053. matrix: matrix2,
  36054. sylvester: sylvester2,
  36055. multiply: multiply2,
  36056. transpose: transpose2
  36057. } = _ref;
  36058. return typed2(name246, {
  36059. "Matrix, Matrix": function MatrixMatrix(A, Q2) {
  36060. return sylvester2(A, transpose2(A), multiply2(-1, Q2));
  36061. },
  36062. "Array, Matrix": function ArrayMatrix(A, Q2) {
  36063. return sylvester2(matrix2(A), transpose2(matrix2(A)), multiply2(-1, Q2));
  36064. },
  36065. "Matrix, Array": function MatrixArray(A, Q2) {
  36066. return sylvester2(A, transpose2(matrix2(A)), matrix2(multiply2(-1, Q2)));
  36067. },
  36068. "Array, Array": function ArrayArray(A, Q2) {
  36069. return sylvester2(matrix2(A), transpose2(matrix2(A)), matrix2(multiply2(-1, Q2))).toArray();
  36070. }
  36071. });
  36072. });
  36073. // node_modules/mathjs/lib/esm/function/arithmetic/divide.js
  36074. var name247 = "divide";
  36075. var dependencies247 = ["typed", "matrix", "multiply", "equalScalar", "divideScalar", "inv"];
  36076. var createDivide = factory(name247, dependencies247, (_ref) => {
  36077. var {
  36078. typed: typed2,
  36079. matrix: matrix2,
  36080. multiply: multiply2,
  36081. equalScalar: equalScalar2,
  36082. divideScalar: divideScalar2,
  36083. inv: inv2
  36084. } = _ref;
  36085. var matAlgo11xS0s = createMatAlgo11xS0s({
  36086. typed: typed2,
  36087. equalScalar: equalScalar2
  36088. });
  36089. var matAlgo14xDs = createMatAlgo14xDs({
  36090. typed: typed2
  36091. });
  36092. return typed2("divide", extend({
  36093. // we extend the signatures of divideScalar with signatures dealing with matrices
  36094. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(x, y) {
  36095. return multiply2(x, inv2(y));
  36096. },
  36097. "DenseMatrix, any": function DenseMatrixAny(x, y) {
  36098. return matAlgo14xDs(x, y, divideScalar2, false);
  36099. },
  36100. "SparseMatrix, any": function SparseMatrixAny(x, y) {
  36101. return matAlgo11xS0s(x, y, divideScalar2, false);
  36102. },
  36103. "Array, any": function ArrayAny(x, y) {
  36104. return matAlgo14xDs(matrix2(x), y, divideScalar2, false).valueOf();
  36105. },
  36106. "any, Array | Matrix": function anyArrayMatrix(x, y) {
  36107. return multiply2(x, inv2(y));
  36108. }
  36109. }, divideScalar2.signatures));
  36110. });
  36111. // node_modules/mathjs/lib/esm/function/geometry/distance.js
  36112. var name248 = "distance";
  36113. var dependencies248 = ["typed", "addScalar", "subtract", "divideScalar", "multiplyScalar", "unaryMinus", "sqrt", "abs"];
  36114. var createDistance = factory(name248, dependencies248, (_ref) => {
  36115. var {
  36116. typed: typed2,
  36117. addScalar: addScalar2,
  36118. subtract: subtract2,
  36119. multiplyScalar: multiplyScalar2,
  36120. divideScalar: divideScalar2,
  36121. unaryMinus: unaryMinus2,
  36122. sqrt: sqrt3,
  36123. abs: abs3
  36124. } = _ref;
  36125. return typed2(name248, {
  36126. "Array, Array, Array": function ArrayArrayArray(x, y, z) {
  36127. if (x.length === 2 && y.length === 2 && z.length === 2) {
  36128. if (!_2d(x)) {
  36129. throw new TypeError("Array with 2 numbers or BigNumbers expected for first argument");
  36130. }
  36131. if (!_2d(y)) {
  36132. throw new TypeError("Array with 2 numbers or BigNumbers expected for second argument");
  36133. }
  36134. if (!_2d(z)) {
  36135. throw new TypeError("Array with 2 numbers or BigNumbers expected for third argument");
  36136. }
  36137. var m = divideScalar2(subtract2(z[1], z[0]), subtract2(y[1], y[0]));
  36138. var xCoeff = multiplyScalar2(multiplyScalar2(m, m), y[0]);
  36139. var yCoeff = unaryMinus2(multiplyScalar2(m, y[0]));
  36140. var constant = x[1];
  36141. return _distancePointLine2D(x[0], x[1], xCoeff, yCoeff, constant);
  36142. } else {
  36143. throw new TypeError("Invalid Arguments: Try again");
  36144. }
  36145. },
  36146. "Object, Object, Object": function ObjectObjectObject(x, y, z) {
  36147. if (Object.keys(x).length === 2 && Object.keys(y).length === 2 && Object.keys(z).length === 2) {
  36148. if (!_2d(x)) {
  36149. throw new TypeError("Values of pointX and pointY should be numbers or BigNumbers");
  36150. }
  36151. if (!_2d(y)) {
  36152. throw new TypeError("Values of lineOnePtX and lineOnePtY should be numbers or BigNumbers");
  36153. }
  36154. if (!_2d(z)) {
  36155. throw new TypeError("Values of lineTwoPtX and lineTwoPtY should be numbers or BigNumbers");
  36156. }
  36157. if ("pointX" in x && "pointY" in x && "lineOnePtX" in y && "lineOnePtY" in y && "lineTwoPtX" in z && "lineTwoPtY" in z) {
  36158. var m = divideScalar2(subtract2(z.lineTwoPtY, z.lineTwoPtX), subtract2(y.lineOnePtY, y.lineOnePtX));
  36159. var xCoeff = multiplyScalar2(multiplyScalar2(m, m), y.lineOnePtX);
  36160. var yCoeff = unaryMinus2(multiplyScalar2(m, y.lineOnePtX));
  36161. var constant = x.pointX;
  36162. return _distancePointLine2D(x.pointX, x.pointY, xCoeff, yCoeff, constant);
  36163. } else {
  36164. throw new TypeError("Key names do not match");
  36165. }
  36166. } else {
  36167. throw new TypeError("Invalid Arguments: Try again");
  36168. }
  36169. },
  36170. "Array, Array": function ArrayArray(x, y) {
  36171. if (x.length === 2 && y.length === 3) {
  36172. if (!_2d(x)) {
  36173. throw new TypeError("Array with 2 numbers or BigNumbers expected for first argument");
  36174. }
  36175. if (!_3d(y)) {
  36176. throw new TypeError("Array with 3 numbers or BigNumbers expected for second argument");
  36177. }
  36178. return _distancePointLine2D(x[0], x[1], y[0], y[1], y[2]);
  36179. } else if (x.length === 3 && y.length === 6) {
  36180. if (!_3d(x)) {
  36181. throw new TypeError("Array with 3 numbers or BigNumbers expected for first argument");
  36182. }
  36183. if (!_parametricLine(y)) {
  36184. throw new TypeError("Array with 6 numbers or BigNumbers expected for second argument");
  36185. }
  36186. return _distancePointLine3D(x[0], x[1], x[2], y[0], y[1], y[2], y[3], y[4], y[5]);
  36187. } else if (x.length === y.length && x.length > 0) {
  36188. if (!_containsOnlyNumbers(x)) {
  36189. throw new TypeError("All values of an array should be numbers or BigNumbers");
  36190. }
  36191. if (!_containsOnlyNumbers(y)) {
  36192. throw new TypeError("All values of an array should be numbers or BigNumbers");
  36193. }
  36194. return _euclideanDistance(x, y);
  36195. } else {
  36196. throw new TypeError("Invalid Arguments: Try again");
  36197. }
  36198. },
  36199. "Object, Object": function ObjectObject(x, y) {
  36200. if (Object.keys(x).length === 2 && Object.keys(y).length === 3) {
  36201. if (!_2d(x)) {
  36202. throw new TypeError("Values of pointX and pointY should be numbers or BigNumbers");
  36203. }
  36204. if (!_3d(y)) {
  36205. throw new TypeError("Values of xCoeffLine, yCoeffLine and constant should be numbers or BigNumbers");
  36206. }
  36207. if ("pointX" in x && "pointY" in x && "xCoeffLine" in y && "yCoeffLine" in y && "constant" in y) {
  36208. return _distancePointLine2D(x.pointX, x.pointY, y.xCoeffLine, y.yCoeffLine, y.constant);
  36209. } else {
  36210. throw new TypeError("Key names do not match");
  36211. }
  36212. } else if (Object.keys(x).length === 3 && Object.keys(y).length === 6) {
  36213. if (!_3d(x)) {
  36214. throw new TypeError("Values of pointX, pointY and pointZ should be numbers or BigNumbers");
  36215. }
  36216. if (!_parametricLine(y)) {
  36217. throw new TypeError("Values of x0, y0, z0, a, b and c should be numbers or BigNumbers");
  36218. }
  36219. if ("pointX" in x && "pointY" in x && "x0" in y && "y0" in y && "z0" in y && "a" in y && "b" in y && "c" in y) {
  36220. return _distancePointLine3D(x.pointX, x.pointY, x.pointZ, y.x0, y.y0, y.z0, y.a, y.b, y.c);
  36221. } else {
  36222. throw new TypeError("Key names do not match");
  36223. }
  36224. } else if (Object.keys(x).length === 2 && Object.keys(y).length === 2) {
  36225. if (!_2d(x)) {
  36226. throw new TypeError("Values of pointOneX and pointOneY should be numbers or BigNumbers");
  36227. }
  36228. if (!_2d(y)) {
  36229. throw new TypeError("Values of pointTwoX and pointTwoY should be numbers or BigNumbers");
  36230. }
  36231. if ("pointOneX" in x && "pointOneY" in x && "pointTwoX" in y && "pointTwoY" in y) {
  36232. return _euclideanDistance([x.pointOneX, x.pointOneY], [y.pointTwoX, y.pointTwoY]);
  36233. } else {
  36234. throw new TypeError("Key names do not match");
  36235. }
  36236. } else if (Object.keys(x).length === 3 && Object.keys(y).length === 3) {
  36237. if (!_3d(x)) {
  36238. throw new TypeError("Values of pointOneX, pointOneY and pointOneZ should be numbers or BigNumbers");
  36239. }
  36240. if (!_3d(y)) {
  36241. throw new TypeError("Values of pointTwoX, pointTwoY and pointTwoZ should be numbers or BigNumbers");
  36242. }
  36243. if ("pointOneX" in x && "pointOneY" in x && "pointOneZ" in x && "pointTwoX" in y && "pointTwoY" in y && "pointTwoZ" in y) {
  36244. return _euclideanDistance([x.pointOneX, x.pointOneY, x.pointOneZ], [y.pointTwoX, y.pointTwoY, y.pointTwoZ]);
  36245. } else {
  36246. throw new TypeError("Key names do not match");
  36247. }
  36248. } else {
  36249. throw new TypeError("Invalid Arguments: Try again");
  36250. }
  36251. },
  36252. Array: function Array2(arr) {
  36253. if (!_pairwise(arr)) {
  36254. throw new TypeError("Incorrect array format entered for pairwise distance calculation");
  36255. }
  36256. return _distancePairwise(arr);
  36257. }
  36258. });
  36259. function _isNumber(a) {
  36260. return typeof a === "number" || isBigNumber(a);
  36261. }
  36262. function _2d(a) {
  36263. if (a.constructor !== Array) {
  36264. a = _objectToArray(a);
  36265. }
  36266. return _isNumber(a[0]) && _isNumber(a[1]);
  36267. }
  36268. function _3d(a) {
  36269. if (a.constructor !== Array) {
  36270. a = _objectToArray(a);
  36271. }
  36272. return _isNumber(a[0]) && _isNumber(a[1]) && _isNumber(a[2]);
  36273. }
  36274. function _containsOnlyNumbers(a) {
  36275. if (!Array.isArray(a)) {
  36276. a = _objectToArray(a);
  36277. }
  36278. return a.every(_isNumber);
  36279. }
  36280. function _parametricLine(a) {
  36281. if (a.constructor !== Array) {
  36282. a = _objectToArray(a);
  36283. }
  36284. return _isNumber(a[0]) && _isNumber(a[1]) && _isNumber(a[2]) && _isNumber(a[3]) && _isNumber(a[4]) && _isNumber(a[5]);
  36285. }
  36286. function _objectToArray(o) {
  36287. var keys = Object.keys(o);
  36288. var a = [];
  36289. for (var i2 = 0; i2 < keys.length; i2++) {
  36290. a.push(o[keys[i2]]);
  36291. }
  36292. return a;
  36293. }
  36294. function _pairwise(a) {
  36295. if (a[0].length === 2 && _isNumber(a[0][0]) && _isNumber(a[0][1])) {
  36296. if (a.some((aI) => aI.length !== 2 || !_isNumber(aI[0]) || !_isNumber(aI[1]))) {
  36297. return false;
  36298. }
  36299. } else if (a[0].length === 3 && _isNumber(a[0][0]) && _isNumber(a[0][1]) && _isNumber(a[0][2])) {
  36300. if (a.some((aI) => aI.length !== 3 || !_isNumber(aI[0]) || !_isNumber(aI[1]) || !_isNumber(aI[2]))) {
  36301. return false;
  36302. }
  36303. } else {
  36304. return false;
  36305. }
  36306. return true;
  36307. }
  36308. function _distancePointLine2D(x, y, a, b, c) {
  36309. var num = abs3(addScalar2(addScalar2(multiplyScalar2(a, x), multiplyScalar2(b, y)), c));
  36310. var den = sqrt3(addScalar2(multiplyScalar2(a, a), multiplyScalar2(b, b)));
  36311. return divideScalar2(num, den);
  36312. }
  36313. function _distancePointLine3D(x, y, z, x0, y0, z0, a, b, c) {
  36314. var num = [subtract2(multiplyScalar2(subtract2(y0, y), c), multiplyScalar2(subtract2(z0, z), b)), subtract2(multiplyScalar2(subtract2(z0, z), a), multiplyScalar2(subtract2(x0, x), c)), subtract2(multiplyScalar2(subtract2(x0, x), b), multiplyScalar2(subtract2(y0, y), a))];
  36315. num = sqrt3(addScalar2(addScalar2(multiplyScalar2(num[0], num[0]), multiplyScalar2(num[1], num[1])), multiplyScalar2(num[2], num[2])));
  36316. var den = sqrt3(addScalar2(addScalar2(multiplyScalar2(a, a), multiplyScalar2(b, b)), multiplyScalar2(c, c)));
  36317. return divideScalar2(num, den);
  36318. }
  36319. function _euclideanDistance(x, y) {
  36320. var vectorSize = x.length;
  36321. var result = 0;
  36322. var diff2 = 0;
  36323. for (var i2 = 0; i2 < vectorSize; i2++) {
  36324. diff2 = subtract2(x[i2], y[i2]);
  36325. result = addScalar2(multiplyScalar2(diff2, diff2), result);
  36326. }
  36327. return sqrt3(result);
  36328. }
  36329. function _distancePairwise(a) {
  36330. var result = [];
  36331. var pointA = [];
  36332. var pointB = [];
  36333. for (var i2 = 0; i2 < a.length - 1; i2++) {
  36334. for (var j = i2 + 1; j < a.length; j++) {
  36335. if (a[0].length === 2) {
  36336. pointA = [a[i2][0], a[i2][1]];
  36337. pointB = [a[j][0], a[j][1]];
  36338. } else if (a[0].length === 3) {
  36339. pointA = [a[i2][0], a[i2][1], a[i2][2]];
  36340. pointB = [a[j][0], a[j][1], a[j][2]];
  36341. }
  36342. result.push(_euclideanDistance(pointA, pointB));
  36343. }
  36344. }
  36345. return result;
  36346. }
  36347. });
  36348. // node_modules/mathjs/lib/esm/function/geometry/intersect.js
  36349. var name249 = "intersect";
  36350. var dependencies249 = ["typed", "config", "abs", "add", "addScalar", "matrix", "multiply", "multiplyScalar", "divideScalar", "subtract", "smaller", "equalScalar", "flatten", "isZero", "isNumeric"];
  36351. var createIntersect = factory(name249, dependencies249, (_ref) => {
  36352. var {
  36353. typed: typed2,
  36354. config: config4,
  36355. abs: abs3,
  36356. add: add3,
  36357. addScalar: addScalar2,
  36358. matrix: matrix2,
  36359. multiply: multiply2,
  36360. multiplyScalar: multiplyScalar2,
  36361. divideScalar: divideScalar2,
  36362. subtract: subtract2,
  36363. smaller: smaller2,
  36364. equalScalar: equalScalar2,
  36365. flatten: flatten3,
  36366. isZero: isZero2,
  36367. isNumeric: isNumeric2
  36368. } = _ref;
  36369. return typed2("intersect", {
  36370. "Array, Array, Array": _AAA,
  36371. "Array, Array, Array, Array": _AAAA,
  36372. "Matrix, Matrix, Matrix": function MatrixMatrixMatrix(x, y, plane) {
  36373. var arr = _AAA(x.valueOf(), y.valueOf(), plane.valueOf());
  36374. return arr === null ? null : matrix2(arr);
  36375. },
  36376. "Matrix, Matrix, Matrix, Matrix": function MatrixMatrixMatrixMatrix(w, x, y, z) {
  36377. var arr = _AAAA(w.valueOf(), x.valueOf(), y.valueOf(), z.valueOf());
  36378. return arr === null ? null : matrix2(arr);
  36379. }
  36380. });
  36381. function _AAA(x, y, plane) {
  36382. x = _coerceArr(x);
  36383. y = _coerceArr(y);
  36384. plane = _coerceArr(plane);
  36385. if (!_3d(x)) {
  36386. throw new TypeError("Array with 3 numbers or BigNumbers expected for first argument");
  36387. }
  36388. if (!_3d(y)) {
  36389. throw new TypeError("Array with 3 numbers or BigNumbers expected for second argument");
  36390. }
  36391. if (!_4d(plane)) {
  36392. throw new TypeError("Array with 4 numbers expected as third argument");
  36393. }
  36394. return _intersectLinePlane(x[0], x[1], x[2], y[0], y[1], y[2], plane[0], plane[1], plane[2], plane[3]);
  36395. }
  36396. function _AAAA(w, x, y, z) {
  36397. w = _coerceArr(w);
  36398. x = _coerceArr(x);
  36399. y = _coerceArr(y);
  36400. z = _coerceArr(z);
  36401. if (w.length === 2) {
  36402. if (!_2d(w)) {
  36403. throw new TypeError("Array with 2 numbers or BigNumbers expected for first argument");
  36404. }
  36405. if (!_2d(x)) {
  36406. throw new TypeError("Array with 2 numbers or BigNumbers expected for second argument");
  36407. }
  36408. if (!_2d(y)) {
  36409. throw new TypeError("Array with 2 numbers or BigNumbers expected for third argument");
  36410. }
  36411. if (!_2d(z)) {
  36412. throw new TypeError("Array with 2 numbers or BigNumbers expected for fourth argument");
  36413. }
  36414. return _intersect2d(w, x, y, z);
  36415. } else if (w.length === 3) {
  36416. if (!_3d(w)) {
  36417. throw new TypeError("Array with 3 numbers or BigNumbers expected for first argument");
  36418. }
  36419. if (!_3d(x)) {
  36420. throw new TypeError("Array with 3 numbers or BigNumbers expected for second argument");
  36421. }
  36422. if (!_3d(y)) {
  36423. throw new TypeError("Array with 3 numbers or BigNumbers expected for third argument");
  36424. }
  36425. if (!_3d(z)) {
  36426. throw new TypeError("Array with 3 numbers or BigNumbers expected for fourth argument");
  36427. }
  36428. return _intersect3d(w[0], w[1], w[2], x[0], x[1], x[2], y[0], y[1], y[2], z[0], z[1], z[2]);
  36429. } else {
  36430. throw new TypeError("Arrays with two or thee dimensional points expected");
  36431. }
  36432. }
  36433. function _coerceArr(arr) {
  36434. if (arr.length === 1)
  36435. return arr[0];
  36436. if (arr.length > 1 && Array.isArray(arr[0])) {
  36437. if (arr.every((el) => Array.isArray(el) && el.length === 1))
  36438. return flatten3(arr);
  36439. }
  36440. return arr;
  36441. }
  36442. function _2d(x) {
  36443. return x.length === 2 && isNumeric2(x[0]) && isNumeric2(x[1]);
  36444. }
  36445. function _3d(x) {
  36446. return x.length === 3 && isNumeric2(x[0]) && isNumeric2(x[1]) && isNumeric2(x[2]);
  36447. }
  36448. function _4d(x) {
  36449. return x.length === 4 && isNumeric2(x[0]) && isNumeric2(x[1]) && isNumeric2(x[2]) && isNumeric2(x[3]);
  36450. }
  36451. function _intersect2d(p1a, p1b, p2a, p2b) {
  36452. var o1 = p1a;
  36453. var o2 = p2a;
  36454. var d1 = subtract2(o1, p1b);
  36455. var d2 = subtract2(o2, p2b);
  36456. var det2 = subtract2(multiplyScalar2(d1[0], d2[1]), multiplyScalar2(d2[0], d1[1]));
  36457. if (isZero2(det2))
  36458. return null;
  36459. if (smaller2(abs3(det2), config4.epsilon)) {
  36460. return null;
  36461. }
  36462. var d20o11 = multiplyScalar2(d2[0], o1[1]);
  36463. var d21o10 = multiplyScalar2(d2[1], o1[0]);
  36464. var d20o21 = multiplyScalar2(d2[0], o2[1]);
  36465. var d21o20 = multiplyScalar2(d2[1], o2[0]);
  36466. var t = divideScalar2(addScalar2(subtract2(subtract2(d20o11, d21o10), d20o21), d21o20), det2);
  36467. return add3(multiply2(d1, t), o1);
  36468. }
  36469. function _intersect3dHelper(a, b, c, d, e3, f, g, h, i2, j, k, l) {
  36470. var add1 = multiplyScalar2(subtract2(a, b), subtract2(c, d));
  36471. var add22 = multiplyScalar2(subtract2(e3, f), subtract2(g, h));
  36472. var add32 = multiplyScalar2(subtract2(i2, j), subtract2(k, l));
  36473. return addScalar2(addScalar2(add1, add22), add32);
  36474. }
  36475. function _intersect3d(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4) {
  36476. var d1343 = _intersect3dHelper(x1, x3, x4, x3, y1, y3, y4, y3, z1, z3, z4, z3);
  36477. var d4321 = _intersect3dHelper(x4, x3, x2, x1, y4, y3, y2, y1, z4, z3, z2, z1);
  36478. var d1321 = _intersect3dHelper(x1, x3, x2, x1, y1, y3, y2, y1, z1, z3, z2, z1);
  36479. var d4343 = _intersect3dHelper(x4, x3, x4, x3, y4, y3, y4, y3, z4, z3, z4, z3);
  36480. var d2121 = _intersect3dHelper(x2, x1, x2, x1, y2, y1, y2, y1, z2, z1, z2, z1);
  36481. var numerator = subtract2(multiplyScalar2(d1343, d4321), multiplyScalar2(d1321, d4343));
  36482. var denominator = subtract2(multiplyScalar2(d2121, d4343), multiplyScalar2(d4321, d4321));
  36483. if (isZero2(denominator))
  36484. return null;
  36485. var ta = divideScalar2(numerator, denominator);
  36486. var tb = divideScalar2(addScalar2(d1343, multiplyScalar2(ta, d4321)), d4343);
  36487. var pax = addScalar2(x1, multiplyScalar2(ta, subtract2(x2, x1)));
  36488. var pay = addScalar2(y1, multiplyScalar2(ta, subtract2(y2, y1)));
  36489. var paz = addScalar2(z1, multiplyScalar2(ta, subtract2(z2, z1)));
  36490. var pbx = addScalar2(x3, multiplyScalar2(tb, subtract2(x4, x3)));
  36491. var pby = addScalar2(y3, multiplyScalar2(tb, subtract2(y4, y3)));
  36492. var pbz = addScalar2(z3, multiplyScalar2(tb, subtract2(z4, z3)));
  36493. if (equalScalar2(pax, pbx) && equalScalar2(pay, pby) && equalScalar2(paz, pbz)) {
  36494. return [pax, pay, paz];
  36495. } else {
  36496. return null;
  36497. }
  36498. }
  36499. function _intersectLinePlane(x1, y1, z1, x2, y2, z2, x, y, z, c) {
  36500. var x1x = multiplyScalar2(x1, x);
  36501. var x2x = multiplyScalar2(x2, x);
  36502. var y1y = multiplyScalar2(y1, y);
  36503. var y2y = multiplyScalar2(y2, y);
  36504. var z1z = multiplyScalar2(z1, z);
  36505. var z2z = multiplyScalar2(z2, z);
  36506. var numerator = subtract2(subtract2(subtract2(c, x1x), y1y), z1z);
  36507. var denominator = subtract2(subtract2(subtract2(addScalar2(addScalar2(x2x, y2y), z2z), x1x), y1y), z1z);
  36508. var t = divideScalar2(numerator, denominator);
  36509. var px = addScalar2(x1, multiplyScalar2(t, subtract2(x2, x1)));
  36510. var py = addScalar2(y1, multiplyScalar2(t, subtract2(y2, y1)));
  36511. var pz = addScalar2(z1, multiplyScalar2(t, subtract2(z2, z1)));
  36512. return [px, py, pz];
  36513. }
  36514. });
  36515. // node_modules/mathjs/lib/esm/function/statistics/sum.js
  36516. var name250 = "sum";
  36517. var dependencies250 = ["typed", "config", "add", "numeric"];
  36518. var createSum = factory(name250, dependencies250, (_ref) => {
  36519. var {
  36520. typed: typed2,
  36521. config: config4,
  36522. add: add3,
  36523. numeric: numeric3
  36524. } = _ref;
  36525. return typed2(name250, {
  36526. // sum([a, b, c, d, ...])
  36527. "Array | Matrix": _sum,
  36528. // sum([a, b, c, d, ...], dim)
  36529. "Array | Matrix, number | BigNumber": _nsumDim,
  36530. // sum(a, b, c, d, ...)
  36531. "...": function _(args) {
  36532. if (containsCollections(args)) {
  36533. throw new TypeError("Scalar values expected in function sum");
  36534. }
  36535. return _sum(args);
  36536. }
  36537. });
  36538. function _sum(array) {
  36539. var sum3;
  36540. deepForEach(array, function(value) {
  36541. try {
  36542. sum3 = sum3 === void 0 ? value : add3(sum3, value);
  36543. } catch (err) {
  36544. throw improveErrorMessage(err, "sum", value);
  36545. }
  36546. });
  36547. if (sum3 === void 0) {
  36548. sum3 = numeric3(0, config4.number);
  36549. }
  36550. if (typeof sum3 === "string") {
  36551. sum3 = numeric3(sum3, config4.number);
  36552. }
  36553. return sum3;
  36554. }
  36555. function _nsumDim(array, dim) {
  36556. try {
  36557. var sum3 = reduce(array, dim, add3);
  36558. return sum3;
  36559. } catch (err) {
  36560. throw improveErrorMessage(err, "sum");
  36561. }
  36562. }
  36563. });
  36564. // node_modules/mathjs/lib/esm/function/statistics/cumsum.js
  36565. var name251 = "cumsum";
  36566. var dependencies251 = ["typed", "add", "unaryPlus"];
  36567. var createCumSum = factory(name251, dependencies251, (_ref) => {
  36568. var {
  36569. typed: typed2,
  36570. add: add3,
  36571. unaryPlus: unaryPlus2
  36572. } = _ref;
  36573. return typed2(name251, {
  36574. // sum([a, b, c, d, ...])
  36575. Array: _cumsum,
  36576. Matrix: function Matrix2(matrix2) {
  36577. return matrix2.create(_cumsum(matrix2.valueOf()));
  36578. },
  36579. // sum([a, b, c, d, ...], dim)
  36580. "Array, number | BigNumber": _ncumSumDim,
  36581. "Matrix, number | BigNumber": function MatrixNumberBigNumber(matrix2, dim) {
  36582. return matrix2.create(_ncumSumDim(matrix2.valueOf(), dim));
  36583. },
  36584. // cumsum(a, b, c, d, ...)
  36585. "...": function _(args) {
  36586. if (containsCollections(args)) {
  36587. throw new TypeError("All values expected to be scalar in function cumsum");
  36588. }
  36589. return _cumsum(args);
  36590. }
  36591. });
  36592. function _cumsum(array) {
  36593. try {
  36594. return _cumsummap(array);
  36595. } catch (err) {
  36596. throw improveErrorMessage(err, name251);
  36597. }
  36598. }
  36599. function _cumsummap(array) {
  36600. if (array.length === 0) {
  36601. return [];
  36602. }
  36603. var sums = [unaryPlus2(array[0])];
  36604. for (var i2 = 1; i2 < array.length; ++i2) {
  36605. sums.push(add3(sums[i2 - 1], array[i2]));
  36606. }
  36607. return sums;
  36608. }
  36609. function _ncumSumDim(array, dim) {
  36610. var size2 = arraySize(array);
  36611. if (dim < 0 || dim >= size2.length) {
  36612. throw new IndexError(dim, size2.length);
  36613. }
  36614. try {
  36615. return _cumsumDimensional(array, dim);
  36616. } catch (err) {
  36617. throw improveErrorMessage(err, name251);
  36618. }
  36619. }
  36620. function _cumsumDimensional(mat, dim) {
  36621. var i2, ret, tran;
  36622. if (dim <= 0) {
  36623. var initialValue = mat[0][0];
  36624. if (!Array.isArray(initialValue)) {
  36625. return _cumsummap(mat);
  36626. } else {
  36627. tran = _switch(mat);
  36628. ret = [];
  36629. for (i2 = 0; i2 < tran.length; i2++) {
  36630. ret[i2] = _cumsumDimensional(tran[i2], dim - 1);
  36631. }
  36632. return ret;
  36633. }
  36634. } else {
  36635. ret = [];
  36636. for (i2 = 0; i2 < mat.length; i2++) {
  36637. ret[i2] = _cumsumDimensional(mat[i2], dim - 1);
  36638. }
  36639. return ret;
  36640. }
  36641. }
  36642. });
  36643. // node_modules/mathjs/lib/esm/function/statistics/mean.js
  36644. var name252 = "mean";
  36645. var dependencies252 = ["typed", "add", "divide"];
  36646. var createMean = factory(name252, dependencies252, (_ref) => {
  36647. var {
  36648. typed: typed2,
  36649. add: add3,
  36650. divide: divide3
  36651. } = _ref;
  36652. return typed2(name252, {
  36653. // mean([a, b, c, d, ...])
  36654. "Array | Matrix": _mean,
  36655. // mean([a, b, c, d, ...], dim)
  36656. "Array | Matrix, number | BigNumber": _nmeanDim,
  36657. // mean(a, b, c, d, ...)
  36658. "...": function _(args) {
  36659. if (containsCollections(args)) {
  36660. throw new TypeError("Scalar values expected in function mean");
  36661. }
  36662. return _mean(args);
  36663. }
  36664. });
  36665. function _nmeanDim(array, dim) {
  36666. try {
  36667. var sum3 = reduce(array, dim, add3);
  36668. var s = Array.isArray(array) ? arraySize(array) : array.size();
  36669. return divide3(sum3, s[dim]);
  36670. } catch (err) {
  36671. throw improveErrorMessage(err, "mean");
  36672. }
  36673. }
  36674. function _mean(array) {
  36675. var sum3;
  36676. var num = 0;
  36677. deepForEach(array, function(value) {
  36678. try {
  36679. sum3 = sum3 === void 0 ? value : add3(sum3, value);
  36680. num++;
  36681. } catch (err) {
  36682. throw improveErrorMessage(err, "mean", value);
  36683. }
  36684. });
  36685. if (num === 0) {
  36686. throw new Error("Cannot calculate the mean of an empty array");
  36687. }
  36688. return divide3(sum3, num);
  36689. }
  36690. });
  36691. // node_modules/mathjs/lib/esm/function/statistics/median.js
  36692. var name253 = "median";
  36693. var dependencies253 = ["typed", "add", "divide", "compare", "partitionSelect"];
  36694. var createMedian = factory(name253, dependencies253, (_ref) => {
  36695. var {
  36696. typed: typed2,
  36697. add: add3,
  36698. divide: divide3,
  36699. compare: compare2,
  36700. partitionSelect: partitionSelect2
  36701. } = _ref;
  36702. function _median(array) {
  36703. try {
  36704. array = flatten(array.valueOf());
  36705. var num = array.length;
  36706. if (num === 0) {
  36707. throw new Error("Cannot calculate median of an empty array");
  36708. }
  36709. if (num % 2 === 0) {
  36710. var mid = num / 2 - 1;
  36711. var right = partitionSelect2(array, mid + 1);
  36712. var left = array[mid];
  36713. for (var i2 = 0; i2 < mid; ++i2) {
  36714. if (compare2(array[i2], left) > 0) {
  36715. left = array[i2];
  36716. }
  36717. }
  36718. return middle2(left, right);
  36719. } else {
  36720. var m = partitionSelect2(array, (num - 1) / 2);
  36721. return middle(m);
  36722. }
  36723. } catch (err) {
  36724. throw improveErrorMessage(err, "median");
  36725. }
  36726. }
  36727. var middle = typed2({
  36728. "number | BigNumber | Complex | Unit": function numberBigNumberComplexUnit(value) {
  36729. return value;
  36730. }
  36731. });
  36732. var middle2 = typed2({
  36733. "number | BigNumber | Complex | Unit, number | BigNumber | Complex | Unit": function numberBigNumberComplexUnitNumberBigNumberComplexUnit(left, right) {
  36734. return divide3(add3(left, right), 2);
  36735. }
  36736. });
  36737. return typed2(name253, {
  36738. // median([a, b, c, d, ...])
  36739. "Array | Matrix": _median,
  36740. // median([a, b, c, d, ...], dim)
  36741. "Array | Matrix, number | BigNumber": function ArrayMatrixNumberBigNumber(array, dim) {
  36742. throw new Error("median(A, dim) is not yet supported");
  36743. },
  36744. // median(a, b, c, d, ...)
  36745. "...": function _(args) {
  36746. if (containsCollections(args)) {
  36747. throw new TypeError("Scalar values expected in function median");
  36748. }
  36749. return _median(args);
  36750. }
  36751. });
  36752. });
  36753. // node_modules/mathjs/lib/esm/function/statistics/mad.js
  36754. var name254 = "mad";
  36755. var dependencies254 = ["typed", "abs", "map", "median", "subtract"];
  36756. var createMad = factory(name254, dependencies254, (_ref) => {
  36757. var {
  36758. typed: typed2,
  36759. abs: abs3,
  36760. map: map3,
  36761. median: median2,
  36762. subtract: subtract2
  36763. } = _ref;
  36764. return typed2(name254, {
  36765. // mad([a, b, c, d, ...])
  36766. "Array | Matrix": _mad,
  36767. // mad(a, b, c, d, ...)
  36768. "...": function _(args) {
  36769. return _mad(args);
  36770. }
  36771. });
  36772. function _mad(array) {
  36773. array = flatten(array.valueOf());
  36774. if (array.length === 0) {
  36775. throw new Error("Cannot calculate median absolute deviation (mad) of an empty array");
  36776. }
  36777. try {
  36778. var med = median2(array);
  36779. return median2(map3(array, function(value) {
  36780. return abs3(subtract2(value, med));
  36781. }));
  36782. } catch (err) {
  36783. if (err instanceof TypeError && err.message.indexOf("median") !== -1) {
  36784. throw new TypeError(err.message.replace("median", "mad"));
  36785. } else {
  36786. throw improveErrorMessage(err, "mad");
  36787. }
  36788. }
  36789. }
  36790. });
  36791. // node_modules/mathjs/lib/esm/function/statistics/variance.js
  36792. var DEFAULT_NORMALIZATION = "unbiased";
  36793. var name255 = "variance";
  36794. var dependencies255 = ["typed", "add", "subtract", "multiply", "divide", "apply", "isNaN"];
  36795. var createVariance = factory(name255, dependencies255, (_ref) => {
  36796. var {
  36797. typed: typed2,
  36798. add: add3,
  36799. subtract: subtract2,
  36800. multiply: multiply2,
  36801. divide: divide3,
  36802. apply: apply2,
  36803. isNaN: isNaN3
  36804. } = _ref;
  36805. return typed2(name255, {
  36806. // variance([a, b, c, d, ...])
  36807. "Array | Matrix": function ArrayMatrix(array) {
  36808. return _var(array, DEFAULT_NORMALIZATION);
  36809. },
  36810. // variance([a, b, c, d, ...], normalization)
  36811. "Array | Matrix, string": _var,
  36812. // variance([a, b, c, c, ...], dim)
  36813. "Array | Matrix, number | BigNumber": function ArrayMatrixNumberBigNumber(array, dim) {
  36814. return _varDim(array, dim, DEFAULT_NORMALIZATION);
  36815. },
  36816. // variance([a, b, c, c, ...], dim, normalization)
  36817. "Array | Matrix, number | BigNumber, string": _varDim,
  36818. // variance(a, b, c, d, ...)
  36819. "...": function _(args) {
  36820. return _var(args, DEFAULT_NORMALIZATION);
  36821. }
  36822. });
  36823. function _var(array, normalization) {
  36824. var sum3;
  36825. var num = 0;
  36826. if (array.length === 0) {
  36827. throw new SyntaxError("Function variance requires one or more parameters (0 provided)");
  36828. }
  36829. deepForEach(array, function(value) {
  36830. try {
  36831. sum3 = sum3 === void 0 ? value : add3(sum3, value);
  36832. num++;
  36833. } catch (err) {
  36834. throw improveErrorMessage(err, "variance", value);
  36835. }
  36836. });
  36837. if (num === 0)
  36838. throw new Error("Cannot calculate variance of an empty array");
  36839. var mean2 = divide3(sum3, num);
  36840. sum3 = void 0;
  36841. deepForEach(array, function(value) {
  36842. var diff2 = subtract2(value, mean2);
  36843. sum3 = sum3 === void 0 ? multiply2(diff2, diff2) : add3(sum3, multiply2(diff2, diff2));
  36844. });
  36845. if (isNaN3(sum3)) {
  36846. return sum3;
  36847. }
  36848. switch (normalization) {
  36849. case "uncorrected":
  36850. return divide3(sum3, num);
  36851. case "biased":
  36852. return divide3(sum3, num + 1);
  36853. case "unbiased": {
  36854. var zero = isBigNumber(sum3) ? sum3.mul(0) : 0;
  36855. return num === 1 ? zero : divide3(sum3, num - 1);
  36856. }
  36857. default:
  36858. throw new Error('Unknown normalization "' + normalization + '". Choose "unbiased" (default), "uncorrected", or "biased".');
  36859. }
  36860. }
  36861. function _varDim(array, dim, normalization) {
  36862. try {
  36863. if (array.length === 0) {
  36864. throw new SyntaxError("Function variance requires one or more parameters (0 provided)");
  36865. }
  36866. return apply2(array, dim, (x) => _var(x, normalization));
  36867. } catch (err) {
  36868. throw improveErrorMessage(err, "variance");
  36869. }
  36870. }
  36871. });
  36872. // node_modules/mathjs/lib/esm/function/statistics/quantileSeq.js
  36873. var name256 = "quantileSeq";
  36874. var dependencies256 = ["typed", "add", "multiply", "partitionSelect", "compare"];
  36875. var createQuantileSeq = factory(name256, dependencies256, (_ref) => {
  36876. var {
  36877. typed: typed2,
  36878. add: add3,
  36879. multiply: multiply2,
  36880. partitionSelect: partitionSelect2,
  36881. compare: compare2
  36882. } = _ref;
  36883. function quantileSeq2(data, probOrN, sorted) {
  36884. var probArr, dataArr, one;
  36885. if (arguments.length < 2 || arguments.length > 3) {
  36886. throw new SyntaxError("Function quantileSeq requires two or three parameters");
  36887. }
  36888. if (isCollection(data)) {
  36889. sorted = sorted || false;
  36890. if (typeof sorted === "boolean") {
  36891. dataArr = data.valueOf();
  36892. if (isNumber(probOrN)) {
  36893. if (probOrN < 0) {
  36894. throw new Error("N/prob must be non-negative");
  36895. }
  36896. if (probOrN <= 1) {
  36897. return _quantileSeq(dataArr, probOrN, sorted);
  36898. }
  36899. if (probOrN > 1) {
  36900. if (!isInteger(probOrN)) {
  36901. throw new Error("N must be a positive integer");
  36902. }
  36903. var nPlusOne = probOrN + 1;
  36904. probArr = new Array(probOrN);
  36905. for (var i2 = 0; i2 < probOrN; ) {
  36906. probArr[i2] = _quantileSeq(dataArr, ++i2 / nPlusOne, sorted);
  36907. }
  36908. return probArr;
  36909. }
  36910. }
  36911. if (isBigNumber(probOrN)) {
  36912. var BigNumber2 = probOrN.constructor;
  36913. if (probOrN.isNegative()) {
  36914. throw new Error("N/prob must be non-negative");
  36915. }
  36916. one = new BigNumber2(1);
  36917. if (probOrN.lte(one)) {
  36918. return new BigNumber2(_quantileSeq(dataArr, probOrN, sorted));
  36919. }
  36920. if (probOrN.gt(one)) {
  36921. if (!probOrN.isInteger()) {
  36922. throw new Error("N must be a positive integer");
  36923. }
  36924. var intN = probOrN.toNumber();
  36925. if (intN > 4294967295) {
  36926. throw new Error("N must be less than or equal to 2^32-1, as that is the maximum length of an Array");
  36927. }
  36928. var _nPlusOne = new BigNumber2(intN + 1);
  36929. probArr = new Array(intN);
  36930. for (var _i = 0; _i < intN; ) {
  36931. probArr[_i] = new BigNumber2(_quantileSeq(dataArr, new BigNumber2(++_i).div(_nPlusOne), sorted));
  36932. }
  36933. return probArr;
  36934. }
  36935. }
  36936. if (isCollection(probOrN)) {
  36937. var probOrNArr = probOrN.valueOf();
  36938. probArr = new Array(probOrNArr.length);
  36939. for (var _i2 = 0; _i2 < probArr.length; ++_i2) {
  36940. var currProb = probOrNArr[_i2];
  36941. if (isNumber(currProb)) {
  36942. if (currProb < 0 || currProb > 1) {
  36943. throw new Error("Probability must be between 0 and 1, inclusive");
  36944. }
  36945. } else if (isBigNumber(currProb)) {
  36946. one = new currProb.constructor(1);
  36947. if (currProb.isNegative() || currProb.gt(one)) {
  36948. throw new Error("Probability must be between 0 and 1, inclusive");
  36949. }
  36950. } else {
  36951. throw new TypeError("Unexpected type of argument in function quantileSeq");
  36952. }
  36953. probArr[_i2] = _quantileSeq(dataArr, currProb, sorted);
  36954. }
  36955. return probArr;
  36956. }
  36957. throw new TypeError("Unexpected type of argument in function quantileSeq");
  36958. }
  36959. throw new TypeError("Unexpected type of argument in function quantileSeq");
  36960. }
  36961. throw new TypeError("Unexpected type of argument in function quantileSeq");
  36962. }
  36963. function _quantileSeq(array, prob, sorted) {
  36964. var flat = flatten(array);
  36965. var len = flat.length;
  36966. if (len === 0) {
  36967. throw new Error("Cannot calculate quantile of an empty sequence");
  36968. }
  36969. if (isNumber(prob)) {
  36970. var _index = prob * (len - 1);
  36971. var _fracPart = _index % 1;
  36972. if (_fracPart === 0) {
  36973. var value = sorted ? flat[_index] : partitionSelect2(flat, _index);
  36974. validate2(value);
  36975. return value;
  36976. }
  36977. var _integerPart = Math.floor(_index);
  36978. var _left;
  36979. var _right;
  36980. if (sorted) {
  36981. _left = flat[_integerPart];
  36982. _right = flat[_integerPart + 1];
  36983. } else {
  36984. _right = partitionSelect2(flat, _integerPart + 1);
  36985. _left = flat[_integerPart];
  36986. for (var i2 = 0; i2 < _integerPart; ++i2) {
  36987. if (compare2(flat[i2], _left) > 0) {
  36988. _left = flat[i2];
  36989. }
  36990. }
  36991. }
  36992. validate2(_left);
  36993. validate2(_right);
  36994. return add3(multiply2(_left, 1 - _fracPart), multiply2(_right, _fracPart));
  36995. }
  36996. var index2 = prob.times(len - 1);
  36997. if (index2.isInteger()) {
  36998. index2 = index2.toNumber();
  36999. var _value = sorted ? flat[index2] : partitionSelect2(flat, index2);
  37000. validate2(_value);
  37001. return _value;
  37002. }
  37003. var integerPart = index2.floor();
  37004. var fracPart = index2.minus(integerPart);
  37005. var integerPartNumber = integerPart.toNumber();
  37006. var left;
  37007. var right;
  37008. if (sorted) {
  37009. left = flat[integerPartNumber];
  37010. right = flat[integerPartNumber + 1];
  37011. } else {
  37012. right = partitionSelect2(flat, integerPartNumber + 1);
  37013. left = flat[integerPartNumber];
  37014. for (var _i3 = 0; _i3 < integerPartNumber; ++_i3) {
  37015. if (compare2(flat[_i3], left) > 0) {
  37016. left = flat[_i3];
  37017. }
  37018. }
  37019. }
  37020. validate2(left);
  37021. validate2(right);
  37022. var one = new fracPart.constructor(1);
  37023. return add3(multiply2(left, one.minus(fracPart)), multiply2(right, fracPart));
  37024. }
  37025. var validate2 = typed2({
  37026. "number | BigNumber | Unit": function numberBigNumberUnit(x) {
  37027. return x;
  37028. }
  37029. });
  37030. return quantileSeq2;
  37031. });
  37032. // node_modules/mathjs/lib/esm/function/statistics/std.js
  37033. var name257 = "std";
  37034. var dependencies257 = ["typed", "map", "sqrt", "variance"];
  37035. var createStd = factory(name257, dependencies257, (_ref) => {
  37036. var {
  37037. typed: typed2,
  37038. map: map3,
  37039. sqrt: sqrt3,
  37040. variance: variance2
  37041. } = _ref;
  37042. return typed2(name257, {
  37043. // std([a, b, c, d, ...])
  37044. "Array | Matrix": _std,
  37045. // std([a, b, c, d, ...], normalization)
  37046. "Array | Matrix, string": _std,
  37047. // std([a, b, c, c, ...], dim)
  37048. "Array | Matrix, number | BigNumber": _std,
  37049. // std([a, b, c, c, ...], dim, normalization)
  37050. "Array | Matrix, number | BigNumber, string": _std,
  37051. // std(a, b, c, d, ...)
  37052. "...": function _(args) {
  37053. return _std(args);
  37054. }
  37055. });
  37056. function _std(array, normalization) {
  37057. if (array.length === 0) {
  37058. throw new SyntaxError("Function std requires one or more parameters (0 provided)");
  37059. }
  37060. try {
  37061. var v = variance2.apply(null, arguments);
  37062. if (isCollection(v)) {
  37063. return map3(v, sqrt3);
  37064. } else {
  37065. return sqrt3(v);
  37066. }
  37067. } catch (err) {
  37068. if (err instanceof TypeError && err.message.indexOf(" variance") !== -1) {
  37069. throw new TypeError(err.message.replace(" variance", " std"));
  37070. } else {
  37071. throw err;
  37072. }
  37073. }
  37074. }
  37075. });
  37076. // node_modules/mathjs/lib/esm/function/probability/combinations.js
  37077. var name258 = "combinations";
  37078. var dependencies258 = ["typed"];
  37079. var createCombinations = factory(name258, dependencies258, (_ref) => {
  37080. var {
  37081. typed: typed2
  37082. } = _ref;
  37083. return typed2(name258, {
  37084. "number, number": combinationsNumber,
  37085. "BigNumber, BigNumber": function BigNumberBigNumber(n, k) {
  37086. var BigNumber2 = n.constructor;
  37087. var result, i2;
  37088. var nMinusk = n.minus(k);
  37089. var one = new BigNumber2(1);
  37090. if (!isPositiveInteger(n) || !isPositiveInteger(k)) {
  37091. throw new TypeError("Positive integer value expected in function combinations");
  37092. }
  37093. if (k.gt(n)) {
  37094. throw new TypeError("k must be less than n in function combinations");
  37095. }
  37096. result = one;
  37097. if (k.lt(nMinusk)) {
  37098. for (i2 = one; i2.lte(nMinusk); i2 = i2.plus(one)) {
  37099. result = result.times(k.plus(i2)).dividedBy(i2);
  37100. }
  37101. } else {
  37102. for (i2 = one; i2.lte(k); i2 = i2.plus(one)) {
  37103. result = result.times(nMinusk.plus(i2)).dividedBy(i2);
  37104. }
  37105. }
  37106. return result;
  37107. }
  37108. // TODO: implement support for collection in combinations
  37109. });
  37110. });
  37111. function isPositiveInteger(n) {
  37112. return n.isInteger() && n.gte(0);
  37113. }
  37114. // node_modules/mathjs/lib/esm/function/probability/combinationsWithRep.js
  37115. var name259 = "combinationsWithRep";
  37116. var dependencies259 = ["typed"];
  37117. var createCombinationsWithRep = factory(name259, dependencies259, (_ref) => {
  37118. var {
  37119. typed: typed2
  37120. } = _ref;
  37121. return typed2(name259, {
  37122. "number, number": function numberNumber(n, k) {
  37123. if (!isInteger(n) || n < 0) {
  37124. throw new TypeError("Positive integer value expected in function combinationsWithRep");
  37125. }
  37126. if (!isInteger(k) || k < 0) {
  37127. throw new TypeError("Positive integer value expected in function combinationsWithRep");
  37128. }
  37129. if (n < 1) {
  37130. throw new TypeError("k must be less than or equal to n + k - 1");
  37131. }
  37132. if (k < n - 1) {
  37133. var _prodrange = product2(n, n + k - 1);
  37134. return _prodrange / product2(1, k);
  37135. }
  37136. var prodrange = product2(k + 1, n + k - 1);
  37137. return prodrange / product2(1, n - 1);
  37138. },
  37139. "BigNumber, BigNumber": function BigNumberBigNumber(n, k) {
  37140. var BigNumber2 = n.constructor;
  37141. var result, i2;
  37142. var one = new BigNumber2(1);
  37143. var nMinusOne = n.minus(one);
  37144. if (!isPositiveInteger2(n) || !isPositiveInteger2(k)) {
  37145. throw new TypeError("Positive integer value expected in function combinationsWithRep");
  37146. }
  37147. if (n.lt(one)) {
  37148. throw new TypeError("k must be less than or equal to n + k - 1 in function combinationsWithRep");
  37149. }
  37150. result = one;
  37151. if (k.lt(nMinusOne)) {
  37152. for (i2 = one; i2.lte(nMinusOne); i2 = i2.plus(one)) {
  37153. result = result.times(k.plus(i2)).dividedBy(i2);
  37154. }
  37155. } else {
  37156. for (i2 = one; i2.lte(k); i2 = i2.plus(one)) {
  37157. result = result.times(nMinusOne.plus(i2)).dividedBy(i2);
  37158. }
  37159. }
  37160. return result;
  37161. }
  37162. });
  37163. });
  37164. function isPositiveInteger2(n) {
  37165. return n.isInteger() && n.gte(0);
  37166. }
  37167. // node_modules/mathjs/lib/esm/function/probability/gamma.js
  37168. var name260 = "gamma";
  37169. var dependencies260 = ["typed", "config", "multiplyScalar", "pow", "BigNumber", "Complex"];
  37170. var createGamma = factory(name260, dependencies260, (_ref) => {
  37171. var {
  37172. typed: typed2,
  37173. config: config4,
  37174. multiplyScalar: multiplyScalar2,
  37175. pow: pow3,
  37176. BigNumber: _BigNumber,
  37177. Complex: Complex3
  37178. } = _ref;
  37179. function gammaComplex(n) {
  37180. if (n.im === 0) {
  37181. return gammaNumber(n.re);
  37182. }
  37183. if (n.re < 0.5) {
  37184. var _t = new Complex3(1 - n.re, -n.im);
  37185. var r = new Complex3(Math.PI * n.re, Math.PI * n.im);
  37186. return new Complex3(Math.PI).div(r.sin()).div(gammaComplex(_t));
  37187. }
  37188. n = new Complex3(n.re - 1, n.im);
  37189. var x = new Complex3(gammaP[0], 0);
  37190. for (var i2 = 1; i2 < gammaP.length; ++i2) {
  37191. var gammaPval = new Complex3(gammaP[i2], 0);
  37192. x = x.add(gammaPval.div(n.add(i2)));
  37193. }
  37194. var t = new Complex3(n.re + gammaG + 0.5, n.im);
  37195. var twoPiSqrt = Math.sqrt(2 * Math.PI);
  37196. var tpow = t.pow(n.add(0.5));
  37197. var expt = t.neg().exp();
  37198. return x.mul(twoPiSqrt).mul(tpow).mul(expt);
  37199. }
  37200. return typed2(name260, {
  37201. number: gammaNumber,
  37202. Complex: gammaComplex,
  37203. BigNumber: function BigNumber2(n) {
  37204. if (n.isInteger()) {
  37205. return n.isNegative() || n.isZero() ? new _BigNumber(Infinity) : bigFactorial(n.minus(1));
  37206. }
  37207. if (!n.isFinite()) {
  37208. return new _BigNumber(n.isNegative() ? NaN : Infinity);
  37209. }
  37210. throw new Error("Integer BigNumber expected");
  37211. }
  37212. });
  37213. function bigFactorial(n) {
  37214. if (n < 8) {
  37215. return new _BigNumber([1, 1, 2, 6, 24, 120, 720, 5040][n]);
  37216. }
  37217. var precision = config4.precision + (Math.log(n.toNumber()) | 0);
  37218. var Big = _BigNumber.clone({
  37219. precision
  37220. });
  37221. if (n % 2 === 1) {
  37222. return n.times(bigFactorial(new _BigNumber(n - 1)));
  37223. }
  37224. var p = n;
  37225. var prod2 = new Big(n);
  37226. var sum3 = n.toNumber();
  37227. while (p > 2) {
  37228. p -= 2;
  37229. sum3 += p;
  37230. prod2 = prod2.times(sum3);
  37231. }
  37232. return new _BigNumber(prod2.toPrecision(_BigNumber.precision));
  37233. }
  37234. });
  37235. // node_modules/mathjs/lib/esm/function/probability/lgamma.js
  37236. var name261 = "lgamma";
  37237. var dependencies261 = ["Complex", "typed"];
  37238. var createLgamma = factory(name261, dependencies261, (_ref) => {
  37239. var {
  37240. Complex: Complex3,
  37241. typed: typed2
  37242. } = _ref;
  37243. var SMALL_RE = 7;
  37244. var SMALL_IM = 7;
  37245. var coeffs = [-0.029550653594771242, 0.00641025641025641, -0.0019175269175269176, 8417508417508417e-19, -5952380952380953e-19, 7936507936507937e-19, -0.002777777777777778, 0.08333333333333333];
  37246. return typed2(name261, {
  37247. number: lgammaNumber,
  37248. Complex: lgammaComplex,
  37249. BigNumber: function BigNumber2() {
  37250. throw new Error("mathjs doesn't yet provide an implementation of the algorithm lgamma for BigNumber");
  37251. }
  37252. });
  37253. function lgammaComplex(n) {
  37254. var TWOPI = 6.283185307179586;
  37255. var LOGPI = 1.1447298858494002;
  37256. var REFLECTION = 0.1;
  37257. if (n.isNaN()) {
  37258. return new Complex3(NaN, NaN);
  37259. } else if (n.im === 0) {
  37260. return new Complex3(lgammaNumber(n.re), 0);
  37261. } else if (n.re >= SMALL_RE || Math.abs(n.im) >= SMALL_IM) {
  37262. return lgammaStirling(n);
  37263. } else if (n.re <= REFLECTION) {
  37264. var tmp = copysign(TWOPI, n.im) * Math.floor(0.5 * n.re + 0.25);
  37265. var a = n.mul(Math.PI).sin().log();
  37266. var b = lgammaComplex(new Complex3(1 - n.re, -n.im));
  37267. return new Complex3(LOGPI, tmp).sub(a).sub(b);
  37268. } else if (n.im >= 0) {
  37269. return lgammaRecurrence(n);
  37270. } else {
  37271. return lgammaRecurrence(n.conjugate()).conjugate();
  37272. }
  37273. }
  37274. function lgammaStirling(z) {
  37275. var leftPart = z.sub(0.5).mul(z.log()).sub(z).add(lnSqrt2PI);
  37276. var rz = new Complex3(1, 0).div(z);
  37277. var rzz = rz.div(z);
  37278. var a = coeffs[0];
  37279. var b = coeffs[1];
  37280. var r = 2 * rzz.re;
  37281. var s = rzz.re * rzz.re + rzz.im * rzz.im;
  37282. for (var i2 = 2; i2 < 8; i2++) {
  37283. var tmp = b;
  37284. b = -s * a + coeffs[i2];
  37285. a = r * a + tmp;
  37286. }
  37287. var rightPart = rz.mul(rzz.mul(a).add(b));
  37288. return leftPart.add(rightPart);
  37289. }
  37290. function lgammaRecurrence(z) {
  37291. var signflips = 0;
  37292. var sb = 0;
  37293. var shiftprod = z;
  37294. z = z.add(1);
  37295. while (z.re <= SMALL_RE) {
  37296. shiftprod = shiftprod.mul(z);
  37297. var nsb = shiftprod.im < 0 ? 1 : 0;
  37298. if (nsb !== 0 && sb === 0)
  37299. signflips++;
  37300. sb = nsb;
  37301. z = z.add(1);
  37302. }
  37303. return lgammaStirling(z).sub(shiftprod.log()).sub(new Complex3(0, signflips * 2 * Math.PI * 1));
  37304. }
  37305. });
  37306. // node_modules/mathjs/lib/esm/function/probability/factorial.js
  37307. var name262 = "factorial";
  37308. var dependencies262 = ["typed", "gamma"];
  37309. var createFactorial = factory(name262, dependencies262, (_ref) => {
  37310. var {
  37311. typed: typed2,
  37312. gamma: gamma2
  37313. } = _ref;
  37314. return typed2(name262, {
  37315. number: function number2(n) {
  37316. if (n < 0) {
  37317. throw new Error("Value must be non-negative");
  37318. }
  37319. return gamma2(n + 1);
  37320. },
  37321. BigNumber: function BigNumber2(n) {
  37322. if (n.isNegative()) {
  37323. throw new Error("Value must be non-negative");
  37324. }
  37325. return gamma2(n.plus(1));
  37326. },
  37327. "Array | Matrix": typed2.referToSelf((self2) => (n) => deepMap(n, self2))
  37328. });
  37329. });
  37330. // node_modules/mathjs/lib/esm/function/probability/kldivergence.js
  37331. var name263 = "kldivergence";
  37332. var dependencies263 = ["typed", "matrix", "divide", "sum", "multiply", "map", "dotDivide", "log", "isNumeric"];
  37333. var createKldivergence = factory(name263, dependencies263, (_ref) => {
  37334. var {
  37335. typed: typed2,
  37336. matrix: matrix2,
  37337. divide: divide3,
  37338. sum: sum3,
  37339. multiply: multiply2,
  37340. map: map3,
  37341. dotDivide: dotDivide2,
  37342. log: log4,
  37343. isNumeric: isNumeric2
  37344. } = _ref;
  37345. return typed2(name263, {
  37346. "Array, Array": function ArrayArray(q, p) {
  37347. return _kldiv(matrix2(q), matrix2(p));
  37348. },
  37349. "Matrix, Array": function MatrixArray(q, p) {
  37350. return _kldiv(q, matrix2(p));
  37351. },
  37352. "Array, Matrix": function ArrayMatrix(q, p) {
  37353. return _kldiv(matrix2(q), p);
  37354. },
  37355. "Matrix, Matrix": function MatrixMatrix(q, p) {
  37356. return _kldiv(q, p);
  37357. }
  37358. });
  37359. function _kldiv(q, p) {
  37360. var plength = p.size().length;
  37361. var qlength = q.size().length;
  37362. if (plength > 1) {
  37363. throw new Error("first object must be one dimensional");
  37364. }
  37365. if (qlength > 1) {
  37366. throw new Error("second object must be one dimensional");
  37367. }
  37368. if (plength !== qlength) {
  37369. throw new Error("Length of two vectors must be equal");
  37370. }
  37371. var sumq = sum3(q);
  37372. if (sumq === 0) {
  37373. throw new Error("Sum of elements in first object must be non zero");
  37374. }
  37375. var sump = sum3(p);
  37376. if (sump === 0) {
  37377. throw new Error("Sum of elements in second object must be non zero");
  37378. }
  37379. var qnorm = divide3(q, sum3(q));
  37380. var pnorm = divide3(p, sum3(p));
  37381. var result = sum3(multiply2(qnorm, map3(dotDivide2(qnorm, pnorm), (x) => log4(x))));
  37382. if (isNumeric2(result)) {
  37383. return result;
  37384. } else {
  37385. return Number.NaN;
  37386. }
  37387. }
  37388. });
  37389. // node_modules/mathjs/lib/esm/function/probability/multinomial.js
  37390. var name264 = "multinomial";
  37391. var dependencies264 = ["typed", "add", "divide", "multiply", "factorial", "isInteger", "isPositive"];
  37392. var createMultinomial = factory(name264, dependencies264, (_ref) => {
  37393. var {
  37394. typed: typed2,
  37395. add: add3,
  37396. divide: divide3,
  37397. multiply: multiply2,
  37398. factorial: factorial2,
  37399. isInteger: isInteger3,
  37400. isPositive: isPositive2
  37401. } = _ref;
  37402. return typed2(name264, {
  37403. "Array | Matrix": function ArrayMatrix(a) {
  37404. var sum3 = 0;
  37405. var denom = 1;
  37406. deepForEach(a, function(ai) {
  37407. if (!isInteger3(ai) || !isPositive2(ai)) {
  37408. throw new TypeError("Positive integer value expected in function multinomial");
  37409. }
  37410. sum3 = add3(sum3, ai);
  37411. denom = multiply2(denom, factorial2(ai));
  37412. });
  37413. return divide3(factorial2(sum3), denom);
  37414. }
  37415. });
  37416. });
  37417. // node_modules/mathjs/lib/esm/function/probability/permutations.js
  37418. var name265 = "permutations";
  37419. var dependencies265 = ["typed", "factorial"];
  37420. var createPermutations = factory(name265, dependencies265, (_ref) => {
  37421. var {
  37422. typed: typed2,
  37423. factorial: factorial2
  37424. } = _ref;
  37425. return typed2(name265, {
  37426. "number | BigNumber": factorial2,
  37427. "number, number": function numberNumber(n, k) {
  37428. if (!isInteger(n) || n < 0) {
  37429. throw new TypeError("Positive integer value expected in function permutations");
  37430. }
  37431. if (!isInteger(k) || k < 0) {
  37432. throw new TypeError("Positive integer value expected in function permutations");
  37433. }
  37434. if (k > n) {
  37435. throw new TypeError("second argument k must be less than or equal to first argument n");
  37436. }
  37437. return product2(n - k + 1, n);
  37438. },
  37439. "BigNumber, BigNumber": function BigNumberBigNumber(n, k) {
  37440. var result, i2;
  37441. if (!isPositiveInteger3(n) || !isPositiveInteger3(k)) {
  37442. throw new TypeError("Positive integer value expected in function permutations");
  37443. }
  37444. if (k.gt(n)) {
  37445. throw new TypeError("second argument k must be less than or equal to first argument n");
  37446. }
  37447. var one = n.mul(0).add(1);
  37448. result = one;
  37449. for (i2 = n.minus(k).plus(1); i2.lte(n); i2 = i2.plus(1)) {
  37450. result = result.times(i2);
  37451. }
  37452. return result;
  37453. }
  37454. // TODO: implement support for collection in permutations
  37455. });
  37456. });
  37457. function isPositiveInteger3(n) {
  37458. return n.isInteger() && n.gte(0);
  37459. }
  37460. // node_modules/mathjs/lib/esm/function/probability/util/seededRNG.js
  37461. var import_seedrandom = __toESM(require_seedrandom2(), 1);
  37462. var singletonRandom = (0, import_seedrandom.default)(Date.now());
  37463. function createRng(randomSeed) {
  37464. var random3;
  37465. function setSeed(seed) {
  37466. random3 = seed === null ? singletonRandom : (0, import_seedrandom.default)(String(seed));
  37467. }
  37468. setSeed(randomSeed);
  37469. function rng() {
  37470. return random3();
  37471. }
  37472. return rng;
  37473. }
  37474. // node_modules/mathjs/lib/esm/function/probability/pickRandom.js
  37475. var name266 = "pickRandom";
  37476. var dependencies266 = ["typed", "config", "?on"];
  37477. var createPickRandom = factory(name266, dependencies266, (_ref) => {
  37478. var {
  37479. typed: typed2,
  37480. config: config4,
  37481. on
  37482. } = _ref;
  37483. var rng = createRng(config4.randomSeed);
  37484. if (on) {
  37485. on("config", function(curr, prev) {
  37486. if (curr.randomSeed !== prev.randomSeed) {
  37487. rng = createRng(curr.randomSeed);
  37488. }
  37489. });
  37490. }
  37491. return typed2(name266, {
  37492. "Array | Matrix": function ArrayMatrix(possibles) {
  37493. return _pickRandom(possibles, {});
  37494. },
  37495. "Array | Matrix, Object": function ArrayMatrixObject(possibles, options) {
  37496. return _pickRandom(possibles, options);
  37497. },
  37498. "Array | Matrix, number": function ArrayMatrixNumber(possibles, number2) {
  37499. return _pickRandom(possibles, {
  37500. number: number2
  37501. });
  37502. },
  37503. "Array | Matrix, Array | Matrix": function ArrayMatrixArrayMatrix(possibles, weights) {
  37504. return _pickRandom(possibles, {
  37505. weights
  37506. });
  37507. },
  37508. "Array | Matrix, Array | Matrix, number": function ArrayMatrixArrayMatrixNumber(possibles, weights, number2) {
  37509. return _pickRandom(possibles, {
  37510. number: number2,
  37511. weights
  37512. });
  37513. },
  37514. "Array | Matrix, number, Array | Matrix": function ArrayMatrixNumberArrayMatrix(possibles, number2, weights) {
  37515. return _pickRandom(possibles, {
  37516. number: number2,
  37517. weights
  37518. });
  37519. }
  37520. });
  37521. function _pickRandom(possibles, _ref2) {
  37522. var {
  37523. number: number2,
  37524. weights,
  37525. elementWise = true
  37526. } = _ref2;
  37527. var single = typeof number2 === "undefined";
  37528. if (single) {
  37529. number2 = 1;
  37530. }
  37531. var createMatrix2 = isMatrix(possibles) ? possibles.create : isMatrix(weights) ? weights.create : null;
  37532. possibles = possibles.valueOf();
  37533. if (weights) {
  37534. weights = weights.valueOf();
  37535. }
  37536. if (elementWise === true) {
  37537. possibles = flatten(possibles);
  37538. weights = flatten(weights);
  37539. }
  37540. var totalWeights = 0;
  37541. if (typeof weights !== "undefined") {
  37542. if (weights.length !== possibles.length) {
  37543. throw new Error("Weights must have the same length as possibles");
  37544. }
  37545. for (var i2 = 0, len = weights.length; i2 < len; i2++) {
  37546. if (!isNumber(weights[i2]) || weights[i2] < 0) {
  37547. throw new Error("Weights must be an array of positive numbers");
  37548. }
  37549. totalWeights += weights[i2];
  37550. }
  37551. }
  37552. var length = possibles.length;
  37553. var result = [];
  37554. var pick;
  37555. while (result.length < number2) {
  37556. if (typeof weights === "undefined") {
  37557. pick = possibles[Math.floor(rng() * length)];
  37558. } else {
  37559. var randKey = rng() * totalWeights;
  37560. for (var _i = 0, _len = possibles.length; _i < _len; _i++) {
  37561. randKey -= weights[_i];
  37562. if (randKey < 0) {
  37563. pick = possibles[_i];
  37564. break;
  37565. }
  37566. }
  37567. }
  37568. result.push(pick);
  37569. }
  37570. return single ? result[0] : createMatrix2 ? createMatrix2(result) : result;
  37571. }
  37572. });
  37573. // node_modules/mathjs/lib/esm/function/probability/util/randomMatrix.js
  37574. function randomMatrix(size2, random3) {
  37575. var data = [];
  37576. size2 = size2.slice(0);
  37577. if (size2.length > 1) {
  37578. for (var i2 = 0, length = size2.shift(); i2 < length; i2++) {
  37579. data.push(randomMatrix(size2, random3));
  37580. }
  37581. } else {
  37582. for (var _i = 0, _length = size2.shift(); _i < _length; _i++) {
  37583. data.push(random3());
  37584. }
  37585. }
  37586. return data;
  37587. }
  37588. // node_modules/mathjs/lib/esm/function/probability/random.js
  37589. var name267 = "random";
  37590. var dependencies267 = ["typed", "config", "?on"];
  37591. var createRandom = factory(name267, dependencies267, (_ref) => {
  37592. var {
  37593. typed: typed2,
  37594. config: config4,
  37595. on
  37596. } = _ref;
  37597. var rng = createRng(config4.randomSeed);
  37598. if (on) {
  37599. on("config", function(curr, prev) {
  37600. if (curr.randomSeed !== prev.randomSeed) {
  37601. rng = createRng(curr.randomSeed);
  37602. }
  37603. });
  37604. }
  37605. return typed2(name267, {
  37606. "": () => _random(0, 1),
  37607. number: (max3) => _random(0, max3),
  37608. "number, number": (min3, max3) => _random(min3, max3),
  37609. "Array | Matrix": (size2) => _randomMatrix(size2, 0, 1),
  37610. "Array | Matrix, number": (size2, max3) => _randomMatrix(size2, 0, max3),
  37611. "Array | Matrix, number, number": (size2, min3, max3) => _randomMatrix(size2, min3, max3)
  37612. });
  37613. function _randomMatrix(size2, min3, max3) {
  37614. var res = randomMatrix(size2.valueOf(), () => _random(min3, max3));
  37615. return isMatrix(size2) ? size2.create(res) : res;
  37616. }
  37617. function _random(min3, max3) {
  37618. return min3 + rng() * (max3 - min3);
  37619. }
  37620. });
  37621. var createRandomNumber = factory(name267, ["typed", "config", "?on"], (_ref2) => {
  37622. var {
  37623. typed: typed2,
  37624. config: config4,
  37625. on,
  37626. matrix: matrix2
  37627. } = _ref2;
  37628. var rng = createRng(config4.randomSeed);
  37629. if (on) {
  37630. on("config", function(curr, prev) {
  37631. if (curr.randomSeed !== prev.randomSeed) {
  37632. rng = createRng(curr.randomSeed);
  37633. }
  37634. });
  37635. }
  37636. return typed2(name267, {
  37637. "": () => _random(0, 1),
  37638. number: (max3) => _random(0, max3),
  37639. "number, number": (min3, max3) => _random(min3, max3)
  37640. });
  37641. function _random(min3, max3) {
  37642. return min3 + rng() * (max3 - min3);
  37643. }
  37644. });
  37645. // node_modules/mathjs/lib/esm/function/probability/randomInt.js
  37646. var name268 = "randomInt";
  37647. var dependencies268 = ["typed", "config", "?on"];
  37648. var createRandomInt = factory(name268, dependencies268, (_ref) => {
  37649. var {
  37650. typed: typed2,
  37651. config: config4,
  37652. on
  37653. } = _ref;
  37654. var rng = createRng(config4.randomSeed);
  37655. if (on) {
  37656. on("config", function(curr, prev) {
  37657. if (curr.randomSeed !== prev.randomSeed) {
  37658. rng = createRng(curr.randomSeed);
  37659. }
  37660. });
  37661. }
  37662. return typed2(name268, {
  37663. "": () => _randomInt(0, 1),
  37664. number: (max3) => _randomInt(0, max3),
  37665. "number, number": (min3, max3) => _randomInt(min3, max3),
  37666. "Array | Matrix": (size2) => _randomIntMatrix(size2, 0, 1),
  37667. "Array | Matrix, number": (size2, max3) => _randomIntMatrix(size2, 0, max3),
  37668. "Array | Matrix, number, number": (size2, min3, max3) => _randomIntMatrix(size2, min3, max3)
  37669. });
  37670. function _randomIntMatrix(size2, min3, max3) {
  37671. var res = randomMatrix(size2.valueOf(), () => _randomInt(min3, max3));
  37672. return isMatrix(size2) ? size2.create(res) : res;
  37673. }
  37674. function _randomInt(min3, max3) {
  37675. return Math.floor(min3 + rng() * (max3 - min3));
  37676. }
  37677. });
  37678. // node_modules/mathjs/lib/esm/function/combinatorics/stirlingS2.js
  37679. var name269 = "stirlingS2";
  37680. var dependencies269 = ["typed", "addScalar", "subtract", "multiplyScalar", "divideScalar", "pow", "factorial", "combinations", "isNegative", "isInteger", "number", "?bignumber", "larger"];
  37681. var createStirlingS2 = factory(name269, dependencies269, (_ref) => {
  37682. var {
  37683. typed: typed2,
  37684. addScalar: addScalar2,
  37685. subtract: subtract2,
  37686. multiplyScalar: multiplyScalar2,
  37687. divideScalar: divideScalar2,
  37688. pow: pow3,
  37689. factorial: factorial2,
  37690. combinations: combinations2,
  37691. isNegative: isNegative2,
  37692. isInteger: isInteger3,
  37693. number: number2,
  37694. bignumber: bignumber2,
  37695. larger: larger2
  37696. } = _ref;
  37697. var smallCache = [];
  37698. var bigCache = [];
  37699. return typed2(name269, {
  37700. "number | BigNumber, number | BigNumber": function numberBigNumberNumberBigNumber(n, k) {
  37701. if (!isInteger3(n) || isNegative2(n) || !isInteger3(k) || isNegative2(k)) {
  37702. throw new TypeError("Non-negative integer value expected in function stirlingS2");
  37703. } else if (larger2(k, n)) {
  37704. throw new TypeError("k must be less than or equal to n in function stirlingS2");
  37705. }
  37706. var big = !(isNumber(n) && isNumber(k));
  37707. var cache = big ? bigCache : smallCache;
  37708. var make = big ? bignumber2 : number2;
  37709. var nn = number2(n);
  37710. var nk = number2(k);
  37711. if (cache[nn] && cache[nn].length > nk) {
  37712. return cache[nn][nk];
  37713. }
  37714. for (var m = 0; m <= nn; ++m) {
  37715. if (!cache[m]) {
  37716. cache[m] = [m === 0 ? make(1) : make(0)];
  37717. }
  37718. if (m === 0)
  37719. continue;
  37720. var row2 = cache[m];
  37721. var prev = cache[m - 1];
  37722. for (var i2 = row2.length; i2 <= m && i2 <= nk; ++i2) {
  37723. if (i2 === m) {
  37724. row2[i2] = 1;
  37725. } else {
  37726. row2[i2] = addScalar2(multiplyScalar2(make(i2), prev[i2]), prev[i2 - 1]);
  37727. }
  37728. }
  37729. }
  37730. return cache[nn][nk];
  37731. }
  37732. });
  37733. });
  37734. // node_modules/mathjs/lib/esm/function/combinatorics/bellNumbers.js
  37735. var name270 = "bellNumbers";
  37736. var dependencies270 = ["typed", "addScalar", "isNegative", "isInteger", "stirlingS2"];
  37737. var createBellNumbers = factory(name270, dependencies270, (_ref) => {
  37738. var {
  37739. typed: typed2,
  37740. addScalar: addScalar2,
  37741. isNegative: isNegative2,
  37742. isInteger: isInteger3,
  37743. stirlingS2: stirlingS22
  37744. } = _ref;
  37745. return typed2(name270, {
  37746. "number | BigNumber": function numberBigNumber(n) {
  37747. if (!isInteger3(n) || isNegative2(n)) {
  37748. throw new TypeError("Non-negative integer value expected in function bellNumbers");
  37749. }
  37750. var result = 0;
  37751. for (var i2 = 0; i2 <= n; i2++) {
  37752. result = addScalar2(result, stirlingS22(n, i2));
  37753. }
  37754. return result;
  37755. }
  37756. });
  37757. });
  37758. // node_modules/mathjs/lib/esm/function/combinatorics/catalan.js
  37759. var name271 = "catalan";
  37760. var dependencies271 = ["typed", "addScalar", "divideScalar", "multiplyScalar", "combinations", "isNegative", "isInteger"];
  37761. var createCatalan = factory(name271, dependencies271, (_ref) => {
  37762. var {
  37763. typed: typed2,
  37764. addScalar: addScalar2,
  37765. divideScalar: divideScalar2,
  37766. multiplyScalar: multiplyScalar2,
  37767. combinations: combinations2,
  37768. isNegative: isNegative2,
  37769. isInteger: isInteger3
  37770. } = _ref;
  37771. return typed2(name271, {
  37772. "number | BigNumber": function numberBigNumber(n) {
  37773. if (!isInteger3(n) || isNegative2(n)) {
  37774. throw new TypeError("Non-negative integer value expected in function catalan");
  37775. }
  37776. return divideScalar2(combinations2(multiplyScalar2(n, 2), n), addScalar2(n, 1));
  37777. }
  37778. });
  37779. });
  37780. // node_modules/mathjs/lib/esm/function/combinatorics/composition.js
  37781. var name272 = "composition";
  37782. var dependencies272 = ["typed", "addScalar", "combinations", "isNegative", "isPositive", "isInteger", "larger"];
  37783. var createComposition = factory(name272, dependencies272, (_ref) => {
  37784. var {
  37785. typed: typed2,
  37786. addScalar: addScalar2,
  37787. combinations: combinations2,
  37788. isPositive: isPositive2,
  37789. isNegative: isNegative2,
  37790. isInteger: isInteger3,
  37791. larger: larger2
  37792. } = _ref;
  37793. return typed2(name272, {
  37794. "number | BigNumber, number | BigNumber": function numberBigNumberNumberBigNumber(n, k) {
  37795. if (!isInteger3(n) || !isPositive2(n) || !isInteger3(k) || !isPositive2(k)) {
  37796. throw new TypeError("Positive integer value expected in function composition");
  37797. } else if (larger2(k, n)) {
  37798. throw new TypeError("k must be less than or equal to n in function composition");
  37799. }
  37800. return combinations2(addScalar2(n, -1), addScalar2(k, -1));
  37801. }
  37802. });
  37803. });
  37804. // node_modules/mathjs/lib/esm/function/algebra/leafCount.js
  37805. var name273 = "leafCount";
  37806. var dependencies273 = ["parse", "typed"];
  37807. var createLeafCount = factory(name273, dependencies273, (_ref) => {
  37808. var {
  37809. parse: parse2,
  37810. typed: typed2
  37811. } = _ref;
  37812. function countLeaves(node) {
  37813. var count2 = 0;
  37814. node.forEach((n) => {
  37815. count2 += countLeaves(n);
  37816. });
  37817. return count2 || 1;
  37818. }
  37819. return typed2(name273, {
  37820. Node: function Node2(expr) {
  37821. return countLeaves(expr);
  37822. }
  37823. });
  37824. });
  37825. // node_modules/mathjs/lib/esm/function/algebra/simplify/wildcards.js
  37826. function isNumericNode(x) {
  37827. return isConstantNode(x) || isOperatorNode(x) && x.isUnary() && isConstantNode(x.args[0]);
  37828. }
  37829. function isConstantExpression(x) {
  37830. if (isConstantNode(x)) {
  37831. return true;
  37832. }
  37833. if ((isFunctionNode(x) || isOperatorNode(x)) && x.args.every(isConstantExpression)) {
  37834. return true;
  37835. }
  37836. if (isParenthesisNode(x) && isConstantExpression(x.content)) {
  37837. return true;
  37838. }
  37839. return false;
  37840. }
  37841. // node_modules/mathjs/lib/esm/function/algebra/simplify/util.js
  37842. function ownKeys2(object, enumerableOnly) {
  37843. var keys = Object.keys(object);
  37844. if (Object.getOwnPropertySymbols) {
  37845. var symbols = Object.getOwnPropertySymbols(object);
  37846. enumerableOnly && (symbols = symbols.filter(function(sym) {
  37847. return Object.getOwnPropertyDescriptor(object, sym).enumerable;
  37848. })), keys.push.apply(keys, symbols);
  37849. }
  37850. return keys;
  37851. }
  37852. function _objectSpread2(target) {
  37853. for (var i2 = 1; i2 < arguments.length; i2++) {
  37854. var source = null != arguments[i2] ? arguments[i2] : {};
  37855. i2 % 2 ? ownKeys2(Object(source), true).forEach(function(key) {
  37856. _defineProperty(target, key, source[key]);
  37857. }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys2(Object(source)).forEach(function(key) {
  37858. Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
  37859. });
  37860. }
  37861. return target;
  37862. }
  37863. var name274 = "simplifyUtil";
  37864. var dependencies274 = ["FunctionNode", "OperatorNode", "SymbolNode"];
  37865. var createUtil = factory(name274, dependencies274, (_ref) => {
  37866. var {
  37867. FunctionNode: FunctionNode2,
  37868. OperatorNode: OperatorNode2,
  37869. SymbolNode: SymbolNode2
  37870. } = _ref;
  37871. var T = true;
  37872. var F = false;
  37873. var defaultName = "defaultF";
  37874. var defaultContext = {
  37875. /* */
  37876. add: {
  37877. trivial: T,
  37878. total: T,
  37879. commutative: T,
  37880. associative: T
  37881. },
  37882. /**/
  37883. unaryPlus: {
  37884. trivial: T,
  37885. total: T,
  37886. commutative: T,
  37887. associative: T
  37888. },
  37889. /* */
  37890. subtract: {
  37891. trivial: F,
  37892. total: T,
  37893. commutative: F,
  37894. associative: F
  37895. },
  37896. /* */
  37897. multiply: {
  37898. trivial: T,
  37899. total: T,
  37900. commutative: T,
  37901. associative: T
  37902. },
  37903. /* */
  37904. divide: {
  37905. trivial: F,
  37906. total: T,
  37907. commutative: F,
  37908. associative: F
  37909. },
  37910. /* */
  37911. paren: {
  37912. trivial: T,
  37913. total: T,
  37914. commutative: T,
  37915. associative: F
  37916. },
  37917. /* */
  37918. defaultF: {
  37919. trivial: F,
  37920. total: T,
  37921. commutative: F,
  37922. associative: F
  37923. }
  37924. };
  37925. var realContext = {
  37926. divide: {
  37927. total: F
  37928. },
  37929. log: {
  37930. total: F
  37931. }
  37932. };
  37933. var positiveContext = {
  37934. subtract: {
  37935. total: F
  37936. },
  37937. abs: {
  37938. trivial: T
  37939. },
  37940. log: {
  37941. total: T
  37942. }
  37943. };
  37944. function hasProperty(nodeOrName, property) {
  37945. var context = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultContext;
  37946. var name302 = defaultName;
  37947. if (typeof nodeOrName === "string") {
  37948. name302 = nodeOrName;
  37949. } else if (isOperatorNode(nodeOrName)) {
  37950. name302 = nodeOrName.fn.toString();
  37951. } else if (isFunctionNode(nodeOrName)) {
  37952. name302 = nodeOrName.name;
  37953. } else if (isParenthesisNode(nodeOrName)) {
  37954. name302 = "paren";
  37955. }
  37956. if (hasOwnProperty2(context, name302)) {
  37957. var properties2 = context[name302];
  37958. if (hasOwnProperty2(properties2, property)) {
  37959. return properties2[property];
  37960. }
  37961. if (hasOwnProperty2(defaultContext, name302)) {
  37962. return defaultContext[name302][property];
  37963. }
  37964. }
  37965. if (hasOwnProperty2(context, defaultName)) {
  37966. var _properties = context[defaultName];
  37967. if (hasOwnProperty2(_properties, property)) {
  37968. return _properties[property];
  37969. }
  37970. return defaultContext[defaultName][property];
  37971. }
  37972. if (hasOwnProperty2(defaultContext, name302)) {
  37973. var _properties2 = defaultContext[name302];
  37974. if (hasOwnProperty2(_properties2, property)) {
  37975. return _properties2[property];
  37976. }
  37977. }
  37978. return defaultContext[defaultName][property];
  37979. }
  37980. function isCommutative(node) {
  37981. var context = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultContext;
  37982. return hasProperty(node, "commutative", context);
  37983. }
  37984. function isAssociative(node) {
  37985. var context = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultContext;
  37986. return hasProperty(node, "associative", context);
  37987. }
  37988. function mergeContext(primary, secondary) {
  37989. var merged = _objectSpread2({}, primary);
  37990. for (var prop in secondary) {
  37991. if (hasOwnProperty2(primary, prop)) {
  37992. merged[prop] = _objectSpread2(_objectSpread2({}, secondary[prop]), primary[prop]);
  37993. } else {
  37994. merged[prop] = secondary[prop];
  37995. }
  37996. }
  37997. return merged;
  37998. }
  37999. function flatten3(node, context) {
  38000. if (!node.args || node.args.length === 0) {
  38001. return node;
  38002. }
  38003. node.args = allChildren(node, context);
  38004. for (var i2 = 0; i2 < node.args.length; i2++) {
  38005. flatten3(node.args[i2], context);
  38006. }
  38007. }
  38008. function allChildren(node, context) {
  38009. var op;
  38010. var children = [];
  38011. var findChildren = function findChildren2(node2) {
  38012. for (var i2 = 0; i2 < node2.args.length; i2++) {
  38013. var child = node2.args[i2];
  38014. if (isOperatorNode(child) && op === child.op) {
  38015. findChildren2(child);
  38016. } else {
  38017. children.push(child);
  38018. }
  38019. }
  38020. };
  38021. if (isAssociative(node, context)) {
  38022. op = node.op;
  38023. findChildren(node);
  38024. return children;
  38025. } else {
  38026. return node.args;
  38027. }
  38028. }
  38029. function unflattenr(node, context) {
  38030. if (!node.args || node.args.length === 0) {
  38031. return;
  38032. }
  38033. var makeNode = createMakeNodeFunction(node);
  38034. var l = node.args.length;
  38035. for (var i2 = 0; i2 < l; i2++) {
  38036. unflattenr(node.args[i2], context);
  38037. }
  38038. if (l > 2 && isAssociative(node, context)) {
  38039. var curnode = node.args.pop();
  38040. while (node.args.length > 0) {
  38041. curnode = makeNode([node.args.pop(), curnode]);
  38042. }
  38043. node.args = curnode.args;
  38044. }
  38045. }
  38046. function unflattenl(node, context) {
  38047. if (!node.args || node.args.length === 0) {
  38048. return;
  38049. }
  38050. var makeNode = createMakeNodeFunction(node);
  38051. var l = node.args.length;
  38052. for (var i2 = 0; i2 < l; i2++) {
  38053. unflattenl(node.args[i2], context);
  38054. }
  38055. if (l > 2 && isAssociative(node, context)) {
  38056. var curnode = node.args.shift();
  38057. while (node.args.length > 0) {
  38058. curnode = makeNode([curnode, node.args.shift()]);
  38059. }
  38060. node.args = curnode.args;
  38061. }
  38062. }
  38063. function createMakeNodeFunction(node) {
  38064. if (isOperatorNode(node)) {
  38065. return function(args) {
  38066. try {
  38067. return new OperatorNode2(node.op, node.fn, args, node.implicit);
  38068. } catch (err) {
  38069. console.error(err);
  38070. return [];
  38071. }
  38072. };
  38073. } else {
  38074. return function(args) {
  38075. return new FunctionNode2(new SymbolNode2(node.name), args);
  38076. };
  38077. }
  38078. }
  38079. return {
  38080. createMakeNodeFunction,
  38081. hasProperty,
  38082. isCommutative,
  38083. isAssociative,
  38084. mergeContext,
  38085. flatten: flatten3,
  38086. allChildren,
  38087. unflattenr,
  38088. unflattenl,
  38089. defaultContext,
  38090. realContext,
  38091. positiveContext
  38092. };
  38093. });
  38094. // node_modules/mathjs/lib/esm/function/algebra/simplify.js
  38095. var name275 = "simplify";
  38096. var dependencies275 = ["config", "typed", "parse", "add", "subtract", "multiply", "divide", "pow", "isZero", "equal", "resolve", "simplifyConstant", "simplifyCore", "?fraction", "?bignumber", "mathWithTransform", "matrix", "AccessorNode", "ArrayNode", "ConstantNode", "FunctionNode", "IndexNode", "ObjectNode", "OperatorNode", "ParenthesisNode", "SymbolNode"];
  38097. var createSimplify = factory(name275, dependencies275, (_ref) => {
  38098. var {
  38099. config: config4,
  38100. typed: typed2,
  38101. parse: parse2,
  38102. add: add3,
  38103. subtract: subtract2,
  38104. multiply: multiply2,
  38105. divide: divide3,
  38106. pow: pow3,
  38107. isZero: isZero2,
  38108. equal: equal2,
  38109. resolve: resolve2,
  38110. simplifyConstant: simplifyConstant2,
  38111. simplifyCore: simplifyCore2,
  38112. fraction: fraction2,
  38113. bignumber: bignumber2,
  38114. mathWithTransform: mathWithTransform2,
  38115. matrix: matrix2,
  38116. AccessorNode: AccessorNode2,
  38117. ArrayNode: ArrayNode2,
  38118. ConstantNode: ConstantNode2,
  38119. FunctionNode: FunctionNode2,
  38120. IndexNode: IndexNode2,
  38121. ObjectNode: ObjectNode2,
  38122. OperatorNode: OperatorNode2,
  38123. ParenthesisNode: ParenthesisNode2,
  38124. SymbolNode: SymbolNode2
  38125. } = _ref;
  38126. var {
  38127. hasProperty,
  38128. isCommutative,
  38129. isAssociative,
  38130. mergeContext,
  38131. flatten: flatten3,
  38132. unflattenr,
  38133. unflattenl,
  38134. createMakeNodeFunction,
  38135. defaultContext,
  38136. realContext,
  38137. positiveContext
  38138. } = createUtil({
  38139. FunctionNode: FunctionNode2,
  38140. OperatorNode: OperatorNode2,
  38141. SymbolNode: SymbolNode2
  38142. });
  38143. typed2.addConversion({
  38144. from: "Object",
  38145. to: "Map",
  38146. convert: createMap
  38147. });
  38148. var simplify2 = typed2("simplify", {
  38149. Node: _simplify,
  38150. "Node, Map": (expr, scope) => _simplify(expr, false, scope),
  38151. "Node, Map, Object": (expr, scope, options) => _simplify(expr, false, scope, options),
  38152. "Node, Array": _simplify,
  38153. "Node, Array, Map": _simplify,
  38154. "Node, Array, Map, Object": _simplify
  38155. });
  38156. typed2.removeConversion({
  38157. from: "Object",
  38158. to: "Map",
  38159. convert: createMap
  38160. });
  38161. simplify2.defaultContext = defaultContext;
  38162. simplify2.realContext = realContext;
  38163. simplify2.positiveContext = positiveContext;
  38164. function removeParens(node) {
  38165. return node.transform(function(node2, path, parent) {
  38166. return isParenthesisNode(node2) ? removeParens(node2.content) : node2;
  38167. });
  38168. }
  38169. var SUPPORTED_CONSTANTS = {
  38170. true: true,
  38171. false: true,
  38172. e: true,
  38173. i: true,
  38174. Infinity: true,
  38175. LN2: true,
  38176. LN10: true,
  38177. LOG2E: true,
  38178. LOG10E: true,
  38179. NaN: true,
  38180. phi: true,
  38181. pi: true,
  38182. SQRT1_2: true,
  38183. SQRT2: true,
  38184. tau: true
  38185. // null: false,
  38186. // undefined: false,
  38187. // version: false,
  38188. };
  38189. simplify2.rules = [
  38190. simplifyCore2,
  38191. // { l: 'n+0', r: 'n' }, // simplifyCore
  38192. // { l: 'n^0', r: '1' }, // simplifyCore
  38193. // { l: '0*n', r: '0' }, // simplifyCore
  38194. // { l: 'n/n', r: '1'}, // simplifyCore
  38195. // { l: 'n^1', r: 'n' }, // simplifyCore
  38196. // { l: '+n1', r:'n1' }, // simplifyCore
  38197. // { l: 'n--n1', r:'n+n1' }, // simplifyCore
  38198. {
  38199. l: "log(e)",
  38200. r: "1"
  38201. },
  38202. // temporary rules
  38203. // Note initially we tend constants to the right because like-term
  38204. // collection prefers the left, and we would rather collect nonconstants
  38205. {
  38206. s: "n-n1 -> n+-n1",
  38207. // temporarily replace 'subtract' so we can further flatten the 'add' operator
  38208. assuming: {
  38209. subtract: {
  38210. total: true
  38211. }
  38212. }
  38213. },
  38214. {
  38215. s: "n-n -> 0",
  38216. // partial alternative when we can't always subtract
  38217. assuming: {
  38218. subtract: {
  38219. total: false
  38220. }
  38221. }
  38222. },
  38223. {
  38224. s: "-(cl*v) -> v * (-cl)",
  38225. // make non-constant terms positive
  38226. assuming: {
  38227. multiply: {
  38228. commutative: true
  38229. },
  38230. subtract: {
  38231. total: true
  38232. }
  38233. }
  38234. },
  38235. {
  38236. s: "-(cl*v) -> (-cl) * v",
  38237. // non-commutative version, part 1
  38238. assuming: {
  38239. multiply: {
  38240. commutative: false
  38241. },
  38242. subtract: {
  38243. total: true
  38244. }
  38245. }
  38246. },
  38247. {
  38248. s: "-(v*cl) -> v * (-cl)",
  38249. // non-commutative version, part 2
  38250. assuming: {
  38251. multiply: {
  38252. commutative: false
  38253. },
  38254. subtract: {
  38255. total: true
  38256. }
  38257. }
  38258. },
  38259. {
  38260. l: "-(n1/n2)",
  38261. r: "-n1/n2"
  38262. },
  38263. {
  38264. l: "-v",
  38265. r: "v * (-1)"
  38266. },
  38267. // finish making non-constant terms positive
  38268. {
  38269. l: "(n1 + n2)*(-1)",
  38270. r: "n1*(-1) + n2*(-1)",
  38271. repeat: true
  38272. },
  38273. // expand negations to achieve as much sign cancellation as possible
  38274. {
  38275. l: "n/n1^n2",
  38276. r: "n*n1^-n2"
  38277. },
  38278. // temporarily replace 'divide' so we can further flatten the 'multiply' operator
  38279. {
  38280. l: "n/n1",
  38281. r: "n*n1^-1"
  38282. },
  38283. {
  38284. s: "(n1*n2)^n3 -> n1^n3 * n2^n3",
  38285. assuming: {
  38286. multiply: {
  38287. commutative: true
  38288. }
  38289. }
  38290. },
  38291. {
  38292. s: "(n1*n2)^(-1) -> n2^(-1) * n1^(-1)",
  38293. assuming: {
  38294. multiply: {
  38295. commutative: false
  38296. }
  38297. }
  38298. },
  38299. // expand nested exponentiation
  38300. {
  38301. s: "(n ^ n1) ^ n2 -> n ^ (n1 * n2)",
  38302. assuming: {
  38303. divide: {
  38304. total: true
  38305. }
  38306. }
  38307. // 1/(1/n) = n needs 1/n to exist
  38308. },
  38309. // collect like factors; into a sum, only do this for nonconstants
  38310. {
  38311. l: " vd * ( vd * n1 + n2)",
  38312. r: "vd^2 * n1 + vd * n2"
  38313. },
  38314. {
  38315. s: " vd * (vd^n4 * n1 + n2) -> vd^(1+n4) * n1 + vd * n2",
  38316. assuming: {
  38317. divide: {
  38318. total: true
  38319. }
  38320. }
  38321. // v*1/v = v^(1+-1) needs 1/v
  38322. },
  38323. {
  38324. s: "vd^n3 * ( vd * n1 + n2) -> vd^(n3+1) * n1 + vd^n3 * n2",
  38325. assuming: {
  38326. divide: {
  38327. total: true
  38328. }
  38329. }
  38330. },
  38331. {
  38332. s: "vd^n3 * (vd^n4 * n1 + n2) -> vd^(n3+n4) * n1 + vd^n3 * n2",
  38333. assuming: {
  38334. divide: {
  38335. total: true
  38336. }
  38337. }
  38338. },
  38339. {
  38340. l: "n*n",
  38341. r: "n^2"
  38342. },
  38343. {
  38344. s: "n * n^n1 -> n^(n1+1)",
  38345. assuming: {
  38346. divide: {
  38347. total: true
  38348. }
  38349. }
  38350. // n*1/n = n^(-1+1) needs 1/n
  38351. },
  38352. {
  38353. s: "n^n1 * n^n2 -> n^(n1+n2)",
  38354. assuming: {
  38355. divide: {
  38356. total: true
  38357. }
  38358. }
  38359. // ditto for n^2*1/n^2
  38360. },
  38361. // Unfortunately, to deal with more complicated cancellations, it
  38362. // becomes necessary to simplify constants twice per pass. It's not
  38363. // terribly expensive compared to matching rules, so this should not
  38364. // pose a performance problem.
  38365. simplifyConstant2,
  38366. // First: before collecting like terms
  38367. // collect like terms
  38368. {
  38369. s: "n+n -> 2*n",
  38370. assuming: {
  38371. add: {
  38372. total: true
  38373. }
  38374. }
  38375. // 2 = 1 + 1 needs to exist
  38376. },
  38377. {
  38378. l: "n+-n",
  38379. r: "0"
  38380. },
  38381. {
  38382. l: "vd*n + vd",
  38383. r: "vd*(n+1)"
  38384. },
  38385. // NOTE: leftmost position is special:
  38386. {
  38387. l: "n3*n1 + n3*n2",
  38388. r: "n3*(n1+n2)"
  38389. },
  38390. // All sub-monomials tried there.
  38391. {
  38392. l: "n3^(-n4)*n1 + n3 * n2",
  38393. r: "n3^(-n4)*(n1 + n3^(n4+1) *n2)"
  38394. },
  38395. {
  38396. l: "n3^(-n4)*n1 + n3^n5 * n2",
  38397. r: "n3^(-n4)*(n1 + n3^(n4+n5)*n2)"
  38398. },
  38399. // noncommutative additional cases (term collection & factoring)
  38400. {
  38401. s: "n*vd + vd -> (n+1)*vd",
  38402. assuming: {
  38403. multiply: {
  38404. commutative: false
  38405. }
  38406. }
  38407. },
  38408. {
  38409. s: "vd + n*vd -> (1+n)*vd",
  38410. assuming: {
  38411. multiply: {
  38412. commutative: false
  38413. }
  38414. }
  38415. },
  38416. {
  38417. s: "n1*n3 + n2*n3 -> (n1+n2)*n3",
  38418. assuming: {
  38419. multiply: {
  38420. commutative: false
  38421. }
  38422. }
  38423. },
  38424. {
  38425. s: "n^n1 * n -> n^(n1+1)",
  38426. assuming: {
  38427. divide: {
  38428. total: true
  38429. },
  38430. multiply: {
  38431. commutative: false
  38432. }
  38433. }
  38434. },
  38435. {
  38436. s: "n1*n3^(-n4) + n2 * n3 -> (n1 + n2*n3^(n4 + 1))*n3^(-n4)",
  38437. assuming: {
  38438. multiply: {
  38439. commutative: false
  38440. }
  38441. }
  38442. },
  38443. {
  38444. s: "n1*n3^(-n4) + n2 * n3^n5 -> (n1 + n2*n3^(n4 + n5))*n3^(-n4)",
  38445. assuming: {
  38446. multiply: {
  38447. commutative: false
  38448. }
  38449. }
  38450. },
  38451. {
  38452. l: "n*cd + cd",
  38453. r: "(n+1)*cd"
  38454. },
  38455. {
  38456. s: "cd*n + cd -> cd*(n+1)",
  38457. assuming: {
  38458. multiply: {
  38459. commutative: false
  38460. }
  38461. }
  38462. },
  38463. {
  38464. s: "cd + cd*n -> cd*(1+n)",
  38465. assuming: {
  38466. multiply: {
  38467. commutative: false
  38468. }
  38469. }
  38470. },
  38471. simplifyConstant2,
  38472. // Second: before returning expressions to "standard form"
  38473. // make factors positive (and undo 'make non-constant terms positive')
  38474. {
  38475. s: "(-n)*n1 -> -(n*n1)",
  38476. assuming: {
  38477. subtract: {
  38478. total: true
  38479. }
  38480. }
  38481. },
  38482. {
  38483. s: "n1*(-n) -> -(n1*n)",
  38484. // in case * non-commutative
  38485. assuming: {
  38486. subtract: {
  38487. total: true
  38488. },
  38489. multiply: {
  38490. commutative: false
  38491. }
  38492. }
  38493. },
  38494. // final ordering of constants
  38495. {
  38496. s: "ce+ve -> ve+ce",
  38497. assuming: {
  38498. add: {
  38499. commutative: true
  38500. }
  38501. },
  38502. imposeContext: {
  38503. add: {
  38504. commutative: false
  38505. }
  38506. }
  38507. },
  38508. {
  38509. s: "vd*cd -> cd*vd",
  38510. assuming: {
  38511. multiply: {
  38512. commutative: true
  38513. }
  38514. },
  38515. imposeContext: {
  38516. multiply: {
  38517. commutative: false
  38518. }
  38519. }
  38520. },
  38521. // undo temporary rules
  38522. // { l: '(-1) * n', r: '-n' }, // #811 added test which proved this is redundant
  38523. {
  38524. l: "n+-n1",
  38525. r: "n-n1"
  38526. },
  38527. // undo replace 'subtract'
  38528. {
  38529. s: "n*(n1^-1) -> n/n1",
  38530. // undo replace 'divide'; for * commutative
  38531. assuming: {
  38532. multiply: {
  38533. commutative: true
  38534. }
  38535. }
  38536. // o.w. / not conventional
  38537. },
  38538. {
  38539. s: "n*n1^-n2 -> n/n1^n2",
  38540. assuming: {
  38541. multiply: {
  38542. commutative: true
  38543. }
  38544. }
  38545. // o.w. / not conventional
  38546. },
  38547. {
  38548. s: "n^-1 -> 1/n",
  38549. assuming: {
  38550. multiply: {
  38551. commutative: true
  38552. }
  38553. }
  38554. // o.w. / not conventional
  38555. },
  38556. {
  38557. l: "n^1",
  38558. r: "n"
  38559. },
  38560. // can be produced by power cancellation
  38561. {
  38562. s: "n*(n1/n2) -> (n*n1)/n2",
  38563. // '*' before '/'
  38564. assuming: {
  38565. multiply: {
  38566. associative: true
  38567. }
  38568. }
  38569. },
  38570. {
  38571. s: "n-(n1+n2) -> n-n1-n2",
  38572. // '-' before '+'
  38573. assuming: {
  38574. addition: {
  38575. associative: true,
  38576. commutative: true
  38577. }
  38578. }
  38579. },
  38580. // { l: '(n1/n2)/n3', r: 'n1/(n2*n3)' },
  38581. // { l: '(n*n1)/(n*n2)', r: 'n1/n2' },
  38582. // simplifyConstant can leave an extra factor of 1, which can always
  38583. // be eliminated, since the identity always commutes
  38584. {
  38585. l: "1*n",
  38586. r: "n",
  38587. imposeContext: {
  38588. multiply: {
  38589. commutative: true
  38590. }
  38591. }
  38592. },
  38593. {
  38594. s: "n1/(n2/n3) -> (n1*n3)/n2",
  38595. assuming: {
  38596. multiply: {
  38597. associative: true
  38598. }
  38599. }
  38600. },
  38601. {
  38602. l: "n1/(-n2)",
  38603. r: "-n1/n2"
  38604. }
  38605. ];
  38606. function _canonicalizeRule(ruleObject, context) {
  38607. var newRule = {};
  38608. if (ruleObject.s) {
  38609. var lr = ruleObject.s.split("->");
  38610. if (lr.length === 2) {
  38611. newRule.l = lr[0];
  38612. newRule.r = lr[1];
  38613. } else {
  38614. throw SyntaxError("Could not parse rule: " + ruleObject.s);
  38615. }
  38616. } else {
  38617. newRule.l = ruleObject.l;
  38618. newRule.r = ruleObject.r;
  38619. }
  38620. newRule.l = removeParens(parse2(newRule.l));
  38621. newRule.r = removeParens(parse2(newRule.r));
  38622. for (var prop of ["imposeContext", "repeat", "assuming"]) {
  38623. if (prop in ruleObject) {
  38624. newRule[prop] = ruleObject[prop];
  38625. }
  38626. }
  38627. if (ruleObject.evaluate) {
  38628. newRule.evaluate = parse2(ruleObject.evaluate);
  38629. }
  38630. if (isAssociative(newRule.l, context)) {
  38631. var nonCommutative = !isCommutative(newRule.l, context);
  38632. var leftExpandsym;
  38633. if (nonCommutative)
  38634. leftExpandsym = _getExpandPlaceholderSymbol();
  38635. var makeNode = createMakeNodeFunction(newRule.l);
  38636. var expandsym = _getExpandPlaceholderSymbol();
  38637. newRule.expanded = {};
  38638. newRule.expanded.l = makeNode([newRule.l, expandsym]);
  38639. flatten3(newRule.expanded.l, context);
  38640. unflattenr(newRule.expanded.l, context);
  38641. newRule.expanded.r = makeNode([newRule.r, expandsym]);
  38642. if (nonCommutative) {
  38643. newRule.expandedNC1 = {};
  38644. newRule.expandedNC1.l = makeNode([leftExpandsym, newRule.l]);
  38645. newRule.expandedNC1.r = makeNode([leftExpandsym, newRule.r]);
  38646. newRule.expandedNC2 = {};
  38647. newRule.expandedNC2.l = makeNode([leftExpandsym, newRule.expanded.l]);
  38648. newRule.expandedNC2.r = makeNode([leftExpandsym, newRule.expanded.r]);
  38649. }
  38650. }
  38651. return newRule;
  38652. }
  38653. function _buildRules(rules, context) {
  38654. var ruleSet = [];
  38655. for (var i2 = 0; i2 < rules.length; i2++) {
  38656. var rule = rules[i2];
  38657. var newRule = void 0;
  38658. var ruleType = typeof rule;
  38659. switch (ruleType) {
  38660. case "string":
  38661. rule = {
  38662. s: rule
  38663. };
  38664. case "object":
  38665. newRule = _canonicalizeRule(rule, context);
  38666. break;
  38667. case "function":
  38668. newRule = rule;
  38669. break;
  38670. default:
  38671. throw TypeError("Unsupported type of rule: " + ruleType);
  38672. }
  38673. ruleSet.push(newRule);
  38674. }
  38675. return ruleSet;
  38676. }
  38677. var _lastsym = 0;
  38678. function _getExpandPlaceholderSymbol() {
  38679. return new SymbolNode2("_p" + _lastsym++);
  38680. }
  38681. function _simplify(expr, rules) {
  38682. var scope = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : createEmptyMap();
  38683. var options = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
  38684. var debug = options.consoleDebug;
  38685. rules = _buildRules(rules || simplify2.rules, options.context);
  38686. var res = resolve2(expr, scope);
  38687. res = removeParens(res);
  38688. var visited = {};
  38689. var str = res.toString({
  38690. parenthesis: "all"
  38691. });
  38692. while (!visited[str]) {
  38693. visited[str] = true;
  38694. _lastsym = 0;
  38695. var laststr = str;
  38696. if (debug)
  38697. console.log("Working on: ", str);
  38698. for (var i2 = 0; i2 < rules.length; i2++) {
  38699. var rulestr = "";
  38700. if (typeof rules[i2] === "function") {
  38701. res = rules[i2](res, options);
  38702. if (debug)
  38703. rulestr = rules[i2].name;
  38704. } else {
  38705. flatten3(res, options.context);
  38706. res = applyRule(res, rules[i2], options.context);
  38707. if (debug) {
  38708. rulestr = "".concat(rules[i2].l.toString(), " -> ").concat(rules[i2].r.toString());
  38709. }
  38710. }
  38711. if (debug) {
  38712. var newstr = res.toString({
  38713. parenthesis: "all"
  38714. });
  38715. if (newstr !== laststr) {
  38716. console.log("Applying", rulestr, "produced", newstr);
  38717. laststr = newstr;
  38718. }
  38719. }
  38720. unflattenl(res, options.context);
  38721. }
  38722. str = res.toString({
  38723. parenthesis: "all"
  38724. });
  38725. }
  38726. return res;
  38727. }
  38728. function mapRule(nodes, rule, context) {
  38729. var resNodes = nodes;
  38730. if (nodes) {
  38731. for (var i2 = 0; i2 < nodes.length; ++i2) {
  38732. var newNode = applyRule(nodes[i2], rule, context);
  38733. if (newNode !== nodes[i2]) {
  38734. if (resNodes === nodes) {
  38735. resNodes = nodes.slice();
  38736. }
  38737. resNodes[i2] = newNode;
  38738. }
  38739. }
  38740. }
  38741. return resNodes;
  38742. }
  38743. function applyRule(node, rule, context) {
  38744. if (rule.assuming) {
  38745. for (var symbol in rule.assuming) {
  38746. for (var property in rule.assuming[symbol]) {
  38747. if (hasProperty(symbol, property, context) !== rule.assuming[symbol][property]) {
  38748. return node;
  38749. }
  38750. }
  38751. }
  38752. }
  38753. var mergedContext = mergeContext(rule.imposeContext, context);
  38754. var res = node;
  38755. if (res instanceof OperatorNode2 || res instanceof FunctionNode2) {
  38756. var newArgs = mapRule(res.args, rule, context);
  38757. if (newArgs !== res.args) {
  38758. res = res.clone();
  38759. res.args = newArgs;
  38760. }
  38761. } else if (res instanceof ParenthesisNode2) {
  38762. if (res.content) {
  38763. var newContent = applyRule(res.content, rule, context);
  38764. if (newContent !== res.content) {
  38765. res = new ParenthesisNode2(newContent);
  38766. }
  38767. }
  38768. } else if (res instanceof ArrayNode2) {
  38769. var newItems = mapRule(res.items, rule, context);
  38770. if (newItems !== res.items) {
  38771. res = new ArrayNode2(newItems);
  38772. }
  38773. } else if (res instanceof AccessorNode2) {
  38774. var newObj = res.object;
  38775. if (res.object) {
  38776. newObj = applyRule(res.object, rule, context);
  38777. }
  38778. var newIndex = res.index;
  38779. if (res.index) {
  38780. newIndex = applyRule(res.index, rule, context);
  38781. }
  38782. if (newObj !== res.object || newIndex !== res.index) {
  38783. res = new AccessorNode2(newObj, newIndex);
  38784. }
  38785. } else if (res instanceof IndexNode2) {
  38786. var newDims = mapRule(res.dimensions, rule, context);
  38787. if (newDims !== res.dimensions) {
  38788. res = new IndexNode2(newDims);
  38789. }
  38790. } else if (res instanceof ObjectNode2) {
  38791. var changed = false;
  38792. var newProps = {};
  38793. for (var prop in res.properties) {
  38794. newProps[prop] = applyRule(res.properties[prop], rule, context);
  38795. if (newProps[prop] !== res.properties[prop]) {
  38796. changed = true;
  38797. }
  38798. }
  38799. if (changed) {
  38800. res = new ObjectNode2(newProps);
  38801. }
  38802. }
  38803. var repl = rule.r;
  38804. var matches = _ruleMatch(rule.l, res, mergedContext)[0];
  38805. if (!matches && rule.expanded) {
  38806. repl = rule.expanded.r;
  38807. matches = _ruleMatch(rule.expanded.l, res, mergedContext)[0];
  38808. }
  38809. if (!matches && rule.expandedNC1) {
  38810. repl = rule.expandedNC1.r;
  38811. matches = _ruleMatch(rule.expandedNC1.l, res, mergedContext)[0];
  38812. if (!matches) {
  38813. repl = rule.expandedNC2.r;
  38814. matches = _ruleMatch(rule.expandedNC2.l, res, mergedContext)[0];
  38815. }
  38816. }
  38817. if (matches) {
  38818. var implicit = res.implicit;
  38819. res = repl.clone();
  38820. if (implicit && "implicit" in repl) {
  38821. res.implicit = true;
  38822. }
  38823. res = res.transform(function(node2) {
  38824. if (node2.isSymbolNode && hasOwnProperty2(matches.placeholders, node2.name)) {
  38825. return matches.placeholders[node2.name].clone();
  38826. } else {
  38827. return node2;
  38828. }
  38829. });
  38830. }
  38831. if (rule.repeat && res !== node) {
  38832. res = applyRule(res, rule, context);
  38833. }
  38834. return res;
  38835. }
  38836. function getSplits(node, context) {
  38837. var res = [];
  38838. var right, rightArgs;
  38839. var makeNode = createMakeNodeFunction(node);
  38840. if (isCommutative(node, context)) {
  38841. for (var i2 = 0; i2 < node.args.length; i2++) {
  38842. rightArgs = node.args.slice(0);
  38843. rightArgs.splice(i2, 1);
  38844. right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
  38845. res.push(makeNode([node.args[i2], right]));
  38846. }
  38847. } else {
  38848. for (var _i = 1; _i < node.args.length; _i++) {
  38849. var left = node.args[0];
  38850. if (_i > 1) {
  38851. left = makeNode(node.args.slice(0, _i));
  38852. }
  38853. rightArgs = node.args.slice(_i);
  38854. right = rightArgs.length === 1 ? rightArgs[0] : makeNode(rightArgs);
  38855. res.push(makeNode([left, right]));
  38856. }
  38857. }
  38858. return res;
  38859. }
  38860. function mergeMatch(match1, match2) {
  38861. var res = {
  38862. placeholders: {}
  38863. };
  38864. if (!match1.placeholders && !match2.placeholders) {
  38865. return res;
  38866. } else if (!match1.placeholders) {
  38867. return match2;
  38868. } else if (!match2.placeholders) {
  38869. return match1;
  38870. }
  38871. for (var key in match1.placeholders) {
  38872. if (hasOwnProperty2(match1.placeholders, key)) {
  38873. res.placeholders[key] = match1.placeholders[key];
  38874. if (hasOwnProperty2(match2.placeholders, key)) {
  38875. if (!_exactMatch(match1.placeholders[key], match2.placeholders[key])) {
  38876. return null;
  38877. }
  38878. }
  38879. }
  38880. }
  38881. for (var _key in match2.placeholders) {
  38882. if (hasOwnProperty2(match2.placeholders, _key)) {
  38883. res.placeholders[_key] = match2.placeholders[_key];
  38884. }
  38885. }
  38886. return res;
  38887. }
  38888. function combineChildMatches(list1, list2) {
  38889. var res = [];
  38890. if (list1.length === 0 || list2.length === 0) {
  38891. return res;
  38892. }
  38893. var merged;
  38894. for (var i1 = 0; i1 < list1.length; i1++) {
  38895. for (var i2 = 0; i2 < list2.length; i2++) {
  38896. merged = mergeMatch(list1[i1], list2[i2]);
  38897. if (merged) {
  38898. res.push(merged);
  38899. }
  38900. }
  38901. }
  38902. return res;
  38903. }
  38904. function mergeChildMatches(childMatches) {
  38905. if (childMatches.length === 0) {
  38906. return childMatches;
  38907. }
  38908. var sets = childMatches.reduce(combineChildMatches);
  38909. var uniqueSets = [];
  38910. var unique = {};
  38911. for (var i2 = 0; i2 < sets.length; i2++) {
  38912. var s = JSON.stringify(sets[i2]);
  38913. if (!unique[s]) {
  38914. unique[s] = true;
  38915. uniqueSets.push(sets[i2]);
  38916. }
  38917. }
  38918. return uniqueSets;
  38919. }
  38920. function _ruleMatch(rule, node, context, isSplit) {
  38921. var res = [{
  38922. placeholders: {}
  38923. }];
  38924. if (rule instanceof OperatorNode2 && node instanceof OperatorNode2 || rule instanceof FunctionNode2 && node instanceof FunctionNode2) {
  38925. if (rule instanceof OperatorNode2) {
  38926. if (rule.op !== node.op || rule.fn !== node.fn) {
  38927. return [];
  38928. }
  38929. } else if (rule instanceof FunctionNode2) {
  38930. if (rule.name !== node.name) {
  38931. return [];
  38932. }
  38933. }
  38934. if (node.args.length === 1 && rule.args.length === 1 || !isAssociative(node, context) && node.args.length === rule.args.length || isSplit) {
  38935. var childMatches = [];
  38936. for (var i2 = 0; i2 < rule.args.length; i2++) {
  38937. var childMatch = _ruleMatch(rule.args[i2], node.args[i2], context);
  38938. if (childMatch.length === 0) {
  38939. break;
  38940. }
  38941. childMatches.push(childMatch);
  38942. }
  38943. if (childMatches.length !== rule.args.length) {
  38944. if (!isCommutative(node, context) || // exact match in order needed
  38945. rule.args.length === 1) {
  38946. return [];
  38947. }
  38948. if (rule.args.length > 2) {
  38949. throw new Error("permuting >2 commutative non-associative rule arguments not yet implemented");
  38950. }
  38951. var leftMatch = _ruleMatch(rule.args[0], node.args[1], context);
  38952. if (leftMatch.length === 0) {
  38953. return [];
  38954. }
  38955. var rightMatch = _ruleMatch(rule.args[1], node.args[0], context);
  38956. if (rightMatch.length === 0) {
  38957. return [];
  38958. }
  38959. childMatches = [leftMatch, rightMatch];
  38960. }
  38961. res = mergeChildMatches(childMatches);
  38962. } else if (node.args.length >= 2 && rule.args.length === 2) {
  38963. var splits = getSplits(node, context);
  38964. var splitMatches = [];
  38965. for (var _i2 = 0; _i2 < splits.length; _i2++) {
  38966. var matchSet = _ruleMatch(rule, splits[_i2], context, true);
  38967. splitMatches = splitMatches.concat(matchSet);
  38968. }
  38969. return splitMatches;
  38970. } else if (rule.args.length > 2) {
  38971. throw Error("Unexpected non-binary associative function: " + rule.toString());
  38972. } else {
  38973. return [];
  38974. }
  38975. } else if (rule instanceof SymbolNode2) {
  38976. if (rule.name.length === 0) {
  38977. throw new Error("Symbol in rule has 0 length...!?");
  38978. }
  38979. if (SUPPORTED_CONSTANTS[rule.name]) {
  38980. if (rule.name !== node.name) {
  38981. return [];
  38982. }
  38983. } else {
  38984. switch (rule.name[1] >= "a" && rule.name[1] <= "z" ? rule.name.substring(0, 2) : rule.name[0]) {
  38985. case "n":
  38986. case "_p":
  38987. res[0].placeholders[rule.name] = node;
  38988. break;
  38989. case "c":
  38990. case "cl":
  38991. if (isConstantNode(node)) {
  38992. res[0].placeholders[rule.name] = node;
  38993. } else {
  38994. return [];
  38995. }
  38996. break;
  38997. case "v":
  38998. if (!isConstantNode(node)) {
  38999. res[0].placeholders[rule.name] = node;
  39000. } else {
  39001. return [];
  39002. }
  39003. break;
  39004. case "vl":
  39005. if (isSymbolNode(node)) {
  39006. res[0].placeholders[rule.name] = node;
  39007. } else {
  39008. return [];
  39009. }
  39010. break;
  39011. case "cd":
  39012. if (isNumericNode(node)) {
  39013. res[0].placeholders[rule.name] = node;
  39014. } else {
  39015. return [];
  39016. }
  39017. break;
  39018. case "vd":
  39019. if (!isNumericNode(node)) {
  39020. res[0].placeholders[rule.name] = node;
  39021. } else {
  39022. return [];
  39023. }
  39024. break;
  39025. case "ce":
  39026. if (isConstantExpression(node)) {
  39027. res[0].placeholders[rule.name] = node;
  39028. } else {
  39029. return [];
  39030. }
  39031. break;
  39032. case "ve":
  39033. if (!isConstantExpression(node)) {
  39034. res[0].placeholders[rule.name] = node;
  39035. } else {
  39036. return [];
  39037. }
  39038. break;
  39039. default:
  39040. throw new Error("Invalid symbol in rule: " + rule.name);
  39041. }
  39042. }
  39043. } else if (rule instanceof ConstantNode2) {
  39044. if (!equal2(rule.value, node.value)) {
  39045. return [];
  39046. }
  39047. } else {
  39048. return [];
  39049. }
  39050. return res;
  39051. }
  39052. function _exactMatch(p, q) {
  39053. if (p instanceof ConstantNode2 && q instanceof ConstantNode2) {
  39054. if (!equal2(p.value, q.value)) {
  39055. return false;
  39056. }
  39057. } else if (p instanceof SymbolNode2 && q instanceof SymbolNode2) {
  39058. if (p.name !== q.name) {
  39059. return false;
  39060. }
  39061. } else if (p instanceof OperatorNode2 && q instanceof OperatorNode2 || p instanceof FunctionNode2 && q instanceof FunctionNode2) {
  39062. if (p instanceof OperatorNode2) {
  39063. if (p.op !== q.op || p.fn !== q.fn) {
  39064. return false;
  39065. }
  39066. } else if (p instanceof FunctionNode2) {
  39067. if (p.name !== q.name) {
  39068. return false;
  39069. }
  39070. }
  39071. if (p.args.length !== q.args.length) {
  39072. return false;
  39073. }
  39074. for (var i2 = 0; i2 < p.args.length; i2++) {
  39075. if (!_exactMatch(p.args[i2], q.args[i2])) {
  39076. return false;
  39077. }
  39078. }
  39079. } else {
  39080. return false;
  39081. }
  39082. return true;
  39083. }
  39084. return simplify2;
  39085. });
  39086. // node_modules/mathjs/lib/esm/function/algebra/simplifyConstant.js
  39087. var name276 = "simplifyConstant";
  39088. var dependencies276 = ["typed", "config", "mathWithTransform", "matrix", "?fraction", "?bignumber", "AccessorNode", "ArrayNode", "ConstantNode", "FunctionNode", "IndexNode", "ObjectNode", "OperatorNode", "SymbolNode"];
  39089. var createSimplifyConstant = factory(name276, dependencies276, (_ref) => {
  39090. var {
  39091. typed: typed2,
  39092. config: config4,
  39093. mathWithTransform: mathWithTransform2,
  39094. matrix: matrix2,
  39095. fraction: fraction2,
  39096. bignumber: bignumber2,
  39097. AccessorNode: AccessorNode2,
  39098. ArrayNode: ArrayNode2,
  39099. ConstantNode: ConstantNode2,
  39100. FunctionNode: FunctionNode2,
  39101. IndexNode: IndexNode2,
  39102. ObjectNode: ObjectNode2,
  39103. OperatorNode: OperatorNode2,
  39104. SymbolNode: SymbolNode2
  39105. } = _ref;
  39106. var {
  39107. isCommutative,
  39108. isAssociative,
  39109. allChildren,
  39110. createMakeNodeFunction
  39111. } = createUtil({
  39112. FunctionNode: FunctionNode2,
  39113. OperatorNode: OperatorNode2,
  39114. SymbolNode: SymbolNode2
  39115. });
  39116. var simplifyConstant2 = typed2("simplifyConstant", {
  39117. Node: (node) => _ensureNode(foldFraction(node, {})),
  39118. "Node, Object": function NodeObject(expr, options) {
  39119. return _ensureNode(foldFraction(expr, options));
  39120. }
  39121. });
  39122. function _removeFractions(thing) {
  39123. if (isFraction(thing)) {
  39124. return thing.valueOf();
  39125. }
  39126. if (thing instanceof Array) {
  39127. return thing.map(_removeFractions);
  39128. }
  39129. if (isMatrix(thing)) {
  39130. return matrix2(_removeFractions(thing.valueOf()));
  39131. }
  39132. return thing;
  39133. }
  39134. function _eval(fnname, args, options) {
  39135. try {
  39136. return mathWithTransform2[fnname].apply(null, args);
  39137. } catch (ignore) {
  39138. args = args.map(_removeFractions);
  39139. return _toNumber(mathWithTransform2[fnname].apply(null, args), options);
  39140. }
  39141. }
  39142. var _toNode = typed2({
  39143. Fraction: _fractionToNode,
  39144. number: function number2(n) {
  39145. if (n < 0) {
  39146. return unaryMinusNode(new ConstantNode2(-n));
  39147. }
  39148. return new ConstantNode2(n);
  39149. },
  39150. BigNumber: function BigNumber2(n) {
  39151. if (n < 0) {
  39152. return unaryMinusNode(new ConstantNode2(-n));
  39153. }
  39154. return new ConstantNode2(n);
  39155. },
  39156. Complex: function Complex3(s) {
  39157. throw new Error("Cannot convert Complex number to Node");
  39158. },
  39159. string: function string2(s) {
  39160. return new ConstantNode2(s);
  39161. },
  39162. Matrix: function Matrix2(m) {
  39163. return new ArrayNode2(m.valueOf().map((e3) => _toNode(e3)));
  39164. }
  39165. });
  39166. function _ensureNode(thing) {
  39167. if (isNode(thing)) {
  39168. return thing;
  39169. }
  39170. return _toNode(thing);
  39171. }
  39172. function _exactFraction(n, options) {
  39173. var exactFractions = options && options.exactFractions !== false;
  39174. if (exactFractions && isFinite(n) && fraction2) {
  39175. var f = fraction2(n);
  39176. var fractionsLimit = options && typeof options.fractionsLimit === "number" ? options.fractionsLimit : Infinity;
  39177. if (f.valueOf() === n && f.n < fractionsLimit && f.d < fractionsLimit) {
  39178. return f;
  39179. }
  39180. }
  39181. return n;
  39182. }
  39183. var _toNumber = typed2({
  39184. "string, Object": function stringObject(s, options) {
  39185. if (config4.number === "BigNumber") {
  39186. if (bignumber2 === void 0) {
  39187. noBignumber();
  39188. }
  39189. return bignumber2(s);
  39190. } else if (config4.number === "Fraction") {
  39191. if (fraction2 === void 0) {
  39192. noFraction();
  39193. }
  39194. return fraction2(s);
  39195. } else {
  39196. var n = parseFloat(s);
  39197. return _exactFraction(n, options);
  39198. }
  39199. },
  39200. "Fraction, Object": function FractionObject(s, options) {
  39201. return s;
  39202. },
  39203. // we don't need options here
  39204. "BigNumber, Object": function BigNumberObject(s, options) {
  39205. return s;
  39206. },
  39207. // we don't need options here
  39208. "number, Object": function numberObject(s, options) {
  39209. return _exactFraction(s, options);
  39210. },
  39211. "Complex, Object": function ComplexObject(s, options) {
  39212. if (s.im !== 0) {
  39213. return s;
  39214. }
  39215. return _exactFraction(s.re, options);
  39216. },
  39217. "Matrix, Object": function MatrixObject(s, options) {
  39218. return matrix2(_exactFraction(s.valueOf()));
  39219. },
  39220. "Array, Object": function ArrayObject(s, options) {
  39221. return s.map(_exactFraction);
  39222. }
  39223. });
  39224. function unaryMinusNode(n) {
  39225. return new OperatorNode2("-", "unaryMinus", [n]);
  39226. }
  39227. function _fractionToNode(f) {
  39228. var n;
  39229. var vn = f.s * f.n;
  39230. if (vn < 0) {
  39231. n = new OperatorNode2("-", "unaryMinus", [new ConstantNode2(-vn)]);
  39232. } else {
  39233. n = new ConstantNode2(vn);
  39234. }
  39235. if (f.d === 1) {
  39236. return n;
  39237. }
  39238. return new OperatorNode2("/", "divide", [n, new ConstantNode2(f.d)]);
  39239. }
  39240. function _foldAccessor(obj, index2, options) {
  39241. if (!isIndexNode(index2)) {
  39242. return new AccessorNode2(_ensureNode(obj), _ensureNode(index2));
  39243. }
  39244. if (isArrayNode(obj) || isMatrix(obj)) {
  39245. var remainingDims = Array.from(index2.dimensions);
  39246. while (remainingDims.length > 0) {
  39247. if (isConstantNode(remainingDims[0]) && typeof remainingDims[0].value !== "string") {
  39248. var first = _toNumber(remainingDims.shift().value, options);
  39249. if (isArrayNode(obj)) {
  39250. obj = obj.items[first - 1];
  39251. } else {
  39252. obj = obj.valueOf()[first - 1];
  39253. if (obj instanceof Array) {
  39254. obj = matrix2(obj);
  39255. }
  39256. }
  39257. } else if (remainingDims.length > 1 && isConstantNode(remainingDims[1]) && typeof remainingDims[1].value !== "string") {
  39258. var second = _toNumber(remainingDims[1].value, options);
  39259. var tryItems = [];
  39260. var fromItems = isArrayNode(obj) ? obj.items : obj.valueOf();
  39261. for (var item of fromItems) {
  39262. if (isArrayNode(item)) {
  39263. tryItems.push(item.items[second - 1]);
  39264. } else if (isMatrix(obj)) {
  39265. tryItems.push(item[second - 1]);
  39266. } else {
  39267. break;
  39268. }
  39269. }
  39270. if (tryItems.length === fromItems.length) {
  39271. if (isArrayNode(obj)) {
  39272. obj = new ArrayNode2(tryItems);
  39273. } else {
  39274. obj = matrix2(tryItems);
  39275. }
  39276. remainingDims.splice(1, 1);
  39277. } else {
  39278. break;
  39279. }
  39280. } else {
  39281. break;
  39282. }
  39283. }
  39284. if (remainingDims.length === index2.dimensions.length) {
  39285. return new AccessorNode2(_ensureNode(obj), index2);
  39286. }
  39287. if (remainingDims.length > 0) {
  39288. index2 = new IndexNode2(remainingDims);
  39289. return new AccessorNode2(_ensureNode(obj), index2);
  39290. }
  39291. return obj;
  39292. }
  39293. if (isObjectNode(obj) && index2.dimensions.length === 1 && isConstantNode(index2.dimensions[0])) {
  39294. var key = index2.dimensions[0].value;
  39295. if (key in obj.properties) {
  39296. return obj.properties[key];
  39297. }
  39298. return new ConstantNode2();
  39299. }
  39300. return new AccessorNode2(_ensureNode(obj), index2);
  39301. }
  39302. function foldOp(fn, args, makeNode, options) {
  39303. var first = args.shift();
  39304. var reduction = args.reduce((sofar, next) => {
  39305. if (!isNode(next)) {
  39306. var last = sofar.pop();
  39307. if (isNode(last)) {
  39308. return [last, next];
  39309. }
  39310. try {
  39311. sofar.push(_eval(fn, [last, next], options));
  39312. return sofar;
  39313. } catch (ignoreandcontinue) {
  39314. sofar.push(last);
  39315. }
  39316. }
  39317. sofar.push(_ensureNode(sofar.pop()));
  39318. var newtree = sofar.length === 1 ? sofar[0] : makeNode(sofar);
  39319. return [makeNode([newtree, _ensureNode(next)])];
  39320. }, [first]);
  39321. if (reduction.length === 1) {
  39322. return reduction[0];
  39323. }
  39324. return makeNode([reduction[0], _toNode(reduction[1])]);
  39325. }
  39326. function foldFraction(node, options) {
  39327. switch (node.type) {
  39328. case "SymbolNode":
  39329. return node;
  39330. case "ConstantNode":
  39331. switch (typeof node.value) {
  39332. case "number":
  39333. return _toNumber(node.value, options);
  39334. case "string":
  39335. return node.value;
  39336. default:
  39337. if (!isNaN(node.value))
  39338. return _toNumber(node.value, options);
  39339. }
  39340. return node;
  39341. case "FunctionNode":
  39342. if (mathWithTransform2[node.name] && mathWithTransform2[node.name].rawArgs) {
  39343. return node;
  39344. }
  39345. {
  39346. var operatorFunctions = ["add", "multiply"];
  39347. if (operatorFunctions.indexOf(node.name) === -1) {
  39348. var args = node.args.map((arg2) => foldFraction(arg2, options));
  39349. if (!args.some(isNode)) {
  39350. try {
  39351. return _eval(node.name, args, options);
  39352. } catch (ignoreandcontinue) {
  39353. }
  39354. }
  39355. if (node.name === "size" && args.length === 1 && isArrayNode(args[0])) {
  39356. var sz = [];
  39357. var section = args[0];
  39358. while (isArrayNode(section)) {
  39359. sz.push(section.items.length);
  39360. section = section.items[0];
  39361. }
  39362. return matrix2(sz);
  39363. }
  39364. return new FunctionNode2(node.name, args.map(_ensureNode));
  39365. } else {
  39366. }
  39367. }
  39368. case "OperatorNode": {
  39369. var fn = node.fn.toString();
  39370. var _args;
  39371. var res;
  39372. var makeNode = createMakeNodeFunction(node);
  39373. if (isOperatorNode(node) && node.isUnary()) {
  39374. _args = [foldFraction(node.args[0], options)];
  39375. if (!isNode(_args[0])) {
  39376. res = _eval(fn, _args, options);
  39377. } else {
  39378. res = makeNode(_args);
  39379. }
  39380. } else if (isAssociative(node, options.context)) {
  39381. _args = allChildren(node, options.context);
  39382. _args = _args.map((arg2) => foldFraction(arg2, options));
  39383. if (isCommutative(fn, options.context)) {
  39384. var consts = [];
  39385. var vars = [];
  39386. for (var i2 = 0; i2 < _args.length; i2++) {
  39387. if (!isNode(_args[i2])) {
  39388. consts.push(_args[i2]);
  39389. } else {
  39390. vars.push(_args[i2]);
  39391. }
  39392. }
  39393. if (consts.length > 1) {
  39394. res = foldOp(fn, consts, makeNode, options);
  39395. vars.unshift(res);
  39396. res = foldOp(fn, vars, makeNode, options);
  39397. } else {
  39398. res = foldOp(fn, _args, makeNode, options);
  39399. }
  39400. } else {
  39401. res = foldOp(fn, _args, makeNode, options);
  39402. }
  39403. } else {
  39404. _args = node.args.map((arg2) => foldFraction(arg2, options));
  39405. res = foldOp(fn, _args, makeNode, options);
  39406. }
  39407. return res;
  39408. }
  39409. case "ParenthesisNode":
  39410. return foldFraction(node.content, options);
  39411. case "AccessorNode":
  39412. return _foldAccessor(foldFraction(node.object, options), foldFraction(node.index, options), options);
  39413. case "ArrayNode": {
  39414. var foldItems = node.items.map((item) => foldFraction(item, options));
  39415. if (foldItems.some(isNode)) {
  39416. return new ArrayNode2(foldItems.map(_ensureNode));
  39417. }
  39418. return matrix2(foldItems);
  39419. }
  39420. case "IndexNode": {
  39421. return new IndexNode2(node.dimensions.map((n) => simplifyConstant2(n, options)));
  39422. }
  39423. case "ObjectNode": {
  39424. var foldProps = {};
  39425. for (var prop in node.properties) {
  39426. foldProps[prop] = simplifyConstant2(node.properties[prop], options);
  39427. }
  39428. return new ObjectNode2(foldProps);
  39429. }
  39430. case "AssignmentNode":
  39431. case "BlockNode":
  39432. case "FunctionAssignmentNode":
  39433. case "RangeNode":
  39434. case "ConditionalNode":
  39435. default:
  39436. throw new Error("Unimplemented node type in simplifyConstant: ".concat(node.type));
  39437. }
  39438. }
  39439. return simplifyConstant2;
  39440. });
  39441. // node_modules/mathjs/lib/esm/function/algebra/simplifyCore.js
  39442. var name277 = "simplifyCore";
  39443. var dependencies277 = ["typed", "parse", "equal", "isZero", "add", "subtract", "multiply", "divide", "pow", "AccessorNode", "ArrayNode", "ConstantNode", "FunctionNode", "IndexNode", "ObjectNode", "OperatorNode", "ParenthesisNode", "SymbolNode"];
  39444. var createSimplifyCore = factory(name277, dependencies277, (_ref) => {
  39445. var {
  39446. typed: typed2,
  39447. parse: parse2,
  39448. equal: equal2,
  39449. isZero: isZero2,
  39450. add: add3,
  39451. subtract: subtract2,
  39452. multiply: multiply2,
  39453. divide: divide3,
  39454. pow: pow3,
  39455. AccessorNode: AccessorNode2,
  39456. ArrayNode: ArrayNode2,
  39457. ConstantNode: ConstantNode2,
  39458. FunctionNode: FunctionNode2,
  39459. IndexNode: IndexNode2,
  39460. ObjectNode: ObjectNode2,
  39461. OperatorNode: OperatorNode2,
  39462. ParenthesisNode: ParenthesisNode2,
  39463. SymbolNode: SymbolNode2
  39464. } = _ref;
  39465. var node0 = new ConstantNode2(0);
  39466. var node1 = new ConstantNode2(1);
  39467. var nodeT = new ConstantNode2(true);
  39468. var nodeF = new ConstantNode2(false);
  39469. function isAlwaysBoolean(node) {
  39470. return isOperatorNode(node) && ["and", "not", "or"].includes(node.op);
  39471. }
  39472. var {
  39473. hasProperty,
  39474. isCommutative
  39475. } = createUtil({
  39476. FunctionNode: FunctionNode2,
  39477. OperatorNode: OperatorNode2,
  39478. SymbolNode: SymbolNode2
  39479. });
  39480. function _simplifyCore(nodeToSimplify) {
  39481. var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  39482. var context = options ? options.context : void 0;
  39483. if (hasProperty(nodeToSimplify, "trivial", context)) {
  39484. if (isFunctionNode(nodeToSimplify) && nodeToSimplify.args.length === 1) {
  39485. return _simplifyCore(nodeToSimplify.args[0], options);
  39486. }
  39487. var simpChild = false;
  39488. var childCount = 0;
  39489. nodeToSimplify.forEach((c) => {
  39490. ++childCount;
  39491. if (childCount === 1) {
  39492. simpChild = _simplifyCore(c, options);
  39493. }
  39494. });
  39495. if (childCount === 1) {
  39496. return simpChild;
  39497. }
  39498. }
  39499. var node = nodeToSimplify;
  39500. if (isFunctionNode(node)) {
  39501. var op = getOperator(node.name);
  39502. if (op) {
  39503. if (node.args.length > 2 && hasProperty(node, "associative", context)) {
  39504. while (node.args.length > 2) {
  39505. var last = node.args.pop();
  39506. var seclast = node.args.pop();
  39507. node.args.push(new OperatorNode2(op, node.name, [last, seclast]));
  39508. }
  39509. }
  39510. node = new OperatorNode2(op, node.name, node.args);
  39511. } else {
  39512. return new FunctionNode2(_simplifyCore(node.fn), node.args.map((n) => _simplifyCore(n, options)));
  39513. }
  39514. }
  39515. if (isOperatorNode(node) && node.isUnary()) {
  39516. var a0 = _simplifyCore(node.args[0], options);
  39517. if (node.op === "~") {
  39518. if (isOperatorNode(a0) && a0.isUnary() && a0.op === "~") {
  39519. return a0.args[0];
  39520. }
  39521. }
  39522. if (node.op === "not") {
  39523. if (isOperatorNode(a0) && a0.isUnary() && a0.op === "not") {
  39524. if (isAlwaysBoolean(a0.args[0])) {
  39525. return a0.args[0];
  39526. }
  39527. }
  39528. }
  39529. var finish = true;
  39530. if (node.op === "-") {
  39531. if (isOperatorNode(a0)) {
  39532. if (a0.isBinary() && a0.fn === "subtract") {
  39533. node = new OperatorNode2("-", "subtract", [a0.args[1], a0.args[0]]);
  39534. finish = false;
  39535. }
  39536. if (a0.isUnary() && a0.op === "-") {
  39537. return a0.args[0];
  39538. }
  39539. }
  39540. }
  39541. if (finish)
  39542. return new OperatorNode2(node.op, node.fn, [a0]);
  39543. }
  39544. if (isOperatorNode(node) && node.isBinary()) {
  39545. var _a = _simplifyCore(node.args[0], options);
  39546. var a1 = _simplifyCore(node.args[1], options);
  39547. if (node.op === "+") {
  39548. if (isConstantNode(_a) && isZero2(_a.value)) {
  39549. return a1;
  39550. }
  39551. if (isConstantNode(a1) && isZero2(a1.value)) {
  39552. return _a;
  39553. }
  39554. if (isOperatorNode(a1) && a1.isUnary() && a1.op === "-") {
  39555. a1 = a1.args[0];
  39556. node = new OperatorNode2("-", "subtract", [_a, a1]);
  39557. }
  39558. }
  39559. if (node.op === "-") {
  39560. if (isOperatorNode(a1) && a1.isUnary() && a1.op === "-") {
  39561. return _simplifyCore(new OperatorNode2("+", "add", [_a, a1.args[0]]), options);
  39562. }
  39563. if (isConstantNode(_a) && isZero2(_a.value)) {
  39564. return _simplifyCore(new OperatorNode2("-", "unaryMinus", [a1]));
  39565. }
  39566. if (isConstantNode(a1) && isZero2(a1.value)) {
  39567. return _a;
  39568. }
  39569. return new OperatorNode2(node.op, node.fn, [_a, a1]);
  39570. }
  39571. if (node.op === "*") {
  39572. if (isConstantNode(_a)) {
  39573. if (isZero2(_a.value)) {
  39574. return node0;
  39575. } else if (equal2(_a.value, 1)) {
  39576. return a1;
  39577. }
  39578. }
  39579. if (isConstantNode(a1)) {
  39580. if (isZero2(a1.value)) {
  39581. return node0;
  39582. } else if (equal2(a1.value, 1)) {
  39583. return _a;
  39584. }
  39585. if (isCommutative(node, context)) {
  39586. return new OperatorNode2(node.op, node.fn, [a1, _a], node.implicit);
  39587. }
  39588. }
  39589. return new OperatorNode2(node.op, node.fn, [_a, a1], node.implicit);
  39590. }
  39591. if (node.op === "/") {
  39592. if (isConstantNode(_a) && isZero2(_a.value)) {
  39593. return node0;
  39594. }
  39595. if (isConstantNode(a1) && equal2(a1.value, 1)) {
  39596. return _a;
  39597. }
  39598. return new OperatorNode2(node.op, node.fn, [_a, a1]);
  39599. }
  39600. if (node.op === "^") {
  39601. if (isConstantNode(a1)) {
  39602. if (isZero2(a1.value)) {
  39603. return node1;
  39604. } else if (equal2(a1.value, 1)) {
  39605. return _a;
  39606. }
  39607. }
  39608. }
  39609. if (node.op === "and") {
  39610. if (isConstantNode(_a)) {
  39611. if (_a.value) {
  39612. if (isAlwaysBoolean(a1))
  39613. return a1;
  39614. } else {
  39615. return nodeF;
  39616. }
  39617. }
  39618. if (isConstantNode(a1)) {
  39619. if (a1.value) {
  39620. if (isAlwaysBoolean(_a))
  39621. return _a;
  39622. } else {
  39623. return nodeF;
  39624. }
  39625. }
  39626. }
  39627. if (node.op === "or") {
  39628. if (isConstantNode(_a)) {
  39629. if (_a.value) {
  39630. return nodeT;
  39631. } else {
  39632. if (isAlwaysBoolean(a1))
  39633. return a1;
  39634. }
  39635. }
  39636. if (isConstantNode(a1)) {
  39637. if (a1.value) {
  39638. return nodeT;
  39639. } else {
  39640. if (isAlwaysBoolean(_a))
  39641. return _a;
  39642. }
  39643. }
  39644. }
  39645. return new OperatorNode2(node.op, node.fn, [_a, a1]);
  39646. }
  39647. if (isOperatorNode(node)) {
  39648. return new OperatorNode2(node.op, node.fn, node.args.map((a) => _simplifyCore(a, options)));
  39649. }
  39650. if (isArrayNode(node)) {
  39651. return new ArrayNode2(node.items.map((n) => _simplifyCore(n, options)));
  39652. }
  39653. if (isAccessorNode(node)) {
  39654. return new AccessorNode2(_simplifyCore(node.object, options), _simplifyCore(node.index, options));
  39655. }
  39656. if (isIndexNode(node)) {
  39657. return new IndexNode2(node.dimensions.map((n) => _simplifyCore(n, options)));
  39658. }
  39659. if (isObjectNode(node)) {
  39660. var newProps = {};
  39661. for (var prop in node.properties) {
  39662. newProps[prop] = _simplifyCore(node.properties[prop], options);
  39663. }
  39664. return new ObjectNode2(newProps);
  39665. }
  39666. return node;
  39667. }
  39668. return typed2(name277, {
  39669. Node: _simplifyCore,
  39670. "Node,Object": _simplifyCore
  39671. });
  39672. });
  39673. // node_modules/mathjs/lib/esm/function/algebra/resolve.js
  39674. var name278 = "resolve";
  39675. var dependencies278 = ["typed", "parse", "ConstantNode", "FunctionNode", "OperatorNode", "ParenthesisNode"];
  39676. var createResolve = factory(name278, dependencies278, (_ref) => {
  39677. var {
  39678. typed: typed2,
  39679. parse: parse2,
  39680. ConstantNode: ConstantNode2,
  39681. FunctionNode: FunctionNode2,
  39682. OperatorNode: OperatorNode2,
  39683. ParenthesisNode: ParenthesisNode2
  39684. } = _ref;
  39685. function _resolve(node, scope) {
  39686. var within = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : /* @__PURE__ */ new Set();
  39687. if (!scope) {
  39688. return node;
  39689. }
  39690. if (isSymbolNode(node)) {
  39691. if (within.has(node.name)) {
  39692. var variables = Array.from(within).join(", ");
  39693. throw new ReferenceError("recursive loop of variable definitions among {".concat(variables, "}"));
  39694. }
  39695. var value = scope.get(node.name);
  39696. if (isNode(value)) {
  39697. var nextWithin = new Set(within);
  39698. nextWithin.add(node.name);
  39699. return _resolve(value, scope, nextWithin);
  39700. } else if (typeof value === "number") {
  39701. return parse2(String(value));
  39702. } else if (value !== void 0) {
  39703. return new ConstantNode2(value);
  39704. } else {
  39705. return node;
  39706. }
  39707. } else if (isOperatorNode(node)) {
  39708. var args = node.args.map(function(arg2) {
  39709. return _resolve(arg2, scope, within);
  39710. });
  39711. return new OperatorNode2(node.op, node.fn, args, node.implicit);
  39712. } else if (isParenthesisNode(node)) {
  39713. return new ParenthesisNode2(_resolve(node.content, scope, within));
  39714. } else if (isFunctionNode(node)) {
  39715. var _args = node.args.map(function(arg2) {
  39716. return _resolve(arg2, scope, within);
  39717. });
  39718. return new FunctionNode2(node.name, _args);
  39719. }
  39720. return node.map((child) => _resolve(child, scope, within));
  39721. }
  39722. return typed2("resolve", {
  39723. Node: _resolve,
  39724. "Node, Map | null | undefined": _resolve,
  39725. "Node, Object": (n, scope) => _resolve(n, createMap(scope)),
  39726. // For arrays and matrices, we map `self` rather than `_resolve`
  39727. // because resolve is fairly expensive anyway, and this way
  39728. // we get nice error messages if one entry in the array has wrong type.
  39729. "Array | Matrix": typed2.referToSelf((self2) => (A) => A.map((n) => self2(n))),
  39730. "Array | Matrix, null | undefined": typed2.referToSelf((self2) => (A) => A.map((n) => self2(n))),
  39731. "Array, Object": typed2.referTo("Array,Map", (selfAM) => (A, scope) => selfAM(A, createMap(scope))),
  39732. "Matrix, Object": typed2.referTo("Matrix,Map", (selfMM) => (A, scope) => selfMM(A, createMap(scope))),
  39733. "Array | Matrix, Map": typed2.referToSelf((self2) => (A, scope) => A.map((n) => self2(n, scope)))
  39734. });
  39735. });
  39736. // node_modules/mathjs/lib/esm/function/algebra/symbolicEqual.js
  39737. var name279 = "symbolicEqual";
  39738. var dependencies279 = ["parse", "simplify", "typed", "OperatorNode"];
  39739. var createSymbolicEqual = factory(name279, dependencies279, (_ref) => {
  39740. var {
  39741. parse: parse2,
  39742. simplify: simplify2,
  39743. typed: typed2,
  39744. OperatorNode: OperatorNode2
  39745. } = _ref;
  39746. function _symbolicEqual(e1, e22) {
  39747. var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  39748. var diff2 = new OperatorNode2("-", "subtract", [e1, e22]);
  39749. var simplified = simplify2(diff2, {}, options);
  39750. return isConstantNode(simplified) && !simplified.value;
  39751. }
  39752. return typed2(name279, {
  39753. "Node, Node": _symbolicEqual,
  39754. "Node, Node, Object": _symbolicEqual
  39755. });
  39756. });
  39757. // node_modules/mathjs/lib/esm/function/algebra/derivative.js
  39758. var name280 = "derivative";
  39759. var dependencies280 = ["typed", "config", "parse", "simplify", "equal", "isZero", "numeric", "ConstantNode", "FunctionNode", "OperatorNode", "ParenthesisNode", "SymbolNode"];
  39760. var createDerivative = factory(name280, dependencies280, (_ref) => {
  39761. var {
  39762. typed: typed2,
  39763. config: config4,
  39764. parse: parse2,
  39765. simplify: simplify2,
  39766. equal: equal2,
  39767. isZero: isZero2,
  39768. numeric: numeric3,
  39769. ConstantNode: ConstantNode2,
  39770. FunctionNode: FunctionNode2,
  39771. OperatorNode: OperatorNode2,
  39772. ParenthesisNode: ParenthesisNode2,
  39773. SymbolNode: SymbolNode2
  39774. } = _ref;
  39775. function plainDerivative(expr, variable) {
  39776. var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
  39777. simplify: true
  39778. };
  39779. var constNodes = {};
  39780. constTag(constNodes, expr, variable.name);
  39781. var res = _derivative(expr, constNodes);
  39782. return options.simplify ? simplify2(res) : res;
  39783. }
  39784. typed2.addConversion({
  39785. from: "identifier",
  39786. to: "SymbolNode",
  39787. convert: parse2
  39788. });
  39789. var derivative2 = typed2(name280, {
  39790. "Node, SymbolNode": plainDerivative,
  39791. "Node, SymbolNode, Object": plainDerivative
  39792. /* TODO: implement and test syntax with order of derivatives -> implement as an option {order: number}
  39793. 'Node, SymbolNode, ConstantNode': function (expr, variable, {order}) {
  39794. let res = expr
  39795. for (let i = 0; i < order; i++) {
  39796. let constNodes = {}
  39797. constTag(constNodes, expr, variable.name)
  39798. res = _derivative(res, constNodes)
  39799. }
  39800. return res
  39801. }
  39802. */
  39803. });
  39804. typed2.removeConversion({
  39805. from: "identifier",
  39806. to: "SymbolNode",
  39807. convert: parse2
  39808. });
  39809. derivative2._simplify = true;
  39810. derivative2.toTex = function(deriv) {
  39811. return _derivTex.apply(null, deriv.args);
  39812. };
  39813. var _derivTex = typed2("_derivTex", {
  39814. "Node, SymbolNode": function NodeSymbolNode(expr, x) {
  39815. if (isConstantNode(expr) && typeOf(expr.value) === "string") {
  39816. return _derivTex(parse2(expr.value).toString(), x.toString(), 1);
  39817. } else {
  39818. return _derivTex(expr.toTex(), x.toString(), 1);
  39819. }
  39820. },
  39821. "Node, ConstantNode": function NodeConstantNode(expr, x) {
  39822. if (typeOf(x.value) === "string") {
  39823. return _derivTex(expr, parse2(x.value));
  39824. } else {
  39825. throw new Error("The second parameter to 'derivative' is a non-string constant");
  39826. }
  39827. },
  39828. "Node, SymbolNode, ConstantNode": function NodeSymbolNodeConstantNode(expr, x, order) {
  39829. return _derivTex(expr.toString(), x.name, order.value);
  39830. },
  39831. "string, string, number": function stringStringNumber(expr, x, order) {
  39832. var d;
  39833. if (order === 1) {
  39834. d = "{d\\over d" + x + "}";
  39835. } else {
  39836. d = "{d^{" + order + "}\\over d" + x + "^{" + order + "}}";
  39837. }
  39838. return d + "\\left[".concat(expr, "\\right]");
  39839. }
  39840. });
  39841. var constTag = typed2("constTag", {
  39842. "Object, ConstantNode, string": function ObjectConstantNodeString(constNodes, node) {
  39843. constNodes[node] = true;
  39844. return true;
  39845. },
  39846. "Object, SymbolNode, string": function ObjectSymbolNodeString(constNodes, node, varName) {
  39847. if (node.name !== varName) {
  39848. constNodes[node] = true;
  39849. return true;
  39850. }
  39851. return false;
  39852. },
  39853. "Object, ParenthesisNode, string": function ObjectParenthesisNodeString(constNodes, node, varName) {
  39854. return constTag(constNodes, node.content, varName);
  39855. },
  39856. "Object, FunctionAssignmentNode, string": function ObjectFunctionAssignmentNodeString(constNodes, node, varName) {
  39857. if (node.params.indexOf(varName) === -1) {
  39858. constNodes[node] = true;
  39859. return true;
  39860. }
  39861. return constTag(constNodes, node.expr, varName);
  39862. },
  39863. "Object, FunctionNode | OperatorNode, string": function ObjectFunctionNodeOperatorNodeString(constNodes, node, varName) {
  39864. if (node.args.length > 0) {
  39865. var isConst = constTag(constNodes, node.args[0], varName);
  39866. for (var i2 = 1; i2 < node.args.length; ++i2) {
  39867. isConst = constTag(constNodes, node.args[i2], varName) && isConst;
  39868. }
  39869. if (isConst) {
  39870. constNodes[node] = true;
  39871. return true;
  39872. }
  39873. }
  39874. return false;
  39875. }
  39876. });
  39877. var _derivative = typed2("_derivative", {
  39878. "ConstantNode, Object": function ConstantNodeObject(node) {
  39879. return createConstantNode2(0);
  39880. },
  39881. "SymbolNode, Object": function SymbolNodeObject(node, constNodes) {
  39882. if (constNodes[node] !== void 0) {
  39883. return createConstantNode2(0);
  39884. }
  39885. return createConstantNode2(1);
  39886. },
  39887. "ParenthesisNode, Object": function ParenthesisNodeObject(node, constNodes) {
  39888. return new ParenthesisNode2(_derivative(node.content, constNodes));
  39889. },
  39890. "FunctionAssignmentNode, Object": function FunctionAssignmentNodeObject(node, constNodes) {
  39891. if (constNodes[node] !== void 0) {
  39892. return createConstantNode2(0);
  39893. }
  39894. return _derivative(node.expr, constNodes);
  39895. },
  39896. "FunctionNode, Object": function FunctionNodeObject(node, constNodes) {
  39897. if (node.args.length !== 1) {
  39898. funcArgsCheck(node);
  39899. }
  39900. if (constNodes[node] !== void 0) {
  39901. return createConstantNode2(0);
  39902. }
  39903. var arg0 = node.args[0];
  39904. var arg1;
  39905. var div2 = false;
  39906. var negative = false;
  39907. var funcDerivative;
  39908. switch (node.name) {
  39909. case "cbrt":
  39910. div2 = true;
  39911. funcDerivative = new OperatorNode2("*", "multiply", [createConstantNode2(3), new OperatorNode2("^", "pow", [arg0, new OperatorNode2("/", "divide", [createConstantNode2(2), createConstantNode2(3)])])]);
  39912. break;
  39913. case "sqrt":
  39914. case "nthRoot":
  39915. if (node.args.length === 1) {
  39916. div2 = true;
  39917. funcDerivative = new OperatorNode2("*", "multiply", [createConstantNode2(2), new FunctionNode2("sqrt", [arg0])]);
  39918. } else if (node.args.length === 2) {
  39919. arg1 = new OperatorNode2("/", "divide", [createConstantNode2(1), node.args[1]]);
  39920. constNodes[arg1] = constNodes[node.args[1]];
  39921. return _derivative(new OperatorNode2("^", "pow", [arg0, arg1]), constNodes);
  39922. }
  39923. break;
  39924. case "log10":
  39925. arg1 = createConstantNode2(10);
  39926. case "log":
  39927. if (!arg1 && node.args.length === 1) {
  39928. funcDerivative = arg0.clone();
  39929. div2 = true;
  39930. } else if (node.args.length === 1 && arg1 || node.args.length === 2 && constNodes[node.args[1]] !== void 0) {
  39931. funcDerivative = new OperatorNode2("*", "multiply", [arg0.clone(), new FunctionNode2("log", [arg1 || node.args[1]])]);
  39932. div2 = true;
  39933. } else if (node.args.length === 2) {
  39934. return _derivative(new OperatorNode2("/", "divide", [new FunctionNode2("log", [arg0]), new FunctionNode2("log", [node.args[1]])]), constNodes);
  39935. }
  39936. break;
  39937. case "pow":
  39938. constNodes[arg1] = constNodes[node.args[1]];
  39939. return _derivative(new OperatorNode2("^", "pow", [arg0, node.args[1]]), constNodes);
  39940. case "exp":
  39941. funcDerivative = new FunctionNode2("exp", [arg0.clone()]);
  39942. break;
  39943. case "sin":
  39944. funcDerivative = new FunctionNode2("cos", [arg0.clone()]);
  39945. break;
  39946. case "cos":
  39947. funcDerivative = new OperatorNode2("-", "unaryMinus", [new FunctionNode2("sin", [arg0.clone()])]);
  39948. break;
  39949. case "tan":
  39950. funcDerivative = new OperatorNode2("^", "pow", [new FunctionNode2("sec", [arg0.clone()]), createConstantNode2(2)]);
  39951. break;
  39952. case "sec":
  39953. funcDerivative = new OperatorNode2("*", "multiply", [node, new FunctionNode2("tan", [arg0.clone()])]);
  39954. break;
  39955. case "csc":
  39956. negative = true;
  39957. funcDerivative = new OperatorNode2("*", "multiply", [node, new FunctionNode2("cot", [arg0.clone()])]);
  39958. break;
  39959. case "cot":
  39960. negative = true;
  39961. funcDerivative = new OperatorNode2("^", "pow", [new FunctionNode2("csc", [arg0.clone()]), createConstantNode2(2)]);
  39962. break;
  39963. case "asin":
  39964. div2 = true;
  39965. funcDerivative = new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [createConstantNode2(1), new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)])])]);
  39966. break;
  39967. case "acos":
  39968. div2 = true;
  39969. negative = true;
  39970. funcDerivative = new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [createConstantNode2(1), new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)])])]);
  39971. break;
  39972. case "atan":
  39973. div2 = true;
  39974. funcDerivative = new OperatorNode2("+", "add", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)]);
  39975. break;
  39976. case "asec":
  39977. div2 = true;
  39978. funcDerivative = new OperatorNode2("*", "multiply", [new FunctionNode2("abs", [arg0.clone()]), new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)])])]);
  39979. break;
  39980. case "acsc":
  39981. div2 = true;
  39982. negative = true;
  39983. funcDerivative = new OperatorNode2("*", "multiply", [new FunctionNode2("abs", [arg0.clone()]), new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)])])]);
  39984. break;
  39985. case "acot":
  39986. div2 = true;
  39987. negative = true;
  39988. funcDerivative = new OperatorNode2("+", "add", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)]);
  39989. break;
  39990. case "sinh":
  39991. funcDerivative = new FunctionNode2("cosh", [arg0.clone()]);
  39992. break;
  39993. case "cosh":
  39994. funcDerivative = new FunctionNode2("sinh", [arg0.clone()]);
  39995. break;
  39996. case "tanh":
  39997. funcDerivative = new OperatorNode2("^", "pow", [new FunctionNode2("sech", [arg0.clone()]), createConstantNode2(2)]);
  39998. break;
  39999. case "sech":
  40000. negative = true;
  40001. funcDerivative = new OperatorNode2("*", "multiply", [node, new FunctionNode2("tanh", [arg0.clone()])]);
  40002. break;
  40003. case "csch":
  40004. negative = true;
  40005. funcDerivative = new OperatorNode2("*", "multiply", [node, new FunctionNode2("coth", [arg0.clone()])]);
  40006. break;
  40007. case "coth":
  40008. negative = true;
  40009. funcDerivative = new OperatorNode2("^", "pow", [new FunctionNode2("csch", [arg0.clone()]), createConstantNode2(2)]);
  40010. break;
  40011. case "asinh":
  40012. div2 = true;
  40013. funcDerivative = new FunctionNode2("sqrt", [new OperatorNode2("+", "add", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)])]);
  40014. break;
  40015. case "acosh":
  40016. div2 = true;
  40017. funcDerivative = new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)])]);
  40018. break;
  40019. case "atanh":
  40020. div2 = true;
  40021. funcDerivative = new OperatorNode2("-", "subtract", [createConstantNode2(1), new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)])]);
  40022. break;
  40023. case "asech":
  40024. div2 = true;
  40025. negative = true;
  40026. funcDerivative = new OperatorNode2("*", "multiply", [arg0.clone(), new FunctionNode2("sqrt", [new OperatorNode2("-", "subtract", [createConstantNode2(1), new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)])])])]);
  40027. break;
  40028. case "acsch":
  40029. div2 = true;
  40030. negative = true;
  40031. funcDerivative = new OperatorNode2("*", "multiply", [new FunctionNode2("abs", [arg0.clone()]), new FunctionNode2("sqrt", [new OperatorNode2("+", "add", [new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)]), createConstantNode2(1)])])]);
  40032. break;
  40033. case "acoth":
  40034. div2 = true;
  40035. negative = true;
  40036. funcDerivative = new OperatorNode2("-", "subtract", [createConstantNode2(1), new OperatorNode2("^", "pow", [arg0.clone(), createConstantNode2(2)])]);
  40037. break;
  40038. case "abs":
  40039. funcDerivative = new OperatorNode2("/", "divide", [new FunctionNode2(new SymbolNode2("abs"), [arg0.clone()]), arg0.clone()]);
  40040. break;
  40041. case "gamma":
  40042. default:
  40043. throw new Error('Function "' + node.name + '" is not supported by derivative, or a wrong number of arguments is passed');
  40044. }
  40045. var op, func;
  40046. if (div2) {
  40047. op = "/";
  40048. func = "divide";
  40049. } else {
  40050. op = "*";
  40051. func = "multiply";
  40052. }
  40053. var chainDerivative = _derivative(arg0, constNodes);
  40054. if (negative) {
  40055. chainDerivative = new OperatorNode2("-", "unaryMinus", [chainDerivative]);
  40056. }
  40057. return new OperatorNode2(op, func, [chainDerivative, funcDerivative]);
  40058. },
  40059. "OperatorNode, Object": function OperatorNodeObject(node, constNodes) {
  40060. if (constNodes[node] !== void 0) {
  40061. return createConstantNode2(0);
  40062. }
  40063. if (node.op === "+") {
  40064. return new OperatorNode2(node.op, node.fn, node.args.map(function(arg2) {
  40065. return _derivative(arg2, constNodes);
  40066. }));
  40067. }
  40068. if (node.op === "-") {
  40069. if (node.isUnary()) {
  40070. return new OperatorNode2(node.op, node.fn, [_derivative(node.args[0], constNodes)]);
  40071. }
  40072. if (node.isBinary()) {
  40073. return new OperatorNode2(node.op, node.fn, [_derivative(node.args[0], constNodes), _derivative(node.args[1], constNodes)]);
  40074. }
  40075. }
  40076. if (node.op === "*") {
  40077. var constantTerms = node.args.filter(function(arg2) {
  40078. return constNodes[arg2] !== void 0;
  40079. });
  40080. if (constantTerms.length > 0) {
  40081. var nonConstantTerms = node.args.filter(function(arg2) {
  40082. return constNodes[arg2] === void 0;
  40083. });
  40084. var nonConstantNode = nonConstantTerms.length === 1 ? nonConstantTerms[0] : new OperatorNode2("*", "multiply", nonConstantTerms);
  40085. var newArgs = constantTerms.concat(_derivative(nonConstantNode, constNodes));
  40086. return new OperatorNode2("*", "multiply", newArgs);
  40087. }
  40088. return new OperatorNode2("+", "add", node.args.map(function(argOuter) {
  40089. return new OperatorNode2("*", "multiply", node.args.map(function(argInner) {
  40090. return argInner === argOuter ? _derivative(argInner, constNodes) : argInner.clone();
  40091. }));
  40092. }));
  40093. }
  40094. if (node.op === "/" && node.isBinary()) {
  40095. var arg0 = node.args[0];
  40096. var arg1 = node.args[1];
  40097. if (constNodes[arg1] !== void 0) {
  40098. return new OperatorNode2("/", "divide", [_derivative(arg0, constNodes), arg1]);
  40099. }
  40100. if (constNodes[arg0] !== void 0) {
  40101. return new OperatorNode2("*", "multiply", [new OperatorNode2("-", "unaryMinus", [arg0]), new OperatorNode2("/", "divide", [_derivative(arg1, constNodes), new OperatorNode2("^", "pow", [arg1.clone(), createConstantNode2(2)])])]);
  40102. }
  40103. return new OperatorNode2("/", "divide", [new OperatorNode2("-", "subtract", [new OperatorNode2("*", "multiply", [_derivative(arg0, constNodes), arg1.clone()]), new OperatorNode2("*", "multiply", [arg0.clone(), _derivative(arg1, constNodes)])]), new OperatorNode2("^", "pow", [arg1.clone(), createConstantNode2(2)])]);
  40104. }
  40105. if (node.op === "^" && node.isBinary()) {
  40106. var _arg = node.args[0];
  40107. var _arg2 = node.args[1];
  40108. if (constNodes[_arg] !== void 0) {
  40109. if (isConstantNode(_arg) && (isZero2(_arg.value) || equal2(_arg.value, 1))) {
  40110. return createConstantNode2(0);
  40111. }
  40112. return new OperatorNode2("*", "multiply", [node, new OperatorNode2("*", "multiply", [new FunctionNode2("log", [_arg.clone()]), _derivative(_arg2.clone(), constNodes)])]);
  40113. }
  40114. if (constNodes[_arg2] !== void 0) {
  40115. if (isConstantNode(_arg2)) {
  40116. if (isZero2(_arg2.value)) {
  40117. return createConstantNode2(0);
  40118. }
  40119. if (equal2(_arg2.value, 1)) {
  40120. return _derivative(_arg, constNodes);
  40121. }
  40122. }
  40123. var powMinusOne = new OperatorNode2("^", "pow", [_arg.clone(), new OperatorNode2("-", "subtract", [_arg2, createConstantNode2(1)])]);
  40124. return new OperatorNode2("*", "multiply", [_arg2.clone(), new OperatorNode2("*", "multiply", [_derivative(_arg, constNodes), powMinusOne])]);
  40125. }
  40126. return new OperatorNode2("*", "multiply", [new OperatorNode2("^", "pow", [_arg.clone(), _arg2.clone()]), new OperatorNode2("+", "add", [new OperatorNode2("*", "multiply", [_derivative(_arg, constNodes), new OperatorNode2("/", "divide", [_arg2.clone(), _arg.clone()])]), new OperatorNode2("*", "multiply", [_derivative(_arg2, constNodes), new FunctionNode2("log", [_arg.clone()])])])]);
  40127. }
  40128. throw new Error('Operator "' + node.op + '" is not supported by derivative, or a wrong number of arguments is passed');
  40129. }
  40130. });
  40131. function funcArgsCheck(node) {
  40132. if ((node.name === "log" || node.name === "nthRoot" || node.name === "pow") && node.args.length === 2) {
  40133. return;
  40134. }
  40135. for (var i2 = 0; i2 < node.args.length; ++i2) {
  40136. node.args[i2] = createConstantNode2(0);
  40137. }
  40138. node.compile().evaluate();
  40139. throw new Error("Expected TypeError, but none found");
  40140. }
  40141. function createConstantNode2(value, valueType) {
  40142. return new ConstantNode2(numeric3(value, valueType || config4.number));
  40143. }
  40144. return derivative2;
  40145. });
  40146. // node_modules/mathjs/lib/esm/function/algebra/rationalize.js
  40147. var name281 = "rationalize";
  40148. var dependencies281 = ["config", "typed", "equal", "isZero", "add", "subtract", "multiply", "divide", "pow", "parse", "simplifyConstant", "simplifyCore", "simplify", "?bignumber", "?fraction", "mathWithTransform", "matrix", "AccessorNode", "ArrayNode", "ConstantNode", "FunctionNode", "IndexNode", "ObjectNode", "OperatorNode", "SymbolNode", "ParenthesisNode"];
  40149. var createRationalize = factory(name281, dependencies281, (_ref) => {
  40150. var {
  40151. config: config4,
  40152. typed: typed2,
  40153. equal: equal2,
  40154. isZero: isZero2,
  40155. add: add3,
  40156. subtract: subtract2,
  40157. multiply: multiply2,
  40158. divide: divide3,
  40159. pow: pow3,
  40160. parse: parse2,
  40161. simplifyConstant: simplifyConstant2,
  40162. simplifyCore: simplifyCore2,
  40163. simplify: simplify2,
  40164. fraction: fraction2,
  40165. bignumber: bignumber2,
  40166. mathWithTransform: mathWithTransform2,
  40167. matrix: matrix2,
  40168. AccessorNode: AccessorNode2,
  40169. ArrayNode: ArrayNode2,
  40170. ConstantNode: ConstantNode2,
  40171. FunctionNode: FunctionNode2,
  40172. IndexNode: IndexNode2,
  40173. ObjectNode: ObjectNode2,
  40174. OperatorNode: OperatorNode2,
  40175. SymbolNode: SymbolNode2,
  40176. ParenthesisNode: ParenthesisNode2
  40177. } = _ref;
  40178. function _rationalize(expr) {
  40179. var scope = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
  40180. var detailed = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
  40181. var setRules = rulesRationalize();
  40182. var polyRet = polynomial(expr, scope, true, setRules.firstRules);
  40183. var nVars = polyRet.variables.length;
  40184. var noExactFractions = {
  40185. exactFractions: false
  40186. };
  40187. var withExactFractions = {
  40188. exactFractions: true
  40189. };
  40190. expr = polyRet.expression;
  40191. if (nVars >= 1) {
  40192. expr = expandPower(expr);
  40193. var sBefore;
  40194. var rules;
  40195. var eDistrDiv = true;
  40196. var redoInic = false;
  40197. expr = simplify2(expr, setRules.firstRules, {}, noExactFractions);
  40198. var s;
  40199. while (true) {
  40200. rules = eDistrDiv ? setRules.distrDivRules : setRules.sucDivRules;
  40201. expr = simplify2(expr, rules, {}, withExactFractions);
  40202. eDistrDiv = !eDistrDiv;
  40203. s = expr.toString();
  40204. if (s === sBefore) {
  40205. break;
  40206. }
  40207. redoInic = true;
  40208. sBefore = s;
  40209. }
  40210. if (redoInic) {
  40211. expr = simplify2(expr, setRules.firstRulesAgain, {}, noExactFractions);
  40212. }
  40213. expr = simplify2(expr, setRules.finalRules, {}, noExactFractions);
  40214. }
  40215. var coefficients = [];
  40216. var retRationalize = {};
  40217. if (expr.type === "OperatorNode" && expr.isBinary() && expr.op === "/") {
  40218. if (nVars === 1) {
  40219. expr.args[0] = polyToCanonical(expr.args[0], coefficients);
  40220. expr.args[1] = polyToCanonical(expr.args[1]);
  40221. }
  40222. if (detailed) {
  40223. retRationalize.numerator = expr.args[0];
  40224. retRationalize.denominator = expr.args[1];
  40225. }
  40226. } else {
  40227. if (nVars === 1) {
  40228. expr = polyToCanonical(expr, coefficients);
  40229. }
  40230. if (detailed) {
  40231. retRationalize.numerator = expr;
  40232. retRationalize.denominator = null;
  40233. }
  40234. }
  40235. if (!detailed)
  40236. return expr;
  40237. retRationalize.coefficients = coefficients;
  40238. retRationalize.variables = polyRet.variables;
  40239. retRationalize.expression = expr;
  40240. return retRationalize;
  40241. }
  40242. return typed2(name281, {
  40243. Node: _rationalize,
  40244. "Node, boolean": (expr, detailed) => _rationalize(expr, {}, detailed),
  40245. "Node, Object": _rationalize,
  40246. "Node, Object, boolean": _rationalize
  40247. });
  40248. function polynomial(expr, scope, extended, rules) {
  40249. var variables = [];
  40250. var node = simplify2(expr, rules, scope, {
  40251. exactFractions: false
  40252. });
  40253. extended = !!extended;
  40254. var oper = "+-*" + (extended ? "/" : "");
  40255. recPoly(node);
  40256. var retFunc = {};
  40257. retFunc.expression = node;
  40258. retFunc.variables = variables;
  40259. return retFunc;
  40260. function recPoly(node2) {
  40261. var tp = node2.type;
  40262. if (tp === "FunctionNode") {
  40263. throw new Error("There is an unsolved function call");
  40264. } else if (tp === "OperatorNode") {
  40265. if (node2.op === "^") {
  40266. if (node2.args[1].type !== "ConstantNode" || !isInteger(parseFloat(node2.args[1].value))) {
  40267. throw new Error("There is a non-integer exponent");
  40268. } else {
  40269. recPoly(node2.args[0]);
  40270. }
  40271. } else {
  40272. if (oper.indexOf(node2.op) === -1) {
  40273. throw new Error("Operator " + node2.op + " invalid in polynomial expression");
  40274. }
  40275. for (var i2 = 0; i2 < node2.args.length; i2++) {
  40276. recPoly(node2.args[i2]);
  40277. }
  40278. }
  40279. } else if (tp === "SymbolNode") {
  40280. var _name = node2.name;
  40281. var pos = variables.indexOf(_name);
  40282. if (pos === -1) {
  40283. variables.push(_name);
  40284. }
  40285. } else if (tp === "ParenthesisNode") {
  40286. recPoly(node2.content);
  40287. } else if (tp !== "ConstantNode") {
  40288. throw new Error("type " + tp + " is not allowed in polynomial expression");
  40289. }
  40290. }
  40291. }
  40292. function rulesRationalize() {
  40293. var oldRules = [
  40294. simplifyCore2,
  40295. // sCore
  40296. {
  40297. l: "n+n",
  40298. r: "2*n"
  40299. },
  40300. {
  40301. l: "n+-n",
  40302. r: "0"
  40303. },
  40304. simplifyConstant2,
  40305. // sConstant
  40306. {
  40307. l: "n*(n1^-1)",
  40308. r: "n/n1"
  40309. },
  40310. {
  40311. l: "n*n1^-n2",
  40312. r: "n/n1^n2"
  40313. },
  40314. {
  40315. l: "n1^-1",
  40316. r: "1/n1"
  40317. },
  40318. {
  40319. l: "n*(n1/n2)",
  40320. r: "(n*n1)/n2"
  40321. },
  40322. {
  40323. l: "1*n",
  40324. r: "n"
  40325. }
  40326. ];
  40327. var rulesFirst = [
  40328. {
  40329. l: "(-n1)/(-n2)",
  40330. r: "n1/n2"
  40331. },
  40332. // Unary division
  40333. {
  40334. l: "(-n1)*(-n2)",
  40335. r: "n1*n2"
  40336. },
  40337. // Unary multiplication
  40338. {
  40339. l: "n1--n2",
  40340. r: "n1+n2"
  40341. },
  40342. // '--' elimination
  40343. {
  40344. l: "n1-n2",
  40345. r: "n1+(-n2)"
  40346. },
  40347. // Subtraction turn into add with un�ry minus
  40348. {
  40349. l: "(n1+n2)*n3",
  40350. r: "(n1*n3 + n2*n3)"
  40351. },
  40352. // Distributive 1
  40353. {
  40354. l: "n1*(n2+n3)",
  40355. r: "(n1*n2+n1*n3)"
  40356. },
  40357. // Distributive 2
  40358. {
  40359. l: "c1*n + c2*n",
  40360. r: "(c1+c2)*n"
  40361. },
  40362. // Joining constants
  40363. {
  40364. l: "c1*n + n",
  40365. r: "(c1+1)*n"
  40366. },
  40367. // Joining constants
  40368. {
  40369. l: "c1*n - c2*n",
  40370. r: "(c1-c2)*n"
  40371. },
  40372. // Joining constants
  40373. {
  40374. l: "c1*n - n",
  40375. r: "(c1-1)*n"
  40376. },
  40377. // Joining constants
  40378. {
  40379. l: "v/c",
  40380. r: "(1/c)*v"
  40381. },
  40382. // variable/constant (new!)
  40383. {
  40384. l: "v/-c",
  40385. r: "-(1/c)*v"
  40386. },
  40387. // variable/constant (new!)
  40388. {
  40389. l: "-v*-c",
  40390. r: "c*v"
  40391. },
  40392. // Inversion constant and variable 1
  40393. {
  40394. l: "-v*c",
  40395. r: "-c*v"
  40396. },
  40397. // Inversion constant and variable 2
  40398. {
  40399. l: "v*-c",
  40400. r: "-c*v"
  40401. },
  40402. // Inversion constant and variable 3
  40403. {
  40404. l: "v*c",
  40405. r: "c*v"
  40406. },
  40407. // Inversion constant and variable 4
  40408. {
  40409. l: "-(-n1*n2)",
  40410. r: "(n1*n2)"
  40411. },
  40412. // Unary propagation
  40413. {
  40414. l: "-(n1*n2)",
  40415. r: "(-n1*n2)"
  40416. },
  40417. // Unary propagation
  40418. {
  40419. l: "-(-n1+n2)",
  40420. r: "(n1-n2)"
  40421. },
  40422. // Unary propagation
  40423. {
  40424. l: "-(n1+n2)",
  40425. r: "(-n1-n2)"
  40426. },
  40427. // Unary propagation
  40428. {
  40429. l: "(n1^n2)^n3",
  40430. r: "(n1^(n2*n3))"
  40431. },
  40432. // Power to Power
  40433. {
  40434. l: "-(-n1/n2)",
  40435. r: "(n1/n2)"
  40436. },
  40437. // Division and Unary
  40438. {
  40439. l: "-(n1/n2)",
  40440. r: "(-n1/n2)"
  40441. }
  40442. ];
  40443. var rulesDistrDiv = [
  40444. {
  40445. l: "(n1/n2 + n3/n4)",
  40446. r: "((n1*n4 + n3*n2)/(n2*n4))"
  40447. },
  40448. // Sum of fractions
  40449. {
  40450. l: "(n1/n2 + n3)",
  40451. r: "((n1 + n3*n2)/n2)"
  40452. },
  40453. // Sum fraction with number 1
  40454. {
  40455. l: "(n1 + n2/n3)",
  40456. r: "((n1*n3 + n2)/n3)"
  40457. }
  40458. ];
  40459. var rulesSucDiv = [
  40460. {
  40461. l: "(n1/(n2/n3))",
  40462. r: "((n1*n3)/n2)"
  40463. },
  40464. // Division simplification
  40465. {
  40466. l: "(n1/n2/n3)",
  40467. r: "(n1/(n2*n3))"
  40468. }
  40469. ];
  40470. var setRules = {};
  40471. setRules.firstRules = oldRules.concat(rulesFirst, rulesSucDiv);
  40472. setRules.distrDivRules = rulesDistrDiv;
  40473. setRules.sucDivRules = rulesSucDiv;
  40474. setRules.firstRulesAgain = oldRules.concat(rulesFirst);
  40475. setRules.finalRules = [
  40476. simplifyCore2,
  40477. // simplify.rules[0]
  40478. {
  40479. l: "n*-n",
  40480. r: "-n^2"
  40481. },
  40482. // Joining multiply with power 1
  40483. {
  40484. l: "n*n",
  40485. r: "n^2"
  40486. },
  40487. // Joining multiply with power 2
  40488. simplifyConstant2,
  40489. // simplify.rules[14] old 3rd index in oldRules
  40490. {
  40491. l: "n*-n^n1",
  40492. r: "-n^(n1+1)"
  40493. },
  40494. // Joining multiply with power 3
  40495. {
  40496. l: "n*n^n1",
  40497. r: "n^(n1+1)"
  40498. },
  40499. // Joining multiply with power 4
  40500. {
  40501. l: "n^n1*-n^n2",
  40502. r: "-n^(n1+n2)"
  40503. },
  40504. // Joining multiply with power 5
  40505. {
  40506. l: "n^n1*n^n2",
  40507. r: "n^(n1+n2)"
  40508. },
  40509. // Joining multiply with power 6
  40510. {
  40511. l: "n^n1*-n",
  40512. r: "-n^(n1+1)"
  40513. },
  40514. // Joining multiply with power 7
  40515. {
  40516. l: "n^n1*n",
  40517. r: "n^(n1+1)"
  40518. },
  40519. // Joining multiply with power 8
  40520. {
  40521. l: "n^n1/-n",
  40522. r: "-n^(n1-1)"
  40523. },
  40524. // Joining multiply with power 8
  40525. {
  40526. l: "n^n1/n",
  40527. r: "n^(n1-1)"
  40528. },
  40529. // Joining division with power 1
  40530. {
  40531. l: "n/-n^n1",
  40532. r: "-n^(1-n1)"
  40533. },
  40534. // Joining division with power 2
  40535. {
  40536. l: "n/n^n1",
  40537. r: "n^(1-n1)"
  40538. },
  40539. // Joining division with power 3
  40540. {
  40541. l: "n^n1/-n^n2",
  40542. r: "n^(n1-n2)"
  40543. },
  40544. // Joining division with power 4
  40545. {
  40546. l: "n^n1/n^n2",
  40547. r: "n^(n1-n2)"
  40548. },
  40549. // Joining division with power 5
  40550. {
  40551. l: "n1+(-n2*n3)",
  40552. r: "n1-n2*n3"
  40553. },
  40554. // Solving useless parenthesis 1
  40555. {
  40556. l: "v*(-c)",
  40557. r: "-c*v"
  40558. },
  40559. // Solving useless unary 2
  40560. {
  40561. l: "n1+-n2",
  40562. r: "n1-n2"
  40563. },
  40564. // Solving +- together (new!)
  40565. {
  40566. l: "v*c",
  40567. r: "c*v"
  40568. },
  40569. // inversion constant with variable
  40570. {
  40571. l: "(n1^n2)^n3",
  40572. r: "(n1^(n2*n3))"
  40573. }
  40574. // Power to Power
  40575. ];
  40576. return setRules;
  40577. }
  40578. function expandPower(node, parent, indParent) {
  40579. var tp = node.type;
  40580. var internal = arguments.length > 1;
  40581. if (tp === "OperatorNode" && node.isBinary()) {
  40582. var does = false;
  40583. var val;
  40584. if (node.op === "^") {
  40585. if ((node.args[0].type === "ParenthesisNode" || node.args[0].type === "OperatorNode") && node.args[1].type === "ConstantNode") {
  40586. val = parseFloat(node.args[1].value);
  40587. does = val >= 2 && isInteger(val);
  40588. }
  40589. }
  40590. if (does) {
  40591. if (val > 2) {
  40592. var nEsqTopo = node.args[0];
  40593. var nDirTopo = new OperatorNode2("^", "pow", [node.args[0].cloneDeep(), new ConstantNode2(val - 1)]);
  40594. node = new OperatorNode2("*", "multiply", [nEsqTopo, nDirTopo]);
  40595. } else {
  40596. node = new OperatorNode2("*", "multiply", [node.args[0], node.args[0].cloneDeep()]);
  40597. }
  40598. if (internal) {
  40599. if (indParent === "content") {
  40600. parent.content = node;
  40601. } else {
  40602. parent.args[indParent] = node;
  40603. }
  40604. }
  40605. }
  40606. }
  40607. if (tp === "ParenthesisNode") {
  40608. expandPower(node.content, node, "content");
  40609. } else if (tp !== "ConstantNode" && tp !== "SymbolNode") {
  40610. for (var i2 = 0; i2 < node.args.length; i2++) {
  40611. expandPower(node.args[i2], node, i2);
  40612. }
  40613. }
  40614. if (!internal) {
  40615. return node;
  40616. }
  40617. }
  40618. function polyToCanonical(node, coefficients) {
  40619. if (coefficients === void 0) {
  40620. coefficients = [];
  40621. }
  40622. coefficients[0] = 0;
  40623. var o = {};
  40624. o.cte = 1;
  40625. o.oper = "+";
  40626. o.fire = "";
  40627. var maxExpo = 0;
  40628. var varname = "";
  40629. recurPol(node, null, o);
  40630. maxExpo = coefficients.length - 1;
  40631. var first = true;
  40632. var no;
  40633. for (var i2 = maxExpo; i2 >= 0; i2--) {
  40634. if (coefficients[i2] === 0)
  40635. continue;
  40636. var n16 = new ConstantNode2(first ? coefficients[i2] : Math.abs(coefficients[i2]));
  40637. var op = coefficients[i2] < 0 ? "-" : "+";
  40638. if (i2 > 0) {
  40639. var n25 = new SymbolNode2(varname);
  40640. if (i2 > 1) {
  40641. var n3 = new ConstantNode2(i2);
  40642. n25 = new OperatorNode2("^", "pow", [n25, n3]);
  40643. }
  40644. if (coefficients[i2] === -1 && first) {
  40645. n16 = new OperatorNode2("-", "unaryMinus", [n25]);
  40646. } else if (Math.abs(coefficients[i2]) === 1) {
  40647. n16 = n25;
  40648. } else {
  40649. n16 = new OperatorNode2("*", "multiply", [n16, n25]);
  40650. }
  40651. }
  40652. if (first) {
  40653. no = n16;
  40654. } else if (op === "+") {
  40655. no = new OperatorNode2("+", "add", [no, n16]);
  40656. } else {
  40657. no = new OperatorNode2("-", "subtract", [no, n16]);
  40658. }
  40659. first = false;
  40660. }
  40661. if (first) {
  40662. return new ConstantNode2(0);
  40663. } else {
  40664. return no;
  40665. }
  40666. function recurPol(node2, noPai, o2) {
  40667. var tp = node2.type;
  40668. if (tp === "FunctionNode") {
  40669. throw new Error("There is an unsolved function call");
  40670. } else if (tp === "OperatorNode") {
  40671. if ("+-*^".indexOf(node2.op) === -1)
  40672. throw new Error("Operator " + node2.op + " invalid");
  40673. if (noPai !== null) {
  40674. if ((node2.fn === "unaryMinus" || node2.fn === "pow") && noPai.fn !== "add" && noPai.fn !== "subtract" && noPai.fn !== "multiply") {
  40675. throw new Error("Invalid " + node2.op + " placing");
  40676. }
  40677. if ((node2.fn === "subtract" || node2.fn === "add" || node2.fn === "multiply") && noPai.fn !== "add" && noPai.fn !== "subtract") {
  40678. throw new Error("Invalid " + node2.op + " placing");
  40679. }
  40680. if ((node2.fn === "subtract" || node2.fn === "add" || node2.fn === "unaryMinus") && o2.noFil !== 0) {
  40681. throw new Error("Invalid " + node2.op + " placing");
  40682. }
  40683. }
  40684. if (node2.op === "^" || node2.op === "*") {
  40685. o2.fire = node2.op;
  40686. }
  40687. for (var _i = 0; _i < node2.args.length; _i++) {
  40688. if (node2.fn === "unaryMinus")
  40689. o2.oper = "-";
  40690. if (node2.op === "+" || node2.fn === "subtract") {
  40691. o2.fire = "";
  40692. o2.cte = 1;
  40693. o2.oper = _i === 0 ? "+" : node2.op;
  40694. }
  40695. o2.noFil = _i;
  40696. recurPol(node2.args[_i], node2, o2);
  40697. }
  40698. } else if (tp === "SymbolNode") {
  40699. if (node2.name !== varname && varname !== "") {
  40700. throw new Error("There is more than one variable");
  40701. }
  40702. varname = node2.name;
  40703. if (noPai === null) {
  40704. coefficients[1] = 1;
  40705. return;
  40706. }
  40707. if (noPai.op === "^" && o2.noFil !== 0) {
  40708. throw new Error("In power the variable should be the first parameter");
  40709. }
  40710. if (noPai.op === "*" && o2.noFil !== 1) {
  40711. throw new Error("In multiply the variable should be the second parameter");
  40712. }
  40713. if (o2.fire === "" || o2.fire === "*") {
  40714. if (maxExpo < 1)
  40715. coefficients[1] = 0;
  40716. coefficients[1] += o2.cte * (o2.oper === "+" ? 1 : -1);
  40717. maxExpo = Math.max(1, maxExpo);
  40718. }
  40719. } else if (tp === "ConstantNode") {
  40720. var valor = parseFloat(node2.value);
  40721. if (noPai === null) {
  40722. coefficients[0] = valor;
  40723. return;
  40724. }
  40725. if (noPai.op === "^") {
  40726. if (o2.noFil !== 1)
  40727. throw new Error("Constant cannot be powered");
  40728. if (!isInteger(valor) || valor <= 0) {
  40729. throw new Error("Non-integer exponent is not allowed");
  40730. }
  40731. for (var _i2 = maxExpo + 1; _i2 < valor; _i2++)
  40732. coefficients[_i2] = 0;
  40733. if (valor > maxExpo)
  40734. coefficients[valor] = 0;
  40735. coefficients[valor] += o2.cte * (o2.oper === "+" ? 1 : -1);
  40736. maxExpo = Math.max(valor, maxExpo);
  40737. return;
  40738. }
  40739. o2.cte = valor;
  40740. if (o2.fire === "") {
  40741. coefficients[0] += o2.cte * (o2.oper === "+" ? 1 : -1);
  40742. }
  40743. } else {
  40744. throw new Error("Type " + tp + " is not allowed");
  40745. }
  40746. }
  40747. }
  40748. });
  40749. // node_modules/mathjs/lib/esm/json/reviver.js
  40750. var name282 = "reviver";
  40751. var dependencies282 = ["classes"];
  40752. var createReviver = factory(name282, dependencies282, (_ref) => {
  40753. var {
  40754. classes: classes2
  40755. } = _ref;
  40756. return function reviver2(key, value) {
  40757. var constructor = classes2[value && value.mathjs];
  40758. if (constructor && typeof constructor.fromJSON === "function") {
  40759. return constructor.fromJSON(value);
  40760. }
  40761. return value;
  40762. };
  40763. });
  40764. // node_modules/mathjs/lib/esm/json/replacer.js
  40765. var name283 = "replacer";
  40766. var dependencies283 = [];
  40767. var createReplacer = factory(name283, dependencies283, () => {
  40768. return function replacer2(key, value) {
  40769. if (typeof value === "number" && (!isFinite(value) || isNaN(value))) {
  40770. return {
  40771. mathjs: "number",
  40772. value: String(value)
  40773. };
  40774. }
  40775. return value;
  40776. };
  40777. });
  40778. // node_modules/mathjs/lib/esm/version.js
  40779. var version = "11.8.0";
  40780. // node_modules/mathjs/lib/esm/constants.js
  40781. var createTrue = factory("true", [], () => true);
  40782. var createFalse = factory("false", [], () => false);
  40783. var createNull = factory("null", [], () => null);
  40784. var createInfinity = recreateFactory("Infinity", ["config", "?BigNumber"], (_ref) => {
  40785. var {
  40786. config: config4,
  40787. BigNumber: BigNumber2
  40788. } = _ref;
  40789. return config4.number === "BigNumber" ? new BigNumber2(Infinity) : Infinity;
  40790. });
  40791. var createNaN = recreateFactory("NaN", ["config", "?BigNumber"], (_ref2) => {
  40792. var {
  40793. config: config4,
  40794. BigNumber: BigNumber2
  40795. } = _ref2;
  40796. return config4.number === "BigNumber" ? new BigNumber2(NaN) : NaN;
  40797. });
  40798. var createPi = recreateFactory("pi", ["config", "?BigNumber"], (_ref3) => {
  40799. var {
  40800. config: config4,
  40801. BigNumber: BigNumber2
  40802. } = _ref3;
  40803. return config4.number === "BigNumber" ? createBigNumberPi(BigNumber2) : pi;
  40804. });
  40805. var createTau = recreateFactory("tau", ["config", "?BigNumber"], (_ref4) => {
  40806. var {
  40807. config: config4,
  40808. BigNumber: BigNumber2
  40809. } = _ref4;
  40810. return config4.number === "BigNumber" ? createBigNumberTau(BigNumber2) : tau;
  40811. });
  40812. var createE = recreateFactory("e", ["config", "?BigNumber"], (_ref5) => {
  40813. var {
  40814. config: config4,
  40815. BigNumber: BigNumber2
  40816. } = _ref5;
  40817. return config4.number === "BigNumber" ? createBigNumberE(BigNumber2) : e;
  40818. });
  40819. var createPhi = recreateFactory("phi", ["config", "?BigNumber"], (_ref6) => {
  40820. var {
  40821. config: config4,
  40822. BigNumber: BigNumber2
  40823. } = _ref6;
  40824. return config4.number === "BigNumber" ? createBigNumberPhi(BigNumber2) : phi;
  40825. });
  40826. var createLN2 = recreateFactory("LN2", ["config", "?BigNumber"], (_ref7) => {
  40827. var {
  40828. config: config4,
  40829. BigNumber: BigNumber2
  40830. } = _ref7;
  40831. return config4.number === "BigNumber" ? new BigNumber2(2).ln() : Math.LN2;
  40832. });
  40833. var createLN10 = recreateFactory("LN10", ["config", "?BigNumber"], (_ref8) => {
  40834. var {
  40835. config: config4,
  40836. BigNumber: BigNumber2
  40837. } = _ref8;
  40838. return config4.number === "BigNumber" ? new BigNumber2(10).ln() : Math.LN10;
  40839. });
  40840. var createLOG2E = recreateFactory("LOG2E", ["config", "?BigNumber"], (_ref9) => {
  40841. var {
  40842. config: config4,
  40843. BigNumber: BigNumber2
  40844. } = _ref9;
  40845. return config4.number === "BigNumber" ? new BigNumber2(1).div(new BigNumber2(2).ln()) : Math.LOG2E;
  40846. });
  40847. var createLOG10E = recreateFactory("LOG10E", ["config", "?BigNumber"], (_ref10) => {
  40848. var {
  40849. config: config4,
  40850. BigNumber: BigNumber2
  40851. } = _ref10;
  40852. return config4.number === "BigNumber" ? new BigNumber2(1).div(new BigNumber2(10).ln()) : Math.LOG10E;
  40853. });
  40854. var createSQRT1_2 = recreateFactory(
  40855. // eslint-disable-line camelcase
  40856. "SQRT1_2",
  40857. ["config", "?BigNumber"],
  40858. (_ref11) => {
  40859. var {
  40860. config: config4,
  40861. BigNumber: BigNumber2
  40862. } = _ref11;
  40863. return config4.number === "BigNumber" ? new BigNumber2("0.5").sqrt() : Math.SQRT1_2;
  40864. }
  40865. );
  40866. var createSQRT2 = recreateFactory("SQRT2", ["config", "?BigNumber"], (_ref12) => {
  40867. var {
  40868. config: config4,
  40869. BigNumber: BigNumber2
  40870. } = _ref12;
  40871. return config4.number === "BigNumber" ? new BigNumber2(2).sqrt() : Math.SQRT2;
  40872. });
  40873. var createI = recreateFactory("i", ["Complex"], (_ref13) => {
  40874. var {
  40875. Complex: Complex3
  40876. } = _ref13;
  40877. return Complex3.I;
  40878. });
  40879. var createUppercasePi = factory("PI", ["pi"], (_ref14) => {
  40880. var {
  40881. pi: pi3
  40882. } = _ref14;
  40883. return pi3;
  40884. });
  40885. var createUppercaseE = factory("E", ["e"], (_ref15) => {
  40886. var {
  40887. e: e3
  40888. } = _ref15;
  40889. return e3;
  40890. });
  40891. var createVersion = factory("version", [], () => version);
  40892. function recreateFactory(name302, dependencies302, create3) {
  40893. return factory(name302, dependencies302, create3, {
  40894. recreateOnConfigChange: true
  40895. });
  40896. }
  40897. // node_modules/mathjs/lib/esm/type/unit/physicalConstants.js
  40898. var createSpeedOfLight = unitFactory("speedOfLight", "299792458", "m s^-1");
  40899. var createGravitationConstant = unitFactory("gravitationConstant", "6.67430e-11", "m^3 kg^-1 s^-2");
  40900. var createPlanckConstant = unitFactory("planckConstant", "6.62607015e-34", "J s");
  40901. var createReducedPlanckConstant = unitFactory("reducedPlanckConstant", "1.0545718176461565e-34", "J s");
  40902. var createMagneticConstant = unitFactory("magneticConstant", "1.25663706212e-6", "N A^-2");
  40903. var createElectricConstant = unitFactory("electricConstant", "8.8541878128e-12", "F m^-1");
  40904. var createVacuumImpedance = unitFactory("vacuumImpedance", "376.730313667", "ohm");
  40905. var createCoulomb = unitFactory("coulomb", "8.987551792261171e9", "N m^2 C^-2");
  40906. var createElementaryCharge = unitFactory("elementaryCharge", "1.602176634e-19", "C");
  40907. var createBohrMagneton = unitFactory("bohrMagneton", "9.2740100783e-24", "J T^-1");
  40908. var createConductanceQuantum = unitFactory("conductanceQuantum", "7.748091729863649e-5", "S");
  40909. var createInverseConductanceQuantum = unitFactory("inverseConductanceQuantum", "12906.403729652257", "ohm");
  40910. var createMagneticFluxQuantum = unitFactory("magneticFluxQuantum", "2.0678338484619295e-15", "Wb");
  40911. var createNuclearMagneton = unitFactory("nuclearMagneton", "5.0507837461e-27", "J T^-1");
  40912. var createKlitzing = unitFactory("klitzing", "25812.807459304513", "ohm");
  40913. var createJosephson = unitFactory("josephson", "4.835978484169836e14 Hz V", "Hz V^-1");
  40914. var createBohrRadius = unitFactory("bohrRadius", "5.29177210903e-11", "m");
  40915. var createClassicalElectronRadius = unitFactory("classicalElectronRadius", "2.8179403262e-15", "m");
  40916. var createElectronMass = unitFactory("electronMass", "9.1093837015e-31", "kg");
  40917. var createFermiCoupling = unitFactory("fermiCoupling", "1.1663787e-5", "GeV^-2");
  40918. var createFineStructure = numberFactory("fineStructure", 0.0072973525693);
  40919. var createHartreeEnergy = unitFactory("hartreeEnergy", "4.3597447222071e-18", "J");
  40920. var createProtonMass = unitFactory("protonMass", "1.67262192369e-27", "kg");
  40921. var createDeuteronMass = unitFactory("deuteronMass", "3.3435830926e-27", "kg");
  40922. var createNeutronMass = unitFactory("neutronMass", "1.6749271613e-27", "kg");
  40923. var createQuantumOfCirculation = unitFactory("quantumOfCirculation", "3.6369475516e-4", "m^2 s^-1");
  40924. var createRydberg = unitFactory("rydberg", "10973731.568160", "m^-1");
  40925. var createThomsonCrossSection = unitFactory("thomsonCrossSection", "6.6524587321e-29", "m^2");
  40926. var createWeakMixingAngle = numberFactory("weakMixingAngle", 0.2229);
  40927. var createEfimovFactor = numberFactory("efimovFactor", 22.7);
  40928. var createAtomicMass = unitFactory("atomicMass", "1.66053906660e-27", "kg");
  40929. var createAvogadro = unitFactory("avogadro", "6.02214076e23", "mol^-1");
  40930. var createBoltzmann = unitFactory("boltzmann", "1.380649e-23", "J K^-1");
  40931. var createFaraday = unitFactory("faraday", "96485.33212331001", "C mol^-1");
  40932. var createFirstRadiation = unitFactory("firstRadiation", "3.7417718521927573e-16", "W m^2");
  40933. var createLoschmidt = unitFactory("loschmidt", "2.686780111798444e25", "m^-3");
  40934. var createGasConstant = unitFactory("gasConstant", "8.31446261815324", "J K^-1 mol^-1");
  40935. var createMolarPlanckConstant = unitFactory("molarPlanckConstant", "3.990312712893431e-10", "J s mol^-1");
  40936. var createMolarVolume = unitFactory("molarVolume", "0.022413969545014137", "m^3 mol^-1");
  40937. var createSackurTetrode = numberFactory("sackurTetrode", -1.16487052358);
  40938. var createSecondRadiation = unitFactory("secondRadiation", "0.014387768775039337", "m K");
  40939. var createStefanBoltzmann = unitFactory("stefanBoltzmann", "5.67037441918443e-8", "W m^-2 K^-4");
  40940. var createWienDisplacement = unitFactory("wienDisplacement", "2.897771955e-3", "m K");
  40941. var createMolarMass = unitFactory("molarMass", "0.99999999965e-3", "kg mol^-1");
  40942. var createMolarMassC12 = unitFactory("molarMassC12", "11.9999999958e-3", "kg mol^-1");
  40943. var createGravity = unitFactory("gravity", "9.80665", "m s^-2");
  40944. var createPlanckLength = unitFactory("planckLength", "1.616255e-35", "m");
  40945. var createPlanckMass = unitFactory("planckMass", "2.176435e-8", "kg");
  40946. var createPlanckTime = unitFactory("planckTime", "5.391245e-44", "s");
  40947. var createPlanckCharge = unitFactory("planckCharge", "1.87554603778e-18", "C");
  40948. var createPlanckTemperature = unitFactory("planckTemperature", "1.416785e+32", "K");
  40949. function unitFactory(name302, valueStr, unitStr) {
  40950. var dependencies302 = ["config", "Unit", "BigNumber"];
  40951. return factory(name302, dependencies302, (_ref) => {
  40952. var {
  40953. config: config4,
  40954. Unit: Unit2,
  40955. BigNumber: BigNumber2
  40956. } = _ref;
  40957. var value = config4.number === "BigNumber" ? new BigNumber2(valueStr) : parseFloat(valueStr);
  40958. var unit2 = new Unit2(value, unitStr);
  40959. unit2.fixPrefix = true;
  40960. return unit2;
  40961. });
  40962. }
  40963. function numberFactory(name302, value) {
  40964. var dependencies302 = ["config", "BigNumber"];
  40965. return factory(name302, dependencies302, (_ref2) => {
  40966. var {
  40967. config: config4,
  40968. BigNumber: BigNumber2
  40969. } = _ref2;
  40970. return config4.number === "BigNumber" ? new BigNumber2(value) : value;
  40971. });
  40972. }
  40973. // node_modules/mathjs/lib/esm/expression/transform/apply.transform.js
  40974. var name284 = "apply";
  40975. var dependencies284 = ["typed", "isInteger"];
  40976. var createApplyTransform = factory(name284, dependencies284, (_ref) => {
  40977. var {
  40978. typed: typed2,
  40979. isInteger: isInteger3
  40980. } = _ref;
  40981. var apply2 = createApply({
  40982. typed: typed2,
  40983. isInteger: isInteger3
  40984. });
  40985. return typed2("apply", {
  40986. "...any": function any(args) {
  40987. var dim = args[1];
  40988. if (isNumber(dim)) {
  40989. args[1] = dim - 1;
  40990. } else if (isBigNumber(dim)) {
  40991. args[1] = dim.minus(1);
  40992. }
  40993. try {
  40994. return apply2.apply(null, args);
  40995. } catch (err) {
  40996. throw errorTransform(err);
  40997. }
  40998. }
  40999. });
  41000. }, {
  41001. isTransformFunction: true
  41002. });
  41003. // node_modules/mathjs/lib/esm/expression/transform/column.transform.js
  41004. var name285 = "column";
  41005. var dependencies285 = ["typed", "Index", "matrix", "range"];
  41006. var createColumnTransform = factory(name285, dependencies285, (_ref) => {
  41007. var {
  41008. typed: typed2,
  41009. Index: Index2,
  41010. matrix: matrix2,
  41011. range: range2
  41012. } = _ref;
  41013. var column2 = createColumn({
  41014. typed: typed2,
  41015. Index: Index2,
  41016. matrix: matrix2,
  41017. range: range2
  41018. });
  41019. return typed2("column", {
  41020. "...any": function any(args) {
  41021. var lastIndex = args.length - 1;
  41022. var last = args[lastIndex];
  41023. if (isNumber(last)) {
  41024. args[lastIndex] = last - 1;
  41025. }
  41026. try {
  41027. return column2.apply(null, args);
  41028. } catch (err) {
  41029. throw errorTransform(err);
  41030. }
  41031. }
  41032. });
  41033. }, {
  41034. isTransformFunction: true
  41035. });
  41036. // node_modules/mathjs/lib/esm/expression/transform/utils/compileInlineExpression.js
  41037. function compileInlineExpression(expression, math2, scope) {
  41038. var symbol = expression.filter(function(node) {
  41039. return isSymbolNode(node) && !(node.name in math2) && !scope.has(node.name);
  41040. })[0];
  41041. if (!symbol) {
  41042. throw new Error('No undefined variable found in inline expression "' + expression + '"');
  41043. }
  41044. var name302 = symbol.name;
  41045. var subScope = createSubScope(scope);
  41046. var eq = expression.compile();
  41047. return function inlineExpression(x) {
  41048. subScope.set(name302, x);
  41049. return eq.evaluate(subScope);
  41050. };
  41051. }
  41052. // node_modules/mathjs/lib/esm/expression/transform/filter.transform.js
  41053. var name286 = "filter";
  41054. var dependencies286 = ["typed"];
  41055. var createFilterTransform = factory(name286, dependencies286, (_ref) => {
  41056. var {
  41057. typed: typed2
  41058. } = _ref;
  41059. function filterTransform(args, math2, scope) {
  41060. var x, callback;
  41061. if (args[0]) {
  41062. x = args[0].compile().evaluate(scope);
  41063. }
  41064. if (args[1]) {
  41065. if (isSymbolNode(args[1]) || isFunctionAssignmentNode(args[1])) {
  41066. callback = args[1].compile().evaluate(scope);
  41067. } else {
  41068. callback = compileInlineExpression(args[1], math2, scope);
  41069. }
  41070. }
  41071. return filter3(x, callback);
  41072. }
  41073. filterTransform.rawArgs = true;
  41074. var filter3 = typed2("filter", {
  41075. "Array, function": _filter,
  41076. "Matrix, function": function MatrixFunction(x, test) {
  41077. return x.create(_filter(x.toArray(), test));
  41078. },
  41079. "Array, RegExp": filterRegExp,
  41080. "Matrix, RegExp": function MatrixRegExp(x, test) {
  41081. return x.create(filterRegExp(x.toArray(), test));
  41082. }
  41083. });
  41084. return filterTransform;
  41085. }, {
  41086. isTransformFunction: true
  41087. });
  41088. function _filter(x, callback) {
  41089. var args = maxArgumentCount(callback);
  41090. return filter(x, function(value, index2, array) {
  41091. if (args === 1) {
  41092. return callback(value);
  41093. } else if (args === 2) {
  41094. return callback(value, [index2 + 1]);
  41095. } else {
  41096. return callback(value, [index2 + 1], array);
  41097. }
  41098. });
  41099. }
  41100. // node_modules/mathjs/lib/esm/expression/transform/forEach.transform.js
  41101. var name287 = "forEach";
  41102. var dependencies287 = ["typed"];
  41103. var createForEachTransform = factory(name287, dependencies287, (_ref) => {
  41104. var {
  41105. typed: typed2
  41106. } = _ref;
  41107. function forEachTransform(args, math2, scope) {
  41108. var x, callback;
  41109. if (args[0]) {
  41110. x = args[0].compile().evaluate(scope);
  41111. }
  41112. if (args[1]) {
  41113. if (isSymbolNode(args[1]) || isFunctionAssignmentNode(args[1])) {
  41114. callback = args[1].compile().evaluate(scope);
  41115. } else {
  41116. callback = compileInlineExpression(args[1], math2, scope);
  41117. }
  41118. }
  41119. return _forEach2(x, callback);
  41120. }
  41121. forEachTransform.rawArgs = true;
  41122. var _forEach2 = typed2("forEach", {
  41123. "Array | Matrix, function": function ArrayMatrixFunction(array, callback) {
  41124. var args = maxArgumentCount(callback);
  41125. var recurse = function recurse2(value, index2) {
  41126. if (Array.isArray(value)) {
  41127. forEach(value, function(child, i2) {
  41128. recurse2(child, index2.concat(i2 + 1));
  41129. });
  41130. } else {
  41131. if (args === 1) {
  41132. callback(value);
  41133. } else if (args === 2) {
  41134. callback(value, index2);
  41135. } else {
  41136. callback(value, index2, array);
  41137. }
  41138. }
  41139. };
  41140. recurse(array.valueOf(), []);
  41141. }
  41142. });
  41143. return forEachTransform;
  41144. }, {
  41145. isTransformFunction: true
  41146. });
  41147. // node_modules/mathjs/lib/esm/expression/transform/index.transform.js
  41148. var name288 = "index";
  41149. var dependencies288 = ["Index"];
  41150. var createIndexTransform = factory(name288, dependencies288, (_ref) => {
  41151. var {
  41152. Index: Index2
  41153. } = _ref;
  41154. return function indexTransform() {
  41155. var args = [];
  41156. for (var i2 = 0, ii = arguments.length; i2 < ii; i2++) {
  41157. var arg2 = arguments[i2];
  41158. if (isRange(arg2)) {
  41159. arg2.start--;
  41160. arg2.end -= arg2.step > 0 ? 0 : 2;
  41161. } else if (arg2 && arg2.isSet === true) {
  41162. arg2 = arg2.map(function(v) {
  41163. return v - 1;
  41164. });
  41165. } else if (isArray(arg2) || isMatrix(arg2)) {
  41166. arg2 = arg2.map(function(v) {
  41167. return v - 1;
  41168. });
  41169. } else if (isNumber(arg2)) {
  41170. arg2--;
  41171. } else if (isBigNumber(arg2)) {
  41172. arg2 = arg2.toNumber() - 1;
  41173. } else if (typeof arg2 === "string") {
  41174. } else {
  41175. throw new TypeError("Dimension must be an Array, Matrix, number, string, or Range");
  41176. }
  41177. args[i2] = arg2;
  41178. }
  41179. var res = new Index2();
  41180. Index2.apply(res, args);
  41181. return res;
  41182. };
  41183. }, {
  41184. isTransformFunction: true
  41185. });
  41186. // node_modules/mathjs/lib/esm/expression/transform/map.transform.js
  41187. var name289 = "map";
  41188. var dependencies289 = ["typed"];
  41189. var createMapTransform = factory(name289, dependencies289, (_ref) => {
  41190. var {
  41191. typed: typed2
  41192. } = _ref;
  41193. function mapTransform(args, math2, scope) {
  41194. var x, callback;
  41195. if (args[0]) {
  41196. x = args[0].compile().evaluate(scope);
  41197. }
  41198. if (args[1]) {
  41199. if (isSymbolNode(args[1]) || isFunctionAssignmentNode(args[1])) {
  41200. callback = args[1].compile().evaluate(scope);
  41201. } else {
  41202. callback = compileInlineExpression(args[1], math2, scope);
  41203. }
  41204. }
  41205. return map3(x, callback);
  41206. }
  41207. mapTransform.rawArgs = true;
  41208. var map3 = typed2("map", {
  41209. "Array, function": function ArrayFunction(x, callback) {
  41210. return _map2(x, callback, x);
  41211. },
  41212. "Matrix, function": function MatrixFunction(x, callback) {
  41213. return x.create(_map2(x.valueOf(), callback, x));
  41214. }
  41215. });
  41216. return mapTransform;
  41217. }, {
  41218. isTransformFunction: true
  41219. });
  41220. function _map2(array, callback, orig) {
  41221. var argsCount = maxArgumentCount(callback);
  41222. function recurse(value, index2) {
  41223. if (Array.isArray(value)) {
  41224. return map(value, function(child, i2) {
  41225. return recurse(child, index2.concat(i2 + 1));
  41226. });
  41227. } else {
  41228. if (argsCount === 1) {
  41229. return callback(value);
  41230. } else if (argsCount === 2) {
  41231. return callback(value, index2);
  41232. } else {
  41233. return callback(value, index2, orig);
  41234. }
  41235. }
  41236. }
  41237. return recurse(array, []);
  41238. }
  41239. // node_modules/mathjs/lib/esm/expression/transform/utils/lastDimToZeroBase.js
  41240. function lastDimToZeroBase(args) {
  41241. if (args.length === 2 && isCollection(args[0])) {
  41242. args = args.slice();
  41243. var dim = args[1];
  41244. if (isNumber(dim)) {
  41245. args[1] = dim - 1;
  41246. } else if (isBigNumber(dim)) {
  41247. args[1] = dim.minus(1);
  41248. }
  41249. }
  41250. return args;
  41251. }
  41252. // node_modules/mathjs/lib/esm/expression/transform/max.transform.js
  41253. var name290 = "max";
  41254. var dependencies290 = ["typed", "config", "numeric", "larger"];
  41255. var createMaxTransform = factory(name290, dependencies290, (_ref) => {
  41256. var {
  41257. typed: typed2,
  41258. config: config4,
  41259. numeric: numeric3,
  41260. larger: larger2
  41261. } = _ref;
  41262. var max3 = createMax({
  41263. typed: typed2,
  41264. config: config4,
  41265. numeric: numeric3,
  41266. larger: larger2
  41267. });
  41268. return typed2("max", {
  41269. "...any": function any(args) {
  41270. args = lastDimToZeroBase(args);
  41271. try {
  41272. return max3.apply(null, args);
  41273. } catch (err) {
  41274. throw errorTransform(err);
  41275. }
  41276. }
  41277. });
  41278. }, {
  41279. isTransformFunction: true
  41280. });
  41281. // node_modules/mathjs/lib/esm/expression/transform/mean.transform.js
  41282. var name291 = "mean";
  41283. var dependencies291 = ["typed", "add", "divide"];
  41284. var createMeanTransform = factory(name291, dependencies291, (_ref) => {
  41285. var {
  41286. typed: typed2,
  41287. add: add3,
  41288. divide: divide3
  41289. } = _ref;
  41290. var mean2 = createMean({
  41291. typed: typed2,
  41292. add: add3,
  41293. divide: divide3
  41294. });
  41295. return typed2("mean", {
  41296. "...any": function any(args) {
  41297. args = lastDimToZeroBase(args);
  41298. try {
  41299. return mean2.apply(null, args);
  41300. } catch (err) {
  41301. throw errorTransform(err);
  41302. }
  41303. }
  41304. });
  41305. }, {
  41306. isTransformFunction: true
  41307. });
  41308. // node_modules/mathjs/lib/esm/expression/transform/min.transform.js
  41309. var name292 = "min";
  41310. var dependencies292 = ["typed", "config", "numeric", "smaller"];
  41311. var createMinTransform = factory(name292, dependencies292, (_ref) => {
  41312. var {
  41313. typed: typed2,
  41314. config: config4,
  41315. numeric: numeric3,
  41316. smaller: smaller2
  41317. } = _ref;
  41318. var min3 = createMin({
  41319. typed: typed2,
  41320. config: config4,
  41321. numeric: numeric3,
  41322. smaller: smaller2
  41323. });
  41324. return typed2("min", {
  41325. "...any": function any(args) {
  41326. args = lastDimToZeroBase(args);
  41327. try {
  41328. return min3.apply(null, args);
  41329. } catch (err) {
  41330. throw errorTransform(err);
  41331. }
  41332. }
  41333. });
  41334. }, {
  41335. isTransformFunction: true
  41336. });
  41337. // node_modules/mathjs/lib/esm/expression/transform/range.transform.js
  41338. var name293 = "range";
  41339. var dependencies293 = ["typed", "config", "?matrix", "?bignumber", "smaller", "smallerEq", "larger", "largerEq"];
  41340. var createRangeTransform = factory(name293, dependencies293, (_ref) => {
  41341. var {
  41342. typed: typed2,
  41343. config: config4,
  41344. matrix: matrix2,
  41345. bignumber: bignumber2,
  41346. smaller: smaller2,
  41347. smallerEq: smallerEq2,
  41348. larger: larger2,
  41349. largerEq: largerEq2
  41350. } = _ref;
  41351. var range2 = createRange({
  41352. typed: typed2,
  41353. config: config4,
  41354. matrix: matrix2,
  41355. bignumber: bignumber2,
  41356. smaller: smaller2,
  41357. smallerEq: smallerEq2,
  41358. larger: larger2,
  41359. largerEq: largerEq2
  41360. });
  41361. return typed2("range", {
  41362. "...any": function any(args) {
  41363. var lastIndex = args.length - 1;
  41364. var last = args[lastIndex];
  41365. if (typeof last !== "boolean") {
  41366. args.push(true);
  41367. }
  41368. return range2.apply(null, args);
  41369. }
  41370. });
  41371. }, {
  41372. isTransformFunction: true
  41373. });
  41374. // node_modules/mathjs/lib/esm/expression/transform/row.transform.js
  41375. var name294 = "row";
  41376. var dependencies294 = ["typed", "Index", "matrix", "range"];
  41377. var createRowTransform = factory(name294, dependencies294, (_ref) => {
  41378. var {
  41379. typed: typed2,
  41380. Index: Index2,
  41381. matrix: matrix2,
  41382. range: range2
  41383. } = _ref;
  41384. var row2 = createRow({
  41385. typed: typed2,
  41386. Index: Index2,
  41387. matrix: matrix2,
  41388. range: range2
  41389. });
  41390. return typed2("row", {
  41391. "...any": function any(args) {
  41392. var lastIndex = args.length - 1;
  41393. var last = args[lastIndex];
  41394. if (isNumber(last)) {
  41395. args[lastIndex] = last - 1;
  41396. }
  41397. try {
  41398. return row2.apply(null, args);
  41399. } catch (err) {
  41400. throw errorTransform(err);
  41401. }
  41402. }
  41403. });
  41404. }, {
  41405. isTransformFunction: true
  41406. });
  41407. // node_modules/mathjs/lib/esm/expression/transform/subset.transform.js
  41408. var name295 = "subset";
  41409. var dependencies295 = ["typed", "matrix"];
  41410. var createSubsetTransform = factory(name295, dependencies295, (_ref) => {
  41411. var {
  41412. typed: typed2,
  41413. matrix: matrix2
  41414. } = _ref;
  41415. var subset2 = createSubset({
  41416. typed: typed2,
  41417. matrix: matrix2
  41418. });
  41419. return typed2("subset", {
  41420. "...any": function any(args) {
  41421. try {
  41422. return subset2.apply(null, args);
  41423. } catch (err) {
  41424. throw errorTransform(err);
  41425. }
  41426. }
  41427. });
  41428. }, {
  41429. isTransformFunction: true
  41430. });
  41431. // node_modules/mathjs/lib/esm/expression/transform/concat.transform.js
  41432. var name296 = "concat";
  41433. var dependencies296 = ["typed", "matrix", "isInteger"];
  41434. var createConcatTransform = factory(name296, dependencies296, (_ref) => {
  41435. var {
  41436. typed: typed2,
  41437. matrix: matrix2,
  41438. isInteger: isInteger3
  41439. } = _ref;
  41440. var concat2 = createConcat({
  41441. typed: typed2,
  41442. matrix: matrix2,
  41443. isInteger: isInteger3
  41444. });
  41445. return typed2("concat", {
  41446. "...any": function any(args) {
  41447. var lastIndex = args.length - 1;
  41448. var last = args[lastIndex];
  41449. if (isNumber(last)) {
  41450. args[lastIndex] = last - 1;
  41451. } else if (isBigNumber(last)) {
  41452. args[lastIndex] = last.minus(1);
  41453. }
  41454. try {
  41455. return concat2.apply(null, args);
  41456. } catch (err) {
  41457. throw errorTransform(err);
  41458. }
  41459. }
  41460. });
  41461. }, {
  41462. isTransformFunction: true
  41463. });
  41464. // node_modules/mathjs/lib/esm/expression/transform/diff.transform.js
  41465. var name297 = "diff";
  41466. var dependencies297 = ["typed", "matrix", "subtract", "number", "bignumber"];
  41467. var createDiffTransform = factory(name297, dependencies297, (_ref) => {
  41468. var {
  41469. typed: typed2,
  41470. matrix: matrix2,
  41471. subtract: subtract2,
  41472. number: number2,
  41473. bignumber: bignumber2
  41474. } = _ref;
  41475. var diff2 = createDiff({
  41476. typed: typed2,
  41477. matrix: matrix2,
  41478. subtract: subtract2,
  41479. number: number2,
  41480. bignumber: bignumber2
  41481. });
  41482. return typed2(name297, {
  41483. "...any": function any(args) {
  41484. args = lastDimToZeroBase(args);
  41485. try {
  41486. return diff2.apply(null, args);
  41487. } catch (err) {
  41488. throw errorTransform(err);
  41489. }
  41490. }
  41491. });
  41492. }, {
  41493. isTransformFunction: true
  41494. });
  41495. // node_modules/mathjs/lib/esm/expression/transform/std.transform.js
  41496. var name298 = "std";
  41497. var dependencies298 = ["typed", "map", "sqrt", "variance"];
  41498. var createStdTransform = factory(name298, dependencies298, (_ref) => {
  41499. var {
  41500. typed: typed2,
  41501. map: map3,
  41502. sqrt: sqrt3,
  41503. variance: variance2
  41504. } = _ref;
  41505. var std2 = createStd({
  41506. typed: typed2,
  41507. map: map3,
  41508. sqrt: sqrt3,
  41509. variance: variance2
  41510. });
  41511. return typed2("std", {
  41512. "...any": function any(args) {
  41513. args = lastDimToZeroBase(args);
  41514. try {
  41515. return std2.apply(null, args);
  41516. } catch (err) {
  41517. throw errorTransform(err);
  41518. }
  41519. }
  41520. });
  41521. }, {
  41522. isTransformFunction: true
  41523. });
  41524. // node_modules/mathjs/lib/esm/expression/transform/sum.transform.js
  41525. var name299 = "sum";
  41526. var dependencies299 = ["typed", "config", "add", "numeric"];
  41527. var createSumTransform = factory(name299, dependencies299, (_ref) => {
  41528. var {
  41529. typed: typed2,
  41530. config: config4,
  41531. add: add3,
  41532. numeric: numeric3
  41533. } = _ref;
  41534. var sum3 = createSum({
  41535. typed: typed2,
  41536. config: config4,
  41537. add: add3,
  41538. numeric: numeric3
  41539. });
  41540. return typed2(name299, {
  41541. "...any": function any(args) {
  41542. args = lastDimToZeroBase(args);
  41543. try {
  41544. return sum3.apply(null, args);
  41545. } catch (err) {
  41546. throw errorTransform(err);
  41547. }
  41548. }
  41549. });
  41550. }, {
  41551. isTransformFunction: true
  41552. });
  41553. // node_modules/mathjs/lib/esm/expression/transform/cumsum.transform.js
  41554. var name300 = "cumsum";
  41555. var dependencies300 = ["typed", "add", "unaryPlus"];
  41556. var createCumSumTransform = factory(name300, dependencies300, (_ref) => {
  41557. var {
  41558. typed: typed2,
  41559. add: add3,
  41560. unaryPlus: unaryPlus2
  41561. } = _ref;
  41562. var cumsum2 = createCumSum({
  41563. typed: typed2,
  41564. add: add3,
  41565. unaryPlus: unaryPlus2
  41566. });
  41567. return typed2(name300, {
  41568. "...any": function any(args) {
  41569. if (args.length === 2 && isCollection(args[0])) {
  41570. var dim = args[1];
  41571. if (isNumber(dim)) {
  41572. args[1] = dim - 1;
  41573. } else if (isBigNumber(dim)) {
  41574. args[1] = dim.minus(1);
  41575. }
  41576. }
  41577. try {
  41578. return cumsum2.apply(null, args);
  41579. } catch (err) {
  41580. throw errorTransform(err);
  41581. }
  41582. }
  41583. });
  41584. }, {
  41585. isTransformFunction: true
  41586. });
  41587. // node_modules/mathjs/lib/esm/expression/transform/variance.transform.js
  41588. var name301 = "variance";
  41589. var dependencies301 = ["typed", "add", "subtract", "multiply", "divide", "apply", "isNaN"];
  41590. var createVarianceTransform = factory(name301, dependencies301, (_ref) => {
  41591. var {
  41592. typed: typed2,
  41593. add: add3,
  41594. subtract: subtract2,
  41595. multiply: multiply2,
  41596. divide: divide3,
  41597. apply: apply2,
  41598. isNaN: isNaN3
  41599. } = _ref;
  41600. var variance2 = createVariance({
  41601. typed: typed2,
  41602. add: add3,
  41603. subtract: subtract2,
  41604. multiply: multiply2,
  41605. divide: divide3,
  41606. apply: apply2,
  41607. isNaN: isNaN3
  41608. });
  41609. return typed2(name301, {
  41610. "...any": function any(args) {
  41611. args = lastDimToZeroBase(args);
  41612. try {
  41613. return variance2.apply(null, args);
  41614. } catch (err) {
  41615. throw errorTransform(err);
  41616. }
  41617. }
  41618. });
  41619. }, {
  41620. isTransformFunction: true
  41621. });
  41622. // node_modules/mathjs/lib/esm/entry/pureFunctionsAny.generated.js
  41623. var BigNumber = createBigNumberClass({
  41624. config
  41625. });
  41626. var Complex2 = createComplexClass({});
  41627. var e2 = createE({
  41628. BigNumber,
  41629. config
  41630. });
  41631. var _false = createFalse({});
  41632. var fineStructure = createFineStructure({
  41633. BigNumber,
  41634. config
  41635. });
  41636. var Fraction2 = createFractionClass({});
  41637. var i = createI({
  41638. Complex: Complex2
  41639. });
  41640. var _Infinity = createInfinity({
  41641. BigNumber,
  41642. config
  41643. });
  41644. var LN102 = createLN10({
  41645. BigNumber,
  41646. config
  41647. });
  41648. var LOG10E = createLOG10E({
  41649. BigNumber,
  41650. config
  41651. });
  41652. var Matrix = createMatrixClass({});
  41653. var _NaN = createNaN({
  41654. BigNumber,
  41655. config
  41656. });
  41657. var _null = createNull({});
  41658. var phi2 = createPhi({
  41659. BigNumber,
  41660. config
  41661. });
  41662. var Range = createRangeClass({});
  41663. var ResultSet = createResultSet({});
  41664. var SQRT1_2 = createSQRT1_2({
  41665. BigNumber,
  41666. config
  41667. });
  41668. var sackurTetrode = createSackurTetrode({
  41669. BigNumber,
  41670. config
  41671. });
  41672. var tau2 = createTau({
  41673. BigNumber,
  41674. config
  41675. });
  41676. var _true = createTrue({});
  41677. var version2 = createVersion({});
  41678. var DenseMatrix = createDenseMatrixClass({
  41679. Matrix
  41680. });
  41681. var efimovFactor = createEfimovFactor({
  41682. BigNumber,
  41683. config
  41684. });
  41685. var LN2 = createLN2({
  41686. BigNumber,
  41687. config
  41688. });
  41689. var pi2 = createPi({
  41690. BigNumber,
  41691. config
  41692. });
  41693. var replacer = createReplacer({});
  41694. var SQRT2 = createSQRT2({
  41695. BigNumber,
  41696. config
  41697. });
  41698. var typed = createTyped({
  41699. BigNumber,
  41700. Complex: Complex2,
  41701. DenseMatrix,
  41702. Fraction: Fraction2
  41703. });
  41704. var unaryPlus = createUnaryPlus({
  41705. BigNumber,
  41706. config,
  41707. typed
  41708. });
  41709. var weakMixingAngle = createWeakMixingAngle({
  41710. BigNumber,
  41711. config
  41712. });
  41713. var abs2 = createAbs({
  41714. typed
  41715. });
  41716. var acos2 = createAcos({
  41717. Complex: Complex2,
  41718. config,
  41719. typed
  41720. });
  41721. var acot = createAcot({
  41722. BigNumber,
  41723. typed
  41724. });
  41725. var acsc = createAcsc({
  41726. BigNumber,
  41727. Complex: Complex2,
  41728. config,
  41729. typed
  41730. });
  41731. var addScalar = createAddScalar({
  41732. typed
  41733. });
  41734. var arg = createArg({
  41735. typed
  41736. });
  41737. var asech = createAsech({
  41738. BigNumber,
  41739. Complex: Complex2,
  41740. config,
  41741. typed
  41742. });
  41743. var asinh3 = createAsinh({
  41744. typed
  41745. });
  41746. var atan3 = createAtan({
  41747. typed
  41748. });
  41749. var atanh3 = createAtanh({
  41750. Complex: Complex2,
  41751. config,
  41752. typed
  41753. });
  41754. var bignumber = createBignumber({
  41755. BigNumber,
  41756. typed
  41757. });
  41758. var bitNot = createBitNot({
  41759. typed
  41760. });
  41761. var boolean = createBoolean({
  41762. typed
  41763. });
  41764. var clone3 = createClone({
  41765. typed
  41766. });
  41767. var combinations = createCombinations({
  41768. typed
  41769. });
  41770. var complex = createComplex({
  41771. Complex: Complex2,
  41772. typed
  41773. });
  41774. var conj = createConj({
  41775. typed
  41776. });
  41777. var cosh3 = createCosh({
  41778. typed
  41779. });
  41780. var coth = createCoth({
  41781. BigNumber,
  41782. typed
  41783. });
  41784. var csc = createCsc({
  41785. BigNumber,
  41786. typed
  41787. });
  41788. var cube = createCube({
  41789. typed
  41790. });
  41791. var equalScalar = createEqualScalar({
  41792. config,
  41793. typed
  41794. });
  41795. var erf = createErf({
  41796. typed
  41797. });
  41798. var exp2 = createExp({
  41799. typed
  41800. });
  41801. var expm13 = createExpm1({
  41802. Complex: Complex2,
  41803. typed
  41804. });
  41805. var filter2 = createFilter({
  41806. typed
  41807. });
  41808. var forEach2 = createForEach({
  41809. typed
  41810. });
  41811. var format4 = createFormat({
  41812. typed
  41813. });
  41814. var getMatrixDataType = createGetMatrixDataType({
  41815. typed
  41816. });
  41817. var hex = createHex({
  41818. format: format4,
  41819. typed
  41820. });
  41821. var im = createIm({
  41822. typed
  41823. });
  41824. var isInteger2 = createIsInteger({
  41825. typed
  41826. });
  41827. var isNegative = createIsNegative({
  41828. typed
  41829. });
  41830. var isPositive = createIsPositive({
  41831. typed
  41832. });
  41833. var isZero = createIsZero({
  41834. typed
  41835. });
  41836. var LOG2E = createLOG2E({
  41837. BigNumber,
  41838. config
  41839. });
  41840. var lgamma = createLgamma({
  41841. Complex: Complex2,
  41842. typed
  41843. });
  41844. var log104 = createLog10({
  41845. Complex: Complex2,
  41846. config,
  41847. typed
  41848. });
  41849. var log24 = createLog2({
  41850. Complex: Complex2,
  41851. config,
  41852. typed
  41853. });
  41854. var map2 = createMap2({
  41855. typed
  41856. });
  41857. var multiplyScalar = createMultiplyScalar({
  41858. typed
  41859. });
  41860. var not = createNot({
  41861. typed
  41862. });
  41863. var number = createNumber({
  41864. typed
  41865. });
  41866. var oct = createOct({
  41867. format: format4,
  41868. typed
  41869. });
  41870. var pickRandom = createPickRandom({
  41871. config,
  41872. typed
  41873. });
  41874. var print = createPrint({
  41875. typed
  41876. });
  41877. var random2 = createRandom({
  41878. config,
  41879. typed
  41880. });
  41881. var re = createRe({
  41882. typed
  41883. });
  41884. var sec = createSec({
  41885. BigNumber,
  41886. typed
  41887. });
  41888. var sign3 = createSign({
  41889. BigNumber,
  41890. Fraction: Fraction2,
  41891. complex,
  41892. typed
  41893. });
  41894. var sin2 = createSin({
  41895. typed
  41896. });
  41897. var SparseMatrix = createSparseMatrixClass({
  41898. Matrix,
  41899. equalScalar,
  41900. typed
  41901. });
  41902. var splitUnit = createSplitUnit({
  41903. typed
  41904. });
  41905. var square = createSquare({
  41906. typed
  41907. });
  41908. var string = createString({
  41909. typed
  41910. });
  41911. var tan2 = createTan({
  41912. typed
  41913. });
  41914. var typeOf2 = createTypeOf({
  41915. typed
  41916. });
  41917. var acosh3 = createAcosh({
  41918. Complex: Complex2,
  41919. config,
  41920. typed
  41921. });
  41922. var acsch = createAcsch({
  41923. BigNumber,
  41924. typed
  41925. });
  41926. var apply = createApply({
  41927. isInteger: isInteger2,
  41928. typed
  41929. });
  41930. var asec = createAsec({
  41931. BigNumber,
  41932. Complex: Complex2,
  41933. config,
  41934. typed
  41935. });
  41936. var bin = createBin({
  41937. format: format4,
  41938. typed
  41939. });
  41940. var combinationsWithRep = createCombinationsWithRep({
  41941. typed
  41942. });
  41943. var cos2 = createCos({
  41944. typed
  41945. });
  41946. var csch = createCsch({
  41947. BigNumber,
  41948. typed
  41949. });
  41950. var isNaN2 = createIsNaN({
  41951. typed
  41952. });
  41953. var isPrime = createIsPrime({
  41954. typed
  41955. });
  41956. var randomInt = createRandomInt({
  41957. config,
  41958. typed
  41959. });
  41960. var sech = createSech({
  41961. BigNumber,
  41962. typed
  41963. });
  41964. var sinh3 = createSinh({
  41965. typed
  41966. });
  41967. var sparse = createSparse({
  41968. SparseMatrix,
  41969. typed
  41970. });
  41971. var sqrt2 = createSqrt({
  41972. Complex: Complex2,
  41973. config,
  41974. typed
  41975. });
  41976. var tanh3 = createTanh({
  41977. typed
  41978. });
  41979. var unaryMinus = createUnaryMinus({
  41980. typed
  41981. });
  41982. var acoth = createAcoth({
  41983. BigNumber,
  41984. Complex: Complex2,
  41985. config,
  41986. typed
  41987. });
  41988. var cot = createCot({
  41989. BigNumber,
  41990. typed
  41991. });
  41992. var fraction = createFraction({
  41993. Fraction: Fraction2,
  41994. typed
  41995. });
  41996. var isNumeric = createIsNumeric({
  41997. typed
  41998. });
  41999. var matrix = createMatrix({
  42000. DenseMatrix,
  42001. Matrix,
  42002. SparseMatrix,
  42003. typed
  42004. });
  42005. var matrixFromFunction = createMatrixFromFunction({
  42006. isZero,
  42007. matrix,
  42008. typed
  42009. });
  42010. var mode = createMode({
  42011. isNaN: isNaN2,
  42012. isNumeric,
  42013. typed
  42014. });
  42015. var numeric2 = createNumeric({
  42016. bignumber,
  42017. fraction,
  42018. number
  42019. });
  42020. var prod = createProd({
  42021. config,
  42022. multiplyScalar,
  42023. numeric: numeric2,
  42024. typed
  42025. });
  42026. var reshape2 = createReshape({
  42027. isInteger: isInteger2,
  42028. matrix,
  42029. typed
  42030. });
  42031. var size = createSize({
  42032. matrix,
  42033. config,
  42034. typed
  42035. });
  42036. var squeeze2 = createSqueeze({
  42037. matrix,
  42038. typed
  42039. });
  42040. var subset = createSubset({
  42041. matrix,
  42042. typed
  42043. });
  42044. var transpose = createTranspose({
  42045. matrix,
  42046. typed
  42047. });
  42048. var xgcd = createXgcd({
  42049. BigNumber,
  42050. config,
  42051. matrix,
  42052. typed
  42053. });
  42054. var zeros2 = createZeros({
  42055. BigNumber,
  42056. config,
  42057. matrix,
  42058. typed
  42059. });
  42060. var asin2 = createAsin({
  42061. Complex: Complex2,
  42062. config,
  42063. typed
  42064. });
  42065. var cbrt4 = createCbrt({
  42066. BigNumber,
  42067. Complex: Complex2,
  42068. Fraction: Fraction2,
  42069. config,
  42070. isNegative,
  42071. matrix,
  42072. typed,
  42073. unaryMinus
  42074. });
  42075. var concat = createConcat({
  42076. isInteger: isInteger2,
  42077. matrix,
  42078. typed
  42079. });
  42080. var count = createCount({
  42081. prod,
  42082. size,
  42083. typed
  42084. });
  42085. var ctranspose = createCtranspose({
  42086. conj,
  42087. transpose,
  42088. typed
  42089. });
  42090. var diag = createDiag({
  42091. DenseMatrix,
  42092. SparseMatrix,
  42093. matrix,
  42094. typed
  42095. });
  42096. var divideScalar = createDivideScalar({
  42097. numeric: numeric2,
  42098. typed
  42099. });
  42100. var dotDivide = createDotDivide({
  42101. DenseMatrix,
  42102. concat,
  42103. divideScalar,
  42104. equalScalar,
  42105. matrix,
  42106. typed
  42107. });
  42108. var equal = createEqual({
  42109. DenseMatrix,
  42110. concat,
  42111. equalScalar,
  42112. matrix,
  42113. typed
  42114. });
  42115. var flatten2 = createFlatten({
  42116. matrix,
  42117. typed
  42118. });
  42119. var gcd = createGcd({
  42120. BigNumber,
  42121. DenseMatrix,
  42122. concat,
  42123. equalScalar,
  42124. matrix,
  42125. typed
  42126. });
  42127. var hasNumericValue = createHasNumericValue({
  42128. isNumeric,
  42129. typed
  42130. });
  42131. var identity = createIdentity({
  42132. BigNumber,
  42133. DenseMatrix,
  42134. SparseMatrix,
  42135. config,
  42136. matrix,
  42137. typed
  42138. });
  42139. var kron = createKron({
  42140. matrix,
  42141. multiplyScalar,
  42142. typed
  42143. });
  42144. var largerEq = createLargerEq({
  42145. DenseMatrix,
  42146. concat,
  42147. config,
  42148. matrix,
  42149. typed
  42150. });
  42151. var leftShift = createLeftShift({
  42152. DenseMatrix,
  42153. concat,
  42154. equalScalar,
  42155. matrix,
  42156. typed,
  42157. zeros: zeros2
  42158. });
  42159. var matrixFromColumns = createMatrixFromColumns({
  42160. flatten: flatten2,
  42161. matrix,
  42162. size,
  42163. typed
  42164. });
  42165. var mod2 = createMod({
  42166. DenseMatrix,
  42167. concat,
  42168. equalScalar,
  42169. matrix,
  42170. typed
  42171. });
  42172. var nthRoot = createNthRoot({
  42173. BigNumber,
  42174. concat,
  42175. equalScalar,
  42176. matrix,
  42177. typed
  42178. });
  42179. var ones = createOnes({
  42180. BigNumber,
  42181. config,
  42182. matrix,
  42183. typed
  42184. });
  42185. var resize2 = createResize({
  42186. config,
  42187. matrix
  42188. });
  42189. var rightArithShift = createRightArithShift({
  42190. DenseMatrix,
  42191. concat,
  42192. equalScalar,
  42193. matrix,
  42194. typed,
  42195. zeros: zeros2
  42196. });
  42197. var round2 = createRound({
  42198. BigNumber,
  42199. DenseMatrix,
  42200. equalScalar,
  42201. matrix,
  42202. typed,
  42203. zeros: zeros2
  42204. });
  42205. var smaller = createSmaller({
  42206. DenseMatrix,
  42207. concat,
  42208. config,
  42209. matrix,
  42210. typed
  42211. });
  42212. var to = createTo({
  42213. concat,
  42214. matrix,
  42215. typed
  42216. });
  42217. var unequal = createUnequal({
  42218. DenseMatrix,
  42219. concat,
  42220. config,
  42221. equalScalar,
  42222. matrix,
  42223. typed
  42224. });
  42225. var xor = createXor({
  42226. DenseMatrix,
  42227. concat,
  42228. matrix,
  42229. typed
  42230. });
  42231. var add2 = createAdd({
  42232. DenseMatrix,
  42233. SparseMatrix,
  42234. addScalar,
  42235. concat,
  42236. equalScalar,
  42237. matrix,
  42238. typed
  42239. });
  42240. var bitAnd = createBitAnd({
  42241. concat,
  42242. equalScalar,
  42243. matrix,
  42244. typed
  42245. });
  42246. var bitXor2 = createBitXor({
  42247. DenseMatrix,
  42248. concat,
  42249. matrix,
  42250. typed
  42251. });
  42252. var catalan = createCatalan({
  42253. addScalar,
  42254. combinations,
  42255. divideScalar,
  42256. isInteger: isInteger2,
  42257. isNegative,
  42258. multiplyScalar,
  42259. typed
  42260. });
  42261. var compare = createCompare({
  42262. BigNumber,
  42263. DenseMatrix,
  42264. Fraction: Fraction2,
  42265. concat,
  42266. config,
  42267. equalScalar,
  42268. matrix,
  42269. typed
  42270. });
  42271. var compareText2 = createCompareText({
  42272. concat,
  42273. matrix,
  42274. typed
  42275. });
  42276. var cumsum = createCumSum({
  42277. add: add2,
  42278. typed,
  42279. unaryPlus
  42280. });
  42281. var deepEqual = createDeepEqual({
  42282. equal,
  42283. typed
  42284. });
  42285. var dot = createDot({
  42286. addScalar,
  42287. conj,
  42288. multiplyScalar,
  42289. size,
  42290. typed
  42291. });
  42292. var equalText = createEqualText({
  42293. compareText: compareText2,
  42294. isZero,
  42295. typed
  42296. });
  42297. var floor2 = createFloor({
  42298. DenseMatrix,
  42299. config,
  42300. equalScalar,
  42301. matrix,
  42302. round: round2,
  42303. typed,
  42304. zeros: zeros2
  42305. });
  42306. var hypot2 = createHypot({
  42307. abs: abs2,
  42308. addScalar,
  42309. divideScalar,
  42310. isPositive,
  42311. multiplyScalar,
  42312. smaller,
  42313. sqrt: sqrt2,
  42314. typed
  42315. });
  42316. var ImmutableDenseMatrix = createImmutableDenseMatrixClass({
  42317. DenseMatrix,
  42318. smaller
  42319. });
  42320. var Index = createIndexClass({
  42321. ImmutableDenseMatrix
  42322. });
  42323. var invmod = createInvmod({
  42324. BigNumber,
  42325. add: add2,
  42326. config,
  42327. equal,
  42328. isInteger: isInteger2,
  42329. mod: mod2,
  42330. smaller,
  42331. typed,
  42332. xgcd
  42333. });
  42334. var larger = createLarger({
  42335. DenseMatrix,
  42336. concat,
  42337. config,
  42338. matrix,
  42339. typed
  42340. });
  42341. var log3 = createLog({
  42342. Complex: Complex2,
  42343. config,
  42344. divideScalar,
  42345. typed
  42346. });
  42347. var matrixFromRows = createMatrixFromRows({
  42348. flatten: flatten2,
  42349. matrix,
  42350. size,
  42351. typed
  42352. });
  42353. var min2 = createMin({
  42354. config,
  42355. numeric: numeric2,
  42356. smaller,
  42357. typed
  42358. });
  42359. var multiply = createMultiply({
  42360. addScalar,
  42361. dot,
  42362. equalScalar,
  42363. matrix,
  42364. multiplyScalar,
  42365. typed
  42366. });
  42367. var nthRoots = createNthRoots({
  42368. Complex: Complex2,
  42369. config,
  42370. divideScalar,
  42371. typed
  42372. });
  42373. var or = createOr({
  42374. DenseMatrix,
  42375. concat,
  42376. equalScalar,
  42377. matrix,
  42378. typed
  42379. });
  42380. var partitionSelect = createPartitionSelect({
  42381. compare,
  42382. isNaN: isNaN2,
  42383. isNumeric,
  42384. typed
  42385. });
  42386. var quantileSeq = createQuantileSeq({
  42387. add: add2,
  42388. compare,
  42389. multiply,
  42390. partitionSelect,
  42391. typed
  42392. });
  42393. var rightLogShift = createRightLogShift({
  42394. DenseMatrix,
  42395. concat,
  42396. equalScalar,
  42397. matrix,
  42398. typed,
  42399. zeros: zeros2
  42400. });
  42401. var smallerEq = createSmallerEq({
  42402. DenseMatrix,
  42403. concat,
  42404. config,
  42405. matrix,
  42406. typed
  42407. });
  42408. var subtract = createSubtract({
  42409. DenseMatrix,
  42410. addScalar,
  42411. concat,
  42412. equalScalar,
  42413. matrix,
  42414. typed,
  42415. unaryMinus
  42416. });
  42417. var trace = createTrace({
  42418. add: add2,
  42419. matrix,
  42420. typed
  42421. });
  42422. var usolve = createUsolve({
  42423. DenseMatrix,
  42424. divideScalar,
  42425. equalScalar,
  42426. matrix,
  42427. multiplyScalar,
  42428. subtract,
  42429. typed
  42430. });
  42431. var and = createAnd({
  42432. concat,
  42433. equalScalar,
  42434. matrix,
  42435. not,
  42436. typed,
  42437. zeros: zeros2
  42438. });
  42439. var bitOr = createBitOr({
  42440. DenseMatrix,
  42441. concat,
  42442. equalScalar,
  42443. matrix,
  42444. typed
  42445. });
  42446. var ceil2 = createCeil({
  42447. DenseMatrix,
  42448. config,
  42449. equalScalar,
  42450. matrix,
  42451. round: round2,
  42452. typed,
  42453. zeros: zeros2
  42454. });
  42455. var compareNatural = createCompareNatural({
  42456. compare,
  42457. typed
  42458. });
  42459. var composition = createComposition({
  42460. addScalar,
  42461. combinations,
  42462. isInteger: isInteger2,
  42463. isNegative,
  42464. isPositive,
  42465. larger,
  42466. typed
  42467. });
  42468. var cross = createCross({
  42469. matrix,
  42470. multiply,
  42471. subtract,
  42472. typed
  42473. });
  42474. var det = createDet({
  42475. divideScalar,
  42476. isZero,
  42477. matrix,
  42478. multiply,
  42479. subtract,
  42480. typed,
  42481. unaryMinus
  42482. });
  42483. var diff = createDiff({
  42484. matrix,
  42485. number,
  42486. subtract,
  42487. typed
  42488. });
  42489. var distance = createDistance({
  42490. abs: abs2,
  42491. addScalar,
  42492. divideScalar,
  42493. multiplyScalar,
  42494. sqrt: sqrt2,
  42495. subtract,
  42496. typed,
  42497. unaryMinus
  42498. });
  42499. var dotMultiply = createDotMultiply({
  42500. concat,
  42501. equalScalar,
  42502. matrix,
  42503. multiplyScalar,
  42504. typed
  42505. });
  42506. var FibonacciHeap = createFibonacciHeapClass({
  42507. larger,
  42508. smaller
  42509. });
  42510. var fix = createFix({
  42511. Complex: Complex2,
  42512. DenseMatrix,
  42513. ceil: ceil2,
  42514. equalScalar,
  42515. floor: floor2,
  42516. matrix,
  42517. typed,
  42518. zeros: zeros2
  42519. });
  42520. var index = createIndex({
  42521. Index,
  42522. typed
  42523. });
  42524. var intersect = createIntersect({
  42525. abs: abs2,
  42526. add: add2,
  42527. addScalar,
  42528. config,
  42529. divideScalar,
  42530. equalScalar,
  42531. flatten: flatten2,
  42532. isNumeric,
  42533. isZero,
  42534. matrix,
  42535. multiply,
  42536. multiplyScalar,
  42537. smaller,
  42538. subtract,
  42539. typed
  42540. });
  42541. var lcm = createLcm({
  42542. concat,
  42543. equalScalar,
  42544. matrix,
  42545. typed
  42546. });
  42547. var log1p2 = createLog1p({
  42548. Complex: Complex2,
  42549. config,
  42550. divideScalar,
  42551. log: log3,
  42552. typed
  42553. });
  42554. var lsolve = createLsolve({
  42555. DenseMatrix,
  42556. divideScalar,
  42557. equalScalar,
  42558. matrix,
  42559. multiplyScalar,
  42560. subtract,
  42561. typed
  42562. });
  42563. var max2 = createMax({
  42564. config,
  42565. larger,
  42566. numeric: numeric2,
  42567. typed
  42568. });
  42569. var qr = createQr({
  42570. addScalar,
  42571. complex,
  42572. conj,
  42573. divideScalar,
  42574. equal,
  42575. identity,
  42576. isZero,
  42577. matrix,
  42578. multiplyScalar,
  42579. sign: sign3,
  42580. sqrt: sqrt2,
  42581. subtract,
  42582. typed,
  42583. unaryMinus,
  42584. zeros: zeros2
  42585. });
  42586. var range = createRange({
  42587. bignumber,
  42588. matrix,
  42589. config,
  42590. larger,
  42591. largerEq,
  42592. smaller,
  42593. smallerEq,
  42594. typed
  42595. });
  42596. var row = createRow({
  42597. Index,
  42598. matrix,
  42599. range,
  42600. typed
  42601. });
  42602. var setCartesian = createSetCartesian({
  42603. DenseMatrix,
  42604. Index,
  42605. compareNatural,
  42606. size,
  42607. subset,
  42608. typed
  42609. });
  42610. var setDistinct = createSetDistinct({
  42611. DenseMatrix,
  42612. Index,
  42613. compareNatural,
  42614. size,
  42615. subset,
  42616. typed
  42617. });
  42618. var setIsSubset = createSetIsSubset({
  42619. Index,
  42620. compareNatural,
  42621. size,
  42622. subset,
  42623. typed
  42624. });
  42625. var setPowerset = createSetPowerset({
  42626. Index,
  42627. compareNatural,
  42628. size,
  42629. subset,
  42630. typed
  42631. });
  42632. var slu = createSlu({
  42633. SparseMatrix,
  42634. abs: abs2,
  42635. add: add2,
  42636. divideScalar,
  42637. larger,
  42638. largerEq,
  42639. multiply,
  42640. subtract,
  42641. transpose,
  42642. typed
  42643. });
  42644. var Spa = createSpaClass({
  42645. FibonacciHeap,
  42646. addScalar,
  42647. equalScalar
  42648. });
  42649. var sum2 = createSum({
  42650. add: add2,
  42651. config,
  42652. numeric: numeric2,
  42653. typed
  42654. });
  42655. var usolveAll = createUsolveAll({
  42656. DenseMatrix,
  42657. divideScalar,
  42658. equalScalar,
  42659. matrix,
  42660. multiplyScalar,
  42661. subtract,
  42662. typed
  42663. });
  42664. var atan22 = createAtan2({
  42665. BigNumber,
  42666. DenseMatrix,
  42667. concat,
  42668. equalScalar,
  42669. matrix,
  42670. typed
  42671. });
  42672. var column = createColumn({
  42673. Index,
  42674. matrix,
  42675. range,
  42676. typed
  42677. });
  42678. var lsolveAll = createLsolveAll({
  42679. DenseMatrix,
  42680. divideScalar,
  42681. equalScalar,
  42682. matrix,
  42683. multiplyScalar,
  42684. subtract,
  42685. typed
  42686. });
  42687. var setDifference = createSetDifference({
  42688. DenseMatrix,
  42689. Index,
  42690. compareNatural,
  42691. size,
  42692. subset,
  42693. typed
  42694. });
  42695. var setMultiplicity = createSetMultiplicity({
  42696. Index,
  42697. compareNatural,
  42698. size,
  42699. subset,
  42700. typed
  42701. });
  42702. var setSymDifference = createSetSymDifference({
  42703. Index,
  42704. concat,
  42705. setDifference,
  42706. size,
  42707. subset,
  42708. typed
  42709. });
  42710. var sort = createSort({
  42711. compare,
  42712. compareNatural,
  42713. matrix,
  42714. typed
  42715. });
  42716. var inv = createInv({
  42717. abs: abs2,
  42718. addScalar,
  42719. det,
  42720. divideScalar,
  42721. identity,
  42722. matrix,
  42723. multiply,
  42724. typed,
  42725. unaryMinus
  42726. });
  42727. var lup = createLup({
  42728. DenseMatrix,
  42729. Spa,
  42730. SparseMatrix,
  42731. abs: abs2,
  42732. addScalar,
  42733. divideScalar,
  42734. equalScalar,
  42735. larger,
  42736. matrix,
  42737. multiplyScalar,
  42738. subtract,
  42739. typed,
  42740. unaryMinus
  42741. });
  42742. var pinv = createPinv({
  42743. Complex: Complex2,
  42744. add: add2,
  42745. ctranspose,
  42746. deepEqual,
  42747. divideScalar,
  42748. dot,
  42749. dotDivide,
  42750. equal,
  42751. inv,
  42752. matrix,
  42753. multiply,
  42754. typed
  42755. });
  42756. var pow2 = createPow({
  42757. Complex: Complex2,
  42758. config,
  42759. fraction,
  42760. identity,
  42761. inv,
  42762. matrix,
  42763. multiply,
  42764. number,
  42765. typed
  42766. });
  42767. var setIntersect = createSetIntersect({
  42768. DenseMatrix,
  42769. Index,
  42770. compareNatural,
  42771. size,
  42772. subset,
  42773. typed
  42774. });
  42775. var setUnion = createSetUnion({
  42776. Index,
  42777. concat,
  42778. setIntersect,
  42779. setSymDifference,
  42780. size,
  42781. subset,
  42782. typed
  42783. });
  42784. var sqrtm = createSqrtm({
  42785. abs: abs2,
  42786. add: add2,
  42787. identity,
  42788. inv,
  42789. map: map2,
  42790. max: max2,
  42791. multiply,
  42792. size,
  42793. sqrt: sqrt2,
  42794. subtract,
  42795. typed
  42796. });
  42797. var Unit = createUnitClass({
  42798. BigNumber,
  42799. Complex: Complex2,
  42800. Fraction: Fraction2,
  42801. abs: abs2,
  42802. addScalar,
  42803. config,
  42804. divideScalar,
  42805. equal,
  42806. fix,
  42807. format: format4,
  42808. isNumeric,
  42809. multiplyScalar,
  42810. number,
  42811. pow: pow2,
  42812. round: round2,
  42813. subtract
  42814. });
  42815. var vacuumImpedance = createVacuumImpedance({
  42816. BigNumber,
  42817. Unit,
  42818. config
  42819. });
  42820. var wienDisplacement = createWienDisplacement({
  42821. BigNumber,
  42822. Unit,
  42823. config
  42824. });
  42825. var atomicMass = createAtomicMass({
  42826. BigNumber,
  42827. Unit,
  42828. config
  42829. });
  42830. var bohrMagneton = createBohrMagneton({
  42831. BigNumber,
  42832. Unit,
  42833. config
  42834. });
  42835. var boltzmann = createBoltzmann({
  42836. BigNumber,
  42837. Unit,
  42838. config
  42839. });
  42840. var conductanceQuantum = createConductanceQuantum({
  42841. BigNumber,
  42842. Unit,
  42843. config
  42844. });
  42845. var createUnit = createCreateUnit({
  42846. Unit,
  42847. typed
  42848. });
  42849. var deuteronMass = createDeuteronMass({
  42850. BigNumber,
  42851. Unit,
  42852. config
  42853. });
  42854. var dotPow = createDotPow({
  42855. DenseMatrix,
  42856. concat,
  42857. equalScalar,
  42858. matrix,
  42859. pow: pow2,
  42860. typed
  42861. });
  42862. var electricConstant = createElectricConstant({
  42863. BigNumber,
  42864. Unit,
  42865. config
  42866. });
  42867. var elementaryCharge = createElementaryCharge({
  42868. BigNumber,
  42869. Unit,
  42870. config
  42871. });
  42872. var expm = createExpm({
  42873. abs: abs2,
  42874. add: add2,
  42875. identity,
  42876. inv,
  42877. multiply,
  42878. typed
  42879. });
  42880. var faraday = createFaraday({
  42881. BigNumber,
  42882. Unit,
  42883. config
  42884. });
  42885. var fft = createFft({
  42886. addScalar,
  42887. ceil: ceil2,
  42888. conj,
  42889. divideScalar,
  42890. dotDivide,
  42891. exp: exp2,
  42892. i,
  42893. log2: log24,
  42894. matrix,
  42895. multiplyScalar,
  42896. pow: pow2,
  42897. tau: tau2,
  42898. typed
  42899. });
  42900. var gamma = createGamma({
  42901. BigNumber,
  42902. Complex: Complex2,
  42903. config,
  42904. multiplyScalar,
  42905. pow: pow2,
  42906. typed
  42907. });
  42908. var gravitationConstant = createGravitationConstant({
  42909. BigNumber,
  42910. Unit,
  42911. config
  42912. });
  42913. var hartreeEnergy = createHartreeEnergy({
  42914. BigNumber,
  42915. Unit,
  42916. config
  42917. });
  42918. var ifft = createIfft({
  42919. conj,
  42920. dotDivide,
  42921. fft,
  42922. typed
  42923. });
  42924. var klitzing = createKlitzing({
  42925. BigNumber,
  42926. Unit,
  42927. config
  42928. });
  42929. var loschmidt = createLoschmidt({
  42930. BigNumber,
  42931. Unit,
  42932. config
  42933. });
  42934. var magneticConstant = createMagneticConstant({
  42935. BigNumber,
  42936. Unit,
  42937. config
  42938. });
  42939. var molarMass = createMolarMass({
  42940. BigNumber,
  42941. Unit,
  42942. config
  42943. });
  42944. var molarPlanckConstant = createMolarPlanckConstant({
  42945. BigNumber,
  42946. Unit,
  42947. config
  42948. });
  42949. var neutronMass = createNeutronMass({
  42950. BigNumber,
  42951. Unit,
  42952. config
  42953. });
  42954. var nuclearMagneton = createNuclearMagneton({
  42955. BigNumber,
  42956. Unit,
  42957. config
  42958. });
  42959. var planckCharge = createPlanckCharge({
  42960. BigNumber,
  42961. Unit,
  42962. config
  42963. });
  42964. var planckLength = createPlanckLength({
  42965. BigNumber,
  42966. Unit,
  42967. config
  42968. });
  42969. var planckTemperature = createPlanckTemperature({
  42970. BigNumber,
  42971. Unit,
  42972. config
  42973. });
  42974. var protonMass = createProtonMass({
  42975. BigNumber,
  42976. Unit,
  42977. config
  42978. });
  42979. var reducedPlanckConstant = createReducedPlanckConstant({
  42980. BigNumber,
  42981. Unit,
  42982. config
  42983. });
  42984. var rydberg = createRydberg({
  42985. BigNumber,
  42986. Unit,
  42987. config
  42988. });
  42989. var secondRadiation = createSecondRadiation({
  42990. BigNumber,
  42991. Unit,
  42992. config
  42993. });
  42994. var speedOfLight = createSpeedOfLight({
  42995. BigNumber,
  42996. Unit,
  42997. config
  42998. });
  42999. var stefanBoltzmann = createStefanBoltzmann({
  43000. BigNumber,
  43001. Unit,
  43002. config
  43003. });
  43004. var thomsonCrossSection = createThomsonCrossSection({
  43005. BigNumber,
  43006. Unit,
  43007. config
  43008. });
  43009. var avogadro = createAvogadro({
  43010. BigNumber,
  43011. Unit,
  43012. config
  43013. });
  43014. var bohrRadius = createBohrRadius({
  43015. BigNumber,
  43016. Unit,
  43017. config
  43018. });
  43019. var coulomb = createCoulomb({
  43020. BigNumber,
  43021. Unit,
  43022. config
  43023. });
  43024. var divide2 = createDivide({
  43025. divideScalar,
  43026. equalScalar,
  43027. inv,
  43028. matrix,
  43029. multiply,
  43030. typed
  43031. });
  43032. var electronMass = createElectronMass({
  43033. BigNumber,
  43034. Unit,
  43035. config
  43036. });
  43037. var factorial = createFactorial({
  43038. gamma,
  43039. typed
  43040. });
  43041. var firstRadiation = createFirstRadiation({
  43042. BigNumber,
  43043. Unit,
  43044. config
  43045. });
  43046. var gasConstant = createGasConstant({
  43047. BigNumber,
  43048. Unit,
  43049. config
  43050. });
  43051. var inverseConductanceQuantum = createInverseConductanceQuantum({
  43052. BigNumber,
  43053. Unit,
  43054. config
  43055. });
  43056. var lusolve = createLusolve({
  43057. DenseMatrix,
  43058. lsolve,
  43059. lup,
  43060. matrix,
  43061. slu,
  43062. typed,
  43063. usolve
  43064. });
  43065. var magneticFluxQuantum = createMagneticFluxQuantum({
  43066. BigNumber,
  43067. Unit,
  43068. config
  43069. });
  43070. var molarMassC12 = createMolarMassC12({
  43071. BigNumber,
  43072. Unit,
  43073. config
  43074. });
  43075. var multinomial = createMultinomial({
  43076. add: add2,
  43077. divide: divide2,
  43078. factorial,
  43079. isInteger: isInteger2,
  43080. isPositive,
  43081. multiply,
  43082. typed
  43083. });
  43084. var permutations = createPermutations({
  43085. factorial,
  43086. typed
  43087. });
  43088. var planckMass = createPlanckMass({
  43089. BigNumber,
  43090. Unit,
  43091. config
  43092. });
  43093. var polynomialRoot = createPolynomialRoot({
  43094. add: add2,
  43095. cbrt: cbrt4,
  43096. divide: divide2,
  43097. equalScalar,
  43098. im,
  43099. isZero,
  43100. multiply,
  43101. re,
  43102. sqrt: sqrt2,
  43103. subtract,
  43104. typeOf: typeOf2,
  43105. typed,
  43106. unaryMinus
  43107. });
  43108. var setSize = createSetSize({
  43109. compareNatural,
  43110. typed
  43111. });
  43112. var stirlingS2 = createStirlingS2({
  43113. bignumber,
  43114. addScalar,
  43115. combinations,
  43116. divideScalar,
  43117. factorial,
  43118. isInteger: isInteger2,
  43119. isNegative,
  43120. larger,
  43121. multiplyScalar,
  43122. number,
  43123. pow: pow2,
  43124. subtract,
  43125. typed
  43126. });
  43127. var unit = createUnitFunction({
  43128. Unit,
  43129. typed
  43130. });
  43131. var bellNumbers = createBellNumbers({
  43132. addScalar,
  43133. isInteger: isInteger2,
  43134. isNegative,
  43135. stirlingS2,
  43136. typed
  43137. });
  43138. var eigs = createEigs({
  43139. abs: abs2,
  43140. add: add2,
  43141. addScalar,
  43142. atan: atan3,
  43143. bignumber,
  43144. column,
  43145. complex,
  43146. config,
  43147. cos: cos2,
  43148. diag,
  43149. divideScalar,
  43150. dot,
  43151. equal,
  43152. flatten: flatten2,
  43153. im,
  43154. inv,
  43155. larger,
  43156. matrix,
  43157. matrixFromColumns,
  43158. multiply,
  43159. multiplyScalar,
  43160. number,
  43161. qr,
  43162. re,
  43163. sin: sin2,
  43164. smaller,
  43165. sqrt: sqrt2,
  43166. subtract,
  43167. typed,
  43168. usolve,
  43169. usolveAll
  43170. });
  43171. var fermiCoupling = createFermiCoupling({
  43172. BigNumber,
  43173. Unit,
  43174. config
  43175. });
  43176. var gravity = createGravity({
  43177. BigNumber,
  43178. Unit,
  43179. config
  43180. });
  43181. var kldivergence = createKldivergence({
  43182. divide: divide2,
  43183. dotDivide,
  43184. isNumeric,
  43185. log: log3,
  43186. map: map2,
  43187. matrix,
  43188. multiply,
  43189. sum: sum2,
  43190. typed
  43191. });
  43192. var mean = createMean({
  43193. add: add2,
  43194. divide: divide2,
  43195. typed
  43196. });
  43197. var molarVolume = createMolarVolume({
  43198. BigNumber,
  43199. Unit,
  43200. config
  43201. });
  43202. var planckConstant = createPlanckConstant({
  43203. BigNumber,
  43204. Unit,
  43205. config
  43206. });
  43207. var quantumOfCirculation = createQuantumOfCirculation({
  43208. BigNumber,
  43209. Unit,
  43210. config
  43211. });
  43212. var variance = createVariance({
  43213. add: add2,
  43214. apply,
  43215. divide: divide2,
  43216. isNaN: isNaN2,
  43217. multiply,
  43218. subtract,
  43219. typed
  43220. });
  43221. var classicalElectronRadius = createClassicalElectronRadius({
  43222. BigNumber,
  43223. Unit,
  43224. config
  43225. });
  43226. var median = createMedian({
  43227. add: add2,
  43228. compare,
  43229. divide: divide2,
  43230. partitionSelect,
  43231. typed
  43232. });
  43233. var planckTime = createPlanckTime({
  43234. BigNumber,
  43235. Unit,
  43236. config
  43237. });
  43238. var std = createStd({
  43239. map: map2,
  43240. sqrt: sqrt2,
  43241. typed,
  43242. variance
  43243. });
  43244. var mad = createMad({
  43245. abs: abs2,
  43246. map: map2,
  43247. median,
  43248. subtract,
  43249. typed
  43250. });
  43251. var norm = createNorm({
  43252. abs: abs2,
  43253. add: add2,
  43254. conj,
  43255. ctranspose,
  43256. eigs,
  43257. equalScalar,
  43258. larger,
  43259. matrix,
  43260. multiply,
  43261. pow: pow2,
  43262. smaller,
  43263. sqrt: sqrt2,
  43264. typed
  43265. });
  43266. var rotationMatrix = createRotationMatrix({
  43267. BigNumber,
  43268. DenseMatrix,
  43269. SparseMatrix,
  43270. addScalar,
  43271. config,
  43272. cos: cos2,
  43273. matrix,
  43274. multiplyScalar,
  43275. norm,
  43276. sin: sin2,
  43277. typed,
  43278. unaryMinus
  43279. });
  43280. var rotate = createRotate({
  43281. multiply,
  43282. rotationMatrix,
  43283. typed
  43284. });
  43285. var schur = createSchur({
  43286. identity,
  43287. matrix,
  43288. multiply,
  43289. norm,
  43290. qr,
  43291. subtract,
  43292. typed
  43293. });
  43294. var sylvester = createSylvester({
  43295. abs: abs2,
  43296. add: add2,
  43297. concat,
  43298. identity,
  43299. index,
  43300. lusolve,
  43301. matrix,
  43302. matrixFromColumns,
  43303. multiply,
  43304. range,
  43305. schur,
  43306. subset,
  43307. subtract,
  43308. transpose,
  43309. typed
  43310. });
  43311. var lyap = createLyap({
  43312. matrix,
  43313. multiply,
  43314. sylvester,
  43315. transpose,
  43316. typed
  43317. });
  43318. // node_modules/mathjs/lib/esm/entry/impureFunctionsAny.generated.js
  43319. var math = {};
  43320. var mathWithTransform = {};
  43321. var classes = {};
  43322. var Node = createNode({
  43323. mathWithTransform
  43324. });
  43325. var ObjectNode = createObjectNode({
  43326. Node
  43327. });
  43328. var OperatorNode = createOperatorNode({
  43329. Node
  43330. });
  43331. var ParenthesisNode = createParenthesisNode({
  43332. Node
  43333. });
  43334. var RelationalNode = createRelationalNode({
  43335. Node
  43336. });
  43337. var ArrayNode = createArrayNode({
  43338. Node
  43339. });
  43340. var BlockNode = createBlockNode({
  43341. Node,
  43342. ResultSet
  43343. });
  43344. var ConditionalNode = createConditionalNode({
  43345. Node
  43346. });
  43347. var ConstantNode = createConstantNode({
  43348. Node
  43349. });
  43350. var RangeNode = createRangeNode({
  43351. Node
  43352. });
  43353. var reviver = createReviver({
  43354. classes
  43355. });
  43356. var Chain = createChainClass({
  43357. math,
  43358. typed
  43359. });
  43360. var FunctionAssignmentNode = createFunctionAssignmentNode({
  43361. Node,
  43362. typed
  43363. });
  43364. var chain = createChain({
  43365. Chain,
  43366. typed
  43367. });
  43368. var AccessorNode = createAccessorNode({
  43369. Node,
  43370. subset
  43371. });
  43372. var IndexNode = createIndexNode({
  43373. Node,
  43374. size
  43375. });
  43376. var AssignmentNode = createAssignmentNode({
  43377. matrix,
  43378. Node,
  43379. subset
  43380. });
  43381. var SymbolNode = createSymbolNode({
  43382. Unit,
  43383. Node,
  43384. math
  43385. });
  43386. var FunctionNode = createFunctionNode({
  43387. Node,
  43388. SymbolNode,
  43389. math
  43390. });
  43391. var parse = createParse({
  43392. AccessorNode,
  43393. ArrayNode,
  43394. AssignmentNode,
  43395. BlockNode,
  43396. ConditionalNode,
  43397. ConstantNode,
  43398. FunctionAssignmentNode,
  43399. FunctionNode,
  43400. IndexNode,
  43401. ObjectNode,
  43402. OperatorNode,
  43403. ParenthesisNode,
  43404. RangeNode,
  43405. RelationalNode,
  43406. SymbolNode,
  43407. config,
  43408. numeric: numeric2,
  43409. typed
  43410. });
  43411. var resolve = createResolve({
  43412. ConstantNode,
  43413. FunctionNode,
  43414. OperatorNode,
  43415. ParenthesisNode,
  43416. parse,
  43417. typed
  43418. });
  43419. var simplifyConstant = createSimplifyConstant({
  43420. bignumber,
  43421. fraction,
  43422. AccessorNode,
  43423. ArrayNode,
  43424. ConstantNode,
  43425. FunctionNode,
  43426. IndexNode,
  43427. ObjectNode,
  43428. OperatorNode,
  43429. SymbolNode,
  43430. config,
  43431. mathWithTransform,
  43432. matrix,
  43433. typed
  43434. });
  43435. var compile = createCompile({
  43436. parse,
  43437. typed
  43438. });
  43439. var evaluate = createEvaluate({
  43440. parse,
  43441. typed
  43442. });
  43443. var Help = createHelpClass({
  43444. parse
  43445. });
  43446. var Parser = createParserClass({
  43447. evaluate
  43448. });
  43449. var simplifyCore = createSimplifyCore({
  43450. AccessorNode,
  43451. ArrayNode,
  43452. ConstantNode,
  43453. FunctionNode,
  43454. IndexNode,
  43455. ObjectNode,
  43456. OperatorNode,
  43457. ParenthesisNode,
  43458. SymbolNode,
  43459. add: add2,
  43460. divide: divide2,
  43461. equal,
  43462. isZero,
  43463. multiply,
  43464. parse,
  43465. pow: pow2,
  43466. subtract,
  43467. typed
  43468. });
  43469. var help = createHelp({
  43470. Help,
  43471. mathWithTransform,
  43472. typed
  43473. });
  43474. var simplify = createSimplify({
  43475. bignumber,
  43476. fraction,
  43477. AccessorNode,
  43478. ArrayNode,
  43479. ConstantNode,
  43480. FunctionNode,
  43481. IndexNode,
  43482. ObjectNode,
  43483. OperatorNode,
  43484. ParenthesisNode,
  43485. SymbolNode,
  43486. add: add2,
  43487. config,
  43488. divide: divide2,
  43489. equal,
  43490. isZero,
  43491. mathWithTransform,
  43492. matrix,
  43493. multiply,
  43494. parse,
  43495. pow: pow2,
  43496. resolve,
  43497. simplifyConstant,
  43498. simplifyCore,
  43499. subtract,
  43500. typed
  43501. });
  43502. var symbolicEqual = createSymbolicEqual({
  43503. OperatorNode,
  43504. parse,
  43505. simplify,
  43506. typed
  43507. });
  43508. var derivative = createDerivative({
  43509. ConstantNode,
  43510. FunctionNode,
  43511. OperatorNode,
  43512. ParenthesisNode,
  43513. SymbolNode,
  43514. config,
  43515. equal,
  43516. isZero,
  43517. numeric: numeric2,
  43518. parse,
  43519. simplify,
  43520. typed
  43521. });
  43522. var parser = createParser({
  43523. Parser,
  43524. typed
  43525. });
  43526. var leafCount = createLeafCount({
  43527. parse,
  43528. typed
  43529. });
  43530. var rationalize = createRationalize({
  43531. bignumber,
  43532. fraction,
  43533. AccessorNode,
  43534. ArrayNode,
  43535. ConstantNode,
  43536. FunctionNode,
  43537. IndexNode,
  43538. ObjectNode,
  43539. OperatorNode,
  43540. ParenthesisNode,
  43541. SymbolNode,
  43542. add: add2,
  43543. config,
  43544. divide: divide2,
  43545. equal,
  43546. isZero,
  43547. mathWithTransform,
  43548. matrix,
  43549. multiply,
  43550. parse,
  43551. pow: pow2,
  43552. simplify,
  43553. simplifyConstant,
  43554. simplifyCore,
  43555. subtract,
  43556. typed
  43557. });
  43558. _extends(math, {
  43559. e: e2,
  43560. false: _false,
  43561. fineStructure,
  43562. i,
  43563. Infinity: _Infinity,
  43564. LN10: LN102,
  43565. LOG10E,
  43566. NaN: _NaN,
  43567. null: _null,
  43568. phi: phi2,
  43569. SQRT1_2,
  43570. sackurTetrode,
  43571. tau: tau2,
  43572. true: _true,
  43573. "E": e2,
  43574. version: version2,
  43575. efimovFactor,
  43576. LN2,
  43577. pi: pi2,
  43578. replacer,
  43579. reviver,
  43580. SQRT2,
  43581. typed,
  43582. unaryPlus,
  43583. "PI": pi2,
  43584. weakMixingAngle,
  43585. abs: abs2,
  43586. acos: acos2,
  43587. acot,
  43588. acsc,
  43589. addScalar,
  43590. arg,
  43591. asech,
  43592. asinh: asinh3,
  43593. atan: atan3,
  43594. atanh: atanh3,
  43595. bignumber,
  43596. bitNot,
  43597. boolean,
  43598. clone: clone3,
  43599. combinations,
  43600. complex,
  43601. conj,
  43602. cosh: cosh3,
  43603. coth,
  43604. csc,
  43605. cube,
  43606. equalScalar,
  43607. erf,
  43608. exp: exp2,
  43609. expm1: expm13,
  43610. filter: filter2,
  43611. forEach: forEach2,
  43612. format: format4,
  43613. getMatrixDataType,
  43614. hex,
  43615. im,
  43616. isInteger: isInteger2,
  43617. isNegative,
  43618. isPositive,
  43619. isZero,
  43620. LOG2E,
  43621. lgamma,
  43622. log10: log104,
  43623. log2: log24,
  43624. map: map2,
  43625. multiplyScalar,
  43626. not,
  43627. number,
  43628. oct,
  43629. pickRandom,
  43630. print,
  43631. random: random2,
  43632. re,
  43633. sec,
  43634. sign: sign3,
  43635. sin: sin2,
  43636. splitUnit,
  43637. square,
  43638. string,
  43639. tan: tan2,
  43640. typeOf: typeOf2,
  43641. acosh: acosh3,
  43642. acsch,
  43643. apply,
  43644. asec,
  43645. bin,
  43646. chain,
  43647. combinationsWithRep,
  43648. cos: cos2,
  43649. csch,
  43650. isNaN: isNaN2,
  43651. isPrime,
  43652. randomInt,
  43653. sech,
  43654. sinh: sinh3,
  43655. sparse,
  43656. sqrt: sqrt2,
  43657. tanh: tanh3,
  43658. unaryMinus,
  43659. acoth,
  43660. cot,
  43661. fraction,
  43662. isNumeric,
  43663. matrix,
  43664. matrixFromFunction,
  43665. mode,
  43666. numeric: numeric2,
  43667. prod,
  43668. reshape: reshape2,
  43669. size,
  43670. squeeze: squeeze2,
  43671. subset,
  43672. transpose,
  43673. xgcd,
  43674. zeros: zeros2,
  43675. asin: asin2,
  43676. cbrt: cbrt4,
  43677. concat,
  43678. count,
  43679. ctranspose,
  43680. diag,
  43681. divideScalar,
  43682. dotDivide,
  43683. equal,
  43684. flatten: flatten2,
  43685. gcd,
  43686. hasNumericValue,
  43687. identity,
  43688. kron,
  43689. largerEq,
  43690. leftShift,
  43691. matrixFromColumns,
  43692. mod: mod2,
  43693. nthRoot,
  43694. ones,
  43695. resize: resize2,
  43696. rightArithShift,
  43697. round: round2,
  43698. smaller,
  43699. to,
  43700. unequal,
  43701. xor,
  43702. add: add2,
  43703. bitAnd,
  43704. bitXor: bitXor2,
  43705. catalan,
  43706. compare,
  43707. compareText: compareText2,
  43708. cumsum,
  43709. deepEqual,
  43710. dot,
  43711. equalText,
  43712. floor: floor2,
  43713. hypot: hypot2,
  43714. invmod,
  43715. larger,
  43716. log: log3,
  43717. matrixFromRows,
  43718. min: min2,
  43719. multiply,
  43720. nthRoots,
  43721. or,
  43722. partitionSelect,
  43723. quantileSeq,
  43724. rightLogShift,
  43725. smallerEq,
  43726. subtract,
  43727. trace,
  43728. usolve,
  43729. and,
  43730. bitOr,
  43731. ceil: ceil2,
  43732. compareNatural,
  43733. composition,
  43734. cross,
  43735. det,
  43736. diff,
  43737. distance,
  43738. dotMultiply,
  43739. fix,
  43740. index,
  43741. intersect,
  43742. lcm,
  43743. log1p: log1p2,
  43744. lsolve,
  43745. max: max2,
  43746. qr,
  43747. range,
  43748. row,
  43749. setCartesian,
  43750. setDistinct,
  43751. setIsSubset,
  43752. setPowerset,
  43753. slu,
  43754. sum: sum2,
  43755. usolveAll,
  43756. atan2: atan22,
  43757. column,
  43758. lsolveAll,
  43759. setDifference,
  43760. setMultiplicity,
  43761. setSymDifference,
  43762. sort,
  43763. inv,
  43764. lup,
  43765. pinv,
  43766. pow: pow2,
  43767. setIntersect,
  43768. setUnion,
  43769. sqrtm,
  43770. vacuumImpedance,
  43771. wienDisplacement,
  43772. atomicMass,
  43773. bohrMagneton,
  43774. boltzmann,
  43775. conductanceQuantum,
  43776. createUnit,
  43777. deuteronMass,
  43778. dotPow,
  43779. electricConstant,
  43780. elementaryCharge,
  43781. expm,
  43782. faraday,
  43783. fft,
  43784. gamma,
  43785. gravitationConstant,
  43786. hartreeEnergy,
  43787. ifft,
  43788. klitzing,
  43789. loschmidt,
  43790. magneticConstant,
  43791. molarMass,
  43792. molarPlanckConstant,
  43793. neutronMass,
  43794. nuclearMagneton,
  43795. planckCharge,
  43796. planckLength,
  43797. planckTemperature,
  43798. protonMass,
  43799. reducedPlanckConstant,
  43800. rydberg,
  43801. secondRadiation,
  43802. speedOfLight,
  43803. stefanBoltzmann,
  43804. thomsonCrossSection,
  43805. avogadro,
  43806. bohrRadius,
  43807. coulomb,
  43808. divide: divide2,
  43809. electronMass,
  43810. factorial,
  43811. firstRadiation,
  43812. gasConstant,
  43813. inverseConductanceQuantum,
  43814. lusolve,
  43815. magneticFluxQuantum,
  43816. molarMassC12,
  43817. multinomial,
  43818. permutations,
  43819. planckMass,
  43820. polynomialRoot,
  43821. setSize,
  43822. stirlingS2,
  43823. unit,
  43824. bellNumbers,
  43825. eigs,
  43826. fermiCoupling,
  43827. gravity,
  43828. kldivergence,
  43829. mean,
  43830. molarVolume,
  43831. planckConstant,
  43832. quantumOfCirculation,
  43833. variance,
  43834. classicalElectronRadius,
  43835. median,
  43836. parse,
  43837. planckTime,
  43838. resolve,
  43839. simplifyConstant,
  43840. std,
  43841. compile,
  43842. evaluate,
  43843. mad,
  43844. simplifyCore,
  43845. help,
  43846. norm,
  43847. rotationMatrix,
  43848. simplify,
  43849. symbolicEqual,
  43850. derivative,
  43851. parser,
  43852. rotate,
  43853. leafCount,
  43854. rationalize,
  43855. schur,
  43856. sylvester,
  43857. lyap,
  43858. config
  43859. });
  43860. _extends(mathWithTransform, math, {
  43861. filter: createFilterTransform({
  43862. typed
  43863. }),
  43864. forEach: createForEachTransform({
  43865. typed
  43866. }),
  43867. map: createMapTransform({
  43868. typed
  43869. }),
  43870. apply: createApplyTransform({
  43871. isInteger: isInteger2,
  43872. typed
  43873. }),
  43874. subset: createSubsetTransform({
  43875. matrix,
  43876. typed
  43877. }),
  43878. concat: createConcatTransform({
  43879. isInteger: isInteger2,
  43880. matrix,
  43881. typed
  43882. }),
  43883. max: createMaxTransform({
  43884. config,
  43885. larger,
  43886. numeric: numeric2,
  43887. typed
  43888. }),
  43889. sum: createSumTransform({
  43890. add: add2,
  43891. config,
  43892. numeric: numeric2,
  43893. typed
  43894. }),
  43895. min: createMinTransform({
  43896. config,
  43897. numeric: numeric2,
  43898. smaller,
  43899. typed
  43900. }),
  43901. cumsum: createCumSumTransform({
  43902. add: add2,
  43903. typed,
  43904. unaryPlus
  43905. }),
  43906. diff: createDiffTransform({
  43907. bignumber,
  43908. matrix,
  43909. number,
  43910. subtract,
  43911. typed
  43912. }),
  43913. index: createIndexTransform({
  43914. Index
  43915. }),
  43916. range: createRangeTransform({
  43917. bignumber,
  43918. matrix,
  43919. config,
  43920. larger,
  43921. largerEq,
  43922. smaller,
  43923. smallerEq,
  43924. typed
  43925. }),
  43926. row: createRowTransform({
  43927. Index,
  43928. matrix,
  43929. range,
  43930. typed
  43931. }),
  43932. column: createColumnTransform({
  43933. Index,
  43934. matrix,
  43935. range,
  43936. typed
  43937. }),
  43938. mean: createMeanTransform({
  43939. add: add2,
  43940. divide: divide2,
  43941. typed
  43942. }),
  43943. variance: createVarianceTransform({
  43944. add: add2,
  43945. apply,
  43946. divide: divide2,
  43947. isNaN: isNaN2,
  43948. multiply,
  43949. subtract,
  43950. typed
  43951. }),
  43952. std: createStdTransform({
  43953. map: map2,
  43954. sqrt: sqrt2,
  43955. typed,
  43956. variance
  43957. })
  43958. });
  43959. _extends(classes, {
  43960. BigNumber,
  43961. Complex: Complex2,
  43962. Fraction: Fraction2,
  43963. Matrix,
  43964. Node,
  43965. ObjectNode,
  43966. OperatorNode,
  43967. ParenthesisNode,
  43968. Range,
  43969. RelationalNode,
  43970. ResultSet,
  43971. ArrayNode,
  43972. BlockNode,
  43973. ConditionalNode,
  43974. ConstantNode,
  43975. DenseMatrix,
  43976. RangeNode,
  43977. Chain,
  43978. FunctionAssignmentNode,
  43979. SparseMatrix,
  43980. AccessorNode,
  43981. IndexNode,
  43982. AssignmentNode,
  43983. ImmutableDenseMatrix,
  43984. Index,
  43985. FibonacciHeap,
  43986. Spa,
  43987. Unit,
  43988. SymbolNode,
  43989. FunctionNode,
  43990. Help,
  43991. Parser
  43992. });
  43993. Chain.createProxy(math);
  43994. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBigNumberClass.generated.js
  43995. var BigNumberDependencies = {
  43996. createBigNumberClass
  43997. };
  43998. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesComplexClass.generated.js
  43999. var ComplexDependencies = {
  44000. createComplexClass
  44001. };
  44002. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMatrixClass.generated.js
  44003. var MatrixDependencies = {
  44004. createMatrixClass
  44005. };
  44006. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDenseMatrixClass.generated.js
  44007. var DenseMatrixDependencies = {
  44008. MatrixDependencies,
  44009. createDenseMatrixClass
  44010. };
  44011. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFractionClass.generated.js
  44012. var FractionDependencies = {
  44013. createFractionClass
  44014. };
  44015. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTyped.generated.js
  44016. var typedDependencies = {
  44017. BigNumberDependencies,
  44018. ComplexDependencies,
  44019. DenseMatrixDependencies,
  44020. FractionDependencies,
  44021. createTyped
  44022. };
  44023. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAbs.generated.js
  44024. var absDependencies = {
  44025. typedDependencies,
  44026. createAbs
  44027. };
  44028. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNode.generated.js
  44029. var NodeDependencies = {
  44030. createNode
  44031. };
  44032. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEqualScalar.generated.js
  44033. var equalScalarDependencies = {
  44034. typedDependencies,
  44035. createEqualScalar
  44036. };
  44037. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSparseMatrixClass.generated.js
  44038. var SparseMatrixDependencies = {
  44039. MatrixDependencies,
  44040. equalScalarDependencies,
  44041. typedDependencies,
  44042. createSparseMatrixClass
  44043. };
  44044. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMatrix.generated.js
  44045. var matrixDependencies = {
  44046. DenseMatrixDependencies,
  44047. MatrixDependencies,
  44048. SparseMatrixDependencies,
  44049. typedDependencies,
  44050. createMatrix
  44051. };
  44052. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSubset.generated.js
  44053. var subsetDependencies = {
  44054. matrixDependencies,
  44055. typedDependencies,
  44056. createSubset
  44057. };
  44058. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAccessorNode.generated.js
  44059. var AccessorNodeDependencies = {
  44060. NodeDependencies,
  44061. subsetDependencies,
  44062. createAccessorNode
  44063. };
  44064. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcos.generated.js
  44065. var acosDependencies = {
  44066. ComplexDependencies,
  44067. typedDependencies,
  44068. createAcos
  44069. };
  44070. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcosh.generated.js
  44071. var acoshDependencies = {
  44072. ComplexDependencies,
  44073. typedDependencies,
  44074. createAcosh
  44075. };
  44076. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcot.generated.js
  44077. var acotDependencies = {
  44078. BigNumberDependencies,
  44079. typedDependencies,
  44080. createAcot
  44081. };
  44082. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcoth.generated.js
  44083. var acothDependencies = {
  44084. BigNumberDependencies,
  44085. ComplexDependencies,
  44086. typedDependencies,
  44087. createAcoth
  44088. };
  44089. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcsc.generated.js
  44090. var acscDependencies = {
  44091. BigNumberDependencies,
  44092. ComplexDependencies,
  44093. typedDependencies,
  44094. createAcsc
  44095. };
  44096. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAcsch.generated.js
  44097. var acschDependencies = {
  44098. BigNumberDependencies,
  44099. typedDependencies,
  44100. createAcsch
  44101. };
  44102. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAddScalar.generated.js
  44103. var addScalarDependencies = {
  44104. typedDependencies,
  44105. createAddScalar
  44106. };
  44107. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsInteger.generated.js
  44108. var isIntegerDependencies = {
  44109. typedDependencies,
  44110. createIsInteger
  44111. };
  44112. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConcat.generated.js
  44113. var concatDependencies = {
  44114. isIntegerDependencies,
  44115. matrixDependencies,
  44116. typedDependencies,
  44117. createConcat
  44118. };
  44119. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAdd.generated.js
  44120. var addDependencies = {
  44121. DenseMatrixDependencies,
  44122. SparseMatrixDependencies,
  44123. addScalarDependencies,
  44124. concatDependencies,
  44125. equalScalarDependencies,
  44126. matrixDependencies,
  44127. typedDependencies,
  44128. createAdd
  44129. };
  44130. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNot.generated.js
  44131. var notDependencies = {
  44132. typedDependencies,
  44133. createNot
  44134. };
  44135. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesZeros.generated.js
  44136. var zerosDependencies = {
  44137. BigNumberDependencies,
  44138. matrixDependencies,
  44139. typedDependencies,
  44140. createZeros
  44141. };
  44142. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAnd.generated.js
  44143. var andDependencies = {
  44144. concatDependencies,
  44145. equalScalarDependencies,
  44146. matrixDependencies,
  44147. notDependencies,
  44148. typedDependencies,
  44149. zerosDependencies,
  44150. createAnd
  44151. };
  44152. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesApply.generated.js
  44153. var applyDependencies = {
  44154. isIntegerDependencies,
  44155. typedDependencies,
  44156. createApply
  44157. };
  44158. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesApplyTransform.generated.js
  44159. var applyTransformDependencies = {
  44160. isIntegerDependencies,
  44161. typedDependencies,
  44162. createApplyTransform
  44163. };
  44164. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesArg.generated.js
  44165. var argDependencies = {
  44166. typedDependencies,
  44167. createArg
  44168. };
  44169. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesArrayNode.generated.js
  44170. var ArrayNodeDependencies = {
  44171. NodeDependencies,
  44172. createArrayNode
  44173. };
  44174. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAsec.generated.js
  44175. var asecDependencies = {
  44176. BigNumberDependencies,
  44177. ComplexDependencies,
  44178. typedDependencies,
  44179. createAsec
  44180. };
  44181. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAsech.generated.js
  44182. var asechDependencies = {
  44183. BigNumberDependencies,
  44184. ComplexDependencies,
  44185. typedDependencies,
  44186. createAsech
  44187. };
  44188. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAsin.generated.js
  44189. var asinDependencies = {
  44190. ComplexDependencies,
  44191. typedDependencies,
  44192. createAsin
  44193. };
  44194. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAsinh.generated.js
  44195. var asinhDependencies = {
  44196. typedDependencies,
  44197. createAsinh
  44198. };
  44199. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAssignmentNode.generated.js
  44200. var AssignmentNodeDependencies = {
  44201. matrixDependencies,
  44202. NodeDependencies,
  44203. subsetDependencies,
  44204. createAssignmentNode
  44205. };
  44206. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAtan.generated.js
  44207. var atanDependencies = {
  44208. typedDependencies,
  44209. createAtan
  44210. };
  44211. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAtan2.generated.js
  44212. var atan2Dependencies = {
  44213. BigNumberDependencies,
  44214. DenseMatrixDependencies,
  44215. concatDependencies,
  44216. equalScalarDependencies,
  44217. matrixDependencies,
  44218. typedDependencies,
  44219. createAtan2
  44220. };
  44221. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAtanh.generated.js
  44222. var atanhDependencies = {
  44223. ComplexDependencies,
  44224. typedDependencies,
  44225. createAtanh
  44226. };
  44227. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBignumber.generated.js
  44228. var bignumberDependencies = {
  44229. BigNumberDependencies,
  44230. typedDependencies,
  44231. createBignumber
  44232. };
  44233. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFraction.generated.js
  44234. var fractionDependencies = {
  44235. FractionDependencies,
  44236. typedDependencies,
  44237. createFraction
  44238. };
  44239. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNumber.generated.js
  44240. var numberDependencies = {
  44241. typedDependencies,
  44242. createNumber
  44243. };
  44244. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNumeric.generated.js
  44245. var numericDependencies = {
  44246. bignumberDependencies,
  44247. fractionDependencies,
  44248. numberDependencies,
  44249. createNumeric
  44250. };
  44251. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDivideScalar.generated.js
  44252. var divideScalarDependencies = {
  44253. numericDependencies,
  44254. typedDependencies,
  44255. createDivideScalar
  44256. };
  44257. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js
  44258. var equalDependencies = {
  44259. DenseMatrixDependencies,
  44260. concatDependencies,
  44261. equalScalarDependencies,
  44262. matrixDependencies,
  44263. typedDependencies,
  44264. createEqual
  44265. };
  44266. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRound.generated.js
  44267. var roundDependencies = {
  44268. BigNumberDependencies,
  44269. DenseMatrixDependencies,
  44270. equalScalarDependencies,
  44271. matrixDependencies,
  44272. typedDependencies,
  44273. zerosDependencies,
  44274. createRound
  44275. };
  44276. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js
  44277. var ceilDependencies = {
  44278. DenseMatrixDependencies,
  44279. equalScalarDependencies,
  44280. matrixDependencies,
  44281. roundDependencies,
  44282. typedDependencies,
  44283. zerosDependencies,
  44284. createCeil
  44285. };
  44286. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js
  44287. var floorDependencies = {
  44288. DenseMatrixDependencies,
  44289. equalScalarDependencies,
  44290. matrixDependencies,
  44291. roundDependencies,
  44292. typedDependencies,
  44293. zerosDependencies,
  44294. createFloor
  44295. };
  44296. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js
  44297. var fixDependencies = {
  44298. ComplexDependencies,
  44299. DenseMatrixDependencies,
  44300. ceilDependencies,
  44301. equalScalarDependencies,
  44302. floorDependencies,
  44303. matrixDependencies,
  44304. typedDependencies,
  44305. zerosDependencies,
  44306. createFix
  44307. };
  44308. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFormat.generated.js
  44309. var formatDependencies = {
  44310. typedDependencies,
  44311. createFormat
  44312. };
  44313. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsNumeric.generated.js
  44314. var isNumericDependencies = {
  44315. typedDependencies,
  44316. createIsNumeric
  44317. };
  44318. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMultiplyScalar.generated.js
  44319. var multiplyScalarDependencies = {
  44320. typedDependencies,
  44321. createMultiplyScalar
  44322. };
  44323. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIdentity.generated.js
  44324. var identityDependencies = {
  44325. BigNumberDependencies,
  44326. DenseMatrixDependencies,
  44327. SparseMatrixDependencies,
  44328. matrixDependencies,
  44329. typedDependencies,
  44330. createIdentity
  44331. };
  44332. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsZero.generated.js
  44333. var isZeroDependencies = {
  44334. typedDependencies,
  44335. createIsZero
  44336. };
  44337. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConj.generated.js
  44338. var conjDependencies = {
  44339. typedDependencies,
  44340. createConj
  44341. };
  44342. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSize.generated.js
  44343. var sizeDependencies = {
  44344. matrixDependencies,
  44345. typedDependencies,
  44346. createSize
  44347. };
  44348. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDot.generated.js
  44349. var dotDependencies = {
  44350. addScalarDependencies,
  44351. conjDependencies,
  44352. multiplyScalarDependencies,
  44353. sizeDependencies,
  44354. typedDependencies,
  44355. createDot
  44356. };
  44357. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMultiply.generated.js
  44358. var multiplyDependencies = {
  44359. addScalarDependencies,
  44360. dotDependencies,
  44361. equalScalarDependencies,
  44362. matrixDependencies,
  44363. multiplyScalarDependencies,
  44364. typedDependencies,
  44365. createMultiply
  44366. };
  44367. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUnaryMinus.generated.js
  44368. var unaryMinusDependencies = {
  44369. typedDependencies,
  44370. createUnaryMinus
  44371. };
  44372. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js
  44373. var subtractDependencies = {
  44374. DenseMatrixDependencies,
  44375. addScalarDependencies,
  44376. concatDependencies,
  44377. equalScalarDependencies,
  44378. matrixDependencies,
  44379. typedDependencies,
  44380. unaryMinusDependencies,
  44381. createSubtract
  44382. };
  44383. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js
  44384. var detDependencies = {
  44385. divideScalarDependencies,
  44386. isZeroDependencies,
  44387. matrixDependencies,
  44388. multiplyDependencies,
  44389. subtractDependencies,
  44390. typedDependencies,
  44391. unaryMinusDependencies,
  44392. createDet
  44393. };
  44394. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesInv.generated.js
  44395. var invDependencies = {
  44396. absDependencies,
  44397. addScalarDependencies,
  44398. detDependencies,
  44399. divideScalarDependencies,
  44400. identityDependencies,
  44401. matrixDependencies,
  44402. multiplyDependencies,
  44403. typedDependencies,
  44404. unaryMinusDependencies,
  44405. createInv
  44406. };
  44407. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js
  44408. var powDependencies = {
  44409. ComplexDependencies,
  44410. fractionDependencies,
  44411. identityDependencies,
  44412. invDependencies,
  44413. matrixDependencies,
  44414. multiplyDependencies,
  44415. numberDependencies,
  44416. typedDependencies,
  44417. createPow
  44418. };
  44419. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js
  44420. var UnitDependencies = {
  44421. BigNumberDependencies,
  44422. ComplexDependencies,
  44423. FractionDependencies,
  44424. absDependencies,
  44425. addScalarDependencies,
  44426. divideScalarDependencies,
  44427. equalDependencies,
  44428. fixDependencies,
  44429. formatDependencies,
  44430. isNumericDependencies,
  44431. multiplyScalarDependencies,
  44432. numberDependencies,
  44433. powDependencies,
  44434. roundDependencies,
  44435. subtractDependencies,
  44436. createUnitClass
  44437. };
  44438. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAtomicMass.generated.js
  44439. var atomicMassDependencies = {
  44440. BigNumberDependencies,
  44441. UnitDependencies,
  44442. createAtomicMass
  44443. };
  44444. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesAvogadro.generated.js
  44445. var avogadroDependencies = {
  44446. BigNumberDependencies,
  44447. UnitDependencies,
  44448. createAvogadro
  44449. };
  44450. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsNegative.generated.js
  44451. var isNegativeDependencies = {
  44452. typedDependencies,
  44453. createIsNegative
  44454. };
  44455. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCombinations.generated.js
  44456. var combinationsDependencies = {
  44457. typedDependencies,
  44458. createCombinations
  44459. };
  44460. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGamma.generated.js
  44461. var gammaDependencies = {
  44462. BigNumberDependencies,
  44463. ComplexDependencies,
  44464. multiplyScalarDependencies,
  44465. powDependencies,
  44466. typedDependencies,
  44467. createGamma
  44468. };
  44469. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFactorial.generated.js
  44470. var factorialDependencies = {
  44471. gammaDependencies,
  44472. typedDependencies,
  44473. createFactorial
  44474. };
  44475. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js
  44476. var largerDependencies = {
  44477. DenseMatrixDependencies,
  44478. concatDependencies,
  44479. matrixDependencies,
  44480. typedDependencies,
  44481. createLarger
  44482. };
  44483. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js
  44484. var stirlingS2Dependencies = {
  44485. bignumberDependencies,
  44486. addScalarDependencies,
  44487. combinationsDependencies,
  44488. divideScalarDependencies,
  44489. factorialDependencies,
  44490. isIntegerDependencies,
  44491. isNegativeDependencies,
  44492. largerDependencies,
  44493. multiplyScalarDependencies,
  44494. numberDependencies,
  44495. powDependencies,
  44496. subtractDependencies,
  44497. typedDependencies,
  44498. createStirlingS2
  44499. };
  44500. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBellNumbers.generated.js
  44501. var bellNumbersDependencies = {
  44502. addScalarDependencies,
  44503. isIntegerDependencies,
  44504. isNegativeDependencies,
  44505. stirlingS2Dependencies,
  44506. typedDependencies,
  44507. createBellNumbers
  44508. };
  44509. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBin.generated.js
  44510. var binDependencies = {
  44511. formatDependencies,
  44512. typedDependencies,
  44513. createBin
  44514. };
  44515. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBitAnd.generated.js
  44516. var bitAndDependencies = {
  44517. concatDependencies,
  44518. equalScalarDependencies,
  44519. matrixDependencies,
  44520. typedDependencies,
  44521. createBitAnd
  44522. };
  44523. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBitNot.generated.js
  44524. var bitNotDependencies = {
  44525. typedDependencies,
  44526. createBitNot
  44527. };
  44528. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBitOr.generated.js
  44529. var bitOrDependencies = {
  44530. DenseMatrixDependencies,
  44531. concatDependencies,
  44532. equalScalarDependencies,
  44533. matrixDependencies,
  44534. typedDependencies,
  44535. createBitOr
  44536. };
  44537. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js
  44538. var bitXorDependencies = {
  44539. DenseMatrixDependencies,
  44540. concatDependencies,
  44541. matrixDependencies,
  44542. typedDependencies,
  44543. createBitXor
  44544. };
  44545. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesResultSet.generated.js
  44546. var ResultSetDependencies = {
  44547. createResultSet
  44548. };
  44549. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBlockNode.generated.js
  44550. var BlockNodeDependencies = {
  44551. NodeDependencies,
  44552. ResultSetDependencies,
  44553. createBlockNode
  44554. };
  44555. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBohrMagneton.generated.js
  44556. var bohrMagnetonDependencies = {
  44557. BigNumberDependencies,
  44558. UnitDependencies,
  44559. createBohrMagneton
  44560. };
  44561. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBohrRadius.generated.js
  44562. var bohrRadiusDependencies = {
  44563. BigNumberDependencies,
  44564. UnitDependencies,
  44565. createBohrRadius
  44566. };
  44567. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBoltzmann.generated.js
  44568. var boltzmannDependencies = {
  44569. BigNumberDependencies,
  44570. UnitDependencies,
  44571. createBoltzmann
  44572. };
  44573. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesBoolean.generated.js
  44574. var booleanDependencies = {
  44575. typedDependencies,
  44576. createBoolean
  44577. };
  44578. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCatalan.generated.js
  44579. var catalanDependencies = {
  44580. addScalarDependencies,
  44581. combinationsDependencies,
  44582. divideScalarDependencies,
  44583. isIntegerDependencies,
  44584. isNegativeDependencies,
  44585. multiplyScalarDependencies,
  44586. typedDependencies,
  44587. createCatalan
  44588. };
  44589. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCbrt.generated.js
  44590. var cbrtDependencies = {
  44591. BigNumberDependencies,
  44592. ComplexDependencies,
  44593. FractionDependencies,
  44594. isNegativeDependencies,
  44595. matrixDependencies,
  44596. typedDependencies,
  44597. unaryMinusDependencies,
  44598. createCbrt
  44599. };
  44600. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js
  44601. var ChainDependencies = {
  44602. typedDependencies,
  44603. createChainClass
  44604. };
  44605. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesChain.generated.js
  44606. var chainDependencies = {
  44607. ChainDependencies,
  44608. typedDependencies,
  44609. createChain
  44610. };
  44611. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesClassicalElectronRadius.generated.js
  44612. var classicalElectronRadiusDependencies = {
  44613. BigNumberDependencies,
  44614. UnitDependencies,
  44615. createClassicalElectronRadius
  44616. };
  44617. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesClone.generated.js
  44618. var cloneDependencies = {
  44619. typedDependencies,
  44620. createClone
  44621. };
  44622. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js
  44623. var smallerDependencies = {
  44624. DenseMatrixDependencies,
  44625. concatDependencies,
  44626. matrixDependencies,
  44627. typedDependencies,
  44628. createSmaller
  44629. };
  44630. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesImmutableDenseMatrixClass.generated.js
  44631. var ImmutableDenseMatrixDependencies = {
  44632. DenseMatrixDependencies,
  44633. smallerDependencies,
  44634. createImmutableDenseMatrixClass
  44635. };
  44636. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIndexClass.generated.js
  44637. var IndexDependencies = {
  44638. ImmutableDenseMatrixDependencies,
  44639. createIndexClass
  44640. };
  44641. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js
  44642. var largerEqDependencies = {
  44643. DenseMatrixDependencies,
  44644. concatDependencies,
  44645. matrixDependencies,
  44646. typedDependencies,
  44647. createLargerEq
  44648. };
  44649. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js
  44650. var smallerEqDependencies = {
  44651. DenseMatrixDependencies,
  44652. concatDependencies,
  44653. matrixDependencies,
  44654. typedDependencies,
  44655. createSmallerEq
  44656. };
  44657. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js
  44658. var rangeDependencies = {
  44659. bignumberDependencies,
  44660. matrixDependencies,
  44661. largerDependencies,
  44662. largerEqDependencies,
  44663. smallerDependencies,
  44664. smallerEqDependencies,
  44665. typedDependencies,
  44666. createRange
  44667. };
  44668. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesColumn.generated.js
  44669. var columnDependencies = {
  44670. IndexDependencies,
  44671. matrixDependencies,
  44672. rangeDependencies,
  44673. typedDependencies,
  44674. createColumn
  44675. };
  44676. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesColumnTransform.generated.js
  44677. var columnTransformDependencies = {
  44678. IndexDependencies,
  44679. matrixDependencies,
  44680. rangeDependencies,
  44681. typedDependencies,
  44682. createColumnTransform
  44683. };
  44684. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCombinationsWithRep.generated.js
  44685. var combinationsWithRepDependencies = {
  44686. typedDependencies,
  44687. createCombinationsWithRep
  44688. };
  44689. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCompare.generated.js
  44690. var compareDependencies = {
  44691. BigNumberDependencies,
  44692. DenseMatrixDependencies,
  44693. FractionDependencies,
  44694. concatDependencies,
  44695. equalScalarDependencies,
  44696. matrixDependencies,
  44697. typedDependencies,
  44698. createCompare
  44699. };
  44700. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCompareNatural.generated.js
  44701. var compareNaturalDependencies = {
  44702. compareDependencies,
  44703. typedDependencies,
  44704. createCompareNatural
  44705. };
  44706. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCompareText.generated.js
  44707. var compareTextDependencies = {
  44708. concatDependencies,
  44709. matrixDependencies,
  44710. typedDependencies,
  44711. createCompareText
  44712. };
  44713. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConditionalNode.generated.js
  44714. var ConditionalNodeDependencies = {
  44715. NodeDependencies,
  44716. createConditionalNode
  44717. };
  44718. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConstantNode.generated.js
  44719. var ConstantNodeDependencies = {
  44720. NodeDependencies,
  44721. createConstantNode
  44722. };
  44723. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFunctionAssignmentNode.generated.js
  44724. var FunctionAssignmentNodeDependencies = {
  44725. NodeDependencies,
  44726. typedDependencies,
  44727. createFunctionAssignmentNode
  44728. };
  44729. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSymbolNode.generated.js
  44730. var SymbolNodeDependencies = {
  44731. UnitDependencies,
  44732. NodeDependencies,
  44733. createSymbolNode
  44734. };
  44735. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFunctionNode.generated.js
  44736. var FunctionNodeDependencies = {
  44737. NodeDependencies,
  44738. SymbolNodeDependencies,
  44739. createFunctionNode
  44740. };
  44741. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js
  44742. var IndexNodeDependencies = {
  44743. NodeDependencies,
  44744. sizeDependencies,
  44745. createIndexNode
  44746. };
  44747. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesObjectNode.generated.js
  44748. var ObjectNodeDependencies = {
  44749. NodeDependencies,
  44750. createObjectNode
  44751. };
  44752. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesOperatorNode.generated.js
  44753. var OperatorNodeDependencies = {
  44754. NodeDependencies,
  44755. createOperatorNode
  44756. };
  44757. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesParenthesisNode.generated.js
  44758. var ParenthesisNodeDependencies = {
  44759. NodeDependencies,
  44760. createParenthesisNode
  44761. };
  44762. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRangeNode.generated.js
  44763. var RangeNodeDependencies = {
  44764. NodeDependencies,
  44765. createRangeNode
  44766. };
  44767. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRelationalNode.generated.js
  44768. var RelationalNodeDependencies = {
  44769. NodeDependencies,
  44770. createRelationalNode
  44771. };
  44772. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesParse.generated.js
  44773. var parseDependencies = {
  44774. AccessorNodeDependencies,
  44775. ArrayNodeDependencies,
  44776. AssignmentNodeDependencies,
  44777. BlockNodeDependencies,
  44778. ConditionalNodeDependencies,
  44779. ConstantNodeDependencies,
  44780. FunctionAssignmentNodeDependencies,
  44781. FunctionNodeDependencies,
  44782. IndexNodeDependencies,
  44783. ObjectNodeDependencies,
  44784. OperatorNodeDependencies,
  44785. ParenthesisNodeDependencies,
  44786. RangeNodeDependencies,
  44787. RelationalNodeDependencies,
  44788. SymbolNodeDependencies,
  44789. numericDependencies,
  44790. typedDependencies,
  44791. createParse
  44792. };
  44793. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCompile.generated.js
  44794. var compileDependencies = {
  44795. parseDependencies,
  44796. typedDependencies,
  44797. createCompile
  44798. };
  44799. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesComplex.generated.js
  44800. var complexDependencies = {
  44801. ComplexDependencies,
  44802. typedDependencies,
  44803. createComplex
  44804. };
  44805. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsPositive.generated.js
  44806. var isPositiveDependencies = {
  44807. typedDependencies,
  44808. createIsPositive
  44809. };
  44810. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesComposition.generated.js
  44811. var compositionDependencies = {
  44812. addScalarDependencies,
  44813. combinationsDependencies,
  44814. isIntegerDependencies,
  44815. isNegativeDependencies,
  44816. isPositiveDependencies,
  44817. largerDependencies,
  44818. typedDependencies,
  44819. createComposition
  44820. };
  44821. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConcatTransform.generated.js
  44822. var concatTransformDependencies = {
  44823. isIntegerDependencies,
  44824. matrixDependencies,
  44825. typedDependencies,
  44826. createConcatTransform
  44827. };
  44828. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesConductanceQuantum.generated.js
  44829. var conductanceQuantumDependencies = {
  44830. BigNumberDependencies,
  44831. UnitDependencies,
  44832. createConductanceQuantum
  44833. };
  44834. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCos.generated.js
  44835. var cosDependencies = {
  44836. typedDependencies,
  44837. createCos
  44838. };
  44839. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCosh.generated.js
  44840. var coshDependencies = {
  44841. typedDependencies,
  44842. createCosh
  44843. };
  44844. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCot.generated.js
  44845. var cotDependencies = {
  44846. BigNumberDependencies,
  44847. typedDependencies,
  44848. createCot
  44849. };
  44850. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCoth.generated.js
  44851. var cothDependencies = {
  44852. BigNumberDependencies,
  44853. typedDependencies,
  44854. createCoth
  44855. };
  44856. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCoulomb.generated.js
  44857. var coulombDependencies = {
  44858. BigNumberDependencies,
  44859. UnitDependencies,
  44860. createCoulomb
  44861. };
  44862. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesProd.generated.js
  44863. var prodDependencies = {
  44864. multiplyScalarDependencies,
  44865. numericDependencies,
  44866. typedDependencies,
  44867. createProd
  44868. };
  44869. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCount.generated.js
  44870. var countDependencies = {
  44871. prodDependencies,
  44872. sizeDependencies,
  44873. typedDependencies,
  44874. createCount
  44875. };
  44876. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCreateUnit.generated.js
  44877. var createUnitDependencies = {
  44878. UnitDependencies,
  44879. typedDependencies,
  44880. createCreateUnit
  44881. };
  44882. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCross.generated.js
  44883. var crossDependencies = {
  44884. matrixDependencies,
  44885. multiplyDependencies,
  44886. subtractDependencies,
  44887. typedDependencies,
  44888. createCross
  44889. };
  44890. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCsc.generated.js
  44891. var cscDependencies = {
  44892. BigNumberDependencies,
  44893. typedDependencies,
  44894. createCsc
  44895. };
  44896. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCsch.generated.js
  44897. var cschDependencies = {
  44898. BigNumberDependencies,
  44899. typedDependencies,
  44900. createCsch
  44901. };
  44902. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTranspose.generated.js
  44903. var transposeDependencies = {
  44904. matrixDependencies,
  44905. typedDependencies,
  44906. createTranspose
  44907. };
  44908. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCtranspose.generated.js
  44909. var ctransposeDependencies = {
  44910. conjDependencies,
  44911. transposeDependencies,
  44912. typedDependencies,
  44913. createCtranspose
  44914. };
  44915. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCube.generated.js
  44916. var cubeDependencies = {
  44917. typedDependencies,
  44918. createCube
  44919. };
  44920. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUnaryPlus.generated.js
  44921. var unaryPlusDependencies = {
  44922. BigNumberDependencies,
  44923. typedDependencies,
  44924. createUnaryPlus
  44925. };
  44926. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js
  44927. var cumsumDependencies = {
  44928. addDependencies,
  44929. typedDependencies,
  44930. unaryPlusDependencies,
  44931. createCumSum
  44932. };
  44933. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js
  44934. var cumsumTransformDependencies = {
  44935. addDependencies,
  44936. typedDependencies,
  44937. unaryPlusDependencies,
  44938. createCumSumTransform
  44939. };
  44940. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDeepEqual.generated.js
  44941. var deepEqualDependencies = {
  44942. equalDependencies,
  44943. typedDependencies,
  44944. createDeepEqual
  44945. };
  44946. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDivide.generated.js
  44947. var divideDependencies = {
  44948. divideScalarDependencies,
  44949. equalScalarDependencies,
  44950. invDependencies,
  44951. matrixDependencies,
  44952. multiplyDependencies,
  44953. typedDependencies,
  44954. createDivide
  44955. };
  44956. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js
  44957. var resolveDependencies = {
  44958. ConstantNodeDependencies,
  44959. FunctionNodeDependencies,
  44960. OperatorNodeDependencies,
  44961. ParenthesisNodeDependencies,
  44962. parseDependencies,
  44963. typedDependencies,
  44964. createResolve
  44965. };
  44966. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js
  44967. var simplifyConstantDependencies = {
  44968. bignumberDependencies,
  44969. fractionDependencies,
  44970. AccessorNodeDependencies,
  44971. ArrayNodeDependencies,
  44972. ConstantNodeDependencies,
  44973. FunctionNodeDependencies,
  44974. IndexNodeDependencies,
  44975. ObjectNodeDependencies,
  44976. OperatorNodeDependencies,
  44977. SymbolNodeDependencies,
  44978. matrixDependencies,
  44979. typedDependencies,
  44980. createSimplifyConstant
  44981. };
  44982. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js
  44983. var simplifyCoreDependencies = {
  44984. AccessorNodeDependencies,
  44985. ArrayNodeDependencies,
  44986. ConstantNodeDependencies,
  44987. FunctionNodeDependencies,
  44988. IndexNodeDependencies,
  44989. ObjectNodeDependencies,
  44990. OperatorNodeDependencies,
  44991. ParenthesisNodeDependencies,
  44992. SymbolNodeDependencies,
  44993. addDependencies,
  44994. divideDependencies,
  44995. equalDependencies,
  44996. isZeroDependencies,
  44997. multiplyDependencies,
  44998. parseDependencies,
  44999. powDependencies,
  45000. subtractDependencies,
  45001. typedDependencies,
  45002. createSimplifyCore
  45003. };
  45004. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js
  45005. var simplifyDependencies = {
  45006. bignumberDependencies,
  45007. fractionDependencies,
  45008. AccessorNodeDependencies,
  45009. ArrayNodeDependencies,
  45010. ConstantNodeDependencies,
  45011. FunctionNodeDependencies,
  45012. IndexNodeDependencies,
  45013. ObjectNodeDependencies,
  45014. OperatorNodeDependencies,
  45015. ParenthesisNodeDependencies,
  45016. SymbolNodeDependencies,
  45017. addDependencies,
  45018. divideDependencies,
  45019. equalDependencies,
  45020. isZeroDependencies,
  45021. matrixDependencies,
  45022. multiplyDependencies,
  45023. parseDependencies,
  45024. powDependencies,
  45025. resolveDependencies,
  45026. simplifyConstantDependencies,
  45027. simplifyCoreDependencies,
  45028. subtractDependencies,
  45029. typedDependencies,
  45030. createSimplify
  45031. };
  45032. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDerivative.generated.js
  45033. var derivativeDependencies = {
  45034. ConstantNodeDependencies,
  45035. FunctionNodeDependencies,
  45036. OperatorNodeDependencies,
  45037. ParenthesisNodeDependencies,
  45038. SymbolNodeDependencies,
  45039. equalDependencies,
  45040. isZeroDependencies,
  45041. numericDependencies,
  45042. parseDependencies,
  45043. simplifyDependencies,
  45044. typedDependencies,
  45045. createDerivative
  45046. };
  45047. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDeuteronMass.generated.js
  45048. var deuteronMassDependencies = {
  45049. BigNumberDependencies,
  45050. UnitDependencies,
  45051. createDeuteronMass
  45052. };
  45053. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDiag.generated.js
  45054. var diagDependencies = {
  45055. DenseMatrixDependencies,
  45056. SparseMatrixDependencies,
  45057. matrixDependencies,
  45058. typedDependencies,
  45059. createDiag
  45060. };
  45061. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDiff.generated.js
  45062. var diffDependencies = {
  45063. matrixDependencies,
  45064. numberDependencies,
  45065. subtractDependencies,
  45066. typedDependencies,
  45067. createDiff
  45068. };
  45069. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDiffTransform.generated.js
  45070. var diffTransformDependencies = {
  45071. bignumberDependencies,
  45072. matrixDependencies,
  45073. numberDependencies,
  45074. subtractDependencies,
  45075. typedDependencies,
  45076. createDiffTransform
  45077. };
  45078. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSqrt.generated.js
  45079. var sqrtDependencies = {
  45080. ComplexDependencies,
  45081. typedDependencies,
  45082. createSqrt
  45083. };
  45084. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDistance.generated.js
  45085. var distanceDependencies = {
  45086. absDependencies,
  45087. addScalarDependencies,
  45088. divideScalarDependencies,
  45089. multiplyScalarDependencies,
  45090. sqrtDependencies,
  45091. subtractDependencies,
  45092. typedDependencies,
  45093. unaryMinusDependencies,
  45094. createDistance
  45095. };
  45096. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js
  45097. var dotDivideDependencies = {
  45098. DenseMatrixDependencies,
  45099. concatDependencies,
  45100. divideScalarDependencies,
  45101. equalScalarDependencies,
  45102. matrixDependencies,
  45103. typedDependencies,
  45104. createDotDivide
  45105. };
  45106. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDotMultiply.generated.js
  45107. var dotMultiplyDependencies = {
  45108. concatDependencies,
  45109. equalScalarDependencies,
  45110. matrixDependencies,
  45111. multiplyScalarDependencies,
  45112. typedDependencies,
  45113. createDotMultiply
  45114. };
  45115. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js
  45116. var dotPowDependencies = {
  45117. DenseMatrixDependencies,
  45118. concatDependencies,
  45119. equalScalarDependencies,
  45120. matrixDependencies,
  45121. powDependencies,
  45122. typedDependencies,
  45123. createDotPow
  45124. };
  45125. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesE.generated.js
  45126. var eDependencies = {
  45127. BigNumberDependencies,
  45128. createE
  45129. };
  45130. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEfimovFactor.generated.js
  45131. var efimovFactorDependencies = {
  45132. BigNumberDependencies,
  45133. createEfimovFactor
  45134. };
  45135. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFlatten.generated.js
  45136. var flattenDependencies = {
  45137. matrixDependencies,
  45138. typedDependencies,
  45139. createFlatten
  45140. };
  45141. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIm.generated.js
  45142. var imDependencies = {
  45143. typedDependencies,
  45144. createIm
  45145. };
  45146. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js
  45147. var matrixFromColumnsDependencies = {
  45148. flattenDependencies,
  45149. matrixDependencies,
  45150. sizeDependencies,
  45151. typedDependencies,
  45152. createMatrixFromColumns
  45153. };
  45154. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSign.generated.js
  45155. var signDependencies = {
  45156. BigNumberDependencies,
  45157. FractionDependencies,
  45158. complexDependencies,
  45159. typedDependencies,
  45160. createSign
  45161. };
  45162. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesQr.generated.js
  45163. var qrDependencies = {
  45164. addScalarDependencies,
  45165. complexDependencies,
  45166. conjDependencies,
  45167. divideScalarDependencies,
  45168. equalDependencies,
  45169. identityDependencies,
  45170. isZeroDependencies,
  45171. matrixDependencies,
  45172. multiplyScalarDependencies,
  45173. signDependencies,
  45174. sqrtDependencies,
  45175. subtractDependencies,
  45176. typedDependencies,
  45177. unaryMinusDependencies,
  45178. zerosDependencies,
  45179. createQr
  45180. };
  45181. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRe.generated.js
  45182. var reDependencies = {
  45183. typedDependencies,
  45184. createRe
  45185. };
  45186. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSin.generated.js
  45187. var sinDependencies = {
  45188. typedDependencies,
  45189. createSin
  45190. };
  45191. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUsolve.generated.js
  45192. var usolveDependencies = {
  45193. DenseMatrixDependencies,
  45194. divideScalarDependencies,
  45195. equalScalarDependencies,
  45196. matrixDependencies,
  45197. multiplyScalarDependencies,
  45198. subtractDependencies,
  45199. typedDependencies,
  45200. createUsolve
  45201. };
  45202. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUsolveAll.generated.js
  45203. var usolveAllDependencies = {
  45204. DenseMatrixDependencies,
  45205. divideScalarDependencies,
  45206. equalScalarDependencies,
  45207. matrixDependencies,
  45208. multiplyScalarDependencies,
  45209. subtractDependencies,
  45210. typedDependencies,
  45211. createUsolveAll
  45212. };
  45213. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEigs.generated.js
  45214. var eigsDependencies = {
  45215. absDependencies,
  45216. addDependencies,
  45217. addScalarDependencies,
  45218. atanDependencies,
  45219. bignumberDependencies,
  45220. columnDependencies,
  45221. complexDependencies,
  45222. cosDependencies,
  45223. diagDependencies,
  45224. divideScalarDependencies,
  45225. dotDependencies,
  45226. equalDependencies,
  45227. flattenDependencies,
  45228. imDependencies,
  45229. invDependencies,
  45230. largerDependencies,
  45231. matrixDependencies,
  45232. matrixFromColumnsDependencies,
  45233. multiplyDependencies,
  45234. multiplyScalarDependencies,
  45235. numberDependencies,
  45236. qrDependencies,
  45237. reDependencies,
  45238. sinDependencies,
  45239. smallerDependencies,
  45240. sqrtDependencies,
  45241. subtractDependencies,
  45242. typedDependencies,
  45243. usolveDependencies,
  45244. usolveAllDependencies,
  45245. createEigs
  45246. };
  45247. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesElectricConstant.generated.js
  45248. var electricConstantDependencies = {
  45249. BigNumberDependencies,
  45250. UnitDependencies,
  45251. createElectricConstant
  45252. };
  45253. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesElectronMass.generated.js
  45254. var electronMassDependencies = {
  45255. BigNumberDependencies,
  45256. UnitDependencies,
  45257. createElectronMass
  45258. };
  45259. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesElementaryCharge.generated.js
  45260. var elementaryChargeDependencies = {
  45261. BigNumberDependencies,
  45262. UnitDependencies,
  45263. createElementaryCharge
  45264. };
  45265. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEqualText.generated.js
  45266. var equalTextDependencies = {
  45267. compareTextDependencies,
  45268. isZeroDependencies,
  45269. typedDependencies,
  45270. createEqualText
  45271. };
  45272. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesErf.generated.js
  45273. var erfDependencies = {
  45274. typedDependencies,
  45275. createErf
  45276. };
  45277. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesEvaluate.generated.js
  45278. var evaluateDependencies = {
  45279. parseDependencies,
  45280. typedDependencies,
  45281. createEvaluate
  45282. };
  45283. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesExp.generated.js
  45284. var expDependencies = {
  45285. typedDependencies,
  45286. createExp
  45287. };
  45288. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesExpm.generated.js
  45289. var expmDependencies = {
  45290. absDependencies,
  45291. addDependencies,
  45292. identityDependencies,
  45293. invDependencies,
  45294. multiplyDependencies,
  45295. typedDependencies,
  45296. createExpm
  45297. };
  45298. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesExpm1.generated.js
  45299. var expm1Dependencies = {
  45300. ComplexDependencies,
  45301. typedDependencies,
  45302. createExpm1
  45303. };
  45304. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFalse.generated.js
  45305. var falseDependencies = {
  45306. createFalse
  45307. };
  45308. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFaraday.generated.js
  45309. var faradayDependencies = {
  45310. BigNumberDependencies,
  45311. UnitDependencies,
  45312. createFaraday
  45313. };
  45314. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFermiCoupling.generated.js
  45315. var fermiCouplingDependencies = {
  45316. BigNumberDependencies,
  45317. UnitDependencies,
  45318. createFermiCoupling
  45319. };
  45320. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesI.generated.js
  45321. var iDependencies = {
  45322. ComplexDependencies,
  45323. createI
  45324. };
  45325. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLog2.generated.js
  45326. var log2Dependencies = {
  45327. ComplexDependencies,
  45328. typedDependencies,
  45329. createLog2
  45330. };
  45331. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTau.generated.js
  45332. var tauDependencies = {
  45333. BigNumberDependencies,
  45334. createTau
  45335. };
  45336. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js
  45337. var fftDependencies = {
  45338. addScalarDependencies,
  45339. ceilDependencies,
  45340. conjDependencies,
  45341. divideScalarDependencies,
  45342. dotDivideDependencies,
  45343. expDependencies,
  45344. iDependencies,
  45345. log2Dependencies,
  45346. matrixDependencies,
  45347. multiplyScalarDependencies,
  45348. powDependencies,
  45349. tauDependencies,
  45350. typedDependencies,
  45351. createFft
  45352. };
  45353. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFibonacciHeapClass.generated.js
  45354. var FibonacciHeapDependencies = {
  45355. largerDependencies,
  45356. smallerDependencies,
  45357. createFibonacciHeapClass
  45358. };
  45359. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFilter.generated.js
  45360. var filterDependencies = {
  45361. typedDependencies,
  45362. createFilter
  45363. };
  45364. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFilterTransform.generated.js
  45365. var filterTransformDependencies = {
  45366. typedDependencies,
  45367. createFilterTransform
  45368. };
  45369. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFineStructure.generated.js
  45370. var fineStructureDependencies = {
  45371. BigNumberDependencies,
  45372. createFineStructure
  45373. };
  45374. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesFirstRadiation.generated.js
  45375. var firstRadiationDependencies = {
  45376. BigNumberDependencies,
  45377. UnitDependencies,
  45378. createFirstRadiation
  45379. };
  45380. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesForEach.generated.js
  45381. var forEachDependencies = {
  45382. typedDependencies,
  45383. createForEach
  45384. };
  45385. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesForEachTransform.generated.js
  45386. var forEachTransformDependencies = {
  45387. typedDependencies,
  45388. createForEachTransform
  45389. };
  45390. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGasConstant.generated.js
  45391. var gasConstantDependencies = {
  45392. BigNumberDependencies,
  45393. UnitDependencies,
  45394. createGasConstant
  45395. };
  45396. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGcd.generated.js
  45397. var gcdDependencies = {
  45398. BigNumberDependencies,
  45399. DenseMatrixDependencies,
  45400. concatDependencies,
  45401. equalScalarDependencies,
  45402. matrixDependencies,
  45403. typedDependencies,
  45404. createGcd
  45405. };
  45406. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGetMatrixDataType.generated.js
  45407. var getMatrixDataTypeDependencies = {
  45408. typedDependencies,
  45409. createGetMatrixDataType
  45410. };
  45411. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGravitationConstant.generated.js
  45412. var gravitationConstantDependencies = {
  45413. BigNumberDependencies,
  45414. UnitDependencies,
  45415. createGravitationConstant
  45416. };
  45417. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesGravity.generated.js
  45418. var gravityDependencies = {
  45419. BigNumberDependencies,
  45420. UnitDependencies,
  45421. createGravity
  45422. };
  45423. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHartreeEnergy.generated.js
  45424. var hartreeEnergyDependencies = {
  45425. BigNumberDependencies,
  45426. UnitDependencies,
  45427. createHartreeEnergy
  45428. };
  45429. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHasNumericValue.generated.js
  45430. var hasNumericValueDependencies = {
  45431. isNumericDependencies,
  45432. typedDependencies,
  45433. createHasNumericValue
  45434. };
  45435. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHelpClass.generated.js
  45436. var HelpDependencies = {
  45437. parseDependencies,
  45438. createHelpClass
  45439. };
  45440. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHelp.generated.js
  45441. var helpDependencies = {
  45442. HelpDependencies,
  45443. typedDependencies,
  45444. createHelp
  45445. };
  45446. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHex.generated.js
  45447. var hexDependencies = {
  45448. formatDependencies,
  45449. typedDependencies,
  45450. createHex
  45451. };
  45452. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesHypot.generated.js
  45453. var hypotDependencies = {
  45454. absDependencies,
  45455. addScalarDependencies,
  45456. divideScalarDependencies,
  45457. isPositiveDependencies,
  45458. multiplyScalarDependencies,
  45459. smallerDependencies,
  45460. sqrtDependencies,
  45461. typedDependencies,
  45462. createHypot
  45463. };
  45464. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js
  45465. var ifftDependencies = {
  45466. conjDependencies,
  45467. dotDivideDependencies,
  45468. fftDependencies,
  45469. typedDependencies,
  45470. createIfft
  45471. };
  45472. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIndex.generated.js
  45473. var indexDependencies = {
  45474. IndexDependencies,
  45475. typedDependencies,
  45476. createIndex
  45477. };
  45478. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIndexTransform.generated.js
  45479. var indexTransformDependencies = {
  45480. IndexDependencies,
  45481. createIndexTransform
  45482. };
  45483. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesInfinity.generated.js
  45484. var InfinityDependencies = {
  45485. BigNumberDependencies,
  45486. createInfinity
  45487. };
  45488. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js
  45489. var intersectDependencies = {
  45490. absDependencies,
  45491. addDependencies,
  45492. addScalarDependencies,
  45493. divideScalarDependencies,
  45494. equalScalarDependencies,
  45495. flattenDependencies,
  45496. isNumericDependencies,
  45497. isZeroDependencies,
  45498. matrixDependencies,
  45499. multiplyDependencies,
  45500. multiplyScalarDependencies,
  45501. smallerDependencies,
  45502. subtractDependencies,
  45503. typedDependencies,
  45504. createIntersect
  45505. };
  45506. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesInverseConductanceQuantum.generated.js
  45507. var inverseConductanceQuantumDependencies = {
  45508. BigNumberDependencies,
  45509. UnitDependencies,
  45510. createInverseConductanceQuantum
  45511. };
  45512. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMod.generated.js
  45513. var modDependencies = {
  45514. DenseMatrixDependencies,
  45515. concatDependencies,
  45516. equalScalarDependencies,
  45517. matrixDependencies,
  45518. typedDependencies,
  45519. createMod
  45520. };
  45521. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesXgcd.generated.js
  45522. var xgcdDependencies = {
  45523. BigNumberDependencies,
  45524. matrixDependencies,
  45525. typedDependencies,
  45526. createXgcd
  45527. };
  45528. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js
  45529. var invmodDependencies = {
  45530. BigNumberDependencies,
  45531. addDependencies,
  45532. equalDependencies,
  45533. isIntegerDependencies,
  45534. modDependencies,
  45535. smallerDependencies,
  45536. typedDependencies,
  45537. xgcdDependencies,
  45538. createInvmod
  45539. };
  45540. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsNaN.generated.js
  45541. var isNaNDependencies = {
  45542. typedDependencies,
  45543. createIsNaN
  45544. };
  45545. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesIsPrime.generated.js
  45546. var isPrimeDependencies = {
  45547. typedDependencies,
  45548. createIsPrime
  45549. };
  45550. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLog.generated.js
  45551. var logDependencies = {
  45552. ComplexDependencies,
  45553. divideScalarDependencies,
  45554. typedDependencies,
  45555. createLog
  45556. };
  45557. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMap.generated.js
  45558. var mapDependencies = {
  45559. typedDependencies,
  45560. createMap: createMap2
  45561. };
  45562. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSum.generated.js
  45563. var sumDependencies = {
  45564. addDependencies,
  45565. numericDependencies,
  45566. typedDependencies,
  45567. createSum
  45568. };
  45569. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js
  45570. var kldivergenceDependencies = {
  45571. divideDependencies,
  45572. dotDivideDependencies,
  45573. isNumericDependencies,
  45574. logDependencies,
  45575. mapDependencies,
  45576. matrixDependencies,
  45577. multiplyDependencies,
  45578. sumDependencies,
  45579. typedDependencies,
  45580. createKldivergence
  45581. };
  45582. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesKlitzing.generated.js
  45583. var klitzingDependencies = {
  45584. BigNumberDependencies,
  45585. UnitDependencies,
  45586. createKlitzing
  45587. };
  45588. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesKron.generated.js
  45589. var kronDependencies = {
  45590. matrixDependencies,
  45591. multiplyScalarDependencies,
  45592. typedDependencies,
  45593. createKron
  45594. };
  45595. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLN10.generated.js
  45596. var LN10Dependencies = {
  45597. BigNumberDependencies,
  45598. createLN10
  45599. };
  45600. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLN2.generated.js
  45601. var LN2Dependencies = {
  45602. BigNumberDependencies,
  45603. createLN2
  45604. };
  45605. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLOG10E.generated.js
  45606. var LOG10EDependencies = {
  45607. BigNumberDependencies,
  45608. createLOG10E
  45609. };
  45610. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLOG2E.generated.js
  45611. var LOG2EDependencies = {
  45612. BigNumberDependencies,
  45613. createLOG2E
  45614. };
  45615. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLcm.generated.js
  45616. var lcmDependencies = {
  45617. concatDependencies,
  45618. equalScalarDependencies,
  45619. matrixDependencies,
  45620. typedDependencies,
  45621. createLcm
  45622. };
  45623. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js
  45624. var leafCountDependencies = {
  45625. parseDependencies,
  45626. typedDependencies,
  45627. createLeafCount
  45628. };
  45629. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLeftShift.generated.js
  45630. var leftShiftDependencies = {
  45631. DenseMatrixDependencies,
  45632. concatDependencies,
  45633. equalScalarDependencies,
  45634. matrixDependencies,
  45635. typedDependencies,
  45636. zerosDependencies,
  45637. createLeftShift
  45638. };
  45639. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js
  45640. var lgammaDependencies = {
  45641. ComplexDependencies,
  45642. typedDependencies,
  45643. createLgamma
  45644. };
  45645. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLog10.generated.js
  45646. var log10Dependencies = {
  45647. ComplexDependencies,
  45648. typedDependencies,
  45649. createLog10
  45650. };
  45651. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLog1p.generated.js
  45652. var log1pDependencies = {
  45653. ComplexDependencies,
  45654. divideScalarDependencies,
  45655. logDependencies,
  45656. typedDependencies,
  45657. createLog1p
  45658. };
  45659. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLoschmidt.generated.js
  45660. var loschmidtDependencies = {
  45661. BigNumberDependencies,
  45662. UnitDependencies,
  45663. createLoschmidt
  45664. };
  45665. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLsolve.generated.js
  45666. var lsolveDependencies = {
  45667. DenseMatrixDependencies,
  45668. divideScalarDependencies,
  45669. equalScalarDependencies,
  45670. matrixDependencies,
  45671. multiplyScalarDependencies,
  45672. subtractDependencies,
  45673. typedDependencies,
  45674. createLsolve
  45675. };
  45676. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLsolveAll.generated.js
  45677. var lsolveAllDependencies = {
  45678. DenseMatrixDependencies,
  45679. divideScalarDependencies,
  45680. equalScalarDependencies,
  45681. matrixDependencies,
  45682. multiplyScalarDependencies,
  45683. subtractDependencies,
  45684. typedDependencies,
  45685. createLsolveAll
  45686. };
  45687. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSpaClass.generated.js
  45688. var SpaDependencies = {
  45689. FibonacciHeapDependencies,
  45690. addScalarDependencies,
  45691. equalScalarDependencies,
  45692. createSpaClass
  45693. };
  45694. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLup.generated.js
  45695. var lupDependencies = {
  45696. DenseMatrixDependencies,
  45697. SpaDependencies,
  45698. SparseMatrixDependencies,
  45699. absDependencies,
  45700. addScalarDependencies,
  45701. divideScalarDependencies,
  45702. equalScalarDependencies,
  45703. largerDependencies,
  45704. matrixDependencies,
  45705. multiplyScalarDependencies,
  45706. subtractDependencies,
  45707. typedDependencies,
  45708. unaryMinusDependencies,
  45709. createLup
  45710. };
  45711. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSlu.generated.js
  45712. var sluDependencies = {
  45713. SparseMatrixDependencies,
  45714. absDependencies,
  45715. addDependencies,
  45716. divideScalarDependencies,
  45717. largerDependencies,
  45718. largerEqDependencies,
  45719. multiplyDependencies,
  45720. subtractDependencies,
  45721. transposeDependencies,
  45722. typedDependencies,
  45723. createSlu
  45724. };
  45725. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLusolve.generated.js
  45726. var lusolveDependencies = {
  45727. DenseMatrixDependencies,
  45728. lsolveDependencies,
  45729. lupDependencies,
  45730. matrixDependencies,
  45731. sluDependencies,
  45732. typedDependencies,
  45733. usolveDependencies,
  45734. createLusolve
  45735. };
  45736. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNorm.generated.js
  45737. var normDependencies = {
  45738. absDependencies,
  45739. addDependencies,
  45740. conjDependencies,
  45741. ctransposeDependencies,
  45742. eigsDependencies,
  45743. equalScalarDependencies,
  45744. largerDependencies,
  45745. matrixDependencies,
  45746. multiplyDependencies,
  45747. powDependencies,
  45748. smallerDependencies,
  45749. sqrtDependencies,
  45750. typedDependencies,
  45751. createNorm
  45752. };
  45753. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSchur.generated.js
  45754. var schurDependencies = {
  45755. identityDependencies,
  45756. matrixDependencies,
  45757. multiplyDependencies,
  45758. normDependencies,
  45759. qrDependencies,
  45760. subtractDependencies,
  45761. typedDependencies,
  45762. createSchur
  45763. };
  45764. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSylvester.generated.js
  45765. var sylvesterDependencies = {
  45766. absDependencies,
  45767. addDependencies,
  45768. concatDependencies,
  45769. identityDependencies,
  45770. indexDependencies,
  45771. lusolveDependencies,
  45772. matrixDependencies,
  45773. matrixFromColumnsDependencies,
  45774. multiplyDependencies,
  45775. rangeDependencies,
  45776. schurDependencies,
  45777. subsetDependencies,
  45778. subtractDependencies,
  45779. transposeDependencies,
  45780. typedDependencies,
  45781. createSylvester
  45782. };
  45783. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesLyap.generated.js
  45784. var lyapDependencies = {
  45785. matrixDependencies,
  45786. multiplyDependencies,
  45787. sylvesterDependencies,
  45788. transposeDependencies,
  45789. typedDependencies,
  45790. createLyap
  45791. };
  45792. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPartitionSelect.generated.js
  45793. var partitionSelectDependencies = {
  45794. compareDependencies,
  45795. isNaNDependencies,
  45796. isNumericDependencies,
  45797. typedDependencies,
  45798. createPartitionSelect
  45799. };
  45800. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMedian.generated.js
  45801. var medianDependencies = {
  45802. addDependencies,
  45803. compareDependencies,
  45804. divideDependencies,
  45805. partitionSelectDependencies,
  45806. typedDependencies,
  45807. createMedian
  45808. };
  45809. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMad.generated.js
  45810. var madDependencies = {
  45811. absDependencies,
  45812. mapDependencies,
  45813. medianDependencies,
  45814. subtractDependencies,
  45815. typedDependencies,
  45816. createMad
  45817. };
  45818. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMagneticConstant.generated.js
  45819. var magneticConstantDependencies = {
  45820. BigNumberDependencies,
  45821. UnitDependencies,
  45822. createMagneticConstant
  45823. };
  45824. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMagneticFluxQuantum.generated.js
  45825. var magneticFluxQuantumDependencies = {
  45826. BigNumberDependencies,
  45827. UnitDependencies,
  45828. createMagneticFluxQuantum
  45829. };
  45830. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMapTransform.generated.js
  45831. var mapTransformDependencies = {
  45832. typedDependencies,
  45833. createMapTransform
  45834. };
  45835. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js
  45836. var matrixFromFunctionDependencies = {
  45837. isZeroDependencies,
  45838. matrixDependencies,
  45839. typedDependencies,
  45840. createMatrixFromFunction
  45841. };
  45842. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js
  45843. var matrixFromRowsDependencies = {
  45844. flattenDependencies,
  45845. matrixDependencies,
  45846. sizeDependencies,
  45847. typedDependencies,
  45848. createMatrixFromRows
  45849. };
  45850. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMax.generated.js
  45851. var maxDependencies = {
  45852. largerDependencies,
  45853. numericDependencies,
  45854. typedDependencies,
  45855. createMax
  45856. };
  45857. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMaxTransform.generated.js
  45858. var maxTransformDependencies = {
  45859. largerDependencies,
  45860. numericDependencies,
  45861. typedDependencies,
  45862. createMaxTransform
  45863. };
  45864. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMean.generated.js
  45865. var meanDependencies = {
  45866. addDependencies,
  45867. divideDependencies,
  45868. typedDependencies,
  45869. createMean
  45870. };
  45871. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMeanTransform.generated.js
  45872. var meanTransformDependencies = {
  45873. addDependencies,
  45874. divideDependencies,
  45875. typedDependencies,
  45876. createMeanTransform
  45877. };
  45878. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMin.generated.js
  45879. var minDependencies = {
  45880. numericDependencies,
  45881. smallerDependencies,
  45882. typedDependencies,
  45883. createMin
  45884. };
  45885. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMinTransform.generated.js
  45886. var minTransformDependencies = {
  45887. numericDependencies,
  45888. smallerDependencies,
  45889. typedDependencies,
  45890. createMinTransform
  45891. };
  45892. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMode.generated.js
  45893. var modeDependencies = {
  45894. isNaNDependencies,
  45895. isNumericDependencies,
  45896. typedDependencies,
  45897. createMode
  45898. };
  45899. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMolarMass.generated.js
  45900. var molarMassDependencies = {
  45901. BigNumberDependencies,
  45902. UnitDependencies,
  45903. createMolarMass
  45904. };
  45905. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMolarMassC12.generated.js
  45906. var molarMassC12Dependencies = {
  45907. BigNumberDependencies,
  45908. UnitDependencies,
  45909. createMolarMassC12
  45910. };
  45911. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMolarPlanckConstant.generated.js
  45912. var molarPlanckConstantDependencies = {
  45913. BigNumberDependencies,
  45914. UnitDependencies,
  45915. createMolarPlanckConstant
  45916. };
  45917. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMolarVolume.generated.js
  45918. var molarVolumeDependencies = {
  45919. BigNumberDependencies,
  45920. UnitDependencies,
  45921. createMolarVolume
  45922. };
  45923. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesMultinomial.generated.js
  45924. var multinomialDependencies = {
  45925. addDependencies,
  45926. divideDependencies,
  45927. factorialDependencies,
  45928. isIntegerDependencies,
  45929. isPositiveDependencies,
  45930. multiplyDependencies,
  45931. typedDependencies,
  45932. createMultinomial
  45933. };
  45934. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNaN.generated.js
  45935. var NaNDependencies = {
  45936. BigNumberDependencies,
  45937. createNaN
  45938. };
  45939. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNeutronMass.generated.js
  45940. var neutronMassDependencies = {
  45941. BigNumberDependencies,
  45942. UnitDependencies,
  45943. createNeutronMass
  45944. };
  45945. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNthRoot.generated.js
  45946. var nthRootDependencies = {
  45947. BigNumberDependencies,
  45948. concatDependencies,
  45949. equalScalarDependencies,
  45950. matrixDependencies,
  45951. typedDependencies,
  45952. createNthRoot
  45953. };
  45954. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNthRoots.generated.js
  45955. var nthRootsDependencies = {
  45956. ComplexDependencies,
  45957. divideScalarDependencies,
  45958. typedDependencies,
  45959. createNthRoots
  45960. };
  45961. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNuclearMagneton.generated.js
  45962. var nuclearMagnetonDependencies = {
  45963. BigNumberDependencies,
  45964. UnitDependencies,
  45965. createNuclearMagneton
  45966. };
  45967. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesNull.generated.js
  45968. var nullDependencies = {
  45969. createNull
  45970. };
  45971. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesOct.generated.js
  45972. var octDependencies = {
  45973. formatDependencies,
  45974. typedDependencies,
  45975. createOct
  45976. };
  45977. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesOnes.generated.js
  45978. var onesDependencies = {
  45979. BigNumberDependencies,
  45980. matrixDependencies,
  45981. typedDependencies,
  45982. createOnes
  45983. };
  45984. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesOr.generated.js
  45985. var orDependencies = {
  45986. DenseMatrixDependencies,
  45987. concatDependencies,
  45988. equalScalarDependencies,
  45989. matrixDependencies,
  45990. typedDependencies,
  45991. createOr
  45992. };
  45993. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesParserClass.generated.js
  45994. var ParserDependencies = {
  45995. evaluateDependencies,
  45996. createParserClass
  45997. };
  45998. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesParser.generated.js
  45999. var parserDependencies = {
  46000. ParserDependencies,
  46001. typedDependencies,
  46002. createParser
  46003. };
  46004. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPermutations.generated.js
  46005. var permutationsDependencies = {
  46006. factorialDependencies,
  46007. typedDependencies,
  46008. createPermutations
  46009. };
  46010. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPhi.generated.js
  46011. var phiDependencies = {
  46012. BigNumberDependencies,
  46013. createPhi
  46014. };
  46015. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPi.generated.js
  46016. var piDependencies = {
  46017. BigNumberDependencies,
  46018. createPi
  46019. };
  46020. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPickRandom.generated.js
  46021. var pickRandomDependencies = {
  46022. typedDependencies,
  46023. createPickRandom
  46024. };
  46025. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js
  46026. var pinvDependencies = {
  46027. ComplexDependencies,
  46028. addDependencies,
  46029. ctransposeDependencies,
  46030. deepEqualDependencies,
  46031. divideScalarDependencies,
  46032. dotDependencies,
  46033. dotDivideDependencies,
  46034. equalDependencies,
  46035. invDependencies,
  46036. matrixDependencies,
  46037. multiplyDependencies,
  46038. typedDependencies,
  46039. createPinv
  46040. };
  46041. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckCharge.generated.js
  46042. var planckChargeDependencies = {
  46043. BigNumberDependencies,
  46044. UnitDependencies,
  46045. createPlanckCharge
  46046. };
  46047. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckConstant.generated.js
  46048. var planckConstantDependencies = {
  46049. BigNumberDependencies,
  46050. UnitDependencies,
  46051. createPlanckConstant
  46052. };
  46053. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckLength.generated.js
  46054. var planckLengthDependencies = {
  46055. BigNumberDependencies,
  46056. UnitDependencies,
  46057. createPlanckLength
  46058. };
  46059. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckMass.generated.js
  46060. var planckMassDependencies = {
  46061. BigNumberDependencies,
  46062. UnitDependencies,
  46063. createPlanckMass
  46064. };
  46065. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckTemperature.generated.js
  46066. var planckTemperatureDependencies = {
  46067. BigNumberDependencies,
  46068. UnitDependencies,
  46069. createPlanckTemperature
  46070. };
  46071. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPlanckTime.generated.js
  46072. var planckTimeDependencies = {
  46073. BigNumberDependencies,
  46074. UnitDependencies,
  46075. createPlanckTime
  46076. };
  46077. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTypeOf.generated.js
  46078. var typeOfDependencies = {
  46079. typedDependencies,
  46080. createTypeOf
  46081. };
  46082. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js
  46083. var polynomialRootDependencies = {
  46084. addDependencies,
  46085. cbrtDependencies,
  46086. divideDependencies,
  46087. equalScalarDependencies,
  46088. imDependencies,
  46089. isZeroDependencies,
  46090. multiplyDependencies,
  46091. reDependencies,
  46092. sqrtDependencies,
  46093. subtractDependencies,
  46094. typeOfDependencies,
  46095. typedDependencies,
  46096. unaryMinusDependencies,
  46097. createPolynomialRoot
  46098. };
  46099. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesPrint.generated.js
  46100. var printDependencies = {
  46101. typedDependencies,
  46102. createPrint
  46103. };
  46104. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesProtonMass.generated.js
  46105. var protonMassDependencies = {
  46106. BigNumberDependencies,
  46107. UnitDependencies,
  46108. createProtonMass
  46109. };
  46110. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js
  46111. var quantileSeqDependencies = {
  46112. addDependencies,
  46113. compareDependencies,
  46114. multiplyDependencies,
  46115. partitionSelectDependencies,
  46116. typedDependencies,
  46117. createQuantileSeq
  46118. };
  46119. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesQuantumOfCirculation.generated.js
  46120. var quantumOfCirculationDependencies = {
  46121. BigNumberDependencies,
  46122. UnitDependencies,
  46123. createQuantumOfCirculation
  46124. };
  46125. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRandom.generated.js
  46126. var randomDependencies = {
  46127. typedDependencies,
  46128. createRandom
  46129. };
  46130. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRandomInt.generated.js
  46131. var randomIntDependencies = {
  46132. typedDependencies,
  46133. createRandomInt
  46134. };
  46135. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRangeClass.generated.js
  46136. var RangeDependencies = {
  46137. createRangeClass
  46138. };
  46139. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js
  46140. var rangeTransformDependencies = {
  46141. bignumberDependencies,
  46142. matrixDependencies,
  46143. largerDependencies,
  46144. largerEqDependencies,
  46145. smallerDependencies,
  46146. smallerEqDependencies,
  46147. typedDependencies,
  46148. createRangeTransform
  46149. };
  46150. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js
  46151. var rationalizeDependencies = {
  46152. bignumberDependencies,
  46153. fractionDependencies,
  46154. AccessorNodeDependencies,
  46155. ArrayNodeDependencies,
  46156. ConstantNodeDependencies,
  46157. FunctionNodeDependencies,
  46158. IndexNodeDependencies,
  46159. ObjectNodeDependencies,
  46160. OperatorNodeDependencies,
  46161. ParenthesisNodeDependencies,
  46162. SymbolNodeDependencies,
  46163. addDependencies,
  46164. divideDependencies,
  46165. equalDependencies,
  46166. isZeroDependencies,
  46167. matrixDependencies,
  46168. multiplyDependencies,
  46169. parseDependencies,
  46170. powDependencies,
  46171. simplifyDependencies,
  46172. simplifyConstantDependencies,
  46173. simplifyCoreDependencies,
  46174. subtractDependencies,
  46175. typedDependencies,
  46176. createRationalize
  46177. };
  46178. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesReducedPlanckConstant.generated.js
  46179. var reducedPlanckConstantDependencies = {
  46180. BigNumberDependencies,
  46181. UnitDependencies,
  46182. createReducedPlanckConstant
  46183. };
  46184. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesReplacer.generated.js
  46185. var replacerDependencies = {
  46186. createReplacer
  46187. };
  46188. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesReshape.generated.js
  46189. var reshapeDependencies = {
  46190. isIntegerDependencies,
  46191. matrixDependencies,
  46192. typedDependencies,
  46193. createReshape
  46194. };
  46195. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesResize.generated.js
  46196. var resizeDependencies = {
  46197. matrixDependencies,
  46198. createResize
  46199. };
  46200. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesReviver.generated.js
  46201. var reviverDependencies = {
  46202. createReviver
  46203. };
  46204. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRightArithShift.generated.js
  46205. var rightArithShiftDependencies = {
  46206. DenseMatrixDependencies,
  46207. concatDependencies,
  46208. equalScalarDependencies,
  46209. matrixDependencies,
  46210. typedDependencies,
  46211. zerosDependencies,
  46212. createRightArithShift
  46213. };
  46214. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRightLogShift.generated.js
  46215. var rightLogShiftDependencies = {
  46216. DenseMatrixDependencies,
  46217. concatDependencies,
  46218. equalScalarDependencies,
  46219. matrixDependencies,
  46220. typedDependencies,
  46221. zerosDependencies,
  46222. createRightLogShift
  46223. };
  46224. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRotationMatrix.generated.js
  46225. var rotationMatrixDependencies = {
  46226. BigNumberDependencies,
  46227. DenseMatrixDependencies,
  46228. SparseMatrixDependencies,
  46229. addScalarDependencies,
  46230. cosDependencies,
  46231. matrixDependencies,
  46232. multiplyScalarDependencies,
  46233. normDependencies,
  46234. sinDependencies,
  46235. typedDependencies,
  46236. unaryMinusDependencies,
  46237. createRotationMatrix
  46238. };
  46239. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRotate.generated.js
  46240. var rotateDependencies = {
  46241. multiplyDependencies,
  46242. rotationMatrixDependencies,
  46243. typedDependencies,
  46244. createRotate
  46245. };
  46246. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRow.generated.js
  46247. var rowDependencies = {
  46248. IndexDependencies,
  46249. matrixDependencies,
  46250. rangeDependencies,
  46251. typedDependencies,
  46252. createRow
  46253. };
  46254. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRowTransform.generated.js
  46255. var rowTransformDependencies = {
  46256. IndexDependencies,
  46257. matrixDependencies,
  46258. rangeDependencies,
  46259. typedDependencies,
  46260. createRowTransform
  46261. };
  46262. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesRydberg.generated.js
  46263. var rydbergDependencies = {
  46264. BigNumberDependencies,
  46265. UnitDependencies,
  46266. createRydberg
  46267. };
  46268. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSQRT1_2.generated.js
  46269. var SQRT1_2Dependencies = {
  46270. // eslint-disable-line camelcase
  46271. BigNumberDependencies,
  46272. createSQRT1_2
  46273. };
  46274. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSQRT2.generated.js
  46275. var SQRT2Dependencies = {
  46276. BigNumberDependencies,
  46277. createSQRT2
  46278. };
  46279. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSackurTetrode.generated.js
  46280. var sackurTetrodeDependencies = {
  46281. BigNumberDependencies,
  46282. createSackurTetrode
  46283. };
  46284. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSec.generated.js
  46285. var secDependencies = {
  46286. BigNumberDependencies,
  46287. typedDependencies,
  46288. createSec
  46289. };
  46290. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSech.generated.js
  46291. var sechDependencies = {
  46292. BigNumberDependencies,
  46293. typedDependencies,
  46294. createSech
  46295. };
  46296. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSecondRadiation.generated.js
  46297. var secondRadiationDependencies = {
  46298. BigNumberDependencies,
  46299. UnitDependencies,
  46300. createSecondRadiation
  46301. };
  46302. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetCartesian.generated.js
  46303. var setCartesianDependencies = {
  46304. DenseMatrixDependencies,
  46305. IndexDependencies,
  46306. compareNaturalDependencies,
  46307. sizeDependencies,
  46308. subsetDependencies,
  46309. typedDependencies,
  46310. createSetCartesian
  46311. };
  46312. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetDifference.generated.js
  46313. var setDifferenceDependencies = {
  46314. DenseMatrixDependencies,
  46315. IndexDependencies,
  46316. compareNaturalDependencies,
  46317. sizeDependencies,
  46318. subsetDependencies,
  46319. typedDependencies,
  46320. createSetDifference
  46321. };
  46322. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetDistinct.generated.js
  46323. var setDistinctDependencies = {
  46324. DenseMatrixDependencies,
  46325. IndexDependencies,
  46326. compareNaturalDependencies,
  46327. sizeDependencies,
  46328. subsetDependencies,
  46329. typedDependencies,
  46330. createSetDistinct
  46331. };
  46332. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetIntersect.generated.js
  46333. var setIntersectDependencies = {
  46334. DenseMatrixDependencies,
  46335. IndexDependencies,
  46336. compareNaturalDependencies,
  46337. sizeDependencies,
  46338. subsetDependencies,
  46339. typedDependencies,
  46340. createSetIntersect
  46341. };
  46342. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetIsSubset.generated.js
  46343. var setIsSubsetDependencies = {
  46344. IndexDependencies,
  46345. compareNaturalDependencies,
  46346. sizeDependencies,
  46347. subsetDependencies,
  46348. typedDependencies,
  46349. createSetIsSubset
  46350. };
  46351. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetMultiplicity.generated.js
  46352. var setMultiplicityDependencies = {
  46353. IndexDependencies,
  46354. compareNaturalDependencies,
  46355. sizeDependencies,
  46356. subsetDependencies,
  46357. typedDependencies,
  46358. createSetMultiplicity
  46359. };
  46360. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetPowerset.generated.js
  46361. var setPowersetDependencies = {
  46362. IndexDependencies,
  46363. compareNaturalDependencies,
  46364. sizeDependencies,
  46365. subsetDependencies,
  46366. typedDependencies,
  46367. createSetPowerset
  46368. };
  46369. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetSize.generated.js
  46370. var setSizeDependencies = {
  46371. compareNaturalDependencies,
  46372. typedDependencies,
  46373. createSetSize
  46374. };
  46375. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetSymDifference.generated.js
  46376. var setSymDifferenceDependencies = {
  46377. IndexDependencies,
  46378. concatDependencies,
  46379. setDifferenceDependencies,
  46380. sizeDependencies,
  46381. subsetDependencies,
  46382. typedDependencies,
  46383. createSetSymDifference
  46384. };
  46385. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSetUnion.generated.js
  46386. var setUnionDependencies = {
  46387. IndexDependencies,
  46388. concatDependencies,
  46389. setIntersectDependencies,
  46390. setSymDifferenceDependencies,
  46391. sizeDependencies,
  46392. subsetDependencies,
  46393. typedDependencies,
  46394. createSetUnion
  46395. };
  46396. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSinh.generated.js
  46397. var sinhDependencies = {
  46398. typedDependencies,
  46399. createSinh
  46400. };
  46401. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSort.generated.js
  46402. var sortDependencies = {
  46403. compareDependencies,
  46404. compareNaturalDependencies,
  46405. matrixDependencies,
  46406. typedDependencies,
  46407. createSort
  46408. };
  46409. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSparse.generated.js
  46410. var sparseDependencies = {
  46411. SparseMatrixDependencies,
  46412. typedDependencies,
  46413. createSparse
  46414. };
  46415. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSpeedOfLight.generated.js
  46416. var speedOfLightDependencies = {
  46417. BigNumberDependencies,
  46418. UnitDependencies,
  46419. createSpeedOfLight
  46420. };
  46421. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSplitUnit.generated.js
  46422. var splitUnitDependencies = {
  46423. typedDependencies,
  46424. createSplitUnit
  46425. };
  46426. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js
  46427. var sqrtmDependencies = {
  46428. absDependencies,
  46429. addDependencies,
  46430. identityDependencies,
  46431. invDependencies,
  46432. mapDependencies,
  46433. maxDependencies,
  46434. multiplyDependencies,
  46435. sizeDependencies,
  46436. sqrtDependencies,
  46437. subtractDependencies,
  46438. typedDependencies,
  46439. createSqrtm
  46440. };
  46441. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSquare.generated.js
  46442. var squareDependencies = {
  46443. typedDependencies,
  46444. createSquare
  46445. };
  46446. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSqueeze.generated.js
  46447. var squeezeDependencies = {
  46448. matrixDependencies,
  46449. typedDependencies,
  46450. createSqueeze
  46451. };
  46452. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesVariance.generated.js
  46453. var varianceDependencies = {
  46454. addDependencies,
  46455. applyDependencies,
  46456. divideDependencies,
  46457. isNaNDependencies,
  46458. multiplyDependencies,
  46459. subtractDependencies,
  46460. typedDependencies,
  46461. createVariance
  46462. };
  46463. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js
  46464. var stdDependencies = {
  46465. mapDependencies,
  46466. sqrtDependencies,
  46467. typedDependencies,
  46468. varianceDependencies,
  46469. createStd
  46470. };
  46471. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js
  46472. var stdTransformDependencies = {
  46473. mapDependencies,
  46474. sqrtDependencies,
  46475. typedDependencies,
  46476. varianceDependencies,
  46477. createStdTransform
  46478. };
  46479. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesStefanBoltzmann.generated.js
  46480. var stefanBoltzmannDependencies = {
  46481. BigNumberDependencies,
  46482. UnitDependencies,
  46483. createStefanBoltzmann
  46484. };
  46485. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesString.generated.js
  46486. var stringDependencies = {
  46487. typedDependencies,
  46488. createString
  46489. };
  46490. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSubsetTransform.generated.js
  46491. var subsetTransformDependencies = {
  46492. matrixDependencies,
  46493. typedDependencies,
  46494. createSubsetTransform
  46495. };
  46496. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSumTransform.generated.js
  46497. var sumTransformDependencies = {
  46498. addDependencies,
  46499. numericDependencies,
  46500. typedDependencies,
  46501. createSumTransform
  46502. };
  46503. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js
  46504. var symbolicEqualDependencies = {
  46505. OperatorNodeDependencies,
  46506. parseDependencies,
  46507. simplifyDependencies,
  46508. typedDependencies,
  46509. createSymbolicEqual
  46510. };
  46511. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTan.generated.js
  46512. var tanDependencies = {
  46513. typedDependencies,
  46514. createTan
  46515. };
  46516. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTanh.generated.js
  46517. var tanhDependencies = {
  46518. typedDependencies,
  46519. createTanh
  46520. };
  46521. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesThomsonCrossSection.generated.js
  46522. var thomsonCrossSectionDependencies = {
  46523. BigNumberDependencies,
  46524. UnitDependencies,
  46525. createThomsonCrossSection
  46526. };
  46527. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTo.generated.js
  46528. var toDependencies = {
  46529. concatDependencies,
  46530. matrixDependencies,
  46531. typedDependencies,
  46532. createTo
  46533. };
  46534. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTrace.generated.js
  46535. var traceDependencies = {
  46536. addDependencies,
  46537. matrixDependencies,
  46538. typedDependencies,
  46539. createTrace
  46540. };
  46541. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesTrue.generated.js
  46542. var trueDependencies = {
  46543. createTrue
  46544. };
  46545. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js
  46546. var unequalDependencies = {
  46547. DenseMatrixDependencies,
  46548. concatDependencies,
  46549. equalScalarDependencies,
  46550. matrixDependencies,
  46551. typedDependencies,
  46552. createUnequal
  46553. };
  46554. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUnitFunction.generated.js
  46555. var unitDependencies = {
  46556. UnitDependencies,
  46557. typedDependencies,
  46558. createUnitFunction
  46559. };
  46560. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUppercaseE.generated.js
  46561. var EDependencies = {
  46562. eDependencies,
  46563. createUppercaseE
  46564. };
  46565. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesUppercasePi.generated.js
  46566. var PIDependencies = {
  46567. piDependencies,
  46568. createUppercasePi
  46569. };
  46570. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesVacuumImpedance.generated.js
  46571. var vacuumImpedanceDependencies = {
  46572. BigNumberDependencies,
  46573. UnitDependencies,
  46574. createVacuumImpedance
  46575. };
  46576. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesVarianceTransform.generated.js
  46577. var varianceTransformDependencies = {
  46578. addDependencies,
  46579. applyDependencies,
  46580. divideDependencies,
  46581. isNaNDependencies,
  46582. multiplyDependencies,
  46583. subtractDependencies,
  46584. typedDependencies,
  46585. createVarianceTransform
  46586. };
  46587. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesVersion.generated.js
  46588. var versionDependencies = {
  46589. createVersion
  46590. };
  46591. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesWeakMixingAngle.generated.js
  46592. var weakMixingAngleDependencies = {
  46593. BigNumberDependencies,
  46594. createWeakMixingAngle
  46595. };
  46596. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesWienDisplacement.generated.js
  46597. var wienDisplacementDependencies = {
  46598. BigNumberDependencies,
  46599. UnitDependencies,
  46600. createWienDisplacement
  46601. };
  46602. // node_modules/mathjs/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js
  46603. var xorDependencies = {
  46604. DenseMatrixDependencies,
  46605. concatDependencies,
  46606. matrixDependencies,
  46607. typedDependencies,
  46608. createXor
  46609. };
  46610. // node_modules/mathjs/lib/esm/entry/allFactoriesAny.js
  46611. var all = factoriesAny_exports;
  46612. // node_modules/mathjs/lib/esm/utils/emitter.js
  46613. var import_tiny_emitter = __toESM(require_tiny_emitter(), 1);
  46614. function mixin(obj) {
  46615. var emitter = new import_tiny_emitter.default();
  46616. obj.on = emitter.on.bind(emitter);
  46617. obj.off = emitter.off.bind(emitter);
  46618. obj.once = emitter.once.bind(emitter);
  46619. obj.emit = emitter.emit.bind(emitter);
  46620. return obj;
  46621. }
  46622. // node_modules/mathjs/lib/esm/core/function/import.js
  46623. function importFactory(typed2, load, math2, importedFactories) {
  46624. function mathImport(functions, options) {
  46625. var num = arguments.length;
  46626. if (num !== 1 && num !== 2) {
  46627. throw new ArgumentsError("import", num, 1, 2);
  46628. }
  46629. if (!options) {
  46630. options = {};
  46631. }
  46632. function flattenImports(flatValues2, value2, name303) {
  46633. if (Array.isArray(value2)) {
  46634. value2.forEach((item) => flattenImports(flatValues2, item));
  46635. } else if (typeof value2 === "object") {
  46636. for (var _name in value2) {
  46637. if (hasOwnProperty2(value2, _name)) {
  46638. flattenImports(flatValues2, value2[_name], _name);
  46639. }
  46640. }
  46641. } else if (isFactory(value2) || name303 !== void 0) {
  46642. var flatName = isFactory(value2) ? isTransformFunctionFactory(value2) ? value2.fn + ".transform" : value2.fn : name303;
  46643. if (hasOwnProperty2(flatValues2, flatName) && flatValues2[flatName] !== value2 && !options.silent) {
  46644. throw new Error('Cannot import "' + flatName + '" twice');
  46645. }
  46646. flatValues2[flatName] = value2;
  46647. } else {
  46648. if (!options.silent) {
  46649. throw new TypeError("Factory, Object, or Array expected");
  46650. }
  46651. }
  46652. }
  46653. var flatValues = {};
  46654. flattenImports(flatValues, functions);
  46655. for (var name302 in flatValues) {
  46656. if (hasOwnProperty2(flatValues, name302)) {
  46657. var value = flatValues[name302];
  46658. if (isFactory(value)) {
  46659. _importFactory(value, options);
  46660. } else if (isSupportedType(value)) {
  46661. _import(name302, value, options);
  46662. } else {
  46663. if (!options.silent) {
  46664. throw new TypeError("Factory, Object, or Array expected");
  46665. }
  46666. }
  46667. }
  46668. }
  46669. }
  46670. function _import(name302, value, options) {
  46671. if (options.wrap && typeof value === "function") {
  46672. value = _wrap(value);
  46673. }
  46674. if (hasTypedFunctionSignature(value)) {
  46675. value = typed2(name302, {
  46676. [value.signature]: value
  46677. });
  46678. }
  46679. if (typed2.isTypedFunction(math2[name302]) && typed2.isTypedFunction(value)) {
  46680. if (options.override) {
  46681. value = typed2(name302, value.signatures);
  46682. } else {
  46683. value = typed2(math2[name302], value);
  46684. }
  46685. math2[name302] = value;
  46686. delete importedFactories[name302];
  46687. _importTransform(name302, value);
  46688. math2.emit("import", name302, function resolver() {
  46689. return value;
  46690. });
  46691. return;
  46692. }
  46693. if (math2[name302] === void 0 || options.override) {
  46694. math2[name302] = value;
  46695. delete importedFactories[name302];
  46696. _importTransform(name302, value);
  46697. math2.emit("import", name302, function resolver() {
  46698. return value;
  46699. });
  46700. return;
  46701. }
  46702. if (!options.silent) {
  46703. throw new Error('Cannot import "' + name302 + '": already exists');
  46704. }
  46705. }
  46706. function _importTransform(name302, value) {
  46707. if (value && typeof value.transform === "function") {
  46708. math2.expression.transform[name302] = value.transform;
  46709. if (allowedInExpressions(name302)) {
  46710. math2.expression.mathWithTransform[name302] = value.transform;
  46711. }
  46712. } else {
  46713. delete math2.expression.transform[name302];
  46714. if (allowedInExpressions(name302)) {
  46715. math2.expression.mathWithTransform[name302] = value;
  46716. }
  46717. }
  46718. }
  46719. function _deleteTransform(name302) {
  46720. delete math2.expression.transform[name302];
  46721. if (allowedInExpressions(name302)) {
  46722. math2.expression.mathWithTransform[name302] = math2[name302];
  46723. } else {
  46724. delete math2.expression.mathWithTransform[name302];
  46725. }
  46726. }
  46727. function _wrap(fn) {
  46728. var wrapper = function wrapper2() {
  46729. var args = [];
  46730. for (var i2 = 0, len = arguments.length; i2 < len; i2++) {
  46731. var arg2 = arguments[i2];
  46732. args[i2] = arg2 && arg2.valueOf();
  46733. }
  46734. return fn.apply(math2, args);
  46735. };
  46736. if (fn.transform) {
  46737. wrapper.transform = fn.transform;
  46738. }
  46739. return wrapper;
  46740. }
  46741. function _importFactory(factory2, options) {
  46742. var name302 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : factory2.fn;
  46743. if (contains2(name302, ".")) {
  46744. throw new Error("Factory name should not contain a nested path. Name: " + JSON.stringify(name302));
  46745. }
  46746. var namespace = isTransformFunctionFactory(factory2) ? math2.expression.transform : math2;
  46747. var existingTransform = name302 in math2.expression.transform;
  46748. var existing = hasOwnProperty2(namespace, name302) ? namespace[name302] : void 0;
  46749. var resolver = function resolver2() {
  46750. var dependencies302 = {};
  46751. factory2.dependencies.map(stripOptionalNotation).forEach((dependency) => {
  46752. if (contains2(dependency, ".")) {
  46753. throw new Error("Factory dependency should not contain a nested path. Name: " + JSON.stringify(dependency));
  46754. }
  46755. if (dependency === "math") {
  46756. dependencies302.math = math2;
  46757. } else if (dependency === "mathWithTransform") {
  46758. dependencies302.mathWithTransform = math2.expression.mathWithTransform;
  46759. } else if (dependency === "classes") {
  46760. dependencies302.classes = math2;
  46761. } else {
  46762. dependencies302[dependency] = math2[dependency];
  46763. }
  46764. });
  46765. var instance = factory2(dependencies302);
  46766. if (instance && typeof instance.transform === "function") {
  46767. throw new Error('Transforms cannot be attached to factory functions. Please create a separate function for it with exports.path="expression.transform"');
  46768. }
  46769. if (existing === void 0 || options.override) {
  46770. return instance;
  46771. }
  46772. if (typed2.isTypedFunction(existing) && typed2.isTypedFunction(instance)) {
  46773. return typed2(existing, instance);
  46774. }
  46775. if (options.silent) {
  46776. return existing;
  46777. } else {
  46778. throw new Error('Cannot import "' + name302 + '": already exists');
  46779. }
  46780. };
  46781. if (!factory2.meta || factory2.meta.lazy !== false) {
  46782. lazy(namespace, name302, resolver);
  46783. if (existing && existingTransform) {
  46784. _deleteTransform(name302);
  46785. } else {
  46786. if (isTransformFunctionFactory(factory2) || factoryAllowedInExpressions(factory2)) {
  46787. lazy(math2.expression.mathWithTransform, name302, () => namespace[name302]);
  46788. }
  46789. }
  46790. } else {
  46791. namespace[name302] = resolver();
  46792. if (existing && existingTransform) {
  46793. _deleteTransform(name302);
  46794. } else {
  46795. if (isTransformFunctionFactory(factory2) || factoryAllowedInExpressions(factory2)) {
  46796. lazy(math2.expression.mathWithTransform, name302, () => namespace[name302]);
  46797. }
  46798. }
  46799. }
  46800. importedFactories[name302] = factory2;
  46801. math2.emit("import", name302, resolver);
  46802. }
  46803. function isSupportedType(object) {
  46804. return typeof object === "function" || typeof object === "number" || typeof object === "string" || typeof object === "boolean" || object === null || isUnit(object) || isComplex(object) || isBigNumber(object) || isFraction(object) || isMatrix(object) || Array.isArray(object);
  46805. }
  46806. function hasTypedFunctionSignature(fn) {
  46807. return typeof fn === "function" && typeof fn.signature === "string";
  46808. }
  46809. function allowedInExpressions(name302) {
  46810. return !hasOwnProperty2(unsafe, name302);
  46811. }
  46812. function factoryAllowedInExpressions(factory2) {
  46813. return factory2.fn.indexOf(".") === -1 && // FIXME: make checking on path redundant, check on meta data instead
  46814. !hasOwnProperty2(unsafe, factory2.fn) && (!factory2.meta || !factory2.meta.isClass);
  46815. }
  46816. function isTransformFunctionFactory(factory2) {
  46817. return factory2 !== void 0 && factory2.meta !== void 0 && factory2.meta.isTransformFunction === true || false;
  46818. }
  46819. var unsafe = {
  46820. expression: true,
  46821. type: true,
  46822. docs: true,
  46823. error: true,
  46824. json: true,
  46825. chain: true
  46826. // chain method not supported. Note that there is a unit chain too.
  46827. };
  46828. return mathImport;
  46829. }
  46830. // node_modules/mathjs/lib/esm/core/create.js
  46831. function create2(factories, config4) {
  46832. var configInternal = _extends({}, DEFAULT_CONFIG, config4);
  46833. if (typeof Object.create !== "function") {
  46834. throw new Error("ES5 not supported by this JavaScript engine. Please load the es5-shim and es5-sham library for compatibility.");
  46835. }
  46836. var math2 = mixin({
  46837. // only here for backward compatibility for legacy factory functions
  46838. isNumber,
  46839. isComplex,
  46840. isBigNumber,
  46841. isFraction,
  46842. isUnit,
  46843. isString,
  46844. isArray,
  46845. isMatrix,
  46846. isCollection,
  46847. isDenseMatrix,
  46848. isSparseMatrix,
  46849. isRange,
  46850. isIndex,
  46851. isBoolean,
  46852. isResultSet,
  46853. isHelp,
  46854. isFunction,
  46855. isDate,
  46856. isRegExp,
  46857. isObject,
  46858. isNull,
  46859. isUndefined,
  46860. isAccessorNode,
  46861. isArrayNode,
  46862. isAssignmentNode,
  46863. isBlockNode,
  46864. isConditionalNode,
  46865. isConstantNode,
  46866. isFunctionAssignmentNode,
  46867. isFunctionNode,
  46868. isIndexNode,
  46869. isNode,
  46870. isObjectNode,
  46871. isOperatorNode,
  46872. isParenthesisNode,
  46873. isRangeNode,
  46874. isRelationalNode,
  46875. isSymbolNode,
  46876. isChain
  46877. });
  46878. math2.config = configFactory(configInternal, math2.emit);
  46879. math2.expression = {
  46880. transform: {},
  46881. mathWithTransform: {
  46882. config: math2.config
  46883. }
  46884. };
  46885. var legacyFactories = [];
  46886. var legacyInstances = [];
  46887. function load(factory2) {
  46888. if (isFactory(factory2)) {
  46889. return factory2(math2);
  46890. }
  46891. var firstProperty = factory2[Object.keys(factory2)[0]];
  46892. if (isFactory(firstProperty)) {
  46893. return firstProperty(math2);
  46894. }
  46895. if (!isLegacyFactory(factory2)) {
  46896. console.warn("Factory object with properties `type`, `name`, and `factory` expected", factory2);
  46897. throw new Error("Factory object with properties `type`, `name`, and `factory` expected");
  46898. }
  46899. var index2 = legacyFactories.indexOf(factory2);
  46900. var instance;
  46901. if (index2 === -1) {
  46902. if (factory2.math === true) {
  46903. instance = factory2.factory(math2.type, configInternal, load, math2.typed, math2);
  46904. } else {
  46905. instance = factory2.factory(math2.type, configInternal, load, math2.typed);
  46906. }
  46907. legacyFactories.push(factory2);
  46908. legacyInstances.push(instance);
  46909. } else {
  46910. instance = legacyInstances[index2];
  46911. }
  46912. return instance;
  46913. }
  46914. var importedFactories = {};
  46915. function lazyTyped() {
  46916. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  46917. args[_key] = arguments[_key];
  46918. }
  46919. return math2.typed.apply(math2.typed, args);
  46920. }
  46921. lazyTyped.isTypedFunction = typed_function_default.isTypedFunction;
  46922. var internalImport = importFactory(lazyTyped, load, math2, importedFactories);
  46923. math2.import = internalImport;
  46924. math2.on("config", () => {
  46925. values(importedFactories).forEach((factory2) => {
  46926. if (factory2 && factory2.meta && factory2.meta.recreateOnConfigChange) {
  46927. internalImport(factory2, {
  46928. override: true
  46929. });
  46930. }
  46931. });
  46932. });
  46933. math2.create = create2.bind(null, factories);
  46934. math2.factory = factory;
  46935. math2.import(values(deepFlatten(factories)));
  46936. math2.ArgumentsError = ArgumentsError;
  46937. math2.DimensionError = DimensionError;
  46938. math2.IndexError = IndexError;
  46939. return math2;
  46940. }
  46941. export {
  46942. AccessorNode,
  46943. AccessorNodeDependencies,
  46944. ArgumentsError,
  46945. ArrayNode,
  46946. ArrayNodeDependencies,
  46947. AssignmentNode,
  46948. AssignmentNodeDependencies,
  46949. BigNumber,
  46950. BigNumberDependencies,
  46951. BlockNode,
  46952. BlockNodeDependencies,
  46953. Chain,
  46954. ChainDependencies,
  46955. Complex2 as Complex,
  46956. ComplexDependencies,
  46957. ConditionalNode,
  46958. ConditionalNodeDependencies,
  46959. ConstantNode,
  46960. ConstantNodeDependencies,
  46961. DenseMatrix,
  46962. DenseMatrixDependencies,
  46963. DimensionError,
  46964. EDependencies,
  46965. FibonacciHeap,
  46966. FibonacciHeapDependencies,
  46967. Fraction2 as Fraction,
  46968. FractionDependencies,
  46969. FunctionAssignmentNode,
  46970. FunctionAssignmentNodeDependencies,
  46971. FunctionNode,
  46972. FunctionNodeDependencies,
  46973. Help,
  46974. HelpDependencies,
  46975. ImmutableDenseMatrix,
  46976. ImmutableDenseMatrixDependencies,
  46977. Index,
  46978. IndexDependencies,
  46979. IndexError,
  46980. IndexNode,
  46981. IndexNodeDependencies,
  46982. InfinityDependencies,
  46983. LN102 as LN10,
  46984. LN10Dependencies,
  46985. LN2,
  46986. LN2Dependencies,
  46987. LOG10E,
  46988. LOG10EDependencies,
  46989. LOG2E,
  46990. LOG2EDependencies,
  46991. Matrix,
  46992. MatrixDependencies,
  46993. NaNDependencies,
  46994. Node,
  46995. NodeDependencies,
  46996. ObjectNode,
  46997. ObjectNodeDependencies,
  46998. OperatorNode,
  46999. OperatorNodeDependencies,
  47000. PIDependencies,
  47001. ParenthesisNode,
  47002. ParenthesisNodeDependencies,
  47003. Parser,
  47004. ParserDependencies,
  47005. Range,
  47006. RangeDependencies,
  47007. RangeNode,
  47008. RangeNodeDependencies,
  47009. RelationalNode,
  47010. RelationalNodeDependencies,
  47011. ResultSet,
  47012. ResultSetDependencies,
  47013. SQRT1_2,
  47014. SQRT1_2Dependencies,
  47015. SQRT2,
  47016. SQRT2Dependencies,
  47017. Spa,
  47018. SpaDependencies,
  47019. SparseMatrix,
  47020. SparseMatrixDependencies,
  47021. SymbolNode,
  47022. SymbolNodeDependencies,
  47023. Unit,
  47024. UnitDependencies,
  47025. _Infinity,
  47026. _NaN,
  47027. _false,
  47028. _null,
  47029. _true,
  47030. abs2 as abs,
  47031. absDependencies,
  47032. acos2 as acos,
  47033. acosDependencies,
  47034. acosh3 as acosh,
  47035. acoshDependencies,
  47036. acot,
  47037. acotDependencies,
  47038. acoth,
  47039. acothDependencies,
  47040. acsc,
  47041. acscDependencies,
  47042. acsch,
  47043. acschDependencies,
  47044. add2 as add,
  47045. addDependencies,
  47046. addScalar,
  47047. addScalarDependencies,
  47048. all,
  47049. and,
  47050. andDependencies,
  47051. apply,
  47052. applyDependencies,
  47053. applyTransformDependencies,
  47054. arg,
  47055. argDependencies,
  47056. asec,
  47057. asecDependencies,
  47058. asech,
  47059. asechDependencies,
  47060. asin2 as asin,
  47061. asinDependencies,
  47062. asinh3 as asinh,
  47063. asinhDependencies,
  47064. atan3 as atan,
  47065. atan22 as atan2,
  47066. atan2Dependencies,
  47067. atanDependencies,
  47068. atanh3 as atanh,
  47069. atanhDependencies,
  47070. atomicMass,
  47071. atomicMassDependencies,
  47072. avogadro,
  47073. avogadroDependencies,
  47074. bellNumbers,
  47075. bellNumbersDependencies,
  47076. bignumber,
  47077. bignumberDependencies,
  47078. bin,
  47079. binDependencies,
  47080. bitAnd,
  47081. bitAndDependencies,
  47082. bitNot,
  47083. bitNotDependencies,
  47084. bitOr,
  47085. bitOrDependencies,
  47086. bitXor2 as bitXor,
  47087. bitXorDependencies,
  47088. bohrMagneton,
  47089. bohrMagnetonDependencies,
  47090. bohrRadius,
  47091. bohrRadiusDependencies,
  47092. boltzmann,
  47093. boltzmannDependencies,
  47094. boolean,
  47095. booleanDependencies,
  47096. catalan,
  47097. catalanDependencies,
  47098. cbrt4 as cbrt,
  47099. cbrtDependencies,
  47100. ceil2 as ceil,
  47101. ceilDependencies,
  47102. chain,
  47103. chainDependencies,
  47104. classicalElectronRadius,
  47105. classicalElectronRadiusDependencies,
  47106. clone3 as clone,
  47107. cloneDependencies,
  47108. column,
  47109. columnDependencies,
  47110. columnTransformDependencies,
  47111. combinations,
  47112. combinationsDependencies,
  47113. combinationsWithRep,
  47114. combinationsWithRepDependencies,
  47115. compare,
  47116. compareDependencies,
  47117. compareNatural,
  47118. compareNaturalDependencies,
  47119. compareText2 as compareText,
  47120. compareTextDependencies,
  47121. compile,
  47122. compileDependencies,
  47123. complex,
  47124. complexDependencies,
  47125. composition,
  47126. compositionDependencies,
  47127. concat,
  47128. concatDependencies,
  47129. concatTransformDependencies,
  47130. conductanceQuantum,
  47131. conductanceQuantumDependencies,
  47132. config,
  47133. conj,
  47134. conjDependencies,
  47135. cos2 as cos,
  47136. cosDependencies,
  47137. cosh3 as cosh,
  47138. coshDependencies,
  47139. cot,
  47140. cotDependencies,
  47141. coth,
  47142. cothDependencies,
  47143. coulomb,
  47144. coulombDependencies,
  47145. count,
  47146. countDependencies,
  47147. create2 as create,
  47148. createAbs,
  47149. createAccessorNode,
  47150. createAcos,
  47151. createAcosh,
  47152. createAcot,
  47153. createAcoth,
  47154. createAcsc,
  47155. createAcsch,
  47156. createAdd,
  47157. createAddScalar,
  47158. createAnd,
  47159. createApply,
  47160. createApplyTransform,
  47161. createArg,
  47162. createArrayNode,
  47163. createAsec,
  47164. createAsech,
  47165. createAsin,
  47166. createAsinh,
  47167. createAssignmentNode,
  47168. createAtan,
  47169. createAtan2,
  47170. createAtanh,
  47171. createAtomicMass,
  47172. createAvogadro,
  47173. createBellNumbers,
  47174. createBigNumberClass,
  47175. createBignumber,
  47176. createBin,
  47177. createBitAnd,
  47178. createBitNot,
  47179. createBitOr,
  47180. createBitXor,
  47181. createBlockNode,
  47182. createBohrMagneton,
  47183. createBohrRadius,
  47184. createBoltzmann,
  47185. createBoolean,
  47186. createCatalan,
  47187. createCbrt,
  47188. createCeil,
  47189. createChain,
  47190. createChainClass,
  47191. createClassicalElectronRadius,
  47192. createClone,
  47193. createColumn,
  47194. createColumnTransform,
  47195. createCombinations,
  47196. createCombinationsWithRep,
  47197. createCompare,
  47198. createCompareNatural,
  47199. createCompareText,
  47200. createCompile,
  47201. createComplex,
  47202. createComplexClass,
  47203. createComposition,
  47204. createConcat,
  47205. createConcatTransform,
  47206. createConditionalNode,
  47207. createConductanceQuantum,
  47208. createConj,
  47209. createConstantNode,
  47210. createCos,
  47211. createCosh,
  47212. createCot,
  47213. createCoth,
  47214. createCoulomb,
  47215. createCount,
  47216. createCreateUnit,
  47217. createCross,
  47218. createCsc,
  47219. createCsch,
  47220. createCtranspose,
  47221. createCube,
  47222. createCumSum,
  47223. createCumSumTransform,
  47224. createDeepEqual,
  47225. createDenseMatrixClass,
  47226. createDerivative,
  47227. createDet,
  47228. createDeuteronMass,
  47229. createDiag,
  47230. createDiff,
  47231. createDiffTransform,
  47232. createDistance,
  47233. createDivide,
  47234. createDivideScalar,
  47235. createDot,
  47236. createDotDivide,
  47237. createDotMultiply,
  47238. createDotPow,
  47239. createE,
  47240. createEfimovFactor,
  47241. createEigs,
  47242. createElectricConstant,
  47243. createElectronMass,
  47244. createElementaryCharge,
  47245. createEqual,
  47246. createEqualScalar,
  47247. createEqualText,
  47248. createErf,
  47249. createEvaluate,
  47250. createExp,
  47251. createExpm,
  47252. createExpm1,
  47253. createFactorial,
  47254. createFalse,
  47255. createFaraday,
  47256. createFermiCoupling,
  47257. createFft,
  47258. createFibonacciHeapClass,
  47259. createFilter,
  47260. createFilterTransform,
  47261. createFineStructure,
  47262. createFirstRadiation,
  47263. createFix,
  47264. createFlatten,
  47265. createFloor,
  47266. createForEach,
  47267. createForEachTransform,
  47268. createFormat,
  47269. createFraction,
  47270. createFractionClass,
  47271. createFunctionAssignmentNode,
  47272. createFunctionNode,
  47273. createGamma,
  47274. createGasConstant,
  47275. createGcd,
  47276. createGetMatrixDataType,
  47277. createGravitationConstant,
  47278. createGravity,
  47279. createHartreeEnergy,
  47280. createHasNumericValue,
  47281. createHelp,
  47282. createHelpClass,
  47283. createHex,
  47284. createHypot,
  47285. createI,
  47286. createIdentity,
  47287. createIfft,
  47288. createIm,
  47289. createImmutableDenseMatrixClass,
  47290. createIndex,
  47291. createIndexClass,
  47292. createIndexNode,
  47293. createIndexTransform,
  47294. createInfinity,
  47295. createIntersect,
  47296. createInv,
  47297. createInverseConductanceQuantum,
  47298. createInvmod,
  47299. createIsInteger,
  47300. createIsNaN,
  47301. createIsNegative,
  47302. createIsNumeric,
  47303. createIsPositive,
  47304. createIsPrime,
  47305. createIsZero,
  47306. createKldivergence,
  47307. createKlitzing,
  47308. createKron,
  47309. createLN10,
  47310. createLN2,
  47311. createLOG10E,
  47312. createLOG2E,
  47313. createLarger,
  47314. createLargerEq,
  47315. createLcm,
  47316. createLeafCount,
  47317. createLeftShift,
  47318. createLgamma,
  47319. createLog,
  47320. createLog10,
  47321. createLog1p,
  47322. createLog2,
  47323. createLoschmidt,
  47324. createLsolve,
  47325. createLsolveAll,
  47326. createLup,
  47327. createLusolve,
  47328. createLyap,
  47329. createMad,
  47330. createMagneticConstant,
  47331. createMagneticFluxQuantum,
  47332. createMap2 as createMap,
  47333. createMapTransform,
  47334. createMatrix,
  47335. createMatrixClass,
  47336. createMatrixFromColumns,
  47337. createMatrixFromFunction,
  47338. createMatrixFromRows,
  47339. createMax,
  47340. createMaxTransform,
  47341. createMean,
  47342. createMeanTransform,
  47343. createMedian,
  47344. createMin,
  47345. createMinTransform,
  47346. createMod,
  47347. createMode,
  47348. createMolarMass,
  47349. createMolarMassC12,
  47350. createMolarPlanckConstant,
  47351. createMolarVolume,
  47352. createMultinomial,
  47353. createMultiply,
  47354. createMultiplyScalar,
  47355. createNaN,
  47356. createNeutronMass,
  47357. createNode,
  47358. createNorm,
  47359. createNot,
  47360. createNthRoot,
  47361. createNthRoots,
  47362. createNuclearMagneton,
  47363. createNull,
  47364. createNumber,
  47365. createNumeric,
  47366. createObjectNode,
  47367. createOct,
  47368. createOnes,
  47369. createOperatorNode,
  47370. createOr,
  47371. createParenthesisNode,
  47372. createParse,
  47373. createParser,
  47374. createParserClass,
  47375. createPartitionSelect,
  47376. createPermutations,
  47377. createPhi,
  47378. createPi,
  47379. createPickRandom,
  47380. createPinv,
  47381. createPlanckCharge,
  47382. createPlanckConstant,
  47383. createPlanckLength,
  47384. createPlanckMass,
  47385. createPlanckTemperature,
  47386. createPlanckTime,
  47387. createPolynomialRoot,
  47388. createPow,
  47389. createPrint,
  47390. createProd,
  47391. createProtonMass,
  47392. createQr,
  47393. createQuantileSeq,
  47394. createQuantumOfCirculation,
  47395. createRandom,
  47396. createRandomInt,
  47397. createRange,
  47398. createRangeClass,
  47399. createRangeNode,
  47400. createRangeTransform,
  47401. createRationalize,
  47402. createRe,
  47403. createReducedPlanckConstant,
  47404. createRelationalNode,
  47405. createReplacer,
  47406. createReshape,
  47407. createResize,
  47408. createResolve,
  47409. createResultSet,
  47410. createReviver,
  47411. createRightArithShift,
  47412. createRightLogShift,
  47413. createRotate,
  47414. createRotationMatrix,
  47415. createRound,
  47416. createRow,
  47417. createRowTransform,
  47418. createRydberg,
  47419. createSQRT1_2,
  47420. createSQRT2,
  47421. createSackurTetrode,
  47422. createSchur,
  47423. createSec,
  47424. createSech,
  47425. createSecondRadiation,
  47426. createSetCartesian,
  47427. createSetDifference,
  47428. createSetDistinct,
  47429. createSetIntersect,
  47430. createSetIsSubset,
  47431. createSetMultiplicity,
  47432. createSetPowerset,
  47433. createSetSize,
  47434. createSetSymDifference,
  47435. createSetUnion,
  47436. createSign,
  47437. createSimplify,
  47438. createSimplifyConstant,
  47439. createSimplifyCore,
  47440. createSin,
  47441. createSinh,
  47442. createSize,
  47443. createSlu,
  47444. createSmaller,
  47445. createSmallerEq,
  47446. createSort,
  47447. createSpaClass,
  47448. createSparse,
  47449. createSparseMatrixClass,
  47450. createSpeedOfLight,
  47451. createSplitUnit,
  47452. createSqrt,
  47453. createSqrtm,
  47454. createSquare,
  47455. createSqueeze,
  47456. createStd,
  47457. createStdTransform,
  47458. createStefanBoltzmann,
  47459. createStirlingS2,
  47460. createString,
  47461. createSubset,
  47462. createSubsetTransform,
  47463. createSubtract,
  47464. createSum,
  47465. createSumTransform,
  47466. createSylvester,
  47467. createSymbolNode,
  47468. createSymbolicEqual,
  47469. createTan,
  47470. createTanh,
  47471. createTau,
  47472. createThomsonCrossSection,
  47473. createTo,
  47474. createTrace,
  47475. createTranspose,
  47476. createTrue,
  47477. createTypeOf,
  47478. createTyped,
  47479. createUnaryMinus,
  47480. createUnaryPlus,
  47481. createUnequal,
  47482. createUnit,
  47483. createUnitClass,
  47484. createUnitDependencies,
  47485. createUnitFunction,
  47486. createUppercaseE,
  47487. createUppercasePi,
  47488. createUsolve,
  47489. createUsolveAll,
  47490. createVacuumImpedance,
  47491. createVariance,
  47492. createVarianceTransform,
  47493. createVersion,
  47494. createWeakMixingAngle,
  47495. createWienDisplacement,
  47496. createXgcd,
  47497. createXor,
  47498. createZeros,
  47499. cross,
  47500. crossDependencies,
  47501. csc,
  47502. cscDependencies,
  47503. csch,
  47504. cschDependencies,
  47505. ctranspose,
  47506. ctransposeDependencies,
  47507. cube,
  47508. cubeDependencies,
  47509. cumsum,
  47510. cumsumDependencies,
  47511. cumsumTransformDependencies,
  47512. deepEqual,
  47513. deepEqualDependencies,
  47514. derivative,
  47515. derivativeDependencies,
  47516. det,
  47517. detDependencies,
  47518. deuteronMass,
  47519. deuteronMassDependencies,
  47520. diag,
  47521. diagDependencies,
  47522. diff,
  47523. diffDependencies,
  47524. diffTransformDependencies,
  47525. distance,
  47526. distanceDependencies,
  47527. divide2 as divide,
  47528. divideDependencies,
  47529. divideScalar,
  47530. divideScalarDependencies,
  47531. embeddedDocs as docs,
  47532. dot,
  47533. dotDependencies,
  47534. dotDivide,
  47535. dotDivideDependencies,
  47536. dotMultiply,
  47537. dotMultiplyDependencies,
  47538. dotPow,
  47539. dotPowDependencies,
  47540. e2 as e,
  47541. eDependencies,
  47542. efimovFactor,
  47543. efimovFactorDependencies,
  47544. eigs,
  47545. eigsDependencies,
  47546. electricConstant,
  47547. electricConstantDependencies,
  47548. electronMass,
  47549. electronMassDependencies,
  47550. elementaryCharge,
  47551. elementaryChargeDependencies,
  47552. equal,
  47553. equalDependencies,
  47554. equalScalar,
  47555. equalScalarDependencies,
  47556. equalText,
  47557. equalTextDependencies,
  47558. erf,
  47559. erfDependencies,
  47560. evaluate,
  47561. evaluateDependencies,
  47562. exp2 as exp,
  47563. expDependencies,
  47564. expm,
  47565. expm13 as expm1,
  47566. expm1Dependencies,
  47567. expmDependencies,
  47568. factorial,
  47569. factorialDependencies,
  47570. factory,
  47571. falseDependencies,
  47572. faraday,
  47573. faradayDependencies,
  47574. fermiCoupling,
  47575. fermiCouplingDependencies,
  47576. fft,
  47577. fftDependencies,
  47578. filter2 as filter,
  47579. filterDependencies,
  47580. filterTransformDependencies,
  47581. fineStructure,
  47582. fineStructureDependencies,
  47583. firstRadiation,
  47584. firstRadiationDependencies,
  47585. fix,
  47586. fixDependencies,
  47587. flatten2 as flatten,
  47588. flattenDependencies,
  47589. floor2 as floor,
  47590. floorDependencies,
  47591. forEach2 as forEach,
  47592. forEachDependencies,
  47593. forEachTransformDependencies,
  47594. format4 as format,
  47595. formatDependencies,
  47596. fraction,
  47597. fractionDependencies,
  47598. gamma,
  47599. gammaDependencies,
  47600. gasConstant,
  47601. gasConstantDependencies,
  47602. gcd,
  47603. gcdDependencies,
  47604. getMatrixDataType,
  47605. getMatrixDataTypeDependencies,
  47606. gravitationConstant,
  47607. gravitationConstantDependencies,
  47608. gravity,
  47609. gravityDependencies,
  47610. hartreeEnergy,
  47611. hartreeEnergyDependencies,
  47612. hasNumericValue,
  47613. hasNumericValueDependencies,
  47614. help,
  47615. helpDependencies,
  47616. hex,
  47617. hexDependencies,
  47618. hypot2 as hypot,
  47619. hypotDependencies,
  47620. i,
  47621. iDependencies,
  47622. identity,
  47623. identityDependencies,
  47624. ifft,
  47625. ifftDependencies,
  47626. im,
  47627. imDependencies,
  47628. index,
  47629. indexDependencies,
  47630. indexTransformDependencies,
  47631. intersect,
  47632. intersectDependencies,
  47633. inv,
  47634. invDependencies,
  47635. inverseConductanceQuantum,
  47636. inverseConductanceQuantumDependencies,
  47637. invmod,
  47638. invmodDependencies,
  47639. isAccessorNode,
  47640. isArray,
  47641. isArrayNode,
  47642. isAssignmentNode,
  47643. isBigNumber,
  47644. isBlockNode,
  47645. isBoolean,
  47646. isChain,
  47647. isCollection,
  47648. isComplex,
  47649. isConditionalNode,
  47650. isConstantNode,
  47651. isDate,
  47652. isDenseMatrix,
  47653. isFraction,
  47654. isFunction,
  47655. isFunctionAssignmentNode,
  47656. isFunctionNode,
  47657. isHelp,
  47658. isIndex,
  47659. isIndexNode,
  47660. isInteger2 as isInteger,
  47661. isIntegerDependencies,
  47662. isMatrix,
  47663. isNaN2 as isNaN,
  47664. isNaNDependencies,
  47665. isNegative,
  47666. isNegativeDependencies,
  47667. isNode,
  47668. isNull,
  47669. isNumber,
  47670. isNumeric,
  47671. isNumericDependencies,
  47672. isObject,
  47673. isObjectNode,
  47674. isOperatorNode,
  47675. isParenthesisNode,
  47676. isPositive,
  47677. isPositiveDependencies,
  47678. isPrime,
  47679. isPrimeDependencies,
  47680. isRange,
  47681. isRangeNode,
  47682. isRegExp,
  47683. isRelationalNode,
  47684. isResultSet,
  47685. isSparseMatrix,
  47686. isString,
  47687. isSymbolNode,
  47688. isUndefined,
  47689. isUnit,
  47690. isZero,
  47691. isZeroDependencies,
  47692. kldivergence,
  47693. kldivergenceDependencies,
  47694. klitzing,
  47695. klitzingDependencies,
  47696. kron,
  47697. kronDependencies,
  47698. larger,
  47699. largerDependencies,
  47700. largerEq,
  47701. largerEqDependencies,
  47702. lcm,
  47703. lcmDependencies,
  47704. leafCount,
  47705. leafCountDependencies,
  47706. leftShift,
  47707. leftShiftDependencies,
  47708. lgamma,
  47709. lgammaDependencies,
  47710. log3 as log,
  47711. log104 as log10,
  47712. log10Dependencies,
  47713. log1p2 as log1p,
  47714. log1pDependencies,
  47715. log24 as log2,
  47716. log2Dependencies,
  47717. logDependencies,
  47718. loschmidt,
  47719. loschmidtDependencies,
  47720. lsolve,
  47721. lsolveAll,
  47722. lsolveAllDependencies,
  47723. lsolveDependencies,
  47724. lup,
  47725. lupDependencies,
  47726. lusolve,
  47727. lusolveDependencies,
  47728. lyap,
  47729. lyapDependencies,
  47730. mad,
  47731. madDependencies,
  47732. magneticConstant,
  47733. magneticConstantDependencies,
  47734. magneticFluxQuantum,
  47735. magneticFluxQuantumDependencies,
  47736. map2 as map,
  47737. mapDependencies,
  47738. mapTransformDependencies,
  47739. matrix,
  47740. matrixDependencies,
  47741. matrixFromColumns,
  47742. matrixFromColumnsDependencies,
  47743. matrixFromFunction,
  47744. matrixFromFunctionDependencies,
  47745. matrixFromRows,
  47746. matrixFromRowsDependencies,
  47747. max2 as max,
  47748. maxDependencies,
  47749. maxTransformDependencies,
  47750. mean,
  47751. meanDependencies,
  47752. meanTransformDependencies,
  47753. median,
  47754. medianDependencies,
  47755. min2 as min,
  47756. minDependencies,
  47757. minTransformDependencies,
  47758. mod2 as mod,
  47759. modDependencies,
  47760. mode,
  47761. modeDependencies,
  47762. molarMass,
  47763. molarMassC12,
  47764. molarMassC12Dependencies,
  47765. molarMassDependencies,
  47766. molarPlanckConstant,
  47767. molarPlanckConstantDependencies,
  47768. molarVolume,
  47769. molarVolumeDependencies,
  47770. multinomial,
  47771. multinomialDependencies,
  47772. multiply,
  47773. multiplyDependencies,
  47774. multiplyScalar,
  47775. multiplyScalarDependencies,
  47776. neutronMass,
  47777. neutronMassDependencies,
  47778. norm,
  47779. normDependencies,
  47780. not,
  47781. notDependencies,
  47782. nthRoot,
  47783. nthRootDependencies,
  47784. nthRoots,
  47785. nthRootsDependencies,
  47786. nuclearMagneton,
  47787. nuclearMagnetonDependencies,
  47788. nullDependencies,
  47789. number,
  47790. numberDependencies,
  47791. numeric2 as numeric,
  47792. numericDependencies,
  47793. oct,
  47794. octDependencies,
  47795. ones,
  47796. onesDependencies,
  47797. or,
  47798. orDependencies,
  47799. parse,
  47800. parseDependencies,
  47801. parser,
  47802. parserDependencies,
  47803. partitionSelect,
  47804. partitionSelectDependencies,
  47805. permutations,
  47806. permutationsDependencies,
  47807. phi2 as phi,
  47808. phiDependencies,
  47809. pi2 as pi,
  47810. piDependencies,
  47811. pickRandom,
  47812. pickRandomDependencies,
  47813. pinv,
  47814. pinvDependencies,
  47815. planckCharge,
  47816. planckChargeDependencies,
  47817. planckConstant,
  47818. planckConstantDependencies,
  47819. planckLength,
  47820. planckLengthDependencies,
  47821. planckMass,
  47822. planckMassDependencies,
  47823. planckTemperature,
  47824. planckTemperatureDependencies,
  47825. planckTime,
  47826. planckTimeDependencies,
  47827. polynomialRoot,
  47828. polynomialRootDependencies,
  47829. pow2 as pow,
  47830. powDependencies,
  47831. print,
  47832. printDependencies,
  47833. prod,
  47834. prodDependencies,
  47835. protonMass,
  47836. protonMassDependencies,
  47837. qr,
  47838. qrDependencies,
  47839. quantileSeq,
  47840. quantileSeqDependencies,
  47841. quantumOfCirculation,
  47842. quantumOfCirculationDependencies,
  47843. random2 as random,
  47844. randomDependencies,
  47845. randomInt,
  47846. randomIntDependencies,
  47847. range,
  47848. rangeDependencies,
  47849. rangeTransformDependencies,
  47850. rationalize,
  47851. rationalizeDependencies,
  47852. re,
  47853. reDependencies,
  47854. reducedPlanckConstant,
  47855. reducedPlanckConstantDependencies,
  47856. replacer,
  47857. replacerDependencies,
  47858. reshape2 as reshape,
  47859. reshapeDependencies,
  47860. resize2 as resize,
  47861. resizeDependencies,
  47862. resolve,
  47863. resolveDependencies,
  47864. reviver,
  47865. reviverDependencies,
  47866. rightArithShift,
  47867. rightArithShiftDependencies,
  47868. rightLogShift,
  47869. rightLogShiftDependencies,
  47870. rotate,
  47871. rotateDependencies,
  47872. rotationMatrix,
  47873. rotationMatrixDependencies,
  47874. round2 as round,
  47875. roundDependencies,
  47876. row,
  47877. rowDependencies,
  47878. rowTransformDependencies,
  47879. rydberg,
  47880. rydbergDependencies,
  47881. sackurTetrode,
  47882. sackurTetrodeDependencies,
  47883. schur,
  47884. schurDependencies,
  47885. sec,
  47886. secDependencies,
  47887. sech,
  47888. sechDependencies,
  47889. secondRadiation,
  47890. secondRadiationDependencies,
  47891. setCartesian,
  47892. setCartesianDependencies,
  47893. setDifference,
  47894. setDifferenceDependencies,
  47895. setDistinct,
  47896. setDistinctDependencies,
  47897. setIntersect,
  47898. setIntersectDependencies,
  47899. setIsSubset,
  47900. setIsSubsetDependencies,
  47901. setMultiplicity,
  47902. setMultiplicityDependencies,
  47903. setPowerset,
  47904. setPowersetDependencies,
  47905. setSize,
  47906. setSizeDependencies,
  47907. setSymDifference,
  47908. setSymDifferenceDependencies,
  47909. setUnion,
  47910. setUnionDependencies,
  47911. sign3 as sign,
  47912. signDependencies,
  47913. simplify,
  47914. simplifyConstant,
  47915. simplifyConstantDependencies,
  47916. simplifyCore,
  47917. simplifyCoreDependencies,
  47918. simplifyDependencies,
  47919. sin2 as sin,
  47920. sinDependencies,
  47921. sinh3 as sinh,
  47922. sinhDependencies,
  47923. size,
  47924. sizeDependencies,
  47925. slu,
  47926. sluDependencies,
  47927. smaller,
  47928. smallerDependencies,
  47929. smallerEq,
  47930. smallerEqDependencies,
  47931. sort,
  47932. sortDependencies,
  47933. sparse,
  47934. sparseDependencies,
  47935. speedOfLight,
  47936. speedOfLightDependencies,
  47937. splitUnit,
  47938. splitUnitDependencies,
  47939. sqrt2 as sqrt,
  47940. sqrtDependencies,
  47941. sqrtm,
  47942. sqrtmDependencies,
  47943. square,
  47944. squareDependencies,
  47945. squeeze2 as squeeze,
  47946. squeezeDependencies,
  47947. std,
  47948. stdDependencies,
  47949. stdTransformDependencies,
  47950. stefanBoltzmann,
  47951. stefanBoltzmannDependencies,
  47952. stirlingS2,
  47953. stirlingS2Dependencies,
  47954. string,
  47955. stringDependencies,
  47956. subset,
  47957. subsetDependencies,
  47958. subsetTransformDependencies,
  47959. subtract,
  47960. subtractDependencies,
  47961. sum2 as sum,
  47962. sumDependencies,
  47963. sumTransformDependencies,
  47964. sylvester,
  47965. sylvesterDependencies,
  47966. symbolicEqual,
  47967. symbolicEqualDependencies,
  47968. tan2 as tan,
  47969. tanDependencies,
  47970. tanh3 as tanh,
  47971. tanhDependencies,
  47972. tau2 as tau,
  47973. tauDependencies,
  47974. thomsonCrossSection,
  47975. thomsonCrossSectionDependencies,
  47976. to,
  47977. toDependencies,
  47978. trace,
  47979. traceDependencies,
  47980. transpose,
  47981. transposeDependencies,
  47982. trueDependencies,
  47983. typeOf2 as typeOf,
  47984. typeOfDependencies,
  47985. typed,
  47986. typedDependencies,
  47987. unaryMinus,
  47988. unaryMinusDependencies,
  47989. unaryPlus,
  47990. unaryPlusDependencies,
  47991. unequal,
  47992. unequalDependencies,
  47993. unit,
  47994. unitDependencies,
  47995. usolve,
  47996. usolveAll,
  47997. usolveAllDependencies,
  47998. usolveDependencies,
  47999. vacuumImpedance,
  48000. vacuumImpedanceDependencies,
  48001. variance,
  48002. varianceDependencies,
  48003. varianceTransformDependencies,
  48004. version2 as version,
  48005. versionDependencies,
  48006. weakMixingAngle,
  48007. weakMixingAngleDependencies,
  48008. wienDisplacement,
  48009. wienDisplacementDependencies,
  48010. xgcd,
  48011. xgcdDependencies,
  48012. xor,
  48013. xorDependencies,
  48014. zeros2 as zeros,
  48015. zerosDependencies
  48016. };
  48017. /*! Bundled license information:
  48018. complex.js/complex.js:
  48019. (**
  48020. * @license Complex.js v2.1.1 12/05/2020
  48021. *
  48022. * Copyright (c) 2020, Robert Eisele (robert@xarg.org)
  48023. * Dual licensed under the MIT or GPL Version 2 licenses.
  48024. **)
  48025. fraction.js/fraction.js:
  48026. (**
  48027. * @license Fraction.js v4.2.0 05/03/2022
  48028. * https://www.xarg.org/2014/03/rational-numbers-in-javascript/
  48029. *
  48030. * Copyright (c) 2021, Robert Eisele (robert@xarg.org)
  48031. * Dual licensed under the MIT or GPL Version 2 licenses.
  48032. **)
  48033. decimal.js/decimal.mjs:
  48034. (*!
  48035. * decimal.js v10.4.3
  48036. * An arbitrary-precision Decimal type for JavaScript.
  48037. * https://github.com/MikeMcl/decimal.js
  48038. * Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>
  48039. * MIT Licence
  48040. *)
  48041. */
  48042. //# sourceMappingURL=mathjs.js.map