def dyf(self, y, x): [ix, x_diff] = spline1D.roundAndCheck(x, self.max_i) [iy, y_diff] = spline1D.roundAndCheck(y, self.max_i) if (ix == -1) or (iy == -1): return 0.0 yval = 0.0 for i in range(4): for j in range(3): yval += float(j+1) * self.coeff[ix, iy, 4*i+j+1] * math.pow(x_diff, i) * math.pow(y_diff, j) return yval
def f(self, y, x): [ix, x_diff] = spline1D.roundAndCheck(x, self.max_i) [iy, y_diff] = spline1D.roundAndCheck(y, self.max_i) if (ix == -1) or (iy == -1): return 0.0 yval = 0.0 for i in range(4): for j in range(4): yval += self.coeff[ix, iy, 4 * i + j] * math.pow( x_diff, i) * math.pow(y_diff, j) return yval
def dxf(self, z, y, x): [ix, x_diff] = spline1D.roundAndCheck(x, self.max_i) [iy, y_diff] = spline1D.roundAndCheck(y, self.max_i) [iz, z_diff] = spline1D.roundAndCheck(z, self.max_i) if (ix == -1) or (iy == -1) or (iz == -1): return 0.0 yval = 0.0 for i in range(3): for j in range(4): for k in range(4): yval += float(i+1) * self.coeff[ix, iy, iz, (i+1)*16+j*4+k] * math.pow(x_diff, i) * math.pow(y_diff, j) * math.pow(z_diff, k) return yval
def f(self, z, y, x): [ix, x_diff] = spline1D.roundAndCheck(x, self.max_i) [iy, y_diff] = spline1D.roundAndCheck(y, self.max_i) [iz, z_diff] = spline1D.roundAndCheck(z, self.max_i) if (ix == -1) or (iy == -1) or (iz == -1): return 0.0 yval = 0.0 for i in range(4): for j in range(4): for k in range(4): yval += self.coeff[ix, iy, iz, i*16+j*4+k] * math.pow(x_diff, i) * math.pow(y_diff, j) * math.pow(z_diff, k) return yval