001 package railo.runtime.img.interpolation; 002 003 public class Lanczos implements Interpolation 004 { 005 public double f(double x) { 006 if (x < -3.0) 007 return 0.0; 008 if (x < 0.0) 009 return sinc(-x) * sinc(-x / 3.0); 010 if (x < 3.0) 011 return sinc(x) * sinc(x / 3.0); 012 return 0.0; 013 } 014 015 public double sinc(double x) { 016 x *= 3.141592653589793; 017 if (x != 0.0) 018 return Math.sin(x) / x; 019 return 1.0; 020 } 021 022 public double getSupport() { 023 return 3.0; 024 } 025 }