comparison app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt @ 11:678adef4774f memo

Move more stuff into worker threads.
author David Barts <n5jrn@me.com>
date Wed, 17 Feb 2021 14:29:45 -0800
parents 6ae738b8a814
children b1605be35bcc
comparison
equal deleted inserted replaced
10:5626557ac542 11:678adef4774f
10 init { 10 init {
11 memory.put(0.0, 1.0) 11 memory.put(0.0, 1.0)
12 } 12 }
13 13
14 private fun sinc(x: Double): Double { 14 private fun sinc(x: Double): Double {
15 val remembered = memory.get(x) 15 val remembered = memory[x]
16 if (remembered != null) 16 if (remembered != null)
17 return remembered 17 return remembered
18 val pix = PI * x 18 val pix = PI * x
19 val calculated = sin(pix) / pix 19 val calculated = sin(pix) / pix
20 memory.put(x, calculated) 20 memory[x] = calculated
21 return calculated 21 return calculated
22 } 22 }
23 23
24 override fun weight(x: Double): Double = 24 override fun weight(x: Double): Double =
25 if (abs(x) < size) sinc(x) * sinc(x/size) else 0.0 25 if (abs(x) < size) sinc(x) * sinc(x/size) else 0.0