Skip to content

Commit 7cc33ef

Browse files
authored
Add all nonlinear operators supported by MathOptInterface (#34)
1 parent 1cb42c2 commit 7cc33ef

File tree

3 files changed

+242
-18
lines changed

3 files changed

+242
-18
lines changed

Diff for: README.md

+72-8
Original file line numberDiff line numberDiff line change
@@ -358,30 +358,94 @@ and their corresponding arity.
358358

359359
| Name | Arity |
360360
| ---- | ----- |
361+
| `"+"` | Unary |
362+
| `"-"` | Unary |
363+
| `"abs"` | Unary |
364+
| `"sqrt"` | Unary |
365+
| `"cbrt"` | Unary |
366+
| `"abs2"` | Unary |
367+
| `"inv"` | Unary |
361368
| `"log"` | Unary |
362369
| `"log10"` | Unary |
370+
| `"log2"` | Unary |
371+
| `"log1p"` | Unary |
363372
| `"exp"` | Unary |
364-
| `"sqrt"` | Unary |
365-
| `"floor"` | Unary |
366-
| `"ceil"` | Unary |
367-
| `"abs"` | Unary |
368-
| `"cos"` | Unary |
373+
| `"exp2"` | Unary |
374+
| `"expm1"` | Unary |
369375
| `"sin"` | Unary |
376+
| `"cos"` | Unary |
370377
| `"tan"` | Unary |
371-
| `"acos"` | Unary |
378+
| `"sec"` | Unary |
379+
| `"csc"` | Unary |
380+
| `"cot"` | Unary |
381+
| `"sind"` | Unary |
382+
| `"cosd"` | Unary |
383+
| `"tand"` | Unary |
384+
| `"secd"` | Unary |
385+
| `"cscd"` | Unary |
386+
| `"cotd"` | Unary |
372387
| `"asin"` | Unary |
388+
| `"acos"` | Unary |
373389
| `"atan"` | Unary |
374-
| `"cosh"` | Unary |
390+
| `"asec"` | Unary |
391+
| `"acsc"` | Unary |
392+
| `"acot"` | Unary |
393+
| `"asind"` | Unary |
394+
| `"acosd"` | Unary |
395+
| `"atand"` | Unary |
396+
| `"asecd"` | Unary |
397+
| `"acscd"` | Unary |
398+
| `"acotd"` | Unary |
375399
| `"sinh"` | Unary |
400+
| `"cosh"` | Unary |
376401
| `"tanh"` | Unary |
377-
| `"acosh"` | Unary |
402+
| `"sech"` | Unary |
403+
| `"csch"` | Unary |
404+
| `"coth"` | Unary |
378405
| `"asinh"` | Unary |
406+
| `"acosh"` | Unary |
379407
| `"atanh"` | Unary |
408+
| `"asech"` | Unary |
409+
| `"acsch"` | Unary |
410+
| `"acoth"` | Unary |
411+
| `"deg2rad"` | Unary |
412+
| `"rad2deg"` | Unary |
413+
| `"erf"` | Unary |
414+
| `"erfinv"` | Unary |
415+
| `"erfc"` | Unary |
416+
| `"erfcinv"` | Unary |
417+
| `"erfi"` | Unary |
418+
| `"gamma"` | Unary |
419+
| `"lgamma"` | Unary |
420+
| `"digamma"` | Unary |
421+
| `"invdigamma"` | Unary |
422+
| `"trigamma"` | Unary |
423+
| `"airyai"` | Unary |
424+
| `"airybi"` | Unary |
425+
| `"airyaiprime"` | Unary |
426+
| `"airybiprime"` | Unary |
427+
| `"besselj0"` | Unary |
428+
| `"besselj1"` | Unary |
429+
| `"bessely0"` | Unary |
430+
| `"bessely1"` | Unary |
431+
| `"erfcx"` | Unary |
432+
| `"dawson"` | Unary |
433+
| `"floor"` | Unary |
434+
| `"ceil"` | Unary |
380435
| `"/"` | Binary |
381436
| `"^"` | Binary |
437+
| `"atan"` | Binary |
438+
| `"&&"` | Binary |
439+
| `"||"` | Binary |
440+
| `"<="` | Binary |
441+
| `"<"` | Binary |
442+
| `">="` | Binary |
443+
| `">"` | Binary |
444+
| `"=="` | Binary |
382445
| `"+"` | N-ary |
383446
| `"-"` | N-ary |
384447
| `"*"` | N-ary |
448+
| `"ifelse"` | N-ary |
385449
| `"min"` | N-ary |
386450
| `"max"` | N-ary |
387451

Diff for: schemas/mof.1.6.schema.json

+85-5
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,78 @@
199199
"properties": {
200200
"type": {
201201
"enum": [
202-
"log", "log10", "exp", "sqrt", "floor", "ceil",
203-
"abs", "cos", "sin", "tan", "acos", "asin", "atan",
204-
"cosh", "sinh", "tanh", "acosh", "asinh", "atanh"
202+
"abs",
203+
"sqrt",
204+
"cbrt",
205+
"abs2",
206+
"inv",
207+
"log",
208+
"log10",
209+
"log2",
210+
"log1p",
211+
"exp",
212+
"exp2",
213+
"expm1",
214+
"sin",
215+
"cos",
216+
"tan",
217+
"sec",
218+
"csc",
219+
"cot",
220+
"sind",
221+
"cosd",
222+
"tand",
223+
"secd",
224+
"cscd",
225+
"cotd",
226+
"asin",
227+
"acos",
228+
"atan",
229+
"asec",
230+
"acsc",
231+
"acot",
232+
"asind",
233+
"acosd",
234+
"atand",
235+
"asecd",
236+
"acscd",
237+
"acotd",
238+
"sinh",
239+
"cosh",
240+
"tanh",
241+
"sech",
242+
"csch",
243+
"coth",
244+
"asinh",
245+
"acosh",
246+
"atanh",
247+
"asech",
248+
"acsch",
249+
"acoth",
250+
"deg2rad",
251+
"rad2deg",
252+
"erf",
253+
"erfinv",
254+
"erfc",
255+
"erfcinv",
256+
"erfi",
257+
"gamma",
258+
"lgamma",
259+
"digamma",
260+
"invdigamma",
261+
"trigamma",
262+
"airyai",
263+
"airybi",
264+
"airyaiprime",
265+
"airybiprime",
266+
"besselj0",
267+
"besselj1",
268+
"bessely0",
269+
"bessely1",
270+
"erfcx",
271+
"dawson",
272+
"floor",
273+
"ceil"
205274
]
206275
},
207276
"args": {
@@ -218,7 +287,18 @@
218287
"required": ["args"],
219288
"properties": {
220289
"type": {
221-
"enum": ["/", "^"]
290+
"enum": [
291+
"/",
292+
"^",
293+
"atan",
294+
"&&",
295+
"||",
296+
"<=",
297+
"<",
298+
">=",
299+
">",
300+
"=="
301+
]
222302
},
223303
"args": {
224304
"type": "array",
@@ -234,7 +314,7 @@
234314
"required": ["args"],
235315
"properties": {
236316
"type": {
237-
"enum": ["+", "-", "*", "min", "max"]
317+
"enum": ["+", "-", "*", "ifelse", "min", "max"]
238318
},
239319
"args": {
240320
"type": "array",

Diff for: schemas/mof.1.schema.json

+85-5
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,78 @@
199199
"properties": {
200200
"type": {
201201
"enum": [
202-
"log", "log10", "exp", "sqrt", "floor", "ceil",
203-
"abs", "cos", "sin", "tan", "acos", "asin", "atan",
204-
"cosh", "sinh", "tanh", "acosh", "asinh", "atanh"
202+
"abs",
203+
"sqrt",
204+
"cbrt",
205+
"abs2",
206+
"inv",
207+
"log",
208+
"log10",
209+
"log2",
210+
"log1p",
211+
"exp",
212+
"exp2",
213+
"expm1",
214+
"sin",
215+
"cos",
216+
"tan",
217+
"sec",
218+
"csc",
219+
"cot",
220+
"sind",
221+
"cosd",
222+
"tand",
223+
"secd",
224+
"cscd",
225+
"cotd",
226+
"asin",
227+
"acos",
228+
"atan",
229+
"asec",
230+
"acsc",
231+
"acot",
232+
"asind",
233+
"acosd",
234+
"atand",
235+
"asecd",
236+
"acscd",
237+
"acotd",
238+
"sinh",
239+
"cosh",
240+
"tanh",
241+
"sech",
242+
"csch",
243+
"coth",
244+
"asinh",
245+
"acosh",
246+
"atanh",
247+
"asech",
248+
"acsch",
249+
"acoth",
250+
"deg2rad",
251+
"rad2deg",
252+
"erf",
253+
"erfinv",
254+
"erfc",
255+
"erfcinv",
256+
"erfi",
257+
"gamma",
258+
"lgamma",
259+
"digamma",
260+
"invdigamma",
261+
"trigamma",
262+
"airyai",
263+
"airybi",
264+
"airyaiprime",
265+
"airybiprime",
266+
"besselj0",
267+
"besselj1",
268+
"bessely0",
269+
"bessely1",
270+
"erfcx",
271+
"dawson",
272+
"floor",
273+
"ceil"
205274
]
206275
},
207276
"args": {
@@ -218,7 +287,18 @@
218287
"required": ["args"],
219288
"properties": {
220289
"type": {
221-
"enum": ["/", "^"]
290+
"enum": [
291+
"/",
292+
"^",
293+
"atan",
294+
"&&",
295+
"||",
296+
"<=",
297+
"<",
298+
">=",
299+
">",
300+
"=="
301+
]
222302
},
223303
"args": {
224304
"type": "array",
@@ -234,7 +314,7 @@
234314
"required": ["args"],
235315
"properties": {
236316
"type": {
237-
"enum": ["+", "-", "*", "min", "max"]
317+
"enum": ["+", "-", "*", "ifelse", "min", "max"]
238318
},
239319
"args": {
240320
"type": "array",

0 commit comments

Comments
 (0)