Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
end function zmatmul_csc_csr_2cscfunction zmatmul_csc_csr_2csc(A,B)return(AxB)type(sparse_zmatrix_csc),intent(in)::A,AxBtype(sparse_zmatrix_csr)::Binteger::Na(2),Nb(2)integer::icol,j,jrow,k,krowcomplex(8)::aval,bvalNa=A%shape();Nb=B%shape()if(Na(2)/=Nb(1))stop"Matrix not matching dimension in zmatmul_csc_csc"call AxB%free()call AxB%init(Na(1),Nb(2))do i=1,Na(2)do j=1,A%col(i)%Sizejrow=A%col(i)%rows(j)aval=A%col(i)%vals(j)do k=1,B%row(i)%Sizekcol=B%row(i)%cols(k)bval=B%row(i)%vals(k)AxB%insert(aval*bval,jrow,kcol)end do end do end do end function zmatmul_csc_csr_2csc