Eigen は高速な行列計算を行うための C++ ライブラリで、ヘッダのみで構成される純粋なテンプレートライブラリです。
現時点では Swift は C++ と直接連携できないので、Swift から Eigen を使うには C または Obj-C でブリッジする必要がありますが、 Linux でも使えるようにするには Obj-C は選択肢から外れます。
また Eigen はテンプレートライブラリなので、「Swift 側の Wrapper 型も係数に関して generic にしたい」(× EigenIntMatrix, EigenDoubleMatrix, … / ○ EigenMatrix<Int>, EigenMatrix<Double>, …)という欲求も生まれます。
この LT では、両立が難しそうな二つの課題:
の解決法を紹介し、私が数学の研究のために行っているホモロジー群の計算を高速化した事例を紹介したいと思います。