16 use,
intrinsic :: iso_fortran_env, only : int32, real64
17 use ferror,
only : errors
120 module procedure :: mtx_mult_mtx
121 module procedure :: mtx_mult_vec
122 module procedure :: cmtx_mult_mtx
123 module procedure :: cmtx_mult_vec
155 module procedure :: rank1_update_dbl
156 module procedure :: rank1_update_cmplx
290 module procedure :: diag_mtx_mult_mtx
291 module procedure :: diag_mtx_mult_mtx2
292 module procedure :: diag_mtx_mult_mtx3
293 module procedure :: diag_mtx_mult_mtx4
294 module procedure :: diag_mtx_mult_mtx_cmplx
295 module procedure :: diag_mtx_mult_mtx2_cmplx
296 module procedure :: diag_mtx_mult_mtx_mix
297 module procedure :: diag_mtx_mult_mtx2_mix
314 module procedure :: trace_dbl
315 module procedure :: trace_cmplx
362 module procedure :: mtx_rank_dbl
363 module procedure :: mtx_rank_cmplx
395 module procedure :: det_dbl
396 module procedure :: det_cmplx
417 module procedure :: swap_dbl
418 module procedure :: swap_cmplx
436 module procedure :: recip_mult_array_dbl
470 module procedure :: tri_mtx_mult_dbl
471 module procedure :: tri_mtx_mult_cmplx
556 module procedure :: lu_factor_dbl
557 module procedure :: lu_factor_cmplx
678 module procedure :: form_lu_all
679 module procedure :: form_lu_all_cmplx
680 module procedure :: form_lu_only
681 module procedure :: form_lu_only_cmplx
832 module procedure :: qr_factor_no_pivot
833 module procedure :: qr_factor_no_pivot_cmplx
834 module procedure :: qr_factor_pivot
835 module procedure :: qr_factor_pivot_cmplx
992 module procedure :: form_qr_no_pivot
993 module procedure :: form_qr_no_pivot_cmplx
994 module procedure :: form_qr_pivot
995 module procedure :: form_qr_pivot_cmplx
1146 module procedure :: mult_qr_mtx
1147 module procedure :: mult_qr_mtx_cmplx
1148 module procedure :: mult_qr_vec
1149 module procedure :: mult_qr_vec_cmplx
1295 module procedure :: qr_rank1_update_dbl
1296 module procedure :: qr_rank1_update_cmplx
1394 module procedure :: cholesky_factor_dbl
1395 module procedure :: cholesky_factor_cmplx
1493 module procedure :: cholesky_rank1_update_dbl
1494 module procedure :: cholesky_rank1_update_cmplx
1600 module procedure :: cholesky_rank1_downdate_dbl
1601 module procedure :: cholesky_rank1_downdate_cmplx
1673 module procedure :: rz_factor_dbl
1674 module procedure :: rz_factor_cmplx
1764 module procedure :: mult_rz_mtx
1765 module procedure :: mult_rz_mtx_cmplx
1766 module procedure :: mult_rz_vec
1767 module procedure :: mult_rz_vec_cmplx
1888 module procedure :: svd_dbl
1889 module procedure :: svd_cmplx
2022 module procedure :: solve_tri_mtx
2023 module procedure :: solve_tri_mtx_cmplx
2024 module procedure :: solve_tri_vec
2025 module procedure :: solve_tri_vec_cmplx
2110 module procedure :: solve_lu_mtx
2111 module procedure :: solve_lu_mtx_cmplx
2112 module procedure :: solve_lu_vec
2113 module procedure :: solve_lu_vec_cmplx
2245 module procedure :: solve_qr_no_pivot_mtx
2246 module procedure :: solve_qr_no_pivot_mtx_cmplx
2247 module procedure :: solve_qr_no_pivot_vec
2248 module procedure :: solve_qr_no_pivot_vec_cmplx
2249 module procedure :: solve_qr_pivot_mtx
2250 module procedure :: solve_qr_pivot_mtx_cmplx
2251 module procedure :: solve_qr_pivot_vec
2252 module procedure :: solve_qr_pivot_vec_cmplx
2351 module procedure :: solve_cholesky_mtx
2352 module procedure :: solve_cholesky_mtx_cmplx
2353 module procedure :: solve_cholesky_vec
2354 module procedure :: solve_cholesky_vec_cmplx
2441 module procedure :: solve_least_squares_mtx
2442 module procedure :: solve_least_squares_mtx_cmplx
2443 module procedure :: solve_least_squares_vec
2444 module procedure :: solve_least_squares_vec_cmplx
2542 module procedure :: solve_least_squares_mtx_pvt
2543 module procedure :: solve_least_squares_mtx_pvt_cmplx
2544 module procedure :: solve_least_squares_vec_pvt
2545 module procedure :: solve_least_squares_vec_pvt_cmplx
2644 module procedure :: solve_least_squares_mtx_svd
2645 module procedure :: solve_least_squares_vec_svd
2739 module procedure :: mtx_inverse_dbl
2740 module procedure :: mtx_inverse_cmplx
2845 module procedure :: mtx_pinverse_dbl
2846 module procedure :: mtx_pinverse_cmplx
3059 module procedure :: eigen_symm
3060 module procedure :: eigen_asymm
3061 module procedure :: eigen_gen
3062 module procedure :: eigen_cmplx
3142 module procedure :: sort_dbl_array
3143 module procedure :: sort_dbl_array_ind
3144 module procedure :: sort_cmplx_array
3145 module procedure :: sort_cmplx_array_ind
3146 module procedure :: sort_eigen_cmplx
3147 module procedure :: sort_eigen_dbl
3155 module subroutine mtx_mult_mtx(transa, transb, alpha, a, b, beta, c, err)
3156 logical,
intent(in) :: transa, transb
3157 real(real64),
intent(in) :: alpha, beta
3158 real(real64),
intent(in),
dimension(:,:) :: a, b
3159 real(real64),
intent(inout),
dimension(:,:) :: c
3160 class(errors),
intent(inout),
optional,
target :: err
3163 module subroutine mtx_mult_vec(trans, alpha, a, b, beta, c, err)
3164 logical,
intent(in) :: trans
3165 real(real64),
intent(in) :: alpha, beta
3166 real(real64),
intent(in),
dimension(:,:) :: a
3167 real(real64),
intent(in),
dimension(:) :: b
3168 real(real64),
intent(inout),
dimension(:) :: c
3169 class(errors),
intent(inout),
optional,
target :: err
3172 module subroutine cmtx_mult_mtx(opa, opb, alpha, a, b, beta, c, err)
3173 integer(int32),
intent(in) :: opa, opb
3174 complex(real64),
intent(in) :: alpha, beta
3175 complex(real64),
intent(in),
dimension(:,:) :: a, b
3176 complex(real64),
intent(inout),
dimension(:,:) :: c
3177 class(errors),
intent(inout),
optional,
target :: err
3180 module subroutine cmtx_mult_vec(opa, alpha, a, b, beta, c, err)
3181 integer(int32),
intent(in) :: opa
3182 complex(real64),
intent(in) :: alpha, beta
3183 complex(real64),
intent(in),
dimension(:,:) :: a
3184 complex(real64),
intent(in),
dimension(:) :: b
3185 complex(real64),
intent(inout),
dimension(:) :: c
3186 class(errors),
intent(inout),
optional,
target :: err
3189 module subroutine rank1_update_dbl(alpha, x, y, a, err)
3190 real(real64),
intent(in) :: alpha
3191 real(real64),
intent(in),
dimension(:) :: x, y
3192 real(real64),
intent(inout),
dimension(:,:) :: a
3193 class(errors),
intent(inout),
optional,
target :: err
3196 module subroutine rank1_update_cmplx(alpha, x, y, a, err)
3197 complex(real64),
intent(in) :: alpha
3198 complex(real64),
intent(in),
dimension(:) :: x, y
3199 complex(real64),
intent(inout),
dimension(:,:) :: a
3200 class(errors),
intent(inout),
optional,
target :: err
3203 module subroutine diag_mtx_mult_mtx(lside, trans, alpha, a, b, beta, c, err)
3204 logical,
intent(in) :: lside, trans
3205 real(real64) :: alpha, beta
3206 real(real64),
intent(in),
dimension(:) :: a
3207 real(real64),
intent(in),
dimension(:,:) :: b
3208 real(real64),
intent(inout),
dimension(:,:) :: c
3209 class(errors),
intent(inout),
optional,
target :: err
3212 module subroutine diag_mtx_mult_mtx2(lside, alpha, a, b, err)
3213 logical,
intent(in) :: lside
3214 real(real64),
intent(in) :: alpha
3215 real(real64),
intent(in),
dimension(:) :: a
3216 real(real64),
intent(inout),
dimension(:,:) :: b
3217 class(errors),
intent(inout),
optional,
target :: err
3220 module subroutine diag_mtx_mult_mtx3(lside, trans, alpha, a, b, beta, c, err)
3221 logical,
intent(in) :: lside, trans
3222 real(real64) :: alpha, beta
3223 complex(real64),
intent(in),
dimension(:) :: a
3224 real(real64),
intent(in),
dimension(:,:) :: b
3225 complex(real64),
intent(inout),
dimension(:,:) :: c
3226 class(errors),
intent(inout),
optional,
target :: err
3229 module subroutine diag_mtx_mult_mtx4(lside, opb, alpha, a, b, beta, c, err)
3230 logical,
intent(in) :: lside
3231 integer(int32),
intent(in) :: opb
3232 real(real64) :: alpha, beta
3233 complex(real64),
intent(in),
dimension(:) :: a
3234 complex(real64),
intent(in),
dimension(:,:) :: b
3235 complex(real64),
intent(inout),
dimension(:,:) :: c
3236 class(errors),
intent(inout),
optional,
target :: err
3239 module subroutine diag_mtx_mult_mtx_cmplx(lside, opb, alpha, a, b, beta, c, err)
3240 logical,
intent(in) :: lside
3241 integer(int32),
intent(in) :: opb
3242 complex(real64) :: alpha, beta
3243 complex(real64),
intent(in),
dimension(:) :: a
3244 complex(real64),
intent(in),
dimension(:,:) :: b
3245 complex(real64),
intent(inout),
dimension(:,:) :: c
3246 class(errors),
intent(inout),
optional,
target :: err
3249 module subroutine diag_mtx_mult_mtx2_cmplx(lside, alpha, a, b, err)
3250 logical,
intent(in) :: lside
3251 complex(real64),
intent(in) :: alpha
3252 complex(real64),
intent(in),
dimension(:) :: a
3253 complex(real64),
intent(inout),
dimension(:,:) :: b
3254 class(errors),
intent(inout),
optional,
target :: err
3257 module subroutine diag_mtx_mult_mtx_mix(lside, opb, alpha, a, b, beta, c, err)
3258 logical,
intent(in) :: lside
3259 integer(int32),
intent(in) :: opb
3260 complex(real64) :: alpha, beta
3261 real(real64),
intent(in),
dimension(:) :: a
3262 complex(real64),
intent(in),
dimension(:,:) :: b
3263 complex(real64),
intent(inout),
dimension(:,:) :: c
3264 class(errors),
intent(inout),
optional,
target :: err
3267 module subroutine diag_mtx_mult_mtx2_mix(lside, alpha, a, b, err)
3268 logical,
intent(in) :: lside
3269 complex(real64),
intent(in) :: alpha
3270 real(real64),
intent(in),
dimension(:) :: a
3271 complex(real64),
intent(inout),
dimension(:,:) :: b
3272 class(errors),
intent(inout),
optional,
target :: err
3275 pure module function trace_dbl(x) result(y)
3276 real(real64),
intent(in),
dimension(:,:) :: x
3280 pure module function trace_cmplx(x) result(y)
3281 complex(real64),
intent(in),
dimension(:,:) :: x
3282 complex(real64) :: y
3285 module function mtx_rank_dbl(a, tol, work, olwork, err) result(rnk)
3286 real(real64),
intent(inout),
dimension(:,:) :: a
3287 real(real64),
intent(in),
optional :: tol
3288 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3289 integer(int32),
intent(out),
optional :: olwork
3290 class(errors),
intent(inout),
optional,
target :: err
3291 integer(int32) :: rnk
3294 module function mtx_rank_cmplx(a, tol, work, olwork, rwork, err) result(rnk)
3295 complex(real64),
intent(inout),
dimension(:,:) :: a
3296 real(real64),
intent(in),
optional :: tol
3297 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3298 integer(int32),
intent(out),
optional :: olwork
3299 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3300 class(errors),
intent(inout),
optional,
target :: err
3301 integer(int32) :: rnk
3304 module function det_dbl(a, iwork, err) result(x)
3305 real(real64),
intent(inout),
dimension(:,:) :: a
3306 integer(int32),
intent(out),
target,
optional,
dimension(:) :: iwork
3307 class(errors),
intent(inout),
optional,
target :: err
3311 module function det_cmplx(a, iwork, err) result(x)
3312 complex(real64),
intent(inout),
dimension(:,:) :: a
3313 integer(int32),
intent(out),
target,
optional,
dimension(:) :: iwork
3314 class(errors),
intent(inout),
optional,
target :: err
3315 complex(real64) :: x
3318 module subroutine swap_dbl(x, y, err)
3319 real(real64),
intent(inout),
dimension(:) :: x, y
3320 class(errors),
intent(inout),
optional,
target :: err
3323 module subroutine swap_cmplx(x, y, err)
3324 complex(real64),
intent(inout),
dimension(:) :: x, y
3325 class(errors),
intent(inout),
optional,
target :: err
3328 module subroutine recip_mult_array_dbl(a, x)
3329 real(real64),
intent(in) :: a
3330 real(real64),
intent(inout),
dimension(:) :: x
3333 module subroutine tri_mtx_mult_dbl(upper, alpha, a, beta, b, err)
3334 logical,
intent(in) :: upper
3335 real(real64),
intent(in) :: alpha, beta
3336 real(real64),
intent(in),
dimension(:,:) :: a
3337 real(real64),
intent(inout),
dimension(:,:) :: b
3338 class(errors),
intent(inout),
optional,
target :: err
3341 module subroutine tri_mtx_mult_cmplx(upper, alpha, a, beta, b, err)
3342 logical,
intent(in) :: upper
3343 complex(real64),
intent(in) :: alpha, beta
3344 complex(real64),
intent(in),
dimension(:,:) :: a
3345 complex(real64),
intent(inout),
dimension(:,:) :: b
3346 class(errors),
intent(inout),
optional,
target :: err
3355 module subroutine lu_factor_dbl(a, ipvt, err)
3356 real(real64),
intent(inout),
dimension(:,:) :: a
3357 integer(int32),
intent(out),
dimension(:) :: ipvt
3358 class(errors),
intent(inout),
optional,
target :: err
3361 module subroutine lu_factor_cmplx(a, ipvt, err)
3362 complex(real64),
intent(inout),
dimension(:,:) :: a
3363 integer(int32),
intent(out),
dimension(:) :: ipvt
3364 class(errors),
intent(inout),
optional,
target :: err
3367 module subroutine form_lu_all(lu, ipvt, u, p, err)
3368 real(real64),
intent(inout),
dimension(:,:) :: lu
3369 integer(int32),
intent(in),
dimension(:) :: ipvt
3370 real(real64),
intent(out),
dimension(:,:) :: u, p
3371 class(errors),
intent(inout),
optional,
target :: err
3374 module subroutine form_lu_all_cmplx(lu, ipvt, u, p, err)
3375 complex(real64),
intent(inout),
dimension(:,:) :: lu
3376 integer(int32),
intent(in),
dimension(:) :: ipvt
3377 complex(real64),
intent(out),
dimension(:,:) :: u
3378 real(real64),
intent(out),
dimension(:,:) :: p
3379 class(errors),
intent(inout),
optional,
target :: err
3382 module subroutine form_lu_only(lu, u, err)
3383 real(real64),
intent(inout),
dimension(:,:) :: lu
3384 real(real64),
intent(out),
dimension(:,:) :: u
3385 class(errors),
intent(inout),
optional,
target :: err
3388 module subroutine form_lu_only_cmplx(lu, u, err)
3389 complex(real64),
intent(inout),
dimension(:,:) :: lu
3390 complex(real64),
intent(out),
dimension(:,:) :: u
3391 class(errors),
intent(inout),
optional,
target :: err
3394 module subroutine qr_factor_no_pivot(a, tau, work, olwork, err)
3395 real(real64),
intent(inout),
dimension(:,:) :: a
3396 real(real64),
intent(out),
dimension(:) :: tau
3397 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3398 integer(int32),
intent(out),
optional :: olwork
3399 class(errors),
intent(inout),
optional,
target :: err
3402 module subroutine qr_factor_no_pivot_cmplx(a, tau, work, olwork, err)
3403 complex(real64),
intent(inout),
dimension(:,:) :: a
3404 complex(real64),
intent(out),
dimension(:) :: tau
3405 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3406 integer(int32),
intent(out),
optional :: olwork
3407 class(errors),
intent(inout),
optional,
target :: err
3410 module subroutine qr_factor_pivot(a, tau, jpvt, work, olwork, err)
3411 real(real64),
intent(inout),
dimension(:,:) :: a
3412 real(real64),
intent(out),
dimension(:) :: tau
3413 integer(int32),
intent(inout),
dimension(:) :: jpvt
3414 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3415 integer(int32),
intent(out),
optional :: olwork
3416 class(errors),
intent(inout),
optional,
target :: err
3419 module subroutine qr_factor_pivot_cmplx(a, tau, jpvt, work, olwork, rwork, &
3421 complex(real64),
intent(inout),
dimension(:,:) :: a
3422 complex(real64),
intent(out),
dimension(:) :: tau
3423 integer(int32),
intent(inout),
dimension(:) :: jpvt
3424 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3425 integer(int32),
intent(out),
optional :: olwork
3426 real(real64),
intent(out),
target,
dimension(:),
optional :: rwork
3427 class(errors),
intent(inout),
optional,
target :: err
3430 module subroutine form_qr_no_pivot(r, tau, q, work, olwork, err)
3431 real(real64),
intent(inout),
dimension(:,:) :: r
3432 real(real64),
intent(in),
dimension(:) :: tau
3433 real(real64),
intent(out),
dimension(:,:) :: q
3434 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3435 integer(int32),
intent(out),
optional :: olwork
3436 class(errors),
intent(inout),
optional,
target :: err
3439 module subroutine form_qr_no_pivot_cmplx(r, tau, q, work, olwork, err)
3440 complex(real64),
intent(inout),
dimension(:,:) :: r
3441 complex(real64),
intent(in),
dimension(:) :: tau
3442 complex(real64),
intent(out),
dimension(:,:) :: q
3443 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3444 integer(int32),
intent(out),
optional :: olwork
3445 class(errors),
intent(inout),
optional,
target :: err
3448 module subroutine form_qr_pivot(r, tau, pvt, q, p, work, olwork, err)
3449 real(real64),
intent(inout),
dimension(:,:) :: r
3450 real(real64),
intent(in),
dimension(:) :: tau
3451 integer(int32),
intent(in),
dimension(:) :: pvt
3452 real(real64),
intent(out),
dimension(:,:) :: q, p
3453 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3454 integer(int32),
intent(out),
optional :: olwork
3455 class(errors),
intent(inout),
optional,
target :: err
3458 module subroutine form_qr_pivot_cmplx(r, tau, pvt, q, p, work, olwork, err)
3459 complex(real64),
intent(inout),
dimension(:,:) :: r
3460 complex(real64),
intent(in),
dimension(:) :: tau
3461 integer(int32),
intent(in),
dimension(:) :: pvt
3462 complex(real64),
intent(out),
dimension(:,:) :: q, p
3463 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3464 integer(int32),
intent(out),
optional :: olwork
3465 class(errors),
intent(inout),
optional,
target :: err
3468 module subroutine mult_qr_mtx(lside, trans, a, tau, c, work, olwork, err)
3469 logical,
intent(in) :: lside, trans
3470 real(real64),
intent(in),
dimension(:) :: tau
3471 real(real64),
intent(inout),
dimension(:,:) :: a, c
3472 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3473 integer(int32),
intent(out),
optional :: olwork
3474 class(errors),
intent(inout),
optional,
target :: err
3477 module subroutine mult_qr_mtx_cmplx(lside, trans, a, tau, c, work, olwork, err)
3478 logical,
intent(in) :: lside, trans
3479 complex(real64),
intent(in),
dimension(:) :: tau
3480 complex(real64),
intent(inout),
dimension(:,:) :: a, c
3481 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3482 integer(int32),
intent(out),
optional :: olwork
3483 class(errors),
intent(inout),
optional,
target :: err
3486 module subroutine mult_qr_vec(trans, a, tau, c, work, olwork, err)
3487 logical,
intent(in) :: trans
3488 real(real64),
intent(inout),
dimension(:,:) :: a
3489 real(real64),
intent(in),
dimension(:) :: tau
3490 real(real64),
intent(inout),
dimension(:) :: c
3491 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3492 integer(int32),
intent(out),
optional :: olwork
3493 class(errors),
intent(inout),
optional,
target :: err
3496 module subroutine mult_qr_vec_cmplx(trans, a, tau, c, work, olwork, err)
3497 logical,
intent(in) :: trans
3498 complex(real64),
intent(inout),
dimension(:,:) :: a
3499 complex(real64),
intent(in),
dimension(:) :: tau
3500 complex(real64),
intent(inout),
dimension(:) :: c
3501 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3502 integer(int32),
intent(out),
optional :: olwork
3503 class(errors),
intent(inout),
optional,
target :: err
3506 module subroutine qr_rank1_update_dbl(q, r, u, v, work, err)
3507 real(real64),
intent(inout),
dimension(:,:) :: q, r
3508 real(real64),
intent(inout),
dimension(:) :: u, v
3509 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3510 class(errors),
intent(inout),
optional,
target :: err
3513 module subroutine qr_rank1_update_cmplx(q, r, u, v, work, rwork, err)
3514 complex(real64),
intent(inout),
dimension(:,:) :: q, r
3515 complex(real64),
intent(inout),
dimension(:) :: u, v
3516 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3517 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3518 class(errors),
intent(inout),
optional,
target :: err
3521 module subroutine cholesky_factor_dbl(a, upper, err)
3522 real(real64),
intent(inout),
dimension(:,:) :: a
3523 logical,
intent(in),
optional :: upper
3524 class(errors),
intent(inout),
optional,
target :: err
3527 module subroutine cholesky_factor_cmplx(a, upper, err)
3528 complex(real64),
intent(inout),
dimension(:,:) :: a
3529 logical,
intent(in),
optional :: upper
3530 class(errors),
intent(inout),
optional,
target :: err
3533 module subroutine cholesky_rank1_update_dbl(r, u, work, err)
3534 real(real64),
intent(inout),
dimension(:,:) :: r
3535 real(real64),
intent(inout),
dimension(:) :: u
3536 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3537 class(errors),
intent(inout),
optional,
target :: err
3540 module subroutine cholesky_rank1_update_cmplx(r, u, work, err)
3541 complex(real64),
intent(inout),
dimension(:,:) :: r
3542 complex(real64),
intent(inout),
dimension(:) :: u
3543 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3544 class(errors),
intent(inout),
optional,
target :: err
3547 module subroutine cholesky_rank1_downdate_dbl(r, u, work, err)
3548 real(real64),
intent(inout),
dimension(:,:) :: r
3549 real(real64),
intent(inout),
dimension(:) :: u
3550 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3551 class(errors),
intent(inout),
optional,
target :: err
3554 module subroutine cholesky_rank1_downdate_cmplx(r, u, work, err)
3555 complex(real64),
intent(inout),
dimension(:,:) :: r
3556 complex(real64),
intent(inout),
dimension(:) :: u
3557 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3558 class(errors),
intent(inout),
optional,
target :: err
3561 module subroutine rz_factor_dbl(a, tau, work, olwork, err)
3562 real(real64),
intent(inout),
dimension(:,:) :: a
3563 real(real64),
intent(out),
dimension(:) :: tau
3564 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3565 integer(int32),
intent(out),
optional :: olwork
3566 class(errors),
intent(inout),
optional,
target :: err
3569 module subroutine rz_factor_cmplx(a, tau, work, olwork, err)
3570 complex(real64),
intent(inout),
dimension(:,:) :: a
3571 complex(real64),
intent(out),
dimension(:) :: tau
3572 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3573 integer(int32),
intent(out),
optional :: olwork
3574 class(errors),
intent(inout),
optional,
target :: err
3577 module subroutine mult_rz_mtx(lside, trans, l, a, tau, c, work, olwork, err)
3578 logical,
intent(in) :: lside, trans
3579 integer(int32),
intent(in) :: l
3580 real(real64),
intent(inout),
dimension(:,:) :: a, c
3581 real(real64),
intent(in),
dimension(:) :: tau
3582 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3583 integer(int32),
intent(out),
optional :: olwork
3584 class(errors),
intent(inout),
optional,
target :: err
3587 module subroutine mult_rz_mtx_cmplx(lside, trans, l, a, tau, c, work, olwork, err)
3588 logical,
intent(in) :: lside, trans
3589 integer(int32),
intent(in) :: l
3590 complex(real64),
intent(inout),
dimension(:,:) :: a, c
3591 complex(real64),
intent(in),
dimension(:) :: tau
3592 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3593 integer(int32),
intent(out),
optional :: olwork
3594 class(errors),
intent(inout),
optional,
target :: err
3597 module subroutine mult_rz_vec(trans, l, a, tau, c, work, olwork, err)
3598 logical,
intent(in) :: trans
3599 integer(int32),
intent(in) :: l
3600 real(real64),
intent(inout),
dimension(:,:) :: a
3601 real(real64),
intent(in),
dimension(:) :: tau
3602 real(real64),
intent(inout),
dimension(:) :: c
3603 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3604 integer(int32),
intent(out),
optional :: olwork
3605 class(errors),
intent(inout),
optional,
target :: err
3608 module subroutine mult_rz_vec_cmplx(trans, l, a, tau, c, work, olwork, err)
3609 logical,
intent(in) :: trans
3610 integer(int32),
intent(in) :: l
3611 complex(real64),
intent(inout),
dimension(:,:) :: a
3612 complex(real64),
intent(in),
dimension(:) :: tau
3613 complex(real64),
intent(inout),
dimension(:) :: c
3614 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3615 integer(int32),
intent(out),
optional :: olwork
3616 class(errors),
intent(inout),
optional,
target :: err
3619 module subroutine svd_dbl(a, s, u, vt, work, olwork, err)
3620 real(real64),
intent(inout),
dimension(:,:) :: a
3621 real(real64),
intent(out),
dimension(:) :: s
3622 real(real64),
intent(out),
optional,
dimension(:,:) :: u, vt
3623 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3624 integer(int32),
intent(out),
optional :: olwork
3625 class(errors),
intent(inout),
optional,
target :: err
3628 module subroutine svd_cmplx(a, s, u, vt, work, olwork, rwork, err)
3629 complex(real64),
intent(inout),
dimension(:,:) :: a
3630 real(real64),
intent(out),
dimension(:) :: s
3631 complex(real64),
intent(out),
optional,
dimension(:,:) :: u, vt
3632 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3633 integer(int32),
intent(out),
optional :: olwork
3634 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3635 class(errors),
intent(inout),
optional,
target :: err
3643 module subroutine solve_tri_mtx(lside, upper, trans, nounit, alpha, a, b, err)
3644 logical,
intent(in) :: lside, upper, trans, nounit
3645 real(real64),
intent(in) :: alpha
3646 real(real64),
intent(in),
dimension(:,:) :: a
3647 real(real64),
intent(inout),
dimension(:,:) :: b
3648 class(errors),
intent(inout),
optional,
target :: err
3651 module subroutine solve_tri_mtx_cmplx(lside, upper, trans, nounit, alpha, a, b, err)
3652 logical,
intent(in) :: lside, upper, trans, nounit
3653 complex(real64),
intent(in) :: alpha
3654 complex(real64),
intent(in),
dimension(:,:) :: a
3655 complex(real64),
intent(inout),
dimension(:,:) :: b
3656 class(errors),
intent(inout),
optional,
target :: err
3659 module subroutine solve_tri_vec(upper, trans, nounit, a, x, err)
3660 logical,
intent(in) :: upper, trans, nounit
3661 real(real64),
intent(in),
dimension(:,:) :: a
3662 real(real64),
intent(inout),
dimension(:) :: x
3663 class(errors),
intent(inout),
optional,
target :: err
3666 module subroutine solve_tri_vec_cmplx(upper, trans, nounit, a, x, err)
3667 logical,
intent(in) :: upper, trans, nounit
3668 complex(real64),
intent(in),
dimension(:,:) :: a
3669 complex(real64),
intent(inout),
dimension(:) :: x
3670 class(errors),
intent(inout),
optional,
target :: err
3673 module subroutine solve_lu_mtx(a, ipvt, b, err)
3674 real(real64),
intent(in),
dimension(:,:) :: a
3675 integer(int32),
intent(in),
dimension(:) :: ipvt
3676 real(real64),
intent(inout),
dimension(:,:) :: b
3677 class(errors),
intent(inout),
optional,
target :: err
3680 module subroutine solve_lu_mtx_cmplx(a, ipvt, b, err)
3681 complex(real64),
intent(in),
dimension(:,:) :: a
3682 integer(int32),
intent(in),
dimension(:) :: ipvt
3683 complex(real64),
intent(inout),
dimension(:,:) :: b
3684 class(errors),
intent(inout),
optional,
target :: err
3687 module subroutine solve_lu_vec(a, ipvt, b, err)
3688 real(real64),
intent(in),
dimension(:,:) :: a
3689 integer(int32),
intent(in),
dimension(:) :: ipvt
3690 real(real64),
intent(inout),
dimension(:) :: b
3691 class(errors),
intent(inout),
optional,
target :: err
3694 module subroutine solve_lu_vec_cmplx(a, ipvt, b, err)
3695 complex(real64),
intent(in),
dimension(:,:) :: a
3696 integer(int32),
intent(in),
dimension(:) :: ipvt
3697 complex(real64),
intent(inout),
dimension(:) :: b
3698 class(errors),
intent(inout),
optional,
target :: err
3701 module subroutine solve_qr_no_pivot_mtx(a, tau, b, work, olwork, err)
3702 real(real64),
intent(inout),
dimension(:,:) :: a, b
3703 real(real64),
intent(in),
dimension(:) :: tau
3704 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3705 integer(int32),
intent(out),
optional :: olwork
3706 class(errors),
intent(inout),
optional,
target :: err
3709 module subroutine solve_qr_no_pivot_mtx_cmplx(a, tau, b, work, olwork, err)
3710 complex(real64),
intent(inout),
dimension(:,:) :: a, b
3711 complex(real64),
intent(in),
dimension(:) :: tau
3712 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3713 integer(int32),
intent(out),
optional :: olwork
3714 class(errors),
intent(inout),
optional,
target :: err
3717 module subroutine solve_qr_no_pivot_vec(a, tau, b, work, olwork, err)
3718 real(real64),
intent(inout),
dimension(:,:) :: a
3719 real(real64),
intent(in),
dimension(:) :: tau
3720 real(real64),
intent(inout),
dimension(:) :: b
3721 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3722 integer(int32),
intent(out),
optional :: olwork
3723 class(errors),
intent(inout),
optional,
target :: err
3726 module subroutine solve_qr_no_pivot_vec_cmplx(a, tau, b, work, olwork, err)
3727 complex(real64),
intent(inout),
dimension(:,:) :: a
3728 complex(real64),
intent(in),
dimension(:) :: tau
3729 complex(real64),
intent(inout),
dimension(:) :: b
3730 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3731 integer(int32),
intent(out),
optional :: olwork
3732 class(errors),
intent(inout),
optional,
target :: err
3735 module subroutine solve_qr_pivot_mtx(a, tau, jpvt, b, work, olwork, err)
3736 real(real64),
intent(inout),
dimension(:,:) :: a
3737 real(real64),
intent(in),
dimension(:) :: tau
3738 integer(int32),
intent(in),
dimension(:) :: jpvt
3739 real(real64),
intent(inout),
dimension(:,:) :: b
3740 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3741 integer(int32),
intent(out),
optional :: olwork
3742 class(errors),
intent(inout),
optional,
target :: err
3745 module subroutine solve_qr_pivot_mtx_cmplx(a, tau, jpvt, b, work, olwork, err)
3746 complex(real64),
intent(inout),
dimension(:,:) :: a
3747 complex(real64),
intent(in),
dimension(:) :: tau
3748 integer(int32),
intent(in),
dimension(:) :: jpvt
3749 complex(real64),
intent(inout),
dimension(:,:) :: b
3750 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3751 integer(int32),
intent(out),
optional :: olwork
3752 class(errors),
intent(inout),
optional,
target :: err
3755 module subroutine solve_qr_pivot_vec(a, tau, jpvt, b, work, olwork, err)
3756 real(real64),
intent(inout),
dimension(:,:) :: a
3757 real(real64),
intent(in),
dimension(:) :: tau
3758 integer(int32),
intent(in),
dimension(:) :: jpvt
3759 real(real64),
intent(inout),
dimension(:) :: b
3760 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3761 integer(int32),
intent(out),
optional :: olwork
3762 class(errors),
intent(inout),
optional,
target :: err
3765 module subroutine solve_qr_pivot_vec_cmplx(a, tau, jpvt, b, work, olwork, err)
3766 complex(real64),
intent(inout),
dimension(:,:) :: a
3767 complex(real64),
intent(in),
dimension(:) :: tau
3768 integer(int32),
intent(in),
dimension(:) :: jpvt
3769 complex(real64),
intent(inout),
dimension(:) :: b
3770 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3771 integer(int32),
intent(out),
optional :: olwork
3772 class(errors),
intent(inout),
optional,
target :: err
3775 module subroutine solve_cholesky_mtx(upper, a, b, err)
3776 logical,
intent(in) :: upper
3777 real(real64),
intent(in),
dimension(:,:) :: a
3778 real(real64),
intent(inout),
dimension(:,:) :: b
3779 class(errors),
intent(inout),
optional,
target :: err
3782 module subroutine solve_cholesky_mtx_cmplx(upper, a, b, err)
3783 logical,
intent(in) :: upper
3784 complex(real64),
intent(in),
dimension(:,:) :: a
3785 complex(real64),
intent(inout),
dimension(:,:) :: b
3786 class(errors),
intent(inout),
optional,
target :: err
3789 module subroutine solve_cholesky_vec(upper, a, b, err)
3790 logical,
intent(in) :: upper
3791 real(real64),
intent(in),
dimension(:,:) :: a
3792 real(real64),
intent(inout),
dimension(:) :: b
3793 class(errors),
intent(inout),
optional,
target :: err
3796 module subroutine solve_cholesky_vec_cmplx(upper, a, b, err)
3797 logical,
intent(in) :: upper
3798 complex(real64),
intent(in),
dimension(:,:) :: a
3799 complex(real64),
intent(inout),
dimension(:) :: b
3800 class(errors),
intent(inout),
optional,
target :: err
3803 module subroutine solve_least_squares_mtx(a, b, work, olwork, err)
3804 real(real64),
intent(inout),
dimension(:,:) :: a, b
3805 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3806 integer(int32),
intent(out),
optional :: olwork
3807 class(errors),
intent(inout),
optional,
target :: err
3810 module subroutine solve_least_squares_mtx_cmplx(a, b, work, olwork, err)
3811 complex(real64),
intent(inout),
dimension(:,:) :: a, b
3812 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3813 integer(int32),
intent(out),
optional :: olwork
3814 class(errors),
intent(inout),
optional,
target :: err
3817 module subroutine solve_least_squares_vec(a, b, work, olwork, err)
3818 real(real64),
intent(inout),
dimension(:,:) :: a
3819 real(real64),
intent(inout),
dimension(:) :: b
3820 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3821 integer(int32),
intent(out),
optional :: olwork
3822 class(errors),
intent(inout),
optional,
target :: err
3825 module subroutine solve_least_squares_vec_cmplx(a, b, work, olwork, err)
3826 complex(real64),
intent(inout),
dimension(:,:) :: a
3827 complex(real64),
intent(inout),
dimension(:) :: b
3828 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3829 integer(int32),
intent(out),
optional :: olwork
3830 class(errors),
intent(inout),
optional,
target :: err
3833 module subroutine solve_least_squares_mtx_pvt(a, b, ipvt, arnk, work, olwork, err)
3834 real(real64),
intent(inout),
dimension(:,:) :: a, b
3835 integer(int32),
intent(inout),
target,
optional,
dimension(:) :: ipvt
3836 integer(int32),
intent(out),
optional :: arnk
3837 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3838 integer(int32),
intent(out),
optional :: olwork
3839 class(errors),
intent(inout),
optional,
target :: err
3842 module subroutine solve_least_squares_mtx_pvt_cmplx(a, b, ipvt, arnk, &
3843 work, olwork, rwork, err)
3844 complex(real64),
intent(inout),
dimension(:,:) :: a, b
3845 integer(int32),
intent(inout),
target,
optional,
dimension(:) :: ipvt
3846 integer(int32),
intent(out),
optional :: arnk
3847 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3848 integer(int32),
intent(out),
optional :: olwork
3849 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3850 class(errors),
intent(inout),
optional,
target :: err
3853 module subroutine solve_least_squares_vec_pvt(a, b, ipvt, arnk, work, olwork, err)
3854 real(real64),
intent(inout),
dimension(:,:) :: a
3855 real(real64),
intent(inout),
dimension(:) :: b
3856 integer(int32),
intent(inout),
target,
optional,
dimension(:) :: ipvt
3857 integer(int32),
intent(out),
optional :: arnk
3858 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3859 integer(int32),
intent(out),
optional :: olwork
3860 class(errors),
intent(inout),
optional,
target :: err
3863 module subroutine solve_least_squares_vec_pvt_cmplx(a, b, ipvt, arnk, &
3864 work, olwork, rwork, err)
3865 complex(real64),
intent(inout),
dimension(:,:) :: a
3866 complex(real64),
intent(inout),
dimension(:) :: b
3867 integer(int32),
intent(inout),
target,
optional,
dimension(:) :: ipvt
3868 integer(int32),
intent(out),
optional :: arnk
3869 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3870 integer(int32),
intent(out),
optional :: olwork
3871 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3872 class(errors),
intent(inout),
optional,
target :: err
3875 module subroutine solve_least_squares_mtx_svd(a, b, s, arnk, work, olwork, err)
3876 real(real64),
intent(inout),
dimension(:,:) :: a, b
3877 integer(int32),
intent(out),
optional :: arnk
3878 real(real64),
intent(out),
target,
optional,
dimension(:) :: work, s
3879 integer(int32),
intent(out),
optional :: olwork
3880 class(errors),
intent(inout),
optional,
target :: err
3883 module subroutine solve_least_squares_mtx_svd_cmplx(a, b, s, arnk, work, &
3885 complex(real64),
intent(inout),
dimension(:,:) :: a, b
3886 integer(int32),
intent(out),
optional :: arnk
3887 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3888 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork, s
3889 integer(int32),
intent(out),
optional :: olwork
3890 class(errors),
intent(inout),
optional,
target :: err
3893 module subroutine solve_least_squares_vec_svd(a, b, s, arnk, work, olwork, err)
3894 real(real64),
intent(inout),
dimension(:,:) :: a
3895 real(real64),
intent(inout),
dimension(:) :: b
3896 integer(int32),
intent(out),
optional :: arnk
3897 real(real64),
intent(out),
target,
optional,
dimension(:) :: work, s
3898 integer(int32),
intent(out),
optional :: olwork
3899 class(errors),
intent(inout),
optional,
target :: err
3902 module subroutine solve_least_squares_vec_svd_cmplx(a, b, s, arnk, work, &
3904 complex(real64),
intent(inout),
dimension(:,:) :: a
3905 complex(real64),
intent(inout),
dimension(:) :: b
3906 integer(int32),
intent(out),
optional :: arnk
3907 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3908 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork, s
3909 integer(int32),
intent(out),
optional :: olwork
3910 class(errors),
intent(inout),
optional,
target :: err
3913 module subroutine mtx_inverse_dbl(a, iwork, work, olwork, err)
3914 real(real64),
intent(inout),
dimension(:,:) :: a
3915 integer(int32),
intent(out),
target,
optional,
dimension(:) :: iwork
3916 real(real64),
intent(out),
target,
optional,
dimension(:) :: work
3917 integer(int32),
intent(out),
optional :: olwork
3918 class(errors),
intent(inout),
optional,
target :: err
3921 module subroutine mtx_inverse_cmplx(a, iwork, work, olwork, err)
3922 complex(real64),
intent(inout),
dimension(:,:) :: a
3923 integer(int32),
intent(out),
target,
optional,
dimension(:) :: iwork
3924 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3925 integer(int32),
intent(out),
optional :: olwork
3926 class(errors),
intent(inout),
optional,
target :: err
3929 module subroutine mtx_pinverse_dbl(a, ainv, tol, work, olwork, err)
3930 real(real64),
intent(inout),
dimension(:,:) :: a
3931 real(real64),
intent(out),
dimension(:,:) :: ainv
3932 real(real64),
intent(in),
optional :: tol
3933 real(real64),
intent(out),
target,
dimension(:),
optional :: work
3934 integer(int32),
intent(out),
optional :: olwork
3935 class(errors),
intent(inout),
optional,
target :: err
3938 module subroutine mtx_pinverse_cmplx(a, ainv, tol, work, olwork, rwork, err)
3939 complex(real64),
intent(inout),
dimension(:,:) :: a
3940 complex(real64),
intent(out),
dimension(:,:) :: ainv
3941 real(real64),
intent(in),
optional :: tol
3942 complex(real64),
intent(out),
target,
dimension(:),
optional :: work
3943 integer(int32),
intent(out),
optional :: olwork
3944 real(real64),
intent(out),
target,
dimension(:),
optional :: rwork
3945 class(errors),
intent(inout),
optional,
target :: err
3954 module subroutine eigen_symm(vecs, a, vals, work, olwork, err)
3955 logical,
intent(in) :: vecs
3956 real(real64),
intent(inout),
dimension(:,:) :: a
3957 real(real64),
intent(out),
dimension(:) :: vals
3958 real(real64),
intent(out),
pointer,
optional,
dimension(:) :: work
3959 integer(int32),
intent(out),
optional :: olwork
3960 class(errors),
intent(inout),
optional,
target :: err
3963 module subroutine eigen_asymm(a, vals, vecs, work, olwork, err)
3964 real(real64),
intent(inout),
dimension(:,:) :: a
3965 complex(real64),
intent(out),
dimension(:) :: vals
3966 complex(real64),
intent(out),
optional,
dimension(:,:) :: vecs
3967 real(real64),
intent(out),
pointer,
optional,
dimension(:) :: work
3968 integer(int32),
intent(out),
optional :: olwork
3969 class(errors),
intent(inout),
optional,
target :: err
3972 module subroutine eigen_gen(a, b, alpha, beta, vecs, work, olwork, err)
3973 real(real64),
intent(inout),
dimension(:,:) :: a, b
3974 complex(real64),
intent(out),
dimension(:) :: alpha
3975 real(real64),
intent(out),
optional,
dimension(:) :: beta
3976 complex(real64),
intent(out),
optional,
dimension(:,:) :: vecs
3977 real(real64),
intent(out),
optional,
pointer,
dimension(:) :: work
3978 integer(int32),
intent(out),
optional :: olwork
3979 class(errors),
intent(inout),
optional,
target :: err
3982 module subroutine eigen_cmplx(a, vals, vecs, work, olwork, rwork, err)
3983 complex(real64),
intent(inout),
dimension(:,:) :: a
3984 complex(real64),
intent(out),
dimension(:) :: vals
3985 complex(real64),
intent(out),
optional,
dimension(:,:) :: vecs
3986 complex(real64),
intent(out),
target,
optional,
dimension(:) :: work
3987 real(real64),
intent(out),
target,
optional,
dimension(:) :: rwork
3988 integer(int32),
intent(out),
optional :: olwork
3989 class(errors),
intent(inout),
optional,
target :: err
3997 module subroutine sort_dbl_array(x, ascend)
3998 real(real64),
intent(inout),
dimension(:) :: x
3999 logical,
intent(in),
optional :: ascend
4002 module subroutine sort_dbl_array_ind(x, ind, ascend, err)
4003 real(real64),
intent(inout),
dimension(:) :: x
4004 integer(int32),
intent(inout),
dimension(:) :: ind
4005 logical,
intent(in),
optional :: ascend
4006 class(errors),
intent(inout),
optional,
target :: err
4009 module subroutine sort_cmplx_array(x, ascend)
4010 complex(real64),
intent(inout),
dimension(:) :: x
4011 logical,
intent(in),
optional :: ascend
4014 module subroutine sort_cmplx_array_ind(x, ind, ascend, err)
4015 complex(real64),
intent(inout),
dimension(:) :: x
4016 integer(int32),
intent(inout),
dimension(:) :: ind
4017 logical,
intent(in),
optional :: ascend
4018 class(errors),
intent(inout),
optional,
target :: err
4021 module subroutine sort_eigen_cmplx(vals, vecs, ascend, err)
4022 complex(real64),
intent(inout),
dimension(:) :: vals
4023 complex(real64),
intent(inout),
dimension(:,:) :: vecs
4024 logical,
intent(in),
optional :: ascend
4025 class(errors),
intent(inout),
optional,
target :: err
4028 module subroutine sort_eigen_dbl(vals, vecs, ascend, err)
4029 real(real64),
intent(inout),
dimension(:) :: vals
4030 real(real64),
intent(inout),
dimension(:,:) :: vecs
4031 logical,
intent(in),
optional :: ascend
4032 class(errors),
intent(inout),
optional,
target :: err
Computes the Cholesky factorization of a symmetric, positive definite matrix.
Computes the rank 1 downdate to a Cholesky factored matrix (upper triangular).
Computes the rank 1 update to a Cholesky factored matrix (upper triangular).
Computes the determinant of a square matrix.
Multiplies a diagonal matrix with another matrix or array.
Computes the eigenvalues, and optionally the eigenvectors, of a matrix.
Computes the LU factorization of an M-by-N matrix.
Computes the inverse of a square matrix.
Performs the matrix operation: .
Computes the Moore-Penrose pseudo-inverse of a M-by-N matrix using the singular value decomposition o...
Computes the rank of a matrix.
Multiplies a general matrix by the orthogonal matrix Q from a QR factorization.
Multiplies a general matrix by the orthogonal matrix Z from an RZ factorization.
Computes the QR factorization of an M-by-N matrix.
Computes the rank 1 update to an M-by-N QR factored matrix A (M >= N) where , and such that .
Performs the rank-1 update to matrix A such that: , where is an M-by-N matrix, is a scalar,...
Multiplies a vector by the reciprocal of a real scalar.
Factors an upper trapezoidal matrix by means of orthogonal transformations such that ....
Solves a system of Cholesky factored equations.
Solves the overdetermined or underdetermined system of M equations of N unknowns,...
Solves the overdetermined or underdetermined system of M equations of N unknowns using a singular va...
Solves the overdetermined or underdetermined system of M equations of N unknowns....
Solves a system of LU-factored equations.
Solves a system of M QR-factored equations of N unknowns.
Solves a triangular system of equations.
Computes the singular value decomposition of a matrix A. The SVD is defined as: , where is an M-by-M...
Swaps the contents of two arrays.
Computes the trace of a matrix (the sum of the main diagonal elements).
Computes the triangular matrix operation: , or , where A is a triangular matrix.
Provides a set of constants and error flags for the library.
Provides a set of common linear algebra routines.