# HG changeset patch # User David Barts # Date 1613576630 28800 # Node ID 6ae738b8a814234de32b0c1c502e0ffa0b834dfd # Parent e8059b166de1a53ad49bbdef62e79905f53e8e67 Memoize. Only modest improvement results. diff -r e8059b166de1 -r 6ae738b8a814 app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt --- a/app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt Tue Feb 16 17:29:52 2021 -0800 +++ b/app/src/main/java/com/bartsent/simpleresizer/lib/LanczosKernel.kt Wed Feb 17 07:43:50 2021 -0800 @@ -6,12 +6,19 @@ object LanczosKernel: ScalingKernel { override val size = 3.0 + private val memory = HashMap() + init { + memory.put(0.0, 1.0) + } private fun sinc(x: Double): Double { - if (x == 0.0) - return 1.0 + val remembered = memory.get(x) + if (remembered != null) + return remembered val pix = PI * x - return sin(pix) / pix + val calculated = sin(pix) / pix + memory.put(x, calculated) + return calculated } override fun weight(x: Double): Double =