Source code for monalisa.fourier._fc

"""Port of src/fourier123/prep_function/bmFC.m."""

import numpy as np

from monalisa._mat import double, int32, isempty, single, vec
from monalisa.array._col_reshape import col_reshape


[docs] def fc(C, N_u, n_u, dK_u): """Fourier scaling ``1/prod(N_u)/prod(dK_u)`` times ``C``, column format, single.""" if isempty(n_u): n_u = N_u C = single(C) N_u = double(int32(vec(N_u))) n_u = double(int32(vec(n_u))) dK_u = double(single(vec(dK_u))) F = np.float32(1 / np.prod(N_u) / np.prod(dK_u)) return single(F * single(col_reshape(C, n_u)))