def _computeChebyshevDerivative(self, star): """Return the derivatives w.r.t. the Chebyshev components.""" cx = (self.bbox.getMinX() + self.bbox.getMaxX())/2.0 cy = (self.bbox.getMinY() + self.bbox.getMaxY())/2.0 sx = 2.0 / self.bbox.getWidth() sy = 2.0 / self.bbox.getHeight() Tx = np.array([CHEBYSHEV_T[i](sx*(star.getXFocal() - cx)) for i in range(self.order+1)], dtype=float) Ty = np.array([CHEBYSHEV_T[i](sy*(star.getYFocal() - cy)) for i in range(self.order+1)], dtype=float) expect = [] for j in range(len(Ty)): for i in range(0, self.order-j+1): expect.append(Ty[j]*Tx[i]) return np.array(expect)
def _computeChipDerivative(self, star): return self.value * self._evaluate_chebyshev(star.getXFocal(), star.getYFocal())