Mercurial > cgi-bin > hgweb.cgi > SimpleResizer
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 |