tensor.f

tensor.f#

These are the subroutines in tensor.f.

Subroutines and functions

subroutine  cp_setup()#
Called from:

rom_update()

Call to:

read_serial(), force_skew(), set_c_slice(), set_c_core(), compute_cp(), read_cp_weight(), read_cp_mode(), set_rank(), rand_initial(), als_quad(), als_core(), als(), check_conv_err(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), compute_relerr(), check_normalize(), read_mat_serial(), case1_tensor(), case2_tensor()

subroutine  compute_cp(cp_a, cp_b, cp_c, cp_w, cl, cl0, cj0, c0k, fname, uu)#
Parameters:
  • cp_a (ltr + ltr * nb) [real]

  • cp_b (ltr + ltr * nb) [real]

  • cp_c (ltr + ltr * nb) [real]

  • cp_w (ltr) [real]

  • cl (lcglo) [real]

  • cl0 (lcglo) [real]

  • cj0 (nb * *2 + *2) [real] ::

  • c0k (nb * *2 + *2) [real] ::

  • fname [character]

  • uu (1 + nb) [real]

Called from:

cp_setup()

Call to:

set_rank(), rand_initial(), als_quad(), als_core(), als(), check_conv_err(), read_cp_weight(), read_cp_mode(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor()

subroutine  set_rank(rank_list, mm)#
Parameters:
  • rank_list (2,ltr) [integer] :: return location

  • mm [integer]

Called from:

cp_setup(), compute_cp()

Call to:

set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor()

subroutine  als(cp_a, cp_b, cp_c, cp_w, cl, ic1, ic2, jc1, jc2, kc1, kc2, mm, nn)#
Parameters:
  • cp_a (mm * nn) [real]

  • cp_b (mm * nn) [real]

  • cp_c (mm * nn) [real]

  • cp_w (nn) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • mm [integer,in,required]

  • nn [integer,in,required]

Called from:

cp_setup(), compute_cp()

Call to:

set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor()

subroutine  check_conv_err(cu_err, cl, fac_a, fac_b, fac_c, cp_w, uu, ic1, ic2, jc1, jc2, kc1, kc2, mm, nn, ifcore, cj0, c0k)#
Parameters:
  • cu_err [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • fac_a (mm * nn) [real]

  • fac_b (mm * nn) [real]

  • fac_c (mm * nn) [real]

  • cp_w (nn) [real]

  • uu (mm) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • mm [integer,in,required]

  • nn [integer,in,required]

  • ifcore [logical]

  • cj0 (1 - ic1 + ic2,1 - jc1 + jc2) [real]

  • c0k (1 - ic1 + ic2,1 - kc1 + kc2) [real]

Called from:

cp_setup(), compute_cp()

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), compute_residual()

subroutine  check_conv_err_old(cu_err, cl, fac_a, fac_b, fac_c, cp_w, uu)#
Parameters:
  • cu_err [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • fac_a (ntr + nb * ntr) [real]

  • fac_b (ntr + nb * ntr) [real]

  • fac_c (ntr + nb * ntr) [real]

  • cp_w (ntr) [real]

  • uu (1 + nb) [real]

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), compute_residual()

subroutine  cp_als_old(cl, mm, nn)#
Parameters:
  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • mm [integer]

  • nn [integer]

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_relerr(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), compute_residual()

subroutine  mttkrp(lsr, cl, cm, cm2, ic1, ic2, jc1, jc2, kc1, kc2, fcm, mm, nn, mode)#
Parameters:
  • lsr (mm * nn) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • cm (1 - ic1 + ic2,1 - jc1 + jc2,nn) [real]

  • cm2 (1 - ic1 + ic2,nn,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • fcm (mm * nn,3) [real]

  • mm [integer,in,required]

  • nn [integer,in,required]

  • mode [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  set_lsm(lsm, fcmpm, mode, nn)#
Parameters:
  • lsm (nn * nn,3) [real]

  • fcmpm (nn * nn,3) [real]

  • mode [integer]

  • nn [integer,in,required]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  compute_relerr(relerr, lsr, fcm, lsm, fcmpm, cp_weight, norm_c, norm_c0, mm, nn)#
Parameters:
  • relerr [real]

  • lsr (mm,nn) [real]

  • fcm (mm,nn) [real]

  • lsm (nn,nn) [real]

  • fcmpm (nn,nn) [real]

  • cp_weight (nn) [real]

  • norm_c [real]

  • norm_c0 [real]

  • mm [integer]

  • nn [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  compute_residual(residual, lsr, fcm, lsm, fcmpm, cp_weight, norm_tens, mm, nn)#
Parameters:
  • residual [real]

  • lsr (mm,nn) [real]

  • fcm (mm,nn) [real]

  • lsm (nn,nn) [real]

  • fcmpm (nn,nn) [real]

  • cp_weight (nn) [real]

  • norm_tens [real]

  • mm [integer]

  • nn [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  compute_cp_weight(cp_weight, aa, m, n)#
Parameters:
  • cp_weight (n) [real]

  • aa (m,n) [real]

  • m [integer]

  • n [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  mode_normalize(aa, m, n)#
Parameters:
  • aa (m,n) [real]

  • m [integer]

  • n [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  rand_initial(fcm, mm, nn)#
Parameters:
  • fcm (mm * nn) [real]

  • mm [integer,in,required]

  • nn [integer,in,required]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

mode_normalize(), check_normalize(), read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), compute_residual(), rand_initial()

subroutine  check_normalize(aa, m, n)#
Parameters:
  • aa (m,n) [real]

  • m [integer]

  • n [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial()

Call to:

read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  set_product_matrix(bb, aa, m, n)#
Parameters:
  • bb (n,n) [real]

  • aa (m,n) [real]

  • m [integer]

  • n [integer]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor(), als_core(), set_c_slice(), set_c_core(), als_quad()

Call to:

read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  read_cp_weight()#
Called from:

cp_setup(), compute_cp()

Call to:

read_serial(), read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  read_cp_mode()#
Called from:

cp_setup(), compute_cp()

Call to:

read_mat_serial(), case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  case1_tensor(tensor_1)#
Parameters:

tensor_1 (2,2,2) [real]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor()

Call to:

case1_tensor(), case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  case2_tensor(tensor_1)#
Parameters:

tensor_1 (3,4,4) [real]

Called from:

cp_setup(), compute_cp(), set_rank(), als(), check_conv_err(), check_conv_err_old(), cp_als_old(), mttkrp(), set_lsm(), compute_relerr(), compute_residual(), compute_cp_weight(), mode_normalize(), rand_initial(), check_normalize(), set_product_matrix(), read_cp_weight(), read_cp_mode(), case1_tensor(), case2_tensor()

Call to:

case2_tensor(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  als_core(cp_a, cp_b, cp_c, cp_w, cl, ic1, ic2, jc1, jc2, kc1, kc2, mm, nn)#
Parameters:
  • cp_a (mm * nn) [real]

  • cp_b (mm * nn) [real]

  • cp_c (mm * nn) [real]

  • cp_w (nn) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • mm [integer,in,required]

  • nn [integer,in,required]

Called from:

cp_setup(), compute_cp()

Call to:

set_product_matrix(), mttkrp(), set_lsm(), invmat(), compute_cp_weight(), mode_normalize(), compute_residual(), rand_initial()

subroutine  set_c_slice(cj0, c0k, cl, ic1, ic2, jc1, jc2, kc1, kc2, nb)#
Parameters:
  • cj0 (1 - ic1 + ic2,1 - jc1 + jc2) [real]

  • c0k (1 - ic1 + ic2,1 - kc1 + kc2) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • nb [integer]

Called from:

cp_setup()

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), mode_normalize(), compute_cp_weight(), compute_residual()

subroutine  set_c_core(cl0, cl, ic1, ic2, jc1, jc2, kc1, kc2, nb)#
Parameters:
  • cl0 (1 - ic1 + ic2,-jc1 + jc2,-kc1 + kc2) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • nb [integer]

Called from:

cp_setup()

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), mode_normalize(), compute_cp_weight(), compute_residual()

subroutine  als_quad(cp_a, cp_b, cp_c, cp_w, cl, ic1, ic2, jc1, jc2, kc1, kc2, mm, nn)#
Parameters:
  • cp_a (mm * nn) [real]

  • cp_b (mm * nn) [real]

  • cp_c (mm * nn) [real]

  • cp_w (nn) [real]

  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

  • mm [integer,in,required]

  • nn [integer,in,required]

Called from:

cp_setup(), compute_cp()

Call to:

rand_initial(), set_product_matrix(), mttkrp(), set_lsm(), invmat(), mode_normalize(), compute_cp_weight(), compute_residual()

subroutine  force_skew(cl, ic1, ic2, jc1, jc2, kc1, kc2)#
Parameters:
  • cl (1 - ic1 + ic2,1 - jc1 + jc2,1 - kc1 + kc2) [real]

  • ic1 [integer,in,required]

  • ic2 [integer,in,required]

  • jc1 [integer,in,required]

  • jc2 [integer,in,required]

  • kc1 [integer,in,required]

  • kc2 [integer,in,required]

Called from:

cp_setup()