Ich verwende den dgeev
Algorithmus aus der LAPACK-Implementierung im Accelerate-Framework, um Eigenvektoren und Eigenwerte einer Matrix zu berechnen. Leider sind die LAPACK-Funktionen nicht in der Apple-Dokumentation beschrieben, lediglich eine Verknüpfung zu http://netlib.org/lapack/faq.html ist enthalten.UnsafeMutablePointer <Int8> von String in Swift
Wenn Sie nachschlagen, werden Sie feststellen, dass die ersten beiden Argumente in dgeev
Zeichen sind, die angeben, ob Eigenvektoren berechnet werden sollen oder nicht. In Swift wird nach UnsafeMutablePointer<Int8>
gefragt. Wenn ich einfach "N"
verwende, erhalte ich einen Fehler. Die dgeev
Funktion und der Fehler sind im folgenden Screenshot beschrieben
Was soll ich tun, um dies zu lösen?
Es gibt zumindest ein theoretisches Problem mit dieser Lösung: Die von '.UTF8String' zurückgegebene Zeichenfolge ist nur solange gültig, wie das' NSString' Objekt existiert und das sofort zerstört werden kann, weil es keine Referenz darauf gibt es nach der ersten Zeile. Höchstwahrscheinlich wird dies hier nicht passieren, da die Zeichenkette hier eine Literalkonstante ist. –