array join(const int dim, const array& first, const array& second, const array &third, const array &fourth) { af_array out = 0; af_array inputs[4] = {first.get(), second.get(), third.get(), fourth.get()}; AF_THROW(af_join_many(&out, dim, 4, inputs)); return array(out); }
af_array * arr_ud = NewArray(L);// num, narrays, inputs, arr_ud unsigned count = U(L, 2); std::vector<af_array> arrays; for (unsigned i = 1; i <= count; ++i) { lua_rawgeti(L, 3, i); // num, narrays, inputs, arr_ud, array arrays.push_back(GetArray(L, 5)); lua_pop(L, 1); // num, arrays, inputs, arr_ud } af_err err = af_join_many(arr_ud, I(L, 1), count, &arrays.front()); return PushErr(L, err); // num, arrays, inputs, err, arr_ud } }, { "af_moddims", [](lua_State * L) { lua_settop(L, 3); // arr, ndims, dims LuaDims dims(L, 2); af_array * arr_ud = NewArray(L);// arr, ndims, dims, arr_ud af_err err = af_moddims(arr_ud, GetArray(L, 1), dims.GetNDims(), dims.GetDims()); return PushErr(L, err); // arr, ndims, dims, err, arr_ud