mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 12:52:14 +00:00
[ADD] Generate the nested matrix support for s/c/z from the templates
Extend the nested (MATNEST) matrix support to all the arithmetics: the
psb_{s,c,z}_nest_{mat,base_mat,tools,builder}_mod modules and the
psb_{s,c,z}_nest_mod umbrellas are generated from the template-psblas
X_nest_* templates; the d sources are regenerated byte-identical.
Preparatory changes to the d sources for clean templating: rowsum/arwsum and
colsum/aclsum no longer share a helper (for the complex arithmetics the
absolute sums are real-valued while the plain sums are complex-valued), the
transposed kernel forwards the actual 'T'/'C' character to the blocks
(conjugate transpose for the complex types), and the capacity helper takes a
type-neutral name.
Build hooks (autotools Makefile and CMakeLists) updated with the per-arith
objects, compile rules and dependencies. All four d tests keep passing.
Author: Simone Staccone (Stack-1)
This commit is contained in:
+72
-6
@@ -84,7 +84,10 @@ SERIAL_MODS=serial/psb_s_serial_mod.o serial/psb_d_serial_mod.o \
|
||||
serial/psb_d_base_mat_mod.o serial/psb_d_csr_mat_mod.o serial/psb_d_csc_mat_mod.o serial/psb_d_mat_mod.o \
|
||||
serial/psb_c_base_mat_mod.o serial/psb_c_csr_mat_mod.o serial/psb_c_csc_mat_mod.o serial/psb_c_mat_mod.o \
|
||||
serial/psb_z_base_mat_mod.o serial/psb_z_csr_mat_mod.o serial/psb_z_csc_mat_mod.o serial/psb_z_mat_mod.o \
|
||||
serial/psb_d_nest_mat_mod.o serial/psb_d_nest_base_mat_mod.o
|
||||
serial/psb_s_nest_mat_mod.o serial/psb_s_nest_base_mat_mod.o \
|
||||
serial/psb_d_nest_mat_mod.o serial/psb_d_nest_base_mat_mod.o \
|
||||
serial/psb_c_nest_mat_mod.o serial/psb_c_nest_base_mat_mod.o \
|
||||
serial/psb_z_nest_mat_mod.o serial/psb_z_nest_base_mat_mod.o
|
||||
#\
|
||||
# serial/psb_ls_csr_mat_mod.o serial/psb_ld_csr_mat_mod.o serial/psb_lc_csr_mat_mod.o serial/psb_lz_csr_mat_mod.o
|
||||
#\
|
||||
@@ -98,8 +101,10 @@ UTIL_MODS = desc/psb_desc_const_mod.o desc/psb_indx_map_mod.o\
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_i_tools_mod.o tools/psb_l_tools_mod.o \
|
||||
tools/psb_s_tools_mod.o tools/psb_d_tools_mod.o\
|
||||
tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_d_nest_builder_mod.o \
|
||||
tools/psb_s_nest_tools_mod.o tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_c_nest_tools_mod.o tools/psb_z_nest_tools_mod.o \
|
||||
tools/psb_s_nest_builder_mod.o tools/psb_d_nest_builder_mod.o \
|
||||
tools/psb_c_nest_builder_mod.o tools/psb_z_nest_builder_mod.o \
|
||||
tools/psb_c_tools_mod.o tools/psb_z_tools_mod.o \
|
||||
tools/psb_i2_tools_a_mod.o tools/psb_m_tools_a_mod.o tools/psb_e_tools_a_mod.o \
|
||||
tools/psb_s_tools_a_mod.o tools/psb_d_tools_a_mod.o\
|
||||
@@ -133,7 +138,7 @@ UTIL_MODS = desc/psb_desc_const_mod.o desc/psb_indx_map_mod.o\
|
||||
|
||||
|
||||
MODULES=$(BASIC_MODS) $(SERIAL_MODS) $(UTIL_MODS)
|
||||
OBJS = error.o psb_base_mod.o psb_d_nest_mod.o $(EXTRA_COBJS) cutil.o
|
||||
OBJS = error.o psb_base_mod.o psb_s_nest_mod.o psb_d_nest_mod.o psb_c_nest_mod.o psb_z_nest_mod.o $(EXTRA_COBJS) cutil.o
|
||||
MODDIR=../../modules
|
||||
INCDIR=../../include
|
||||
LIBDIR=../
|
||||
@@ -418,7 +423,9 @@ comm/psi_s_comm_a_mod.o comm/psi_d_comm_a_mod.o \
|
||||
comm/psi_c_comm_a_mod.o comm/psi_z_comm_a_mod.o: desc/psb_desc_mod.o
|
||||
|
||||
tools/psb_tools_mod.o: tools/psb_cd_tools_mod.o tools/psb_s_tools_mod.o tools/psb_d_tools_mod.o\
|
||||
tools/psb_cd_nest_tools_mod.o tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_s_nest_tools_mod.o tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_c_nest_tools_mod.o tools/psb_z_nest_tools_mod.o \
|
||||
tools/psb_i_tools_mod.o tools/psb_l_tools_mod.o \
|
||||
tools/psb_c_tools_mod.o tools/psb_z_tools_mod.o \
|
||||
tools/psb_i2_tools_a_mod.o tools/psb_m_tools_a_mod.o tools/psb_e_tools_a_mod.o \
|
||||
@@ -433,10 +440,39 @@ tools/psb_d_nest_tools_mod.o: tools/psb_d_nest_tools_mod.F90 tools/psb_d_tools_m
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_d_nest_tools_mod.F90 -o tools/psb_d_nest_tools_mod.o
|
||||
|
||||
tools/psb_d_nest_builder_mod.o: tools/psb_d_nest_builder_mod.F90 tools/psb_cd_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_s_nest_tools_mod.o tools/psb_d_nest_tools_mod.o \
|
||||
tools/psb_c_nest_tools_mod.o tools/psb_z_nest_tools_mod.o \
|
||||
serial/psb_d_nest_base_mat_mod.o serial/psb_d_nest_mat_mod.o desc/psb_desc_nest_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_d_nest_builder_mod.F90 -o tools/psb_d_nest_builder_mod.o
|
||||
|
||||
tools/psb_s_nest_tools_mod.o: tools/psb_s_nest_tools_mod.F90 tools/psb_s_tools_mod.o \
|
||||
desc/psb_desc_nest_mod.o serial/psb_s_nest_mat_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_s_nest_tools_mod.F90 -o tools/psb_s_nest_tools_mod.o
|
||||
|
||||
tools/psb_s_nest_builder_mod.o: tools/psb_s_nest_builder_mod.F90 tools/psb_cd_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o tools/psb_s_nest_tools_mod.o \
|
||||
serial/psb_s_nest_base_mat_mod.o serial/psb_s_nest_mat_mod.o desc/psb_desc_nest_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_s_nest_builder_mod.F90 -o tools/psb_s_nest_builder_mod.o
|
||||
|
||||
tools/psb_c_nest_tools_mod.o: tools/psb_c_nest_tools_mod.F90 tools/psb_c_tools_mod.o \
|
||||
desc/psb_desc_nest_mod.o serial/psb_c_nest_mat_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_c_nest_tools_mod.F90 -o tools/psb_c_nest_tools_mod.o
|
||||
|
||||
tools/psb_c_nest_builder_mod.o: tools/psb_c_nest_builder_mod.F90 tools/psb_cd_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o tools/psb_c_nest_tools_mod.o \
|
||||
serial/psb_c_nest_base_mat_mod.o serial/psb_c_nest_mat_mod.o desc/psb_desc_nest_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_c_nest_builder_mod.F90 -o tools/psb_c_nest_builder_mod.o
|
||||
|
||||
tools/psb_z_nest_tools_mod.o: tools/psb_z_nest_tools_mod.F90 tools/psb_z_tools_mod.o \
|
||||
desc/psb_desc_nest_mod.o serial/psb_z_nest_mat_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_z_nest_tools_mod.F90 -o tools/psb_z_nest_tools_mod.o
|
||||
|
||||
tools/psb_z_nest_builder_mod.o: tools/psb_z_nest_builder_mod.F90 tools/psb_cd_tools_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o tools/psb_z_nest_tools_mod.o \
|
||||
serial/psb_z_nest_base_mat_mod.o serial/psb_z_nest_mat_mod.o desc/psb_desc_nest_mod.o
|
||||
$(FC) $(FCOPT) $(FINCLUDES) $(FDEFINES) -c tools/psb_z_nest_builder_mod.F90 -o tools/psb_z_nest_builder_mod.o
|
||||
|
||||
tools/psb_cd_tools_mod.o tools/psb_i_tools_mod.o tools/psb_l_tools_mod.o \
|
||||
tools/psb_s_tools_mod.o tools/psb_d_tools_mod.o \
|
||||
tools/psb_c_tools_mod.o tools/psb_z_tools_mod.o \
|
||||
@@ -459,6 +495,36 @@ psblas/psb_psblas_mod.o: psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o ps
|
||||
psblas/psb_s_psblas_mod.o psblas/psb_c_psblas_mod.o psblas/psb_d_psblas_mod.o psblas/psb_z_psblas_mod.o: serial/psb_mat_mod.o desc/psb_desc_mod.o
|
||||
|
||||
# --- nested mat/desc dependencies (MATNEST) ---
|
||||
serial/psb_s_nest_mat_mod.o: serial/psb_s_mat_mod.o
|
||||
serial/psb_s_nest_base_mat_mod.o: serial/psb_s_nest_mat_mod.o desc/psb_desc_nest_mod.o serial/psb_s_base_mat_mod.o serial/psb_s_mat_mod.o desc/psb_desc_mod.o \
|
||||
serial/psb_i_vect_mod.o serial/psb_s_base_vect_mod.o
|
||||
psb_s_nest_mod.o: \
|
||||
desc/psb_desc_nest_mod.o \
|
||||
serial/psb_s_nest_mat_mod.o \
|
||||
serial/psb_s_nest_base_mat_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_s_nest_tools_mod.o \
|
||||
tools/psb_s_nest_builder_mod.o
|
||||
serial/psb_c_nest_mat_mod.o: serial/psb_c_mat_mod.o
|
||||
serial/psb_c_nest_base_mat_mod.o: serial/psb_c_nest_mat_mod.o desc/psb_desc_nest_mod.o serial/psb_c_base_mat_mod.o serial/psb_c_mat_mod.o desc/psb_desc_mod.o \
|
||||
serial/psb_i_vect_mod.o serial/psb_c_base_vect_mod.o
|
||||
psb_c_nest_mod.o: \
|
||||
desc/psb_desc_nest_mod.o \
|
||||
serial/psb_c_nest_mat_mod.o \
|
||||
serial/psb_c_nest_base_mat_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_c_nest_tools_mod.o \
|
||||
tools/psb_c_nest_builder_mod.o
|
||||
serial/psb_z_nest_mat_mod.o: serial/psb_z_mat_mod.o
|
||||
serial/psb_z_nest_base_mat_mod.o: serial/psb_z_nest_mat_mod.o desc/psb_desc_nest_mod.o serial/psb_z_base_mat_mod.o serial/psb_z_mat_mod.o desc/psb_desc_mod.o \
|
||||
serial/psb_i_vect_mod.o serial/psb_z_base_vect_mod.o
|
||||
psb_z_nest_mod.o: \
|
||||
desc/psb_desc_nest_mod.o \
|
||||
serial/psb_z_nest_mat_mod.o \
|
||||
serial/psb_z_nest_base_mat_mod.o \
|
||||
tools/psb_cd_nest_tools_mod.o \
|
||||
tools/psb_z_nest_tools_mod.o \
|
||||
tools/psb_z_nest_builder_mod.o
|
||||
desc/psb_desc_nest_mod.o: desc/psb_desc_mod.o
|
||||
serial/psb_d_nest_mat_mod.o: serial/psb_d_mat_mod.o
|
||||
serial/psb_d_nest_base_mat_mod.o: serial/psb_d_nest_mat_mod.o desc/psb_desc_nest_mod.o serial/psb_d_base_mat_mod.o serial/psb_d_mat_mod.o desc/psb_desc_mod.o \
|
||||
|
||||
Reference in New Issue
Block a user