require "numru/dcl"
include NumRu
include NMath

a=NArray[8.0401005e-5, 1.1960172e-4, 1.7406703e-4, 2.4816737e-4, 3.4700267e-4,
   4.7638666e-4, 6.4279727e-4, 8.5329212e-4, 1.1153902e-3, 1.436924e-3, 
   1.8258672e-3, 2.2901448e-3, 2.8374356e-3, 3.5155157e-3, 4.3556411e-3,
   5.3965361e-3, 6.6861813e-3, 8.2840202e-3, 1.0263706e-2, 1.271649e-2, 
   1.575543e-2, 1.9520607e-2, 2.4185572e-2, 2.9965352e-2, 3.7126362e-2,
   4.5998689e-2, 5.699129e-2, 6.9983996e-2, 8.5174471e-2, 1.0248978e-1,
   1.2199424e-1, 1.3442916e-1, 1.4736354e-1, 1.5689206e-1, 1.626661e-1, 
   1.6465004e-1, 1.6297621e-1, 1.5791598e-1, 1.4985269e-1, 1.392552e-1, 
   1.2665296e-1, 1.126123e-1, 9.7714067e-2, 8.2532108e-2, 6.7613401e-2,
   5.3459179e-2, 4.0507186e-2, 2.9115703e-2, 1.9548047e-2, 1.1958906e-2,
   6.381484e-3, 2.71625e-3, 7.20625e-4, 0, 0, 0]

b=NArray[0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0, 
   0, 0, 0, 0, 0,
   0, 0, 0, 0, 0,
   0, 0, 0, 0, 0,
   0, 0, 0, 0, 0,
   0, 9.29234e-3, 2.031916e-2, 3.6974858e-2, 5.9487641e-2, 
   8.7894984e-2, 1.2200361e-1, 1.614415e-1, 2.0570326e-1, 2.541886e-1,
   3.0623537e-1, 3.6114502e-1, 4.1820228e-1, 4.7668815e-1, 5.3588659e-1, 
   5.9508425e-1, 6.5356457e-1, 7.1059442e-1, 7.6540524e-1, 8.1716698e-1, 
   8.6495584e-1, 9.0771586e-1, 9.4421321e-1, 9.7298521e-1, 9.922815e-1, 1]

sigm=a+b
p a.length
p b.length

#---- Fujita and Ishioka (2024) Level 55 
nsigm = sigm.to_a.length
p nsigm
p sigm.to_a.reverse


#---- Fujita and Ishioka (2024) Level 110
sigm_l110 = NArray.float(2*nsigm-1)
for i in 0..nsigm-2
  i1 = 2*i
  i2 = 2*i+1
  sigm_l110[i1] = sigm[i]
  sigm_l110[i2] = exp( (log(sigm[i]) + log(sigm[i+1]))/2.0 )
end
sigm_l110[-1] = 1.0
print "\n"
  
p sigm_l110.to_a.length
p sigm_l110.to_a.reverse

