Сигнатура функции ограничения векторного неравенства NLOpt в C++C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Сигнатура функции ограничения векторного неравенства NLOpt в C++

Сообщение Anonymous »

Я работаю над реализацией задачи нелинейной оптимизации с использованием библиотеки NLOpt, и у меня возникли проблемы с определением ограничения векторного неравенства с помощью интерфейса C++.
NLOpt документы, похоже, указывают, что они поддерживают определение функций стоимости, а также функций ограничения равенства и неравенства, которые принимают аргументы std::vector&, а не указатели на массивы (

Код: Выделить всё

double*). См. сигнатуры myvfunc()
и myvconstraint() в разделе «Пример на C++» по следующей ссылке.
До сих пор мне удавалось добиться успеха. написав как мою функцию стоимости, так и мое ограничение равенства со следующими сигнатурами функций:

Код: Выделить всё

double cost_fcn(const std::vector& x, std::vector& grad, void* data);
double eq_constraint(const std::vector& x, std::vector& grad, void* data);
Документация NLOpt также описывает поддержку векторных ограничений равенства и неравенства. Но сигнатуры функций (показанные ниже), которые они предоставляют, имеют формат C (с использованием указателей массива).

Код: Выделить всё

void ineq_constraint(
unsigned m, double *result, unsigned n, const double* x, double* grad, void* f_data);
где m — размерность вектора ограничений, а n — размер пространства параметров.
Это из документации не ясно, что сигнатура функции в стиле C++ поддерживается для векторных ограничений, но я пытался реализовать следующее, и это не работает:

Код: Выделить всё

void ineq_constraint(
std::vector& result, const std::vector& x, std::vector& grad, void* data);
На этом этапе я попытаюсь использовать сигнатуру функции в стиле C, но было бы неплохо получить окончательный ответ относительно того, поддерживает ли NLOpt в настоящее время C++. сигнатура функции стиля для векторных ограничений.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ature-in-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сигнатура функции ограничения векторного неравенства NLOpt в C++
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Точно такая же сигнатура функции, только с константной разницей: антишаблон
    Anonymous » » в форуме C++
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Использование nlopt в Python с несколькими ограничениями на основе коэффициентов матрицы
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Сигнатура метода myspider. parse()» не соответствует сигнатуре базового метода в классе «Spider».
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Что такое сигнатура метода? [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»