1if (typeof T === 'undefined') require('../setup'); 2 3T('tanh', function () { 4 5 function t(n, pr, rm, expected) { 6 Decimal.precision = pr; 7 Decimal.rounding = rm; 8 T.assertEqual(expected, new Decimal(n).tanh().valueOf()); 9 } 10 11 Decimal.config({ 12 precision: 40, 13 rounding: 4, 14 toExpNeg: -9e15, 15 toExpPos: 9e15, 16 minE: -9e15, 17 maxE: 9e15 18 }); 19 20 t('NaN', 40, 4, 'NaN'); 21 t('0', 20, 4, '0'); 22 t('-0', 20, 4, '-0'); 23 t('Infinity', 40, 4, '1'); 24 t('-Infinity', 40, 4, '-1'); 25 26 t('0.20269', 1, 0, '0.2'); 27 t('0.42', 6, 5, '0.39693'); 28 t('-0.35339119', 8, 1, '-0.33937958'); 29 t('0.153', 8, 1, '0.15181721'); 30 t('0.26', 1, 1, '0.2'); 31 t('-0.5', 4, 4, '-0.4621'); 32 t('0.5301167511', 10, 0, '0.4854703307'); 33 t('0.1', 6, 2, '0.099668'); 34 t('-0.1947', 8, 6, '-0.19227651'); 35 t('0.62055680437965736490569245685566214324448351639', 9, 3, '0.551515589'); 36 t('0.8653929782497126681556355800799811365862905422680464', 2, 5, '0.7'); 37 t('-0.223453445837184', 10, 6, '-0.2198071371'); 38 t('0.6228344', 3, 6, '0.553'); 39 t('0.3860621505234646348994570686682533147396620957827359578508068456', 2, 1, '0.36'); 40 t('0.5499', 3, 2, '0.501'); 41 t('0.27', 4, 0, '0.2637'); 42 t('-0.20874419', 6, 0, '-0.205765'); 43 t('-0.9', 9, 0, '-0.716297871'); 44 t('-0.66', 10, 0, '-0.5783634131'); 45 t('0.5', 8, 1, '0.46211715'); 46 t('-0.8730255767917122199088529', 5, 1, '-0.7029'); 47 t('-0.3', 6, 4, '-0.291313'); 48 t('0.0772947', 5, 6, '0.077141'); 49 t('-0.1', 5, 4, '-0.099668'); 50 t('-0.5530719666927749554276959', 5, 2, '-0.50281'); 51 t('-0.76695591420216557012230781', 7, 0, '-0.6451559'); 52 t('-0.28931973768077305489831982152049', 1, 3, '-0.3'); 53 t('-0.631664433177866683720536966087102', 3, 5, '-0.559'); 54 t('0.4647093', 9, 2, '0.433914635'); 55 t('-0.293097', 2, 0, '-0.29'); 56 t('0.39968', 6, 2, '0.379676'); 57 t('-0.56478323116711527', 10, 5, '-0.5115177648'); 58 t('-0.60158', 2, 2, '-0.53'); 59 t('-0.566', 5, 6, '-0.51242'); 60 t('-0.5455', 1, 1, '-0.4'); 61 t('0.181743184255049315571704802510832099', 6, 5, '0.179768'); 62 t('-0.7', 2, 3, '-0.61'); 63 t('-0.410626', 8, 6, '-0.38900408'); 64 t('0.32', 10, 1, '0.3095069212'); 65 t('0.478', 9, 0, '0.444640449'); 66 t('-0.2127882653536975970432160655692', 1, 0, '-0.3'); 67 t('0.668', 9, 2, '0.583662747'); 68 t('0.1054319768894549379656717', 6, 5, '0.105043'); 69 t('-0.2159146041935965', 6, 3, '-0.212621'); 70 t('-0.53', 5, 6, '-0.48538'); 71 t('0.35', 10, 1, '0.3363755443'); 72 t('0.3', 3, 2, '0.292'); 73 t('0.38276035385122733156525463', 1, 1, '0.3'); 74 t('-0.751550287803356896438162105272645', 31, 0, '-0.6360729215504306567971084126656'); 75 t('0.2958626290477698111067628542902641468424491987425491552317600599757584700042', 33, 4, '0.287521804057197325874867763687105'); 76 t('-0.1624241525', 60, 5, '-0.161010729348804314083016365256060397030839070169914629959771'); 77 t('-0.3246133', 23, 0, '-0.3136723151870226491541'); 78 t('0.7574510519751273', 52, 2, '0.6395731248592590736391239000170979980280431536354096'); 79 t('0.52677087', 9, 5, '0.482908861'); 80 t('0.01504298596871499648833185964254026', 19, 0, '0.01504185137182836531'); 81 t('-0.66543541401805503420777', 66, 4, '-0.581969286944420744706095110187298812957954793212156080645254407938'); 82 t('0.016497376645717697522865', 24, 0, '0.0164958801477289569077129'); 83 t('0.79228702880353249365', 45, 0, '0.659702681921377249169326566285194050648896939'); 84 t('-0.32047744', 35, 3, '-0.30993856125352144923141124282332793'); 85 t('0.78607526651121', 28, 5, '0.6561799353543745431928429623'); 86 t('-0.130782154855323731897567604029773075178369276247566438028657144457559876456195235141546572', 80, 3, '-0.13004158964612601126893011628900193563954656630020761998126577892190799298653838'); 87 t('0.543888568', 52, 5, '0.495925821522156920755419346170717806152690266078471'); 88 t('0.595946834719509046130665028731095130596', 61, 0, '0.5341591488247401589317435849855958281981025417248174269032896'); 89 t('0.8180710003422039739052425209159024776836992576782', 75, 5, '0.674018589934549659108491437885993668870523407722879795457767225797625110655'); 90 t('0.2002343534718092035', 32, 2, '0.19760053356302078332195382537244'); 91 t('0.4316', 73, 2, '0.4066575843743152347702788188048559212155195983052915894345749387848887185'); 92 t('0.0297026', 47, 0, '0.029693868096821512437865399347977108636469769826'); 93 t('0.53196297398345769364909690685747648864854530119854', 56, 1, '0.48688016788770163925717272861291678368256194265983517854'); 94 t('-0.86540495196', 57, 4, '-0.699031973057205236065847483268440159156292260431585544883'); 95 t('-0.0218982341955013979387277630591838547', 66, 6, '-0.021894734560604770532346703409220449766736745588134181835811694617'); 96 t('-0.3503134189235148094342514029278811316170849354159958798993', 78, 4, '-0.336653471066707838641123262575513511831303224617968974634023553683297404695416'); 97 t('-0.666924383326373492780403568920198080574', 25, 5, '-0.5829531066013566651422653'); 98 t('-0.44325150067844726483860902210607088446679462', 1, 1, '-0.4'); 99 t('0.9034751706768019789827', 60, 6, '0.717985782691067206453512080792613565326893708313975428005223'); 100 t('0.2172485076904694895179', 63, 4, '0.213894002682974109904624836689545795117673726509639521578182275'); 101 t('-0.348534855137810830366231027941', 31, 3, '-0.3350755386644384737516713339319'); 102 t('-0.4255195', 45, 5, '-0.401570102011929569917989543792334637564089692'); 103 t('-0.886162172614361731', 29, 2, '-0.70949297599079569125232530876'); 104 t('-0.7', 78, 5, '-0.604367777117163496308687183103826475015566647416860888612419993599538639474122'); 105 t('0.757119675718', 66, 2, '0.639377257808623037769808128229970838858747391194193471609343942998'); 106 t('0.2642178764761', 55, 6, '0.2582364046844679768754362197481015404352489557723913895'); 107 t('0.321329', 74, 6, '0.31070811547650274839857700104600776395241041487409731293147237247772091748'); 108 t('0.1682695184810800667294209270614384694422368505868903621013683783929', 16, 0, '0.1666991388738522'); 109 t('-0.409858192536257152668045191854122303323410295894', 43, 0, '-0.3883522664291927890893297914389310714602415'); 110 t('0.2880615', 120, 0, '0.280349643265659497705660848534086455056558585660980017680059937512840019825269028854239781634733893540906928184561638591'); 111 t('-0.2803292668048951604355466058306354327579221441238441133669431820221412822995', 69, 4, '-0.2732097971115351269678804248529217531253775527585485646027761857336'); 112 t('0.209183180524407073852661413214033433796240391516313838917745903006946400344329579472178537414263299679577464721107342550013722994343049', 3, 0, '0.207'); 113 t('-0.21323411415637447', 100, 3, '-0.2100599987497949082863636944922996664334987508835646248560687414181626030840090573861293885022227807'); 114 t('-0.934150529137316227495052114810154290011321681684010680698706327964978851230256', 97, 1, '-0.7325231466730630602965757839383259193306031234060675020081884134754348821771511575580397417734494'); 115 t('0.612797', 135, 6, '0.546092981987055113177270374342598658047265622605927205095448291249934086020550572905344645120234563581014732729130051050396440278747926'); 116 t('-0.18273791076980028567544728336113017263732539776346366568034574', 45, 2, '-0.180730653506873097396527854034699651896910694'); 117 t('0.5288356309407208928920467515068426806', 107, 2, '0.48449053794065651739672070077375035256792292259097100512145231251249909428817259447380109781326377031262135'); 118 t('-0.50752591', 24, 5, '-0.468015268006387507893896'); 119 t('-0.54917290836787549931392', 88, 4, '-0.49990006636857985687649939062630289074578706968740926592041362893811220431493732027711'); 120 t('0.91999661041886666', 17, 6, '0.72589581132601256'); 121}); 122 123