From 3b99ef148ffa4041ce8a37286923bec86782a668 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 1 Aug 2023 03:32:16 +0000 Subject: [PATCH] build based on 05068de --- dev/core/index.html | 2 +- dev/guide/index.html | 4 ++-- dev/index.html | 2 +- dev/search/index.html | 2 +- dev/search_index.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dev/core/index.html b/dev/core/index.html index 3435af8..b8fb0ae 100644 --- a/dev/core/index.html +++ b/dev/core/index.html @@ -1,2 +1,2 @@ -API Manual · ExaModels.jl

ExaModels

ExaModels.CoreType

ExaModels.Core

A core data object used for creating ExaModels.Model.

ExaModels.Core()

Returns ExaModels.Core for creating ExaModels.Model{Float64,Vector{Float64}}

source
ExaModels.CoreMethod

ExaModels.Core(S::Type)

Returns ExaModels.Core for creating ExaModels.Model{T,VT}, where VT <: S

source
ExaModels.ModelType

ExaModels.Model <: NLPModels.AbstractNLPModel

An NLP model with ExaModels backend

source
+API Manual · ExaModels.jl

ExaModels

ExaModels.CoreType

ExaModels.Core

A core data object used for creating ExaModels.Model.

ExaModels.Core()

Returns ExaModels.Core for creating ExaModels.Model{Float64,Vector{Float64}}

source
ExaModels.CoreMethod

ExaModels.Core(S::Type)

Returns ExaModels.Core for creating ExaModels.Model{T,VT}, where VT <: S

source
ExaModels.ModelType

ExaModels.Model <: NLPModels.AbstractNLPModel

An NLP model with ExaModels backend

source
diff --git a/dev/guide/index.html b/dev/guide/index.html index dae435e..a271478 100644 --- a/dev/guide/index.html +++ b/dev/guide/index.html @@ -72,7 +72,7 @@ Number of equality constraint Jacobian evaluations = 7 Number of inequality constraint Jacobian evaluations = 0 Number of Lagrangian Hessian evaluations = 6 -Total seconds in IPOPT = 1.744 +Total seconds in IPOPT = 1.461 EXIT: Optimal Solution Found. -

The solution sol contains the field sol.solution holding the optimized parameters.


This page was generated using Literate.jl.

+

The solution sol contains the field sol.solution holding the optimized parameters.


This page was generated using Literate.jl.

diff --git a/dev/index.html b/dev/index.html index 823e019..a3bd4d9 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Introduction · ExaModels.jl

Introduction

Welcome to the documentation of ExaModels.jl

Warning

This documentation page is under construction.

What is ExaModels?

ExaModels.jl implements SIMD abstraction of nonlinear programs and the automatic differentiation of its functions. ExaModels.jl expresses the functions in the form of iterables over statically typed data. This allows highly efficient derivative computations based on reverse-mode automatic differentiation.

Bug reports and support

Please report issues and feature requests via the Github issue tracker.

+Introduction · ExaModels.jl

Introduction

Welcome to the documentation of ExaModels.jl

Warning

This documentation page is under construction.

What is ExaModels?

ExaModels.jl implements SIMD abstraction of nonlinear programs and the automatic differentiation of its functions. ExaModels.jl expresses the functions in the form of iterables over statically typed data. This allows highly efficient derivative computations based on reverse-mode automatic differentiation.

Bug reports and support

Please report issues and feature requests via the Github issue tracker.

diff --git a/dev/search/index.html b/dev/search/index.html index db8f4c8..a2a5166 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · ExaModels.jl

Loading search...

    +Search · ExaModels.jl

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js index 0e9c52b..95cac7f 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"EditURL = \"https://github.com/sshin23/ExaModels.jl/blob/main/docs/src/guide.jl\"","category":"page"},{"location":"guide/#Getting-Started","page":"Quick Start","title":"Getting Started","text":"","category":"section"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels can create nonlinear prgogramming models and allows solving the created models using NLP solvers (in particular, those that are interfaced with NLPModels, such as NLPModelsIpopt. We now use ExaModels to model the following nonlinear program:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"beginaligned\nmin_x_i_i=0^N sum_i=2^N 100(x_i-1^2-x_i)^2+(x_i-1-1)^2\ntextst 3x_i+1^3+2x_i+2-5+sin(x_i+1-x_i+2)sin(x_i+1+x_i+2)+4x_i+1-x_i e^x_i-x_i+1-3 = 0\nendaligned","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"We model the problem with:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"using ExaModels","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"We set","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"N = 10000","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"10000","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"First, we create a ExaModels.Core.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"c = ExaModels.Core()","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Core{Float64, Vector{Float64}, Nothing}(ExaModels.ObjectiveNull(), ExaModels.ConstraintNull(), 0, 0, 0, 0, 0, 0, 0, 0, Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], nothing)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The variables can be created as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"x = ExaModels.variable(\n c, N;\n start = (mod(i,2)==1 ? -1.2 : 1. for i=1:N)\n)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Variable{Tuple{Int64}, Int64}((10000,), 0)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The objective can be set as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.objective(c, 100*(x[i-1]^2-x[i])^2+(x[i-1]-1)^2 for i in 2:N)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Objective{ExaModels.ObjectiveNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}, UnitRange{Int64}}(ExaModels.ObjectiveNull(), ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}(ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}(100, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}(ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 2), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0))), 2)), ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 1), 2)), ExaModels.Compressor{Tuple{Int64, Int64, Int64}}((1, 2, 1)), ExaModels.Compressor{NTuple{4, Int64}}((1, 2, 3, 1)), 0, 0, 0, 2, 3), 2:10000)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The constraints can be set as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.constraint(\n c,\n 3x[i+1]^3+2*x[i+2]-5+sin(x[i+1]-x[i+2])sin(x[i+1]+x[i+2])+4x[i+1]-x[i]exp(x[i]-x[i+1])-3\n for i in 1:N-2)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Constraint{ExaModels.ConstraintNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}, UnitRange{Int64}}(ExaModels.ConstraintNull(), ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}(3, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 3)), ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(2, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))), 5), ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}(ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))))), ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(4, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)))), ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0)), ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)))))), 3), ExaModels.Compressor{NTuple{10, Int64}}((1, 2, 1, 2, 1, 2, 1, 3, 3, 1)), ExaModels.Compressor{NTuple{17, Int64}}((1, 1, 2, 3, 1, 2, 3, 1, 3, 4, 2, 5, 5, 1, 6, 5, 6)), 0, 0, 29997, 3, 6), 1:9998)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"Finally, we create an NLPModel.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"m = ExaModels.Model(c)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Model{Float64, Vector{Float64}, Nothing, ExaModels.Objective{ExaModels.ObjectiveNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}, UnitRange{Int64}}, ExaModels.Constraint{ExaModels.ConstraintNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}, UnitRange{Int64}}}\n Problem name: Generic\n All variables: ████████████████████ 10000 All constraints: ████████████████████ 9998 \n free: ████████████████████ 10000 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 9998 \n infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n nnzh: ( 99.82% sparsity) 89985 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n nonlinear: ████████████████████ 9998 \n nnzj: ( 99.97% sparsity) 29994 \n\nExaModels.Counters(0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"To solve the problem with Ipopt,","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"using NLPModelsIpopt\nsol = ipopt(m);","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"\n******************************************************************************\nThis program contains Ipopt, a library for large-scale nonlinear optimization.\n Ipopt is released as open source code under the Eclipse Public License (EPL).\n For more information visit https://github.com/coin-or/Ipopt\n******************************************************************************\n\nThis is Ipopt version 3.14.13, running with linear solver MUMPS 5.6.0.\n\nNumber of nonzeros in equality constraint Jacobian...: 29994\nNumber of nonzeros in inequality constraint Jacobian.: 0\nNumber of nonzeros in Lagrangian Hessian.............: 89985\n\nTotal number of variables............................: 10000\n variables with only lower bounds: 0\n variables with lower and upper bounds: 0\n variables with only upper bounds: 0\nTotal number of equality constraints.................: 9998\nTotal number of inequality constraints...............: 0\n inequality constraints with only lower bounds: 0\n inequality constraints with lower and upper bounds: 0\n inequality constraints with only upper bounds: 0\n\niter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n 0 2.5405160e+06 2.48e+01 2.73e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n 1 1.3512419e+06 1.49e+01 8.27e+01 -1.0 2.20e+00 - 1.00e+00 1.00e+00f 1\n 2 1.5156131e+05 4.28e+00 1.36e+02 -1.0 1.43e+00 - 1.00e+00 1.00e+00f 1\n 3 6.6755024e+01 3.09e-01 2.18e+01 -1.0 5.63e-01 - 1.00e+00 1.00e+00f 1\n 4 6.2338933e+00 1.73e-02 8.47e-01 -1.0 2.10e-01 - 1.00e+00 1.00e+00h 1\n 5 6.2324586e+00 1.15e-05 8.16e-04 -1.7 3.35e-03 - 1.00e+00 1.00e+00h 1\n 6 6.2324586e+00 8.36e-12 7.97e-10 -5.7 2.00e-06 - 1.00e+00 1.00e+00h 1\n\nNumber of Iterations....: 6\n\n (scaled) (unscaled)\nObjective...............: 7.8692659500479645e-01 6.2324586324379885e+00\nDual infeasibility......: 7.9743417331632266e-10 6.3156786526652763e-09\nConstraint violation....: 8.3555384833289281e-12 8.3555384833289281e-12\nVariable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00\nComplementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\nOverall NLP error.......: 7.9743417331632266e-10 6.3156786526652763e-09\n\n\nNumber of objective function evaluations = 7\nNumber of objective gradient evaluations = 7\nNumber of equality constraint evaluations = 7\nNumber of inequality constraint evaluations = 0\nNumber of equality constraint Jacobian evaluations = 7\nNumber of inequality constraint Jacobian evaluations = 0\nNumber of Lagrangian Hessian evaluations = 6\nTotal seconds in IPOPT = 1.744\n\nEXIT: Optimal Solution Found.\n","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The solution sol contains the field sol.solution holding the optimized parameters.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"This page was generated using Literate.jl.","category":"page"},{"location":"core/#ExaModels","page":"API Manual","title":"ExaModels","text":"","category":"section"},{"location":"core/","page":"API Manual","title":"API Manual","text":"Modules = [ExaModels]","category":"page"},{"location":"core/#ExaModels.Core","page":"API Manual","title":"ExaModels.Core","text":"ExaModels.Core\n\nA core data object used for creating ExaModels.Model.\n\nExaModels.Core()\n\nReturns ExaModels.Core for creating ExaModels.Model{Float64,Vector{Float64}}\n\n\n\n\n\n","category":"type"},{"location":"core/#ExaModels.Core-Tuple{Nothing}","page":"API Manual","title":"ExaModels.Core","text":"ExaModels.Core(S::Type)\n\nReturns ExaModels.Core for creating ExaModels.Model{T,VT}, where VT <: S\n\n\n\n\n\n","category":"method"},{"location":"core/#ExaModels.Model","page":"API Manual","title":"ExaModels.Model","text":"ExaModels.Model <: NLPModels.AbstractNLPModel\n\nAn NLP model with ExaModels backend\n\n\n\n\n\n","category":"type"},{"location":"core/#ExaModels.Model-Tuple{C} where C<:ExaModels.Core","page":"API Manual","title":"ExaModels.Model","text":"ExaModels.Model(core)\n\n\n\n\n\n","category":"method"},{"location":"#Introduction","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Welcome to the documentation of ExaModels.jl","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"warning: Warning\nThis documentation page is under construction.","category":"page"},{"location":"#What-is-ExaModels?","page":"Introduction","title":"What is ExaModels?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"ExaModels.jl implements SIMD abstraction of nonlinear programs and the automatic differentiation of its functions. ExaModels.jl expresses the functions in the form of iterables over statically typed data. This allows highly efficient derivative computations based on reverse-mode automatic differentiation.","category":"page"},{"location":"#Bug-reports-and-support","page":"Introduction","title":"Bug reports and support","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Please report issues and feature requests via the Github issue tracker. ","category":"page"}] +[{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"EditURL = \"https://github.com/sshin23/ExaModels.jl/blob/main/docs/src/guide.jl\"","category":"page"},{"location":"guide/#Getting-Started","page":"Quick Start","title":"Getting Started","text":"","category":"section"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels can create nonlinear prgogramming models and allows solving the created models using NLP solvers (in particular, those that are interfaced with NLPModels, such as NLPModelsIpopt. We now use ExaModels to model the following nonlinear program:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"beginaligned\nmin_x_i_i=0^N sum_i=2^N 100(x_i-1^2-x_i)^2+(x_i-1-1)^2\ntextst 3x_i+1^3+2x_i+2-5+sin(x_i+1-x_i+2)sin(x_i+1+x_i+2)+4x_i+1-x_i e^x_i-x_i+1-3 = 0\nendaligned","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"We model the problem with:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"using ExaModels","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"We set","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"N = 10000","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"10000","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"First, we create a ExaModels.Core.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"c = ExaModels.Core()","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Core{Float64, Vector{Float64}, Nothing}(ExaModels.ObjectiveNull(), ExaModels.ConstraintNull(), 0, 0, 0, 0, 0, 0, 0, 0, Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], nothing)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The variables can be created as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"x = ExaModels.variable(\n c, N;\n start = (mod(i,2)==1 ? -1.2 : 1. for i=1:N)\n)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Variable{Tuple{Int64}, Int64}((10000,), 0)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The objective can be set as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.objective(c, 100*(x[i-1]^2-x[i])^2+(x[i-1]-1)^2 for i in 2:N)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Objective{ExaModels.ObjectiveNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}, UnitRange{Int64}}(ExaModels.ObjectiveNull(), ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}(ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}(100, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}(ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 2), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0))), 2)), ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 1), 2)), ExaModels.Compressor{Tuple{Int64, Int64, Int64}}((1, 2, 1)), ExaModels.Compressor{NTuple{4, Int64}}((1, 2, 3, 1)), 0, 0, 0, 2, 3), 2:10000)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The constraints can be set as follows:","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.constraint(\n c,\n 3x[i+1]^3+2*x[i+2]-5+sin(x[i+1]-x[i+2])sin(x[i+1]+x[i+2])+4x[i+1]-x[i]exp(x[i]-x[i+1])-3\n for i in 1:N-2)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Constraint{ExaModels.ConstraintNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}, UnitRange{Int64}}(ExaModels.ConstraintNull(), ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}(ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}(3, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), 3)), ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(2, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))), 5), ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}(ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 2), 0)))))), ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(4, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)))), ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0)), ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}(ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}(ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 0)), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}(ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}(ExaModels.Node2{typeof(+), ExaModels.Par, Int64}(ExaModels.Par(), 1), 0)))))), 3), ExaModels.Compressor{NTuple{10, Int64}}((1, 2, 1, 2, 1, 2, 1, 3, 3, 1)), ExaModels.Compressor{NTuple{17, Int64}}((1, 1, 2, 3, 1, 2, 3, 1, 3, 4, 2, 5, 5, 1, 6, 5, 6)), 0, 0, 29997, 3, 6), 1:9998)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"Finally, we create an NLPModel.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"m = ExaModels.Model(c)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"ExaModels.Model{Float64, Vector{Float64}, Nothing, ExaModels.Objective{ExaModels.ObjectiveNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}}, Int64}}, ExaModels.Node2{typeof(^), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Par, Int64}, Int64}}, Int64}, Int64}}, ExaModels.Compressor{Tuple{Int64, Int64, Int64}}, ExaModels.Compressor{NTuple{4, Int64}}}, UnitRange{Int64}}, ExaModels.Constraint{ExaModels.ConstraintNull, ExaModels.SIMDFunction{ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(-), ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(*), Int64, ExaModels.Node2{typeof(^), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, Int64}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, Int64}, ExaModels.Node2{typeof(*), ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node1{typeof(sin), ExaModels.Node2{typeof(+), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, ExaModels.Node2{typeof(*), Int64, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}, ExaModels.Node2{typeof(*), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Node1{typeof(exp), ExaModels.Node2{typeof(-), ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Par, Int64}}, ExaModels.Var{ExaModels.Node2{typeof(+), ExaModels.Node2{typeof(+), ExaModels.Par, Int64}, Int64}}}}}}, Int64}, ExaModels.Compressor{NTuple{10, Int64}}, ExaModels.Compressor{NTuple{17, Int64}}}, UnitRange{Int64}}}\n Problem name: Generic\n All variables: ████████████████████ 10000 All constraints: ████████████████████ 9998 \n free: ████████████████████ 10000 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 9998 \n infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n nnzh: ( 99.82% sparsity) 89985 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 \n nonlinear: ████████████████████ 9998 \n nnzj: ( 99.97% sparsity) 29994 \n\nExaModels.Counters(0, 0, 0, 0, 0, 0.0, 0.0, 0.0, 0.0, 0.0)","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"To solve the problem with Ipopt,","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"using NLPModelsIpopt\nsol = ipopt(m);","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"\n******************************************************************************\nThis program contains Ipopt, a library for large-scale nonlinear optimization.\n Ipopt is released as open source code under the Eclipse Public License (EPL).\n For more information visit https://github.com/coin-or/Ipopt\n******************************************************************************\n\nThis is Ipopt version 3.14.13, running with linear solver MUMPS 5.6.0.\n\nNumber of nonzeros in equality constraint Jacobian...: 29994\nNumber of nonzeros in inequality constraint Jacobian.: 0\nNumber of nonzeros in Lagrangian Hessian.............: 89985\n\nTotal number of variables............................: 10000\n variables with only lower bounds: 0\n variables with lower and upper bounds: 0\n variables with only upper bounds: 0\nTotal number of equality constraints.................: 9998\nTotal number of inequality constraints...............: 0\n inequality constraints with only lower bounds: 0\n inequality constraints with lower and upper bounds: 0\n inequality constraints with only upper bounds: 0\n\niter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls\n 0 2.5405160e+06 2.48e+01 2.73e+01 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0\n 1 1.3512419e+06 1.49e+01 8.27e+01 -1.0 2.20e+00 - 1.00e+00 1.00e+00f 1\n 2 1.5156131e+05 4.28e+00 1.36e+02 -1.0 1.43e+00 - 1.00e+00 1.00e+00f 1\n 3 6.6755024e+01 3.09e-01 2.18e+01 -1.0 5.63e-01 - 1.00e+00 1.00e+00f 1\n 4 6.2338933e+00 1.73e-02 8.47e-01 -1.0 2.10e-01 - 1.00e+00 1.00e+00h 1\n 5 6.2324586e+00 1.15e-05 8.16e-04 -1.7 3.35e-03 - 1.00e+00 1.00e+00h 1\n 6 6.2324586e+00 8.36e-12 7.97e-10 -5.7 2.00e-06 - 1.00e+00 1.00e+00h 1\n\nNumber of Iterations....: 6\n\n (scaled) (unscaled)\nObjective...............: 7.8692659500479645e-01 6.2324586324379885e+00\nDual infeasibility......: 7.9743417331632266e-10 6.3156786526652763e-09\nConstraint violation....: 8.3555384833289281e-12 8.3555384833289281e-12\nVariable bound violation: 0.0000000000000000e+00 0.0000000000000000e+00\nComplementarity.........: 0.0000000000000000e+00 0.0000000000000000e+00\nOverall NLP error.......: 7.9743417331632266e-10 6.3156786526652763e-09\n\n\nNumber of objective function evaluations = 7\nNumber of objective gradient evaluations = 7\nNumber of equality constraint evaluations = 7\nNumber of inequality constraint evaluations = 0\nNumber of equality constraint Jacobian evaluations = 7\nNumber of inequality constraint Jacobian evaluations = 0\nNumber of Lagrangian Hessian evaluations = 6\nTotal seconds in IPOPT = 1.461\n\nEXIT: Optimal Solution Found.\n","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"The solution sol contains the field sol.solution holding the optimized parameters.","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"","category":"page"},{"location":"guide/","page":"Quick Start","title":"Quick Start","text":"This page was generated using Literate.jl.","category":"page"},{"location":"core/#ExaModels","page":"API Manual","title":"ExaModels","text":"","category":"section"},{"location":"core/","page":"API Manual","title":"API Manual","text":"Modules = [ExaModels]","category":"page"},{"location":"core/#ExaModels.Core","page":"API Manual","title":"ExaModels.Core","text":"ExaModels.Core\n\nA core data object used for creating ExaModels.Model.\n\nExaModels.Core()\n\nReturns ExaModels.Core for creating ExaModels.Model{Float64,Vector{Float64}}\n\n\n\n\n\n","category":"type"},{"location":"core/#ExaModels.Core-Tuple{Nothing}","page":"API Manual","title":"ExaModels.Core","text":"ExaModels.Core(S::Type)\n\nReturns ExaModels.Core for creating ExaModels.Model{T,VT}, where VT <: S\n\n\n\n\n\n","category":"method"},{"location":"core/#ExaModels.Model","page":"API Manual","title":"ExaModels.Model","text":"ExaModels.Model <: NLPModels.AbstractNLPModel\n\nAn NLP model with ExaModels backend\n\n\n\n\n\n","category":"type"},{"location":"core/#ExaModels.Model-Tuple{C} where C<:ExaModels.Core","page":"API Manual","title":"ExaModels.Model","text":"ExaModels.Model(core)\n\n\n\n\n\n","category":"method"},{"location":"#Introduction","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Welcome to the documentation of ExaModels.jl","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"warning: Warning\nThis documentation page is under construction.","category":"page"},{"location":"#What-is-ExaModels?","page":"Introduction","title":"What is ExaModels?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"ExaModels.jl implements SIMD abstraction of nonlinear programs and the automatic differentiation of its functions. ExaModels.jl expresses the functions in the form of iterables over statically typed data. This allows highly efficient derivative computations based on reverse-mode automatic differentiation.","category":"page"},{"location":"#Bug-reports-and-support","page":"Introduction","title":"Bug reports and support","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Please report issues and feature requests via the Github issue tracker. ","category":"page"}] }