6p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None+Instance for special casing null pointers. ;Given a bit pattern, yield all bit masks that it contains. I This does *not* attempt to compute a minimal set of bit masks that when G combined yield the bit pattern, instead all contained bit masks are  produced. Integral conversion Floating conversion Obtain C value from Haskell . Obtain Haskell  from C value. $Convert a C enumeration to Haskell. $Convert a Haskell enumeration to C. x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     2representing functions that can be differentiated None+RealFloat gives most numerical operations,  A is involved to allow using definitions from the splines package AnyRF cb6 is a function that uses variables from the nonlinear  program in a way supported by . The cb is  usually   !"#$%&' !"#$%&'%find out derivatives are unnecessary None >a nonzero gradient when inputs are NaN ==> no need to include that row/-column in the hessian, since it will be zero nanPropagateG1 4 g%[(1,fromList [1,2]),(2,fromList [1])] nanPropagateG 4 gfromList [0,1,2] nanPropagate1 4 g[0,1,2]variable 3 isn' t even used. nanPropagateH 4 gfromList [(1,1),(1,2),(2,1)] size of input vector (i,js)  shows that a NaN at index i# produces NaNs in gradient indexes  js)... so the hessians only need to include  i and js size of input vector size of input vector inputs that don' t become NaN (i,j) indexes ()*   ()*unstableAdam Vogt <vogt.adam@gmail.com>Nonelenses are in Ipopt.PP Vector of numbers +&likely an unsafe method for getting a Data.Vector.Storable.Mutable out of a  Q Set-up an . to be solved later. Only objective function (f) and constraint functions (g4) need to be specified. Derivatives needed by ipopt are computed by  Numeric.AD. #To solve the optimization problem:   min f(x)  such that  xL <= x <= xU  gL <= g(x) <= gU First create an opaque  object (nlp):  - nlp <- createIpOptProblemAD xL xU gL gU f g Then pass it off to P.   ipoptSolve nlp x0 Refer to the example Test2.hs1 for details of setting up the vectors supplied. ,indexes the same as http:www.coin-or.orgIpopt documentation/ node40.html -indexes the same as http:www.coin-or.orgIpopt documentation/ node41.html ]./01 !"#$%&'()*+,-./012345678923456789:;<=>:;+<=?@ABCDEFGH>?I@JKLMNOPstarting point x4. Note that the value is overwritten with the final x. AQxL  4 of lower bounds for decision variables with length n xU  ( of upper bounds for decision variables gL  * of lower bounds for constraint functions g(x) with length m gU  * of upper bounds for constraint functions g(x) objective function  f : R^n -> R constraint functions g : R^n -> R^m Bgrad, hessian are sparse? n number of variables m number of constraints objective function R^n -> R constraint functions  R^n -> R^m C,-DEB !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQBQPJKLN9876543210/.-,+*)('&%$#"! IMODFEGH><=;:?A@BC>./100/.-,+*)('&%$#"! 12345678923456789:;<=>:;+<=?@ABCDEFGH>?I@JKLMNOPAQBC,-DE)a EDSL for describing nonlinear programs NoneTFthe solver deals with arrays. This type is for indexes into the array > for the current variables that the solver is trying to find. [current maximum index \what namespace (see ) _>human-readable descriptions for the constraint, objective and  variables `>human-readable descriptions for the constraint, objective and  variables g%inital state variable for the solver n=the initial state to use when you actually have to get to IO  with the solution /should be a way to write an instance of At that'll make the normal  atix work with the IxMap  Ix (as opposed to IntMap/Int) to is one of }, t, { to should be u, |, ~ calls Q and P. To be used at the  end of a do-block. add a constraint Badd a piece of the objective function, which is added in the form `f_1 + f_2 + ...`2, to make it easier to understand (at some point) Cwhich components are responsible for the majority of the cost, and which are irrelevant. Fadd a variable, or get a reference to the the same variable if it has  already been used a combination of  and fromT 7, except this causes the solver to get a new variable, so that you can use:  ; [a,b,c,d,e] <- replicateM 5 (varFresh (Just (0, 10)) "x") Gand the different letters can take different values (between 0 and 10) 7in the optimal solution (depending on what you do with a and similar in the objective function). combination of  and  splits a variable x' into two positive variables such that  x = x^+ - x^-7 the new variables represent the positive and negative  parts of x - b  ! (xMinus, xPlus) <- splitVar b x Using  max (x-b) 03 instead of xPlus (ie. not telling the solver that b is ,a special point) seems to work just as well -override bounds. Should be unnecessary given  takes bounds. 7shrink the interval in which that variable is allowed. ERSTUVWXYZ[\]^_`abcdefghijklmnFGopqrstuvwxyz{|}~(set ipopt options (using functions from  Ipopt.Raw) optional description bounds (gl,gu) for the single inequality gl_i < = g_i(x) <= gu_i  g_i(x) description `f_i(x)` bounds (xl,xu) to request that xl <= x <= xu. $ if Nothing, you get whatever is in w optional longer description "variable name (namespace from the  /  can  make an x) you request here different from one you  previously requested Athe index (into the rawvector of variables that the solver sees)  b index for x  (b-x)_+, (x-b)_+CRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ChijklmYZ[\]^_`abcdefgWXTUVnSRrqpos~}|{zyxwvut/RSTUVWXYZ[\]^_`abcdefghijklmnFGopqrstuvwxyz{|}~None %exports most things you should need NoneuHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./09JKLNOSn2SnJKLON0/.-,+*)('&%$#"! 9    !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^^__`abcdefghijklmmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkklmlnlolplqlrlsltlulvlwlxlylzl{l|l}l~lllllllllll      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLKMKNKOKPQRSTSUKVKWQXSYZ[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSSlSmSnSoSpSqSrSsStSuSvSwSxSy z{ |} ~ ~ z | ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ipopt-hs-0.3.0.0Ipopt Ipopt.AnyRFIpopt.Sparsity Ipopt.Raw Ipopt.NLPIpopt.PPC2HSVMVectortransformers-0.3.0.0Data.Functor.Identity runIdentityIdentityAnyRFCxtAnyRFliftOp0liftOp1liftOp2nanPropagateG1 nanPropagateG nanPropagate1 nanPropagateH nanPropagateJnanPropagateHF jacobianSS IpOptSolved_ipOptSolved_status_ipOptSolved_objective_ipOptSolved_x_ipOptSolved_g_ipOptSolved_mult_g_ipOptSolved_mult_x_L_ipOptSolved_mult_x_UVec IpProblem unIpProblemApplicationReturnStatus InternalErrorInsufficientMemoryNonipoptExceptionThrownUnrecoverableExceptionInvalidNumberDetected InvalidOptionInvalidProblemDefinitionNotEnoughDegreesOfFreedomMaximumCputimeExceededErrorInStepComputationRestorationFailedMaximumIterationsExceededFeasiblePointFoundUserRequestedStopDivergingIteratesSearchDirectionBecomesTooSmallInfeasibleProblemDetectedSolvedToAcceptableLevelSolveSucceededIpHIpJacGIpGIpGradFIpFIpBoolIpIntIpIndexIpNumberwrapIpH1 wrapIpJacG1 wrapIpGradF1wrapIpG1wrapIpF1wrapIpF2wrapIpG2 wrapIpGradF2 wrapIpJacG2wrapIpH2wrapIpFwrapIpG wrapIpGradF wrapIpJacGwrapIpHcreateIpoptProblemaddIpoptNumOptionaddIpoptStrOptionaddIpoptIntOptionfreeIpoptProblemopenIpoptOutputFilesetIpoptProblemScaling ipoptSolvecreateIpoptProblemADNLPNLPTIx_varIxIxMapNLPState_nMax _currentEnv _variables _variablesInv_constraintLabels _objLabels _varLabels_varEnv_constraintEnv_objEnv_nlpfun_defaultBounds_initXNLPFun_funF_funG_boundX_boundG nlpstate0boundGboundXfunFfunGvarIx constraintEnvconstraintLabels currentEnv defaultBoundsinitXnMaxnlpfunobjEnv objLabelsvarEnv varLabels variables variablesInvixMapix_at_copyEnvaddDesc solveNLP'addGaddFvar'var varFresh'varFreshinEnvpushEnvpopEnvsplitVarixToVar setBounds narrowBounds seqToVecsgmult_gmult_x_Lmult_x_U objectivestatusxppSolnstatusOk colorStatusbr nothingIfNullextractBitMaskscIntConv cFloatConv cFromBoolghc-prim GHC.TypesBoolcToBoolcToEnum cFromEnumwithCStringLenIntConvpeekCStringLenIntConv withIntConv withFloatConv peekIntConv peekFloatConvwithBoolpeekBoolwithEnumpeekEnum nothingIfcombineBitMaskscontainsBitMask$fStorableMaybebase GHC.Stable newStablePtrIntGHC.IntInt8Int16Int32Int64 StablePtrWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtrGHC.ForeignPtr ForeignPtrForeignunsafePerformIOForeign.MarshalunsafeLocalStateForeign.Marshal.PoolpooledNewArray0pooledNewArray pooledNewpooledReallocArray0pooledReallocArraypooledMallocArray0pooledMallocArraypooledReallocBytes pooledReallocpooledMallocBytes pooledMallocwithPoolfreePoolnewPoolPoolForeign.Marshal.Errorvoid throwIfNull throwIfNeg_ throwIfNegthrowIf_throwIfForeign.C.ErrorerrnoToIOErrorthrowErrnoPathIfMinus1_throwErrnoPathIfMinus1throwErrnoPathIfNullthrowErrnoPathIf_throwErrnoPathIfthrowErrnoPaththrowErrnoIfNullRetryMayBlockthrowErrnoIfNullRetrythrowErrnoIfNull throwErrnoIfMinus1RetryMayBlock_throwErrnoIfMinus1RetryMayBlockthrowErrnoIfMinus1Retry_throwErrnoIfMinus1RetrythrowErrnoIfMinus1_throwErrnoIfMinus1throwErrnoIfRetryMayBlock_throwErrnoIfRetry_throwErrnoIfRetryMayBlockthrowErrnoIfRetry throwErrnoIf_ throwErrnoIf throwErrno resetErrnogetErrno isValidErrnoeXDEV eWOULDBLOCKeUSERSeTXTBSY eTOOMANYREFS eTIMEDOUTeTIMEeSTALEeSRMNTeSRCHeSPIPEeSOCKTNOSUPPORT eSHUTDOWNeRREMOTE eRPCMISMATCHeROFSeREMOTEeREMCHGeRANGE ePROTOTYPEePROTONOSUPPORTePROTO ePROGUNAVAIL ePROGMISMATCH ePROCUNAVAILePROCLIMePIPE ePFNOSUPPORTePERM eOPNOTSUPPeNXIOeNOTTYeNOTSOCK eNOTEMPTYeNOTDIReNOTCONNeNOTBLKeNOSYSeNOSTReNOSReNOSPC eNOPROTOOPTeNONETeNOMSGeNOMEMeNOLINKeNOLCKeNOEXECeNOENTeNODEVeNODATAeNOBUFSeNFILE eNETUNREACH eNETRESETeNETDOWN eNAMETOOLONG eMULTIHOPeMSGSIZEeMLINKeMFILEeLOOPeISDIReISCONNeIOeINVALeINTR eINPROGRESSeILSEQeIDRM eHOSTUNREACH eHOSTDOWNeFTYPEeFBIGeFAULTeEXISTeDQUOTeDOMeDIRTY eDESTADDRREQeDEADLK eCONNRESET eCONNREFUSED eCONNABORTEDeCOMMeCHILDeBUSYeBADRPCeBADMSGeBADFeALREADYeAGAIN eAFNOSUPPORTeADV eADDRNOTAVAIL eADDRINUSEeACCESe2BIGeOKErrnoForeign.C.StringwithCWStringLen withCWStringnewCWStringLen newCWStringpeekCWStringLen peekCWStringwithCAStringLen withCAStringnewCAStringLen newCAStringpeekCAStringLen peekCAStringcastCharToCSCharcastCSCharToCharcastCharToCUCharcastCUCharToCharcastCharToCCharcastCCharToCharcharIsRepresentablewithCStringLen withCString newCStringLen newCStringpeekCStringLen peekCStringCString CStringLenCWString CWStringLenForeign.Marshal.Array advancePtr lengthArray0 moveArray copyArray withArrayLen0 withArray0 withArrayLen withArray newArray0newArray pokeArray0 pokeArray peekArray0 peekArray reallocArray0 reallocArray allocaArray0 allocaArray mallocArray0 mallocArrayForeign.Marshal.Utils moveBytes copyByteswithMany maybePeek maybeWithmaybeNewtoBoolfromBoolwithnewForeign.Marshal.Allocfree reallocBytesreallocallocaBytesAligned allocaBytesalloca mallocBytesmalloc finalizerFreeForeign.ForeignPtrunsafeForeignPtrToPtrForeign.ForeignPtr.ImpmallocForeignPtrArray0mallocForeignPtrArraynewForeignPtrEnvwithForeignPtr newForeignPtr Foreign.Ptr intPtrToPtr ptrToIntPtr wordPtrToPtr ptrToWordPtrfreeHaskellFunPtrWordPtrIntPtrfinalizeForeignPtrcastForeignPtrtouchForeignPtrnewForeignPtr_addForeignPtrFinalizerEnvaddForeignPtrFinalizermallocForeignPtrBytesmallocForeignPtr FinalizerPtrFinalizerEnvPtrForeign.C.TypesCCharCSCharCUCharCShortCUShortCIntCUIntCLongCULongCLLongCULLongCFloatCDoubleCPtrdiffCSizeCWchar CSigAtomicCClockCTime CUSeconds CSUSecondsCFileCFposCJmpBufCIntPtrCUIntPtrCIntMaxCUIntMaxForeign.Storablepokepeek pokeByteOff peekByteOff pokeElemOff peekElemOff alignmentsizeOfStorablecastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtrcastPtrToFunPtrcastFunPtrToPtr castFunPtr nullFunPtrminusPtralignPtrplusPtrcastPtrnullPtr Data.BitspopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSizetestBit complementBitclearBitsetBitbitrotateshift complementxor.|..&.Bitsvector-space-0.8.6Data.VectorSpace VectorSpace$fVectorSpaceAD$fAdditiveGroupAD$fAdditiveGroupAnyRF$fVectorSpaceAnyRF $fMonoidAnyRF$fRealFloatAnyRF$fRealFracAnyRF $fEqAnyRF $fOrdAnyRF $fRealAnyRF$fFloatingAnyRF$fFractionalAnyRF $fNumAnyRFcollapse nonzeroIxstrialVptrToVSdenseIJdenseIJhUnFunPtr AlgorithmModeRestorationphasemode Regularmode ipoptSolve2'_setIpoptProblemScaling'_openIpoptOutputFile'_freeIpoptProblem'_addIpoptIntOption'_addIpoptStrOption'_addIpoptNumOption'_createIpoptProblem3'_ipTrueipFalsetoB wrapIpF2' vmUnsafeWithfromVeccreateIpoptProblem3 ipoptSolve2mkFssparseIJ$fEnumAlgorithmMode$fEnumApplicationReturnStatus$fMonoidNLPFun $fShowNLPFunGHC.Basefail>>=>>fmapreturnControl.Monad.Fixmfix Control.MonadguardliftMMonadFunctorMonadFix MonadPlus Data.FunctionfixmfilterapliftM5liftM4liftM3liftM2unlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMmapM_mapM sequence_sequence=<<mplusmzeroControl.Monad.Trans.ClassliftControl.Monad.IO.ClassMonadIOControl.Monad.Trans.State.LazyrunState mtl-2.1.2Control.Monad.State.ClassstateStategets MonadState MonadTransliftIOStateT runStateT evalState execStatemapState withState evalStateT execStateT mapStateT withStateTmodifyputget