@@ -139,9 +139,11 @@ internal func wrap_lapack_inv<T: MfStorable>(_ rowcolnum: Int, _ srcdstptr: Unsa
139139/// - Throws: An error of type `MfError.LinAlgError.singularMatrix`
140140@inline ( __always)
141141internal func wrap_lapack_eigen< T: MfStorable > ( _ rowcolnum: Int , _ srcptr: UnsafeMutablePointer < T > , _ dstLVecRePtr: UnsafeMutablePointer < T > , _ dstLVecImPtr: UnsafeMutablePointer < T > , _ dstRVecRePtr: UnsafeMutablePointer < T > , _ dstRVecImPtr: UnsafeMutablePointer < T > , _ dstValRePtr: UnsafeMutablePointer < T > , _ dstValImPtr: UnsafeMutablePointer < T > , lapack_func: lapack_eigen_func < T > ) throws {
142- let JOBVL = UnsafeMutablePointer ( mutating: ( " V " as NSString ) . utf8String) !
143- let JOBVR = UnsafeMutablePointer ( mutating: ( " V " as NSString ) . utf8String) !
144-
142+ var jobvlStr = Array ( " V " . utf8CString)
143+ var jobvrStr = Array ( " V " . utf8CString)
144+ let JOBVL = UnsafeMutablePointer < CChar > ( & jobvlStr)
145+ let JOBVR = UnsafeMutablePointer < CChar > ( & jobvrStr)
146+
145147 var N = __CLPK_integer ( rowcolnum)
146148
147149 var LDA = __CLPK_integer ( rowcolnum)
@@ -322,8 +324,9 @@ internal func wrap_lapack_eigen<T: MfStorable>(_ rowcolnum: Int, _ srcptr: Unsaf
322324/// - Throws: An error of type `MfError.LinAlgError.singularMatrix`
323325@inline ( __always)
324326internal func wrap_lapack_svd< T: MfStorable > ( _ rownum: Int , _ colnum: Int , _ srcptr: UnsafeMutablePointer < T > , _ vptr: UnsafeMutablePointer < T > , _ sptr: UnsafeMutablePointer < T > , _ rtptr: UnsafeMutablePointer < T > , _ full_matrices: Bool , lapack_func: lapack_svd_func < T > ) throws {
325- let JOBZ : UnsafeMutablePointer < Int8 >
326-
327+ var jobzStr = full_matrices ? Array ( " A " . utf8CString) : Array ( " S " . utf8CString)
328+ let JOBZ = UnsafeMutablePointer < CChar > ( & jobzStr)
329+
327330 var M = __CLPK_integer ( rownum)
328331 var N = __CLPK_integer ( colnum)
329332
@@ -342,14 +345,12 @@ internal func wrap_lapack_svd<T: MfStorable>(_ rownum: Int, _ colnum: Int, _ src
342345
343346
344347 if full_matrices{
345- JOBZ = UnsafeMutablePointer ( mutating: ( " A " as NSString ) . utf8String) !
346348 LDVT = __CLPK_integer ( colnum)
347349
348350 ucol = rownum
349351 vtrow = colnum
350352 }
351353 else {
352- JOBZ = UnsafeMutablePointer ( mutating: ( " S " as NSString ) . utf8String) !
353354 LDVT = __CLPK_integer ( snum)
354355
355356 ucol = snum
@@ -872,8 +873,10 @@ internal func wrap_lapack_inv<T: MfStorable>(_ rowcolnum: Int, _ srcdstptr: Unsa
872873
873874@inline ( __always)
874875internal func wrap_lapack_eigen< T: MfStorable > ( _ rowcolnum: Int , _ srcptr: UnsafeMutablePointer < T > , _ dstLVecRePtr: UnsafeMutablePointer < T > , _ dstLVecImPtr: UnsafeMutablePointer < T > , _ dstRVecRePtr: UnsafeMutablePointer < T > , _ dstRVecImPtr: UnsafeMutablePointer < T > , _ dstValRePtr: UnsafeMutablePointer < T > , _ dstValImPtr: UnsafeMutablePointer < T > , lapack_func: lapack_eigen_func < T > ) throws {
875- let JOBVL = UnsafeMutablePointer ( mutating: ( " V " as NSString ) . utf8String) !
876- let JOBVR = UnsafeMutablePointer ( mutating: ( " V " as NSString ) . utf8String) !
876+ var jobvlStr = Array ( " V " . utf8CString)
877+ var jobvrStr = Array ( " V " . utf8CString)
878+ let JOBVL = UnsafeMutablePointer < CChar > ( & jobvlStr)
879+ let JOBVR = UnsafeMutablePointer < CChar > ( & jobvrStr)
877880
878881 var N = __CLPK_integer ( rowcolnum)
879882 var LDA = __CLPK_integer ( rowcolnum)
@@ -951,7 +954,8 @@ internal func wrap_lapack_eigen<T: MfStorable>(_ rowcolnum: Int, _ srcptr: Unsaf
951954
952955@inline ( __always)
953956internal func wrap_lapack_svd< T: MfStorable > ( _ rownum: Int , _ colnum: Int , _ srcptr: UnsafeMutablePointer < T > , _ vptr: UnsafeMutablePointer < T > , _ sptr: UnsafeMutablePointer < T > , _ rtptr: UnsafeMutablePointer < T > , _ full_matrices: Bool , lapack_func: lapack_svd_func < T > ) throws {
954- let JOBZ : UnsafeMutablePointer < Int8 >
957+ var jobzStr = full_matrices ? Array ( " A " . utf8CString) : Array ( " S " . utf8CString)
958+ let JOBZ = UnsafeMutablePointer < CChar > ( & jobzStr)
955959 var M = __CLPK_integer ( rownum)
956960 var N = __CLPK_integer ( colnum)
957961 let ucol : Int , vtrow : Int
@@ -964,13 +968,11 @@ internal func wrap_lapack_svd<T: MfStorable>(_ rownum: Int, _ colnum: Int, _ src
964968 var LDVT : __CLPK_integer
965969
966970 if full_matrices {
967- JOBZ = UnsafeMutablePointer ( mutating: ( " A " as NSString ) . utf8String) !
968971 LDVT = __CLPK_integer ( colnum)
969972 ucol = rownum
970973 vtrow = colnum
971974 }
972975 else {
973- JOBZ = UnsafeMutablePointer ( mutating: ( " S " as NSString ) . utf8String) !
974976 LDVT = __CLPK_integer ( snum)
975977 ucol = snum
976978 vtrow = snum
0 commit comments