![]() |
FrontISTR
6.0.0
Large-scale structural analysis program with finit element method
|
Dense kernels of the multifrontal solver, symmetric (LDLt) and unsymmetric (LU) mode. More...
Functions/Subroutines | |
| subroutine, public | hecmw_mf_kernel_ldlt (n, lda, a, zero, info) |
| In place LDLt of the lower triangle of a(n,n) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success. More... | |
| subroutine, public | hecmw_mf_kernel_trsm (m, n, ldl, l, lda, a) |
| a(m,n) <- a * L^-T * D^-1 with L, D taken from the factored tile l(n,n) (1x1 pivots only). More... | |
| subroutine, public | hecmw_mf_kernel_panel_nopiv (m, n, lda, a, u, zero, info) |
| Factor the panel a(m,n) (leading n x n block LDLt, rows below by the panel solve) without pivoting and check the threshold u afterwards: info is 0 when every pivot magnitude is above zero and every entry of L is bounded by 1/u, otherwise the first column that fails. More... | |
| subroutine, public | hecmw_mf_kernel_panel_piv (m, n, lda, a, blk, u, alpha, zero, allow_delay, wk, npiv, perm, ptype, dsub, nswap, n2x2, info) |
| Factor the panel a(m,n) with 1x1 and 2x2 pivots chosen among its n columns. A column is accepted as a 1x1 pivot when it satisfies the threshold u against the whole column; else a partner is searched, first among the columns of the same block (blk), then among the others, and the Bunch-Kaufman rule with alpha decides between a 1x1 pivot on the partner and a 2x2 pivot, the latter accepted when the entries of L stay bounded by 1/u. Columns without an acceptable pivot are moved to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, perm(j) is the original column at position j, and blk is permuted alike. wk holds 2*m words. More... | |
| subroutine, public | hecmw_mf_kernel_scale (m, n, ldl, l, ptype, dsub, lda, a, w) |
| w(m,n) <- a * D with the block diagonal D of the factored tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel_gemm (m, n, k, ldw, w, ldb, b, ldc, c) |
| c(m,n) <- c - w(m,k) * b(n,k)^T More... | |
| subroutine, public | hecmw_mf_kernel_trsv (n, ldl, l, x) |
| x <- L^-1 x with the unit lower triangle of the tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel_trsv_t (n, ldl, l, x) |
| x <- L^-T x with the unit lower triangle of the tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel_dsolve (n, ldl, l, ptype, dsub, x) |
| x <- D^-1 x with the block diagonal D of the factored tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel_gemv (m, n, lda, a, x, y) |
| y(m) <- y - a(m,n) * x(n) More... | |
| subroutine, public | hecmw_mf_kernel_gemv_t (m, n, lda, a, x, y) |
| y(n) <- y - a(m,n)^T * x(m) More... | |
| subroutine, public | hecmw_mf_kernel_lu (n, lda, a, ldb, b, zero, info) |
| In place LU of the n x n block held in a (diagonal and below) and b (above, transposed) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success. More... | |
| subroutine, public | hecmw_mf_kernel_trsm_rt (m, n, ldt, t, unit, lda, a) |
| a(m,n) <- a * T^-T with the lower triangle of t(n,n), unit diagonal when unit. More... | |
| subroutine, public | hecmw_mf_kernel_panel_lu_nopiv (m, n, lda, a, ldb, b, u, zero, info) |
| LU of the panel a(m,n), b(m,n) (leading n x n block, rows below by the panel solves) without pivoting and the threshold check afterwards, as panel_nopiv. The diagonal of b receives the diagonal of U. More... | |
| subroutine, public | hecmw_mf_kernel_panel_lu_piv (m, n, lda, a, ldb, b, blk, blkr, u, zero, allow_delay, npiv, permc, permr, nswap, info) |
| LU of the panel a(m,n), b(m,n) with threshold partial pivoting among its n rows: column p takes the row of largest magnitude among the rows of the same block (blkr against blk(p)), else among the other panel rows, when it reaches u times the largest magnitude of the whole column. Rows are exchanged, columns are not. Columns without an acceptable pivot are moved with their rows to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, permc(j) and permr(j) are the original column and row at position j, and blk, blkr are permuted alike. More... | |
| subroutine, public | hecmw_mf_kernel_usolve (n, ldl, l, ldu, ut, x) |
| x <- U^-1 x with the diagonal of U on the diagonal of l(n,n) and its strictly upper part transposed in the strictly lower part of ut(n,n). More... | |
| logical function, public | hecmw_mf_kernel_blr_available () |
| Whether the BLR compression is available (LAPACK build). More... | |
| subroutine, public | hecmw_mf_kernel_compress (m, n, lda, a, eps, ldv, v, rank, rcap) |
| Truncated rank revealing QR of a(m,n) with the truncation |R(k,k)| <= eps |R(1,1)|: on success the leading rank columns of a hold U and v(n,rank) holds V with a ~ U V^T. rank is -1, with a destroyed, when the low rank form would not take fewer than m*n words (the caller keeps its full rank copy) or without LAPACK. The column pivoted Householder QR stops right at the truncation or at the word bound, so the cost is O(m*n*rank) where dgeqp3 pays the full decomposition. The pivot column is selected by downdated norms with the dgeqp3 recomputation guard, but the truncation is decided on the freshly computed norm so a stale estimate cannot end the sweep early. rcap tightens the word bound: the sweep gives up (rank = -1) beyond min(rlim, rcap). The pivoted sweep with the downdated column norms is adapted from LAPACK's dlaqp2 (with the norm recomputation guard of LAPACK Working Note 176) and the explicit formation of the Q columns follows dorg2r. LAPACK is distributed under the modified BSD license: More... | |
| subroutine, public | hecmw_mf_kernel_mult_nn (m, n, k, lda, a, ldb, b, ldc, c) |
| c(m,n) <- a(m,k) * b(k,n) More... | |
| subroutine, public | hecmw_mf_kernel_mult_tn (m, n, k, lda, a, ldb, b, ldc, c) |
| c(m,n) <- a(k,m)^T * b(k,n) More... | |
| subroutine, public | hecmw_mf_kernel_mult_tv (m, n, lda, a, x, y) |
| y(n) <- a(m,n)^T * x(m) More... | |
| subroutine, public | hecmw_mf_kernel_scale_rows (n, r, ldl, l, ptype, dsub, ldv, v, ldw, w) |
| w(n,r) <- D * v(n,r) with the block diagonal D of the factored tile l(n,n). More... | |
Dense kernels of the multifrontal solver, symmetric (LDLt) and unsymmetric (LU) mode.
A tile or panel is a column major block a(lda,*); only the part on or below the diagonal of its leading square is referenced. Factored columns hold the unit lower triangle of L below the diagonal and D on the diagonal. D is block diagonal: ptype(j) is 1 for a 1x1 pivot, 2 and 3 for the first and second column of a 2x2 pivot whose off-diagonal entry is dsub(j) of the first column (the L entry at that position is 0). The BLAS3 path is used when HECMW_WITH_LAPACK is defined, otherwise plain loops.
In LU mode the part above the diagonal is held transposed in a second block b of the same shape, b(i,j) = A(j,i) for i > j, so that the row of U of a pivot is a column of b. Factored columns then hold L below the diagonal of a, U on the diagonal of a and in the columns of b.
| logical function, public hecmw_mf_kernel::hecmw_mf_kernel_blr_available |
Whether the BLR compression is available (LAPACK build).
Definition at line 787 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_compress | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| real(kind=kreal), intent(in) | eps, | ||
| integer(kind=kint), intent(in) | ldv, | ||
| real(kind=kreal), dimension(ldv,*), intent(out) | v, | ||
| integer(kind=kint), intent(out) | rank, | ||
| integer(kind=kint), intent(in), optional | rcap | ||
| ) |
Truncated rank revealing QR of a(m,n) with the truncation |R(k,k)| <= eps |R(1,1)|: on success the leading rank columns of a hold U and v(n,rank) holds V with a ~ U V^T. rank is -1, with a destroyed, when the low rank form would not take fewer than m*n words (the caller keeps its full rank copy) or without LAPACK. The column pivoted Householder QR stops right at the truncation or at the word bound, so the cost is O(m*n*rank) where dgeqp3 pays the full decomposition. The pivot column is selected by downdated norms with the dgeqp3 recomputation guard, but the truncation is decided on the freshly computed norm so a stale estimate cannot end the sweep early. rcap tightens the word bound: the sweep gives up (rank = -1) beyond min(rlim, rcap). The pivoted sweep with the downdated column norms is adapted from LAPACK's dlaqp2 (with the norm recomputation guard of LAPACK Working Note 176) and the explicit formation of the Q columns follows dorg2r. LAPACK is distributed under the modified BSD license:
Copyright (c) 1992-2025 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright (c) 2000-2025 The University of California Berkeley. All rights reserved. Copyright (c) 2006-2025 The University of Colorado Denver. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Definition at line 840 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_dsolve | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| integer(kind=kint), dimension(n), intent(in) | ptype, | ||
| real(kind=kreal), dimension(n), intent(in) | dsub, | ||
| real(kind=kreal), dimension(n), intent(inout) | x | ||
| ) |
x <- D^-1 x with the block diagonal D of the factored tile l(n,n).
Definition at line 435 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_gemm | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | k, | ||
| integer(kind=kint), intent(in) | ldw, | ||
| real(kind=kreal), dimension(ldw,*), intent(in) | w, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(in) | b, | ||
| integer(kind=kint), intent(in) | ldc, | ||
| real(kind=kreal), dimension(ldc,*), intent(inout) | c | ||
| ) |
c(m,n) <- c - w(m,k) * b(n,k)^T
Definition at line 381 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_gemv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| real(kind=kreal), dimension(n), intent(in) | x, | ||
| real(kind=kreal), dimension(m), intent(inout) | y | ||
| ) |
y(m) <- y - a(m,n) * x(n)
Definition at line 462 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_gemv_t | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| real(kind=kreal), dimension(m), intent(in) | x, | ||
| real(kind=kreal), dimension(n), intent(inout) | y | ||
| ) |
y(n) <- y - a(m,n)^T * x(m)
Definition at line 478 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_ldlt | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| real(kind=kreal), intent(in) | zero, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
In place LDLt of the lower triangle of a(n,n) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success.
Definition at line 49 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_lu | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(inout) | b, | ||
| real(kind=kreal), intent(in) | zero, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
In place LU of the n x n block held in a (diagonal and below) and b (above, transposed) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success.
Definition at line 496 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_mult_nn | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | k, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(in) | b, | ||
| integer(kind=kint), intent(in) | ldc, | ||
| real(kind=kreal), dimension(ldc,*), intent(out) | c | ||
| ) |
c(m,n) <- a(m,k) * b(k,n)
Definition at line 950 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_mult_tn | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | k, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(in) | b, | ||
| integer(kind=kint), intent(in) | ldc, | ||
| real(kind=kreal), dimension(ldc,*), intent(out) | c | ||
| ) |
c(m,n) <- a(k,m)^T * b(k,n)
Definition at line 976 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_mult_tv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| real(kind=kreal), dimension(m), intent(in) | x, | ||
| real(kind=kreal), dimension(n), intent(out) | y | ||
| ) |
y(n) <- a(m,n)^T * x(m)
Definition at line 1000 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_panel_lu_nopiv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(inout) | b, | ||
| real(kind=kreal), intent(in) | u, | ||
| real(kind=kreal), intent(in) | zero, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
LU of the panel a(m,n), b(m,n) (leading n x n block, rows below by the panel solves) without pivoting and the threshold check afterwards, as panel_nopiv. The diagonal of b receives the diagonal of U.
Definition at line 564 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_panel_lu_piv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| integer(kind=kint), intent(in) | ldb, | ||
| real(kind=kreal), dimension(ldb,*), intent(inout) | b, | ||
| integer(kind=kint), dimension(n), intent(inout) | blk, | ||
| integer(kind=kint), dimension(n), intent(inout) | blkr, | ||
| real(kind=kreal), intent(in) | u, | ||
| real(kind=kreal), intent(in) | zero, | ||
| logical, intent(in) | allow_delay, | ||
| integer(kind=kint), intent(out) | npiv, | ||
| integer(kind=kint), dimension(n), intent(out) | permc, | ||
| integer(kind=kint), dimension(n), intent(out) | permr, | ||
| integer(kind=kint), intent(out) | nswap, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
LU of the panel a(m,n), b(m,n) with threshold partial pivoting among its n rows: column p takes the row of largest magnitude among the rows of the same block (blkr against blk(p)), else among the other panel rows, when it reaches u times the largest magnitude of the whole column. Rows are exchanged, columns are not. Columns without an acceptable pivot are moved with their rows to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, permc(j) and permr(j) are the original column and row at position j, and blk, blkr are permuted alike.
Definition at line 600 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_panel_nopiv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| real(kind=kreal), intent(in) | u, | ||
| real(kind=kreal), intent(in) | zero, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
Factor the panel a(m,n) (leading n x n block LDLt, rows below by the panel solve) without pivoting and check the threshold u afterwards: info is 0 when every pivot magnitude is above zero and every entry of L is bounded by 1/u, otherwise the first column that fails.
Definition at line 115 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_panel_piv | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a, | ||
| integer(kind=kint), dimension(n), intent(inout) | blk, | ||
| real(kind=kreal), intent(in) | u, | ||
| real(kind=kreal), intent(in) | alpha, | ||
| real(kind=kreal), intent(in) | zero, | ||
| logical, intent(in) | allow_delay, | ||
| real(kind=kreal), dimension(2*m), intent(inout) | wk, | ||
| integer(kind=kint), intent(out) | npiv, | ||
| integer(kind=kint), dimension(n), intent(out) | perm, | ||
| integer(kind=kint), dimension(n), intent(out) | ptype, | ||
| real(kind=kreal), dimension(n), intent(out) | dsub, | ||
| integer(kind=kint), intent(out) | nswap, | ||
| integer(kind=kint), intent(out) | n2x2, | ||
| integer(kind=kint), intent(out) | info | ||
| ) |
Factor the panel a(m,n) with 1x1 and 2x2 pivots chosen among its n columns. A column is accepted as a 1x1 pivot when it satisfies the threshold u against the whole column; else a partner is searched, first among the columns of the same block (blk), then among the others, and the Bunch-Kaufman rule with alpha decides between a 1x1 pivot on the partner and a 2x2 pivot, the latter accepted when the entries of L stay bounded by 1/u. Columns without an acceptable pivot are moved to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, perm(j) is the original column at position j, and blk is permuted alike. wk holds 2*m words.
Definition at line 146 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_scale | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| integer(kind=kint), dimension(n), intent(in) | ptype, | ||
| real(kind=kreal), dimension(n), intent(in) | dsub, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(in) | a, | ||
| real(kind=kreal), dimension(m,n), intent(out) | w | ||
| ) |
w(m,n) <- a * D with the block diagonal D of the factored tile l(n,n).
Definition at line 352 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_scale_rows | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | r, | ||
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| integer(kind=kint), dimension(n), intent(in) | ptype, | ||
| real(kind=kreal), dimension(n), intent(in) | dsub, | ||
| integer(kind=kint), intent(in) | ldv, | ||
| real(kind=kreal), dimension(ldv,*), intent(in) | v, | ||
| integer(kind=kint), intent(in) | ldw, | ||
| real(kind=kreal), dimension(ldw,*), intent(out) | w | ||
| ) |
w(n,r) <- D * v(n,r) with the block diagonal D of the factored tile l(n,n).
Definition at line 1017 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_trsm | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a | ||
| ) |
a(m,n) <- a * L^-T * D^-1 with L, D taken from the factored tile l(n,n) (1x1 pivots only).
Definition at line 78 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_trsm_rt | ( | integer(kind=kint), intent(in) | m, |
| integer(kind=kint), intent(in) | n, | ||
| integer(kind=kint), intent(in) | ldt, | ||
| real(kind=kreal), dimension(ldt,*), intent(in) | t, | ||
| logical, intent(in) | unit, | ||
| integer(kind=kint), intent(in) | lda, | ||
| real(kind=kreal), dimension(lda,*), intent(inout) | a | ||
| ) |
a(m,n) <- a * T^-T with the lower triangle of t(n,n), unit diagonal when unit.
Definition at line 529 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_trsv | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| real(kind=kreal), dimension(n), intent(inout) | x | ||
| ) |
x <- L^-1 x with the unit lower triangle of the tile l(n,n).
Definition at line 405 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_trsv_t | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| real(kind=kreal), dimension(n), intent(inout) | x | ||
| ) |
x <- L^-T x with the unit lower triangle of the tile l(n,n).
Definition at line 420 of file hecmw_mf_kernel.F90.
| subroutine, public hecmw_mf_kernel::hecmw_mf_kernel_usolve | ( | integer(kind=kint), intent(in) | n, |
| integer(kind=kint), intent(in) | ldl, | ||
| real(kind=kreal), dimension(ldl,*), intent(in) | l, | ||
| integer(kind=kint), intent(in) | ldu, | ||
| real(kind=kreal), dimension(ldu,*), intent(in) | ut, | ||
| real(kind=kreal), dimension(n), intent(inout) | x | ||
| ) |
x <- U^-1 x with the diagonal of U on the diagonal of l(n,n) and its strictly upper part transposed in the strictly lower part of ut(n,n).
Definition at line 771 of file hecmw_mf_kernel.F90.