SUBROUTINESTRTI2F(UPLO,DIAG,N,A,LDA,INFO)**--LAPACKroutine(version3.1)--*Univ.ofTennessee,Univ.ofCaliforniaBerkeleyandNAGLtd..*November2006**..ScalarArguments..CHARACTERDIAG,UPLOINTEGERINFO,LDA,N*..*..ArrayArguments..REALA(LDA,*)*..**Purpose*=======**STRTI2computestheinverseofarealupperorlowertriangular*matrix.**ThisistheLevel2BLASversionofthealgorithm.**Arguments*=========**UPLO(input)CHARACTER*1*SpecifieswhetherthematrixAisupperorlowertriangular.*='U':Uppertriangular*='L':Lowertriangular**DIAG(input)CHARACTER*1*SpecifieswhetherornotthematrixAisunittriangular.*='N':Non-unittriangular*='U':Unittriangular**N(input)INTEGER*TheorderofthematrixA.N>=0.**A(input/output)REALarray,dimension(LDA,N)*Onentry,thetriangularmatrixA.IfUPLO='U',the*leadingnbynuppertriangularpartofthearrayAcontains*theuppertriangularmatrix,andthestrictlylower*triangularpartofAisnotreferenced.IfUPLO='L',the*leadingnbynlowertriangularpartofthearrayAcontains*thelowertriangularmatrix,andthestrictlyupper*triangularpartofAisnotreferenced.IfDIAG='U',the*diagonalelementsofAarealsonotreferencedandare*assumedtobe1.**Onexit,the(triangular)inverseoftheoriginalmatrix,in*thesamestorageformat.**LDA(input)INTEGER*TheleadingdimensionofthearrayA.LDA>=max(1,N).**INFO(output)INTEGER*=0:successfulexit*<0:ifINFO=-k,thek-thargumenthadanillegalvalue**=====================================================================**..Parameters..REALONEPARAMETER(ONE=1.0E+0)*..*..LocalScalars..LOGICALNOUNIT,UPPERINTEGERJREALAJJ*..*..ExternalFunctions..LOGICALLSAMEEXTERNALLSAME*..*..ExternalSubroutines..EXTERNALSSCAL,STRMV,XERBLA*..*..IntrinsicFunctions..INTRINSICMAX*..*..ExecutableStatements..**Testtheinputparameters.*INFO=0UPPER=LSAME(UPLO,'U')NOUNIT=LSAME(DIAG,'N')IF(.NOT.UPPER.AND..NOT.LSAME(UPLO,'L'))THENINFO=-1ELSEIF(.NOT.NOUNIT.AND..NOT.LSAME(DIAG,'U'))THENINFO=-2ELSEIF(N.LT.0)THENINFO=-3ELSEIF(LDA.LT.MAX(1,N))THENINFO=-5ENDIFIF(INFO.NE.0)THENCALLXERBLA('STRTI2',-INFO)RETURNENDIF*IF(UPPER)THEN**Computeinverseofuppertriangularmatrix.*DO10J=1,NIF(NOUNIT)THENA(J,J)=ONE/A(J,J)AJJ=-A(J,J)ELSEAJJ=-ONEENDIF**Computeelements1:j-1ofj-thcolumn.*CALLSTRMV('Upper','No transpose',DIAG,J-1,A,LDA,$A(1,J),1)CALLSSCAL(J-1,AJJ,A(1,J),1)10CONTINUEELSE**Computeinverseoflowertriangularmatrix.*DO20J=N,1,-1IF(NOUNIT)THENA(J,J)=ONE/A(J,J)AJJ=-A(J,J)ELSEAJJ=-ONEENDIFIF(J.LT.N)THEN**Computeelementsj+1:nofj-thcolumn.*CALLSTRMV('Lower','No transpose',DIAG,N-J,$A(J+1,J+1),LDA,A(J+1,J),1)CALLSSCAL(N-J,AJJ,A(J+1,J),1)ENDIF20CONTINUEENDIF*RETURN**EndofSTRTI2*END
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。