extern inline m34sf gradient(m34sf m, float a) { return (m34sf) { deriv_x(m.x, m.y, m.z, a), deriv_y(m.x, m.y, m.z, a), deriv_z(m.x, m.y, m.z, a) }; }
void gradient(const ScalarField<T, S>& f, ScalarField<S, S>& g_x, ScalarField<S, S>& g_y) { deriv_x(f, g_x); deriv_y(f, g_y); }