SWIG を使用して Python 用にラップしようとしている C++ クラスがあります。配列を入力として受け取る関数の 1 つをラップしようとすると問題が発生します。
これがヘッダーファイルです。
class dyndiff_data_t
{
private:
double H[3];
double GAMMA;
double k;
double P;
public:
dyndiff_data_t(double H_[3],
const double GAMMA_,
const double k_,
const double P_);
void test();
};
これがswigインターフェースファイルです
%module twowave
%{
#define SWIG_FILE_WITH_INIT
#include <twowave.h>
%}
%include "numpy.i"
%init %{
import_array();
%}
%apply (double IN_ARRAY1[3]) {(double H_[3])};
%include <twowave.h>
問題は、配列入力の場合、SWIG が typemap がないと文句を言うことです。理由がわかりません。numpy.i ファイルはhereから取得され、使用している typemap はhereで説明されています
どんな助けでも大歓迎です。