import numpy as np class smberror(Exception): """ this is a silly little exception subclass """ def __init__(self, val): self.value = val def __str__(self): return repr(self.value) def rms(errors): """ root mean square calculation """ r = 0.0 for i in errors: r += np.power(i, 2) r = np.sqrt(r / len(errors)) return r def exact_func(x, y): """ the exact function used from baker's article (for testing) """ return np.power((np.sin(x * np.pi) * np.cos(y * np.pi)), 2) def exact_func_3D(X): """ the exact function (3D) used from baker's article (for testing) """ x = X[0] y = X[1] z = X[2] return np.power((np.sin(x * np.pi / 2.0) * np.sin(y * np.pi / 2.0) * np.sin(z * np.pi / 2.0)), 2)