Update spectrum computation
This commit is contained in:
parent
014628f2fd
commit
0a5812f0fa
@ -19,12 +19,14 @@ import space.kscience.kmath.data.ColumnarData
|
|||||||
import space.kscience.kmath.misc.Symbol
|
import space.kscience.kmath.misc.Symbol
|
||||||
import space.kscience.kmath.misc.UnstableKMathAPI
|
import space.kscience.kmath.misc.UnstableKMathAPI
|
||||||
import space.kscience.kmath.misc.symbol
|
import space.kscience.kmath.misc.symbol
|
||||||
|
import space.kscience.kmath.real.div
|
||||||
|
import space.kscience.kmath.real.sum
|
||||||
import space.kscience.kmath.structures.Buffer
|
import space.kscience.kmath.structures.Buffer
|
||||||
import space.kscience.kmath.structures.DoubleBuffer
|
import space.kscience.kmath.structures.DoubleBuffer
|
||||||
|
|
||||||
|
|
||||||
@OptIn(UnstableKMathAPI::class)
|
@OptIn(UnstableKMathAPI::class)
|
||||||
public class FSS(public val es: DoubleBuffer, public val ps: DoubleBuffer) : ColumnarData<Double> {
|
public class FSS(public val es: Buffer<Double>, public val ps: Buffer<Double>) : ColumnarData<Double> {
|
||||||
|
|
||||||
override val size: Int get() = ps.size
|
override val size: Int get() = ps.size
|
||||||
|
|
||||||
@ -47,7 +49,7 @@ public class FSS(public val es: DoubleBuffer, public val ps: DoubleBuffer) : Col
|
|||||||
}.toList()
|
}.toList()
|
||||||
val es = DoubleBuffer(data.size) { data[it].first }
|
val es = DoubleBuffer(data.size) { data[it].first }
|
||||||
val ps = DoubleBuffer(data.size) { data[it].second }
|
val ps = DoubleBuffer(data.size) { data[it].second }
|
||||||
FSS(es, ps)
|
FSS(es, ps / ps.sum())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,5 +42,9 @@ public class NBkgSpectrum(public val source: Spectrum) : DifferentiableSpectrum
|
|||||||
public val norm: Symbol by symbol
|
public val norm: Symbol by symbol
|
||||||
public val bkg: Symbol by symbol
|
public val bkg: Symbol by symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply transformation adding norming-factor and the background
|
||||||
|
*/
|
||||||
|
public fun Spectrum.withNBkg(): NBkgSpectrum = NBkgSpectrum(this)
|
||||||
|
@ -67,10 +67,10 @@ public class NumassTransmission(
|
|||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun invoke(x: Double, y: Double, arguments: Map<Symbol, Double>): Double {
|
override fun invoke(ei: Double, ef: Double, arguments: Map<Symbol, Double>): Double {
|
||||||
// loss part
|
// loss part
|
||||||
val thickness = arguments[thickness] ?: 0.0
|
val thickness = arguments[thickness] ?: 0.0
|
||||||
val loss = getTotalLossValue(thickness, x, y)
|
val loss = getTotalLossValue(thickness, ei, ef)
|
||||||
// double loss;
|
// double loss;
|
||||||
//
|
//
|
||||||
// if(eIn-eOut >= 300){
|
// if(eIn-eOut >= 300){
|
||||||
@ -84,7 +84,7 @@ public class NumassTransmission(
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
//trapping part
|
//trapping part
|
||||||
val trap = arguments[trap] ?: 1.0 * trapFunc(x, y, arguments)
|
val trap = (arguments[trap] ?: 1.0) * trapFunc(ei, ef, arguments)
|
||||||
return loss + trap
|
return loss + trap
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,13 +155,11 @@ public class NumassTransmission(
|
|||||||
* @param order
|
* @param order
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private fun getLoss(order: Int): UnivariateFunction<Double> {
|
private fun getLoss(order: Int): UnivariateFunction<Double> = getCachedSpectrum(order)
|
||||||
return getCachedSpectrum(order)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getLossProbDerivs(x: Double): List<Double> {
|
private fun getLossProbDerivs(x: Double): List<Double> {
|
||||||
val res = ArrayList<Double>()
|
val res = ArrayList<Double>()
|
||||||
val probs = getLossProbabilities(x)
|
val probs = lossProbabilities(x)
|
||||||
|
|
||||||
var delta = exp(-x)
|
var delta = exp(-x)
|
||||||
res.add((delta - probs[0]) / x)
|
res.add((delta - probs[0]) / x)
|
||||||
@ -209,7 +207,7 @@ public class NumassTransmission(
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLossProbabilities(x: Double): List<Double> =
|
public fun lossProbabilities(x: Double): List<Double> =
|
||||||
lossProbCache.getOrPut(x) { calculateLossProbabilities(x) }
|
lossProbCache.getOrPut(x) { calculateLossProbabilities(x) }
|
||||||
|
|
||||||
private fun getLossProbability(order: Int, X: Double): Double {
|
private fun getLossProbability(order: Int, X: Double): Double {
|
||||||
@ -220,7 +218,7 @@ public class NumassTransmission(
|
|||||||
1.0
|
1.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val probs = getLossProbabilities(X)
|
val probs = lossProbabilities(X)
|
||||||
return if (order >= probs.size) {
|
return if (order >= probs.size) {
|
||||||
0.0
|
0.0
|
||||||
} else {
|
} else {
|
||||||
@ -228,11 +226,11 @@ public class NumassTransmission(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getLossValue(order: Int, Ei: Double, Ef: Double): Double {
|
private fun getLossValue(order: Int, ei: Double, ef: Double): Double {
|
||||||
return when {
|
return when {
|
||||||
Ei - Ef < 5.0 -> 0.0
|
ei - ef < 5.0 -> 0.0
|
||||||
Ei - Ef >= getMargin(order) -> 0.0
|
ei - ef >= getMargin(order) -> 0.0
|
||||||
else -> getLoss(order).invoke(Ei - Ef)
|
else -> getLoss(order).invoke(ei - ef)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,17 +301,17 @@ public class NumassTransmission(
|
|||||||
/**
|
/**
|
||||||
* Значение полной функции потерь с учетом всех неисчезающих порядков
|
* Значение полной функции потерь с учетом всех неисчезающих порядков
|
||||||
*
|
*
|
||||||
* @param x
|
* @param thickness
|
||||||
* @param Ei
|
* @param Ei
|
||||||
* @param Ef
|
* @param Ef
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private fun getTotalLossValue(x: Double, Ei: Double, Ef: Double): Double {
|
private fun getTotalLossValue(thickness: Double, Ei: Double, Ef: Double): Double {
|
||||||
return if (x == 0.0) {
|
return if (thickness == 0.0) {
|
||||||
0.0
|
0.0
|
||||||
} else {
|
} else {
|
||||||
val probs = getLossProbabilities(x)
|
val probs = lossProbabilities(thickness)
|
||||||
(1 until probs.size).sumByDouble { i ->
|
(1 until probs.size).sumOf { i ->
|
||||||
probs[i] * getLossValue(i, Ei, Ef)
|
probs[i] * getLossValue(i, Ei, Ef)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -468,9 +466,8 @@ public class NumassTransmission(
|
|||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
internal val defaultTrapping: Kernel = Kernel { e, u, arguments ->
|
internal val defaultTrapping: Kernel = Kernel { ei, ef, _ ->
|
||||||
val d = e - u
|
1.2e-4 - 4.5e-9 * ei
|
||||||
0.99797 - 3.05346E-7 * d - 5.45738E-10 * d.pow(2.0) - 6.36105E-14 * d.pow(3.0)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,6 @@ public class SterileNeutrinoSpectrum(
|
|||||||
public val fss: FSS? = FSS.default,
|
public val fss: FSS? = FSS.default,
|
||||||
) : DifferentiableSpectrum {
|
) : DifferentiableSpectrum {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* auxiliary function for trans-res convolution
|
* auxiliary function for trans-res convolution
|
||||||
*/
|
*/
|
||||||
|
@ -4,30 +4,94 @@ import inr.numass.models.sterile.NumassBeta.e0
|
|||||||
import inr.numass.models.sterile.NumassBeta.mnu2
|
import inr.numass.models.sterile.NumassBeta.mnu2
|
||||||
import inr.numass.models.sterile.NumassBeta.msterile2
|
import inr.numass.models.sterile.NumassBeta.msterile2
|
||||||
import inr.numass.models.sterile.NumassBeta.u2
|
import inr.numass.models.sterile.NumassBeta.u2
|
||||||
|
import inr.numass.models.sterile.NumassResolution
|
||||||
|
import inr.numass.models.sterile.NumassTransmission
|
||||||
import inr.numass.models.sterile.NumassTransmission.Companion.thickness
|
import inr.numass.models.sterile.NumassTransmission.Companion.thickness
|
||||||
|
import inr.numass.models.sterile.NumassTransmission.Companion.trap
|
||||||
import inr.numass.models.sterile.SterileNeutrinoSpectrum
|
import inr.numass.models.sterile.SterileNeutrinoSpectrum
|
||||||
|
import kotlinx.html.code
|
||||||
|
import ru.inr.mass.models.NBkgSpectrum.Companion.bkg
|
||||||
|
import ru.inr.mass.models.NBkgSpectrum.Companion.norm
|
||||||
|
import ru.inr.mass.models.withNBkg
|
||||||
import ru.inr.mass.workspace.buffer
|
import ru.inr.mass.workspace.buffer
|
||||||
import space.kscience.kmath.misc.Symbol
|
import space.kscience.kmath.misc.Symbol
|
||||||
import space.kscience.kmath.real.step
|
import space.kscience.kmath.real.step
|
||||||
import space.kscience.plotly.Plotly
|
import space.kscience.plotly.*
|
||||||
import space.kscience.plotly.makeFile
|
|
||||||
import space.kscience.plotly.models.ScatterMode
|
import space.kscience.plotly.models.ScatterMode
|
||||||
import space.kscience.plotly.scatter
|
import space.kscience.plotly.models.appendXY
|
||||||
|
import kotlin.math.pow
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
val spectrum = SterileNeutrinoSpectrum()
|
val spectrum = SterileNeutrinoSpectrum().withNBkg()
|
||||||
|
|
||||||
val args: Map<Symbol, Double> = mapOf(
|
val args: Map<Symbol, Double> = mapOf(
|
||||||
|
norm to 8e5,
|
||||||
|
bkg to 2.0,
|
||||||
mnu2 to 0.0,
|
mnu2 to 0.0,
|
||||||
e0 to 18575.0,
|
e0 to 18575.0,
|
||||||
msterile2 to 1e6,
|
msterile2 to 1000.0.pow(2),
|
||||||
u2 to 1e-2,
|
u2 to 1e-2,
|
||||||
thickness to 0.2
|
thickness to 0.1,
|
||||||
|
trap to 1.0
|
||||||
)
|
)
|
||||||
Plotly.plot {
|
|
||||||
|
Plotly.page {
|
||||||
|
plot {
|
||||||
scatter {
|
scatter {
|
||||||
|
name = "Computed spectrum"
|
||||||
mode = ScatterMode.lines
|
mode = ScatterMode.lines
|
||||||
x.buffer = 14000.0..18600.0 step 10.0
|
x.buffer = 14000.0..18600.0 step 10.0
|
||||||
y.numbers = x.numbers.map { spectrum(it.toDouble(), args) }
|
y.numbers = x.doubles.map { spectrum(it, args) }
|
||||||
|
}
|
||||||
|
scatter {
|
||||||
|
name = "Old spectrum"
|
||||||
|
mode = ScatterMode.markers
|
||||||
|
javaClass.getResource("/old-spectrum.dat").readText().lines().map {
|
||||||
|
val (u, w) = it.split("\t")
|
||||||
|
appendXY(u.toDouble(), w.toDouble())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
layout {
|
||||||
|
title = "Sterile neutrino spectrum"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plot {
|
||||||
|
val resolution = NumassResolution()
|
||||||
|
scatter {
|
||||||
|
name = "resolution"
|
||||||
|
x.buffer = 14000.0..14015.0 step 0.1
|
||||||
|
y.numbers = x.doubles.map { resolution(it, 14005.0, args) }
|
||||||
|
}
|
||||||
|
layout {
|
||||||
|
title = "Resolution, U = 14005.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plot {
|
||||||
|
val transmission = NumassTransmission()
|
||||||
|
scatter {
|
||||||
|
name = "transmission"
|
||||||
|
x.buffer = 14000.0..14100.0 step 0.2
|
||||||
|
y.numbers = x.doubles.map { transmission(it, 14005.0, args) }
|
||||||
|
}
|
||||||
|
layout {
|
||||||
|
title = "Resolution, U = 14005.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
+"""
|
||||||
|
norm to 8e5,
|
||||||
|
bkg to 2.0,
|
||||||
|
mnu2 to 0.0,
|
||||||
|
e0 to 18575.0,
|
||||||
|
msterile2 to 1000.0.pow(2),
|
||||||
|
u2 to 1e-2,
|
||||||
|
thickness to 0.1,
|
||||||
|
trap to 1.0
|
||||||
|
""".trimIndent()
|
||||||
}
|
}
|
||||||
}.makeFile()
|
}.makeFile()
|
||||||
|
|
||||||
|
println(spectrum(14000.0, args))
|
||||||
|
|
||||||
}
|
}
|
461
numass-workspace/src/main/resources/old-spectrum.dat
Normal file
461
numass-workspace/src/main/resources/old-spectrum.dat
Normal file
@ -0,0 +1,461 @@
|
|||||||
|
14000.0 21144.06826503362
|
||||||
|
14010.0 21006.572782462954
|
||||||
|
14020.0 20869.73215534316
|
||||||
|
14030.0 20733.405474277584
|
||||||
|
14040.0 20597.678076756514
|
||||||
|
14050.0 20462.59068330559
|
||||||
|
14060.0 20328.060309100107
|
||||||
|
14070.0 20194.08435615353
|
||||||
|
14080.0 20060.5857702678
|
||||||
|
14090.0 19927.897515335742
|
||||||
|
14100.0 19795.744180130758
|
||||||
|
14110.0 19664.120723613014
|
||||||
|
14120.0 19533.02778705386
|
||||||
|
14130.0 19402.632381360218
|
||||||
|
14140.0 19272.699152362227
|
||||||
|
14150.0 19143.347627762996
|
||||||
|
14160.0 19014.531805682913
|
||||||
|
14170.0 18886.408790202804
|
||||||
|
14180.0 18758.932989789675
|
||||||
|
14190.0 18631.846229720144
|
||||||
|
14200.0 18505.26601159422
|
||||||
|
14210.0 18379.392629602586
|
||||||
|
14220.0 18254.10223375718
|
||||||
|
14230.0 18129.363510394855
|
||||||
|
14240.0 18005.14584358382
|
||||||
|
14250.0 17881.62029183643
|
||||||
|
14260.0 17758.66138973419
|
||||||
|
14270.0 17635.98360171343
|
||||||
|
14280.0 17513.983186686626
|
||||||
|
14290.0 17392.578925822396
|
||||||
|
14300.0 17271.760548864386
|
||||||
|
14310.0 17151.482688239
|
||||||
|
14320.0 17031.779417997725
|
||||||
|
14330.0 16912.505887381285
|
||||||
|
14340.0 16793.96906902998
|
||||||
|
14350.0 16675.96921303285
|
||||||
|
14360.0 16558.41743144571
|
||||||
|
14370.0 16441.432931201125
|
||||||
|
14380.0 16324.953623636095
|
||||||
|
14390.0 16209.104211058508
|
||||||
|
14400.0 16093.73021604293
|
||||||
|
14410.0 15978.940653610127
|
||||||
|
14420.0 15864.736533819127
|
||||||
|
14430.0 15751.067774220024
|
||||||
|
14440.0 15637.866760895515
|
||||||
|
14450.0 15525.184953929003
|
||||||
|
14460.0 15413.09295555013
|
||||||
|
14470.0 15301.508741199292
|
||||||
|
14480.0 15190.496880751798
|
||||||
|
14490.0 15080.039018348876
|
||||||
|
14500.0 14970.124261418177
|
||||||
|
14510.0 14860.7425238067
|
||||||
|
14520.0 14751.695201569893
|
||||||
|
14530.0 14643.356106912928
|
||||||
|
14540.0 14535.488170477993
|
||||||
|
14550.0 14428.215148489058
|
||||||
|
14560.0 14321.411043220709
|
||||||
|
14570.0 14215.171022243501
|
||||||
|
14580.0 14109.36523470313
|
||||||
|
14590.0 14004.14388378637
|
||||||
|
14600.0 13899.542222301901
|
||||||
|
14610.0 13795.291516338752
|
||||||
|
14620.0 13691.556823690074
|
||||||
|
14630.0 13588.464699901404
|
||||||
|
14640.0 13485.832954556325
|
||||||
|
14650.0 13383.644657513441
|
||||||
|
14660.0 13282.035247171907
|
||||||
|
14670.0 13180.87709231583
|
||||||
|
14680.0 13080.311002851942
|
||||||
|
14690.0 12980.244679012389
|
||||||
|
14700.0 12880.747932860657
|
||||||
|
14710.0 12781.647374930337
|
||||||
|
14720.0 12682.989706972592
|
||||||
|
14730.0 12584.94741175745
|
||||||
|
14740.0 12487.397543672685
|
||||||
|
14750.0 12390.359015628186
|
||||||
|
14760.0 12293.780735136428
|
||||||
|
14770.0 12197.70496416098
|
||||||
|
14780.0 12102.166403721063
|
||||||
|
14790.0 12007.015454031693
|
||||||
|
14800.0 11912.479014703355
|
||||||
|
14810.0 11818.412654395914
|
||||||
|
14820.0 11724.755853920242
|
||||||
|
14830.0 11631.690434050815
|
||||||
|
14840.0 11539.09461085014
|
||||||
|
14850.0 11446.934809590526
|
||||||
|
14860.0 11355.29826945811
|
||||||
|
14870.0 11264.103206419837
|
||||||
|
14880.0 11173.391414671089
|
||||||
|
14890.0 11083.191157977213
|
||||||
|
14900.0 10993.542243060661
|
||||||
|
14910.0 10904.3437625975
|
||||||
|
14920.0 10815.57991970103
|
||||||
|
14930.0 10727.343250432023
|
||||||
|
14940.0 10639.51381282399
|
||||||
|
14950.0 10552.124239914427
|
||||||
|
14960.0 10465.302372109274
|
||||||
|
14970.0 10379.001774243998
|
||||||
|
14980.0 10293.08219246836
|
||||||
|
14990.0 10207.61593622077
|
||||||
|
15000.0 10122.661048674467
|
||||||
|
15010.0 10038.272286139583
|
||||||
|
15020.0 9954.240722704115
|
||||||
|
15030.0 9870.630464233276
|
||||||
|
15040.0 9787.596581873242
|
||||||
|
15050.0 9704.92878000812
|
||||||
|
15060.0 9622.769864774036
|
||||||
|
15070.0 9541.08694072584
|
||||||
|
15080.0 9459.82229559507
|
||||||
|
15090.0 9379.053465373388
|
||||||
|
15100.0 9298.772441033982
|
||||||
|
15110.0 9218.879315513399
|
||||||
|
15120.0 9139.468822719997
|
||||||
|
15130.0 9060.509843593685
|
||||||
|
15140.0 8982.055742086564
|
||||||
|
15150.0 8903.99444334693
|
||||||
|
15160.0 8826.317501558422
|
||||||
|
15170.0 8749.187182236928
|
||||||
|
15180.0 8672.453689772115
|
||||||
|
15190.0 8596.246591749144
|
||||||
|
15200.0 8520.427754118471
|
||||||
|
15210.0 8445.087555717617
|
||||||
|
15220.0 8370.11748545368
|
||||||
|
15230.0 8295.647637731907
|
||||||
|
15240.0 8221.547649216913
|
||||||
|
15250.0 8147.94083274912
|
||||||
|
15260.0 8074.7804536478025
|
||||||
|
15270.0 8002.059066003284
|
||||||
|
15280.0 7929.752465260882
|
||||||
|
15290.0 7857.8918938278075
|
||||||
|
15300.0 7786.432964345517
|
||||||
|
15310.0 7715.42864418354
|
||||||
|
15320.0 7644.86753765072
|
||||||
|
15330.0 7574.717041508431
|
||||||
|
15340.0 7504.95708969505
|
||||||
|
15350.0 7435.691961473507
|
||||||
|
15360.0 7366.800829538794
|
||||||
|
15370.0 7298.3870564224835
|
||||||
|
15380.0 7230.332137707168
|
||||||
|
15390.0 7162.762258781331
|
||||||
|
15400.0 7095.543205027884
|
||||||
|
15410.0 7028.816020258866
|
||||||
|
15420.0 6962.4441705414565
|
||||||
|
15430.0 6896.48494424743
|
||||||
|
15440.0 6830.93648543435
|
||||||
|
15450.0 6765.884954538622
|
||||||
|
15460.0 6701.179718966927
|
||||||
|
15470.0 6636.9212378276525
|
||||||
|
15480.0 6573.027429324024
|
||||||
|
15490.0 6509.553847185331
|
||||||
|
15500.0 6446.471412141977
|
||||||
|
15510.0 6383.843741433191
|
||||||
|
15520.0 6321.607038216404
|
||||||
|
15530.0 6259.747821228214
|
||||||
|
15540.0 6198.295937294384
|
||||||
|
15550.0 6137.242641018659
|
||||||
|
15560.0 6076.626172822268
|
||||||
|
15570.0 6016.366457084789
|
||||||
|
15580.0 5956.510619644465
|
||||||
|
15590.0 5897.062530707578
|
||||||
|
15600.0 5837.968553009778
|
||||||
|
15610.0 5779.315758519532
|
||||||
|
15620.0 5721.031250356002
|
||||||
|
15630.0 5663.187996894608
|
||||||
|
15640.0 5605.664107554607
|
||||||
|
15650.0 5548.540712406761
|
||||||
|
15660.0 5491.813140382814
|
||||||
|
15670.0 5435.489532444286
|
||||||
|
15680.0 5379.53988312815
|
||||||
|
15690.0 5323.957501315221
|
||||||
|
15700.0 5268.784529428275
|
||||||
|
15710.0 5213.949789397878
|
||||||
|
15720.0 5159.511366420885
|
||||||
|
15730.0 5105.412684951784
|
||||||
|
15740.0 5051.750839397989
|
||||||
|
15750.0 4998.457610290456
|
||||||
|
15760.0 4945.515385186621
|
||||||
|
15770.0 4892.961760871097
|
||||||
|
15780.0 4840.756414526476
|
||||||
|
15790.0 4788.944773061411
|
||||||
|
15800.0 4737.498617468057
|
||||||
|
15810.0 4686.3909452158
|
||||||
|
15820.0 4635.694502745357
|
||||||
|
15830.0 4585.326432683856
|
||||||
|
15840.0 4535.337006496239
|
||||||
|
15850.0 4485.73808232071
|
||||||
|
15860.0 4436.422695192254
|
||||||
|
15870.0 4387.535162584088
|
||||||
|
15880.0 4338.971648277426
|
||||||
|
15890.0 4290.778543741371
|
||||||
|
15900.0 4242.964756654218
|
||||||
|
15910.0 4195.485498285614
|
||||||
|
15920.0 4148.340792808015
|
||||||
|
15930.0 4101.574722284884
|
||||||
|
15940.0 4055.1298072593986
|
||||||
|
15950.0 4009.0525281291575
|
||||||
|
15960.0 3963.3736738704315
|
||||||
|
15970.0 3917.9677718938033
|
||||||
|
15980.0 3872.9398448260504
|
||||||
|
15990.0 3828.2164200868797
|
||||||
|
16000.0 3783.895173928012
|
||||||
|
16010.0 3739.886718632015
|
||||||
|
16020.0 3696.2261734572267
|
||||||
|
16030.0 3652.8814126004845
|
||||||
|
16040.0 3609.910341273943
|
||||||
|
16050.0 3567.2495172963345
|
||||||
|
16060.0 3524.9272329072337
|
||||||
|
16070.0 3482.955227529935
|
||||||
|
16080.0 3441.2881310607927
|
||||||
|
16090.0 3399.989789171778
|
||||||
|
16100.0 3358.990279803416
|
||||||
|
16110.0 3318.3354584720028
|
||||||
|
16120.0 3277.987694893713
|
||||||
|
16130.0 3237.99206058647
|
||||||
|
16140.0 3198.3194118107995
|
||||||
|
16150.0 3158.9648599415045
|
||||||
|
16160.0 3119.9291430710155
|
||||||
|
16170.0 3081.1934964628285
|
||||||
|
16180.0 3042.823324903815
|
||||||
|
16190.0 3004.7344280439656
|
||||||
|
16200.0 2966.9851740278386
|
||||||
|
16210.0 2929.5430695917976
|
||||||
|
16220.0 2892.3987181568477
|
||||||
|
16230.0 2855.6100275832555
|
||||||
|
16240.0 2819.085845132773
|
||||||
|
16250.0 2782.877962791771
|
||||||
|
16260.0 2747.0291572078468
|
||||||
|
16270.0 2711.4448475331446
|
||||||
|
16280.0 2676.1773173268366
|
||||||
|
16290.0 2641.2040797156797
|
||||||
|
16300.0 2606.549844158465
|
||||||
|
16310.0 2572.189980185393
|
||||||
|
16320.0 2538.1307408394996
|
||||||
|
16330.0 2504.376545819634
|
||||||
|
16340.0 2470.9082731773897
|
||||||
|
16350.0 2437.7523686766176
|
||||||
|
16360.0 2404.8884406197394
|
||||||
|
16370.0 2372.3267433090205
|
||||||
|
16380.0 2340.041679868535
|
||||||
|
16390.0 2308.0566681265714
|
||||||
|
16400.0 2276.364900483522
|
||||||
|
16410.0 2244.9608235478695
|
||||||
|
16420.0 2213.851181038246
|
||||||
|
16430.0 2183.036130062953
|
||||||
|
16440.0 2152.4898830631255
|
||||||
|
16450.0 2122.222946832527
|
||||||
|
16460.0 2092.2739581641
|
||||||
|
16470.0 2062.5670871504676
|
||||||
|
16480.0 2033.1582544737187
|
||||||
|
16490.0 2004.0295712007196
|
||||||
|
16500.0 1975.1870752561688
|
||||||
|
16510.0 1946.6174732521065
|
||||||
|
16520.0 1918.3181762061895
|
||||||
|
16530.0 1890.2873908718332
|
||||||
|
16540.0 1862.5411704472265
|
||||||
|
16550.0 1835.0590968312558
|
||||||
|
16560.0 1807.8538348100612
|
||||||
|
16570.0 1780.911853576155
|
||||||
|
16580.0 1754.2308050172048
|
||||||
|
16590.0 1727.8325389404906
|
||||||
|
16600.0 1701.698442698838
|
||||||
|
16610.0 1675.8157795027485
|
||||||
|
16620.0 1650.1758848467434
|
||||||
|
16630.0 1624.863638082829
|
||||||
|
16640.0 1599.7502526032201
|
||||||
|
16650.0 1574.9037795340814
|
||||||
|
16660.0 1550.3385739398202
|
||||||
|
16670.0 1526.0249879111723
|
||||||
|
16680.0 1501.9609190174958
|
||||||
|
16690.0 1478.1371551736843
|
||||||
|
16700.0 1454.562266355945
|
||||||
|
16710.0 1431.2629710458543
|
||||||
|
16720.0 1408.2020306676277
|
||||||
|
16730.0 1385.3967626619628
|
||||||
|
16740.0 1362.8228152351494
|
||||||
|
16750.0 1340.4990745445132
|
||||||
|
16760.0 1318.4219161315934
|
||||||
|
16770.0 1296.6010672641116
|
||||||
|
16780.0 1275.0088762832552
|
||||||
|
16790.0 1253.6453650584724
|
||||||
|
16800.0 1232.5442493232742
|
||||||
|
16810.0 1211.658289353798
|
||||||
|
16820.0 1191.0176647821295
|
||||||
|
16830.0 1170.6303036088184
|
||||||
|
16840.0 1150.4556908576478
|
||||||
|
16850.0 1130.5155785149711
|
||||||
|
16860.0 1110.8069491517203
|
||||||
|
16870.0 1091.3309731180668
|
||||||
|
16880.0 1072.0845257414933
|
||||||
|
16890.0 1053.0627415365889
|
||||||
|
16900.0 1034.2608134619222
|
||||||
|
16910.0 1015.6883432426487
|
||||||
|
16920.0 997.3451227461114
|
||||||
|
16930.0 979.2156990505905
|
||||||
|
16940.0 961.3166816443793
|
||||||
|
16950.0 943.6242449695036
|
||||||
|
16960.0 926.1527819466919
|
||||||
|
16970.0 908.9005704757275
|
||||||
|
16980.0 891.875990713501
|
||||||
|
16990.0 875.0380298220415
|
||||||
|
17000.0 858.4315340935602
|
||||||
|
17010.0 842.0345556237725
|
||||||
|
17020.0 825.839835611
|
||||||
|
17030.0 809.8541972689023
|
||||||
|
17040.0 794.0760340237487
|
||||||
|
17050.0 778.4974453963638
|
||||||
|
17060.0 763.1325187902158
|
||||||
|
17070.0 747.9695606512495
|
||||||
|
17080.0 733.0108899888257
|
||||||
|
17090.0 718.2378941774687
|
||||||
|
17100.0 703.6802707006024
|
||||||
|
17110.0 689.3200740592449
|
||||||
|
17120.0 675.1484180538769
|
||||||
|
17130.0 661.1772283643826
|
||||||
|
17140.0 647.4029267672108
|
||||||
|
17150.0 633.8133144520649
|
||||||
|
17160.0 620.4231905966275
|
||||||
|
17170.0 607.2137164548266
|
||||||
|
17180.0 594.2020648590451
|
||||||
|
17190.0 581.3783456474185
|
||||||
|
17200.0 568.7274210368327
|
||||||
|
17210.0 556.2733857970691
|
||||||
|
17220.0 544.0045977017528
|
||||||
|
17230.0 531.9117824415157
|
||||||
|
17240.0 519.9971020875178
|
||||||
|
17250.0 508.2678056184506
|
||||||
|
17260.0 496.71467779586277
|
||||||
|
17270.0 485.3427232164403
|
||||||
|
17280.0 474.1374682331266
|
||||||
|
17290.0 463.1120302522859
|
||||||
|
17300.0 452.26178665747074
|
||||||
|
17310.0 441.575171561372
|
||||||
|
17320.0 431.06841514926606
|
||||||
|
17330.0 420.7248016629219
|
||||||
|
17340.0 410.5455962743998
|
||||||
|
17350.0 400.5381056021479
|
||||||
|
17360.0 390.692606578034
|
||||||
|
17370.0 381.01256962550866
|
||||||
|
17380.0 371.49059203665655
|
||||||
|
17390.0 362.1385795412321
|
||||||
|
17400.0 352.9374563180437
|
||||||
|
17410.0 343.89363070121476
|
||||||
|
17420.0 335.0149122363285
|
||||||
|
17430.0 326.2810786848798
|
||||||
|
17440.0 317.7041270409196
|
||||||
|
17450.0 309.27957718766265
|
||||||
|
17460.0 301.0107264179578
|
||||||
|
17470.0 292.88782336642765
|
||||||
|
17480.0 284.9186052303832
|
||||||
|
17490.0 277.0936223153505
|
||||||
|
17500.0 269.41820031707056
|
||||||
|
17510.0 261.8883409551077
|
||||||
|
17520.0 254.50167234406157
|
||||||
|
17530.0 247.25811424081263
|
||||||
|
17540.0 240.15673078197244
|
||||||
|
17550.0 233.1964162491122
|
||||||
|
17560.0 226.37615287644778
|
||||||
|
17570.0 219.6924947596777
|
||||||
|
17580.0 213.14795710242234
|
||||||
|
17590.0 206.7333310548883
|
||||||
|
17600.0 200.45259075229302
|
||||||
|
17610.0 194.30102616977774
|
||||||
|
17620.0 188.27566991731828
|
||||||
|
17630.0 182.3796313106596
|
||||||
|
17640.0 176.60863758080657
|
||||||
|
17650.0 170.9619608607341
|
||||||
|
17660.0 165.43719009680015
|
||||||
|
17670.0 160.03533971145148
|
||||||
|
17680.0 154.75268002752233
|
||||||
|
17690.0 149.59013583552016
|
||||||
|
17700.0 144.5407096228448
|
||||||
|
17710.0 139.60946073903887
|
||||||
|
17720.0 134.79274745016315
|
||||||
|
17730.0 130.09050970754674
|
||||||
|
17740.0 125.49983265538104
|
||||||
|
17750.0 121.02105847914751
|
||||||
|
17760.0 116.65005220556819
|
||||||
|
17770.0 112.38900206712604
|
||||||
|
17780.0 108.23370450262375
|
||||||
|
17790.0 104.18525080537835
|
||||||
|
17800.0 100.24013083467196
|
||||||
|
17810.0 96.39772145483639
|
||||||
|
17820.0 92.65717123562793
|
||||||
|
17830.0 89.0162460869758
|
||||||
|
17840.0 85.47462006423214
|
||||||
|
17850.0 82.03090410010446
|
||||||
|
17860.0 78.68169683311878
|
||||||
|
17870.0 75.42879564467147
|
||||||
|
17880.0 72.26661207443473
|
||||||
|
17890.0 69.19740085849467
|
||||||
|
17900.0 66.2188166204438
|
||||||
|
17910.0 63.329476362960214
|
||||||
|
17920.0 60.52817559123287
|
||||||
|
17930.0 57.81382840461139
|
||||||
|
17940.0 55.18459677046772
|
||||||
|
17950.0 52.639207385766255
|
||||||
|
17960.0 50.17628063513036
|
||||||
|
17970.0 47.79485685506756
|
||||||
|
17980.0 45.49349261460641
|
||||||
|
17990.0 43.27070393645204
|
||||||
|
18000.0 41.124820497329566
|
||||||
|
18010.0 39.05416297660028
|
||||||
|
18020.0 37.05763103192207
|
||||||
|
18030.0 35.13403855083936
|
||||||
|
18040.0 33.28241970446307
|
||||||
|
18050.0 31.501328016008742
|
||||||
|
18060.0 29.789232968602683
|
||||||
|
18070.0 28.14480287113967
|
||||||
|
18080.0 26.566892964175935
|
||||||
|
18090.0 25.053956614987822
|
||||||
|
18100.0 23.604395867135885
|
||||||
|
18110.0 22.21670656050556
|
||||||
|
18120.0 20.889529413788292
|
||||||
|
18130.0 19.62201632664601
|
||||||
|
18140.0 18.412882964633525
|
||||||
|
18150.0 17.260422663377845
|
||||||
|
18160.0 16.16336469143388
|
||||||
|
18170.0 15.120474319163025
|
||||||
|
18180.0 14.130233108077414
|
||||||
|
18190.0 13.190878829930073
|
||||||
|
18200.0 12.301470618491864
|
||||||
|
18210.0 11.460817915538579
|
||||||
|
18220.0 10.667432266646426
|
||||||
|
18230.0 9.91985795035206
|
||||||
|
18240.0 9.21683299142454
|
||||||
|
18250.0 8.556612650396238
|
||||||
|
18260.0 7.938160755458398
|
||||||
|
18270.0 7.3601775328248
|
||||||
|
18280.0 6.8213004386287
|
||||||
|
18290.0 6.320297242431397
|
||||||
|
18300.0 5.855529641786286
|
||||||
|
18310.0 5.425186892341504
|
||||||
|
18320.0 5.028036943022659
|
||||||
|
18330.0 4.6631960393091365
|
||||||
|
18340.0 4.32930799884052
|
||||||
|
18350.0 4.0249367725373055
|
||||||
|
18360.0 3.7486423441053933
|
||||||
|
18370.0 3.499083287193633
|
||||||
|
18380.0 3.2748421288122014
|
||||||
|
18390.0 3.0745715651847014
|
||||||
|
18400.0 2.8964113339074795
|
||||||
|
18410.0 2.7395339740716547
|
||||||
|
18420.0 2.60254765486773
|
||||||
|
18430.0 2.4840384601692094
|
||||||
|
18440.0 2.38261999444518
|
||||||
|
18450.0 2.2966842827978713
|
||||||
|
18460.0 2.225103820486433
|
||||||
|
18470.0 2.166504319747381
|
||||||
|
18480.0 2.119417872453323
|
||||||
|
18490.0 2.082513315540327
|
||||||
|
18500.0 2.0544548933160414
|
||||||
|
18510.0 2.033862847336914
|
||||||
|
18520.0 2.019465429438452
|
||||||
|
18530.0 2.010044135140901
|
||||||
|
18540.0 2.004413085375449
|
||||||
|
18550.0 2.0014591003363216
|
||||||
|
18560.0 2.0002524725947946
|
||||||
|
18570.0 2.0000024904161795
|
||||||
|
18580.0 2.0
|
||||||
|
18590.0 2.0
|
||||||
|
18600.0 2.0
|
Loading…
x
Reference in New Issue
Block a user