Как создать карту типов SWIG для функции, которая принимает 2 таблицы? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь создать карту типов SWIG для следующей функции:

void mix(int size, float *in1, float *in2, float *out1)
{
    for (int i = 0; i < size; ++i)
        out1[i] = in1[i] + in2[i];
}

В lua я хочу, чтобы эта функция принимала 2 аргумента таблицы и возвращала 1 таблицу следующим образом:

local t = m.mix({1,2,3}, {4,5,6})

Тогда таблица t должна быть {5,7,9}, которая является суммой двух таблиц.

Я пытался использовать встроенные карты типов, но я мог только обернуть функцию, которая принимает и возвращает одну таблицу, которая выглядит следующим образом:

%apply (float *INOUT, int) {(float *inout, int size)};

Как создать карту типов SWIG для функции, которая принимает две таблицы и возвращает одну таблицу?

1 Ответ

0 голосов
/ 29 мая 2019

Я нашел простой способ сделать это.

%apply (float *INOUT, int) {(float *in1, int n1)};
%apply (float *INPUT, int) {(float *in2, int n2)};

Кажется, для моей цели это нормально работает.

...