shenfun.optimization package¶
Submodules¶
shenfun.optimization.cython module¶
- chebval(x, c)¶
- convolve_1D(u, v, uv, k)¶
- convolve_real_1D(u, v, uv, k)¶
- evaluate_2D(b, u, P, r2c, M, start)¶
- evaluate_3D(b, u, P, r2c, M, start)¶
- evaluate_lm_2D(bases, b, u, x0, x1, w0, w1, r2c, M, start)¶
- evaluate_lm_3D(bases, b, u, x0, x1, x2, w0, w1, w2, r2c, M, start)¶
- Biharmonic_Solve(b, u, u0, u1, u2, l0, l1, ak, bk, a0, axis=0)¶
- Biharmonic_factor_oe_pr(odd, a, b, l0, l1)¶
- Biharmonic_factor_pr(a, b, l0, l1, axis)¶
- Biharmonic_factor_pr_1D(a, b, l0, l1)¶
- Biharmonic_factor_pr_2D(axis, a, b, l0, l1)¶
- Biharmonic_factor_pr_3D(axis, a, b, l0, l1)¶
- DiagMA_Solve(u, data, axis)¶
- DiagMA_Solve_2D(u, data, axis)¶
- DiagMA_Solve_3D(u, data, axis)¶
- DiagMA_inner_solve(u, data)¶
- FDMA_LU(data)¶
- FDMA_Solve(u, data, axis)¶
- FDMA_inner_solve(u, data)¶
- HeptaDMA_LU(data)¶
- HeptaDMA_Solve(u, data, axis)¶
- HeptaDMA_inner_solve(u, data)¶
- LU_Biharmonic(a0, alfa, beta, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, u0, u1, u2, l0, l1, axis)¶
- LU_Biharmonic_1D(a, b, c, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, u0, u1, u2, l0, l1)¶
- LU_Biharmonic_2D_n(axis, alfa, beta, ceta, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, u0, u1, u2, l0, l1)¶
- LU_Biharmonic_3D_n(axis, alfa, beta, ceta, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, u0, u1, u2, l0, l1)¶
- LU_Helmholtz(A, B, A_s, B_s, neumann, d0, d1, d2, L, axis)¶
- LU_Helmholtz_1D(A, B, A_scale, B_scale, neumann, d0, d1, d2, L)¶
- LU_Helmholtz_2D(A, B, axis, A_scale, B_scale, neumann, d0, d1, d2, L)¶
- LU_Helmholtz_3D(A, B, axis, A_scale, B_scale, neumann, d0, d1, d2, L)¶
- LU_oe_Biharmonic_1D(odd, a, b, c, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, u0, u1, u2, l0, l1)¶
- PDMA_LU(data)¶
- PDMA_Solve(u, data, axis)¶
- PDMA_inner_solve(u, data)¶
- Poisson_Solve_ADD(A, b, u, axis=0)¶
- Poisson_Solve_ADD_2D_ptr(d, d1, scale, b, u, axis)¶
- Poisson_Solve_ADD_3D_ptr(d, d1, scale, b, u, axis)¶
- Solve_Biharmonic_1D(fk, uk, u0, u1, u2, l0, l1, a, b, ac)¶
- Solve_Biharmonic_2D_n(axis, fk, uk, u0, u1, u2, l0, l1, a, b, a0)¶
- Solve_Biharmonic_3D_n(axis, fk, uk, u0, u1, u2, l0, l1, a, b, a0)¶
- Solve_Helmholtz(b, u, neumann, d0, d1, d2, L, axis)¶
- Solve_Helmholtz_1D(fk, u_hat, neumann, d0, d1, d2, L)¶
- Solve_Helmholtz_2D_ptr(axis, fk, u_hat, neumann, d0, d1, d2, L)¶
- Solve_Helmholtz_3D_ptr(axis, fk, u_hat, neumann, d0, d1, d2, L)¶
- Solve_oe_Biharmonic_1D(odd, fk, uk, u0, u1, u2, l0, l1, a, b, ac)¶
Solve (aS+b*A+cB)x = f, where S, A and B are 4th order Laplace, stiffness and mass matrices of Shen with Dirichlet BC
- SolverGeneric1ND_solve_data(u, data, sol, naxes, is_zero_index)¶
- TDMA_LU(data)¶
- TDMA_O_LU(data)¶
- TDMA_O_Solve(u, data, axis)¶
- TDMA_O_inner_solve(u, data)¶
- TDMA_Solve(u, data, axis)¶
- TDMA_inner_solve(u, data)¶
- ThreeDMA_Solve(u, data, axis)¶
- ThreeDMA_inner_solve(u, data)¶
- TwoDMA_Solve(u, data, axis)¶
- TwoDMA_inner_solve(u, data)¶
- ADD_matvec(v, b, axis, dd)¶
- ATT_matvec(v, b, axis)¶
- BBD_matvec(v, b, axis, ld, dd, ud, uud)¶
- BDN_matvec(v, b, axis, ld, dd, ud)¶
- Biharmonic_matvec(v, b, a0, alfa, beta, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, axis=0)¶
- CBD_matvec(v, b, axis, ld, ud, udd)¶
- CDB_matvec(v, b, axis, lld, ld, ud)¶
- CDD_matvec(v, b, axis, ld, ud)¶
- CDN_matvec(v, b, axis, ld, ud)¶
- CLL_matvec(v, b, axis)¶
- CTSD_matvec(v, b, axis)¶
- CTT_matvec(v, b, axis)¶
- GLL_matvec(v, b, axis)¶
- Helmholtz_Neumann_matvec(v, b, alfa, beta, A, B, axis)¶
- Helmholtz_matvec(v, b, alfa, beta, A, B, axis)¶
- Pentadiagonal_matvec(v, b, axis, ldd, ld, dd, ud, udd)¶
- SBB_matvec(v, b, axis, dd)¶
- Tridiagonal_matvec(v, b, axis, ld, dd, ud)¶
- imult(array, scale)¶
- FMMcheb(input_array, output_array, axis, Nn, A, Nk, T, Th, ThT, D, Mmin, s, diags, trans)¶
- FMMdirect1(input_array, output_array, axis, a, n0, trans)¶
- FMMdirect2(input_array, output_array, axis, a, h, Nd, n0, trans)¶
- FMMdirect3(input_array, output_array, axis, dn, a, h, Nd, n0)¶
- FMMdirect4(input_array, output_array, axis, dn, a, n0)¶
- Lambda(x)¶
Return
\[\Lambda(x) =\]rac{Gamma(x+ rac{1}{2})}{Gamma(x+1)}
x : array of floats
- cheb2leg(input_array, output_array, axis=0)¶
- chebval(x, u)¶
- evaluate_expansion_all(input_array, output_array, x, axis, a)¶
- leg2cheb(input_array, output_array, axis=0, transpose=0)¶
- normf(u)¶
- restricted_product(L, input_array, output_array, x, i0, i1, a0, axis, a)¶
- scalar_product(input_array, output_array, x, w, axis, a)¶
shenfun.optimization.numba module¶
- Biharmonic_matvec(v, b, a0, alfa, beta, sii, siu, siuu, ail, aii, aiu, bill, bil, bii, biu, biuu, axis)[source]¶
Module contents¶
Module for optimized functions
Some methods performed in Python may be slowing down solvers. In this optimization module we place optimized functions that are to be used instead of default Python methods. Some methods are implemented solely in Cython and only called from within the regular Python modules.
- optimizer(func, wrap=True)[source]¶
Decorator used to wrap calls to optimized versions of functions.
The optimized version must be implemented in the cython or numba modules. For example, the
la.TDMAlinear algebra solver has a method calledSolve(), which is implemented with faster (optimized) code inTDMA_Solve()andTDMA_Solve().- Parameters:
func (The function to optimize)
wrap (bool, optional) – If True, return function wrapped using functools wraps. If False, return unwrapped function.